20161129

시스템 보안 개론
* paravirtualization을 만든 이유? 가상화로 인해 kernel 소스 코드 변형이 많이 발생하지 않도록, paravirtualization API를 정의해두고 이를 사용해 kernel과 hypervisor를 개발한다.
* 가상화는 커널 밖에서 커널을 감시할 수 있다는 점에서 매력적인 기술이었다(virtual machine introspection).
* guest VM을 secure VM이 monitoring 하는 방식으로 감시할 수 있다. 하지만 guest VM과 secure VM이 같은 context에 있지 않으면 semantic gap이 발생할 수 있다. 이러한 semantic gap을 해결하기 위해 guest VM에 in-guest component를 심어두는 방법이 있을 수 있다. guest VM을 monitoring하는 과정에서 context switching이 발생하는 문제가 생길 수 있다.
* 가상화된 환경을 활용해 memory monitoring하는 방법. 페이지 테이블에 쓰기 권한을 주지 않고 쓰기 접근함으로써, hypervisor가 접근하도록 한다. 읽기 감시하려면 해당 페이지 테이블을 invalid로 두고, 읽기 접근함으로써 hypervisor가 처리하도록 한다. 이같은 감시 방식의 문제는 page granularity로 감시해야만 한다는 것. memory 감시의 granularity 문제를 해결한 논문이 있었음. 특정 페이지에 감시하고자 하는 모든 영역을 모아두는 방식으로 방어 기법을 적용함.
* Lares는 커널 모니터링 기법, Syringe는 guest VM의 context를 그대로 두고 모니터링하는 기법. Syringe는 guest VM의 모니터링 시점에서 guest VM의 주소 공간 내의 특정 영역에 모니터링 코드를 삽입하고, 이를 활용해 guest VM의 컨텍스트에서 모니터링한다.
* InkTag의 메인 아이디어는 EPT를 두 개로 나누어 신뢰할 수 있는 메모리 영역을 생성하는 기법.
* Trusted Execution Environment는 앞으로 많이 쓰이게 될 것. TEE 환경에서는 모든 과정이 안전하다고 보장해야만 한다. REE와 TEE코드를 분리하는 것, 그리고 안전한 외부 장치에 격리하는 것도 쉽지 않은 문제이다.
* secure boot와 authenticated boot은 다르다.
* TEE 하드웨어를 한 곳에만 둘 수도 있지만, 여러 곳에 퍼뜨려두는 것이 더 fine-grained한 보안 기능을 제공한다.
* REE와 TEE를 mode bit으로 분류하는 것도 좋은 기법이다.

Advertisements
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 96,354 hits
%d bloggers like this: