문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 가상화]] == 개요 == Virtual machine introspection (VMI)이란 Guest operating system의 현재 Runtime상태를 Hypervisor에서 추적하는 기술을 말한다. 이 기법은 디버깅이나 보안을 위해서 사용된다. VMI는 하이퍼바이저에서 Guest의 상태를 추적할 수 있는 다양한 방법과 분석 기법들을 제공한다. 예를 들어서 [[VMM]]은 VM의 동작중에서 특정 명령어가 수행할 경우 VMM으로 Context를 전환할 수 있다. 이러한 환경에서 System call 혹은 Page table modification처럼 특정 명령어가 수행될 경우 VMM으로 Context를 전환하여서 [[Seccomp]]와 같은 것을 구현하거나 아니면 page table dump을 떠서 Security Attack이 수행중인지를 파악할 수 있다. 혹은 I/O와 같은 경우에도 패킷을 분석하여서 GuestOS가 잘못된 일을 하고 있는지, 아니면 GuestOS가 사용하는 트래픽의 양과 같은 일들을 검사하고 파악할 수 있다. VMI을 위한 기법들은 Virtual machine와 상호 협력을 하거나 아니면 완전히 Isolate된 환경에서 작동하기도 한다. Virtual machine과의 [[Semantic gap]]을 해결하여서 어떻게 하면 Guest operating system이 제공하는 Low-level의 정보를 의미있는 정보로 바꾸냐 하는 문제가 있다. == 상호협력 모델 == 이렇나 모델에서는 VM내부에 Hypervisor에 정보를 주기위한 통로가 있다. 이러한 정보는 Network나 I/O디바이스등 Hypervisor와 통신할 수 있는 통로를 통해서 전달된다. 이러한 모델은 VM과의 협력이 필요하기 때문에 VM이 잘못 작동되거나, 아니면 Attacker가 VMI도 공격할 수 있는 환경에서는 잘 못 작동할 수 있는 위험성이 있다. == VM의 밖에서 작동하는 모델 == VMI는 Virtual machine monitor외부 환경에서도 작동할 수도 있다. 이러한 환경에서는 잘 알려진 Operating system의 구조체와 같은 정보를 Virtual machine의 Page map과 같은 Low-level 정보로부터 Decoding하여서 Security check을 수행한다. Semantic gap을 해결해야 하는 문제가 있지만, GuestOS의 도움이 필요없어서 보안적으로 유리하고 GuestOS가 잘못 작동하여도 계속 진행할 수 있다는 장점이 있다. == 참고 == # https://suif.stanford.edu/papers/vmi-ndss03.pdf # https://bedrocksystems.com/blog/virtual-machine-introspection/ Virtual machine introspection 문서로 돌아갑니다.