호스트에 대한 정보는 여러 가지 방법으로 게스트에게 유출 될 수 있습니다. VMware (및 가상화 제품)는 많은 것들로부터 보호합니다. 완전한 격리 환경을 제공 할 수는 없지만, 꽤 잘 작동합니다. 예를 들어 일부 바이러스 연구원은 VMware 를 사용하여 맬웨어의 행동 을 연구 할 수있는 안전한 환경을 제공합니다 .
호스트 정보가 게스트에게 유출 될 수 있습니다.
- 게스트가 가상화 계층이 인터셉트하지 않는 명령을 직접 실행하는 경우
- 게스트가 호스트와 동일한 네트워크 세그먼트에서 직접 네트워크 트래픽을 관찰 할 수있는 경우
- 게스트가 외부 세계와 통신하고 호스트로 다시 조사 할 수있는 경우
가장 중요한 관심사는 첫 번째 누출 방법에 관한 것으로 보이지만 다른 메커니즘에서도 보호해야합니다.
VMware (및 기타 하이퍼 바이저)는 민감한 지침으로 간주되는 것을 가로 채 가상화를 제공합니다. 민감한 지침은 게스트에게 호스트에 대한 정보를 제공하거나 게스트가 가상화 계층의 격리를 벗어날 수 있도록합니다. 예를 들어, 메모리 액세스를 제어하는 페이지 테이블베이스를 수정하는 명령어는 가상화 계층에 의해 감지되고 인터셉트되어 가상화의 환상을 유지하는 해당 명령어의 "안전한"버전으로 대체되어야합니다.
호스트와 별도의 시스템을 제공하기 위해 호스트에 대한 식별 정보 (예 : 일련 번호, MAC 주소 등)를 나타내는 명령도 가상화됩니다. VMware에서는 이러한 것들을 vmx
파일 에서 설정할 수 있습니다 . 이 물건은 잘 이해되고 아마도 안전합니다.
때로는 최신 버전의 VMware에서 "보호"기능을 제공하는 CPUID 명령과 같이 노출되는 항목에 대한 절충 사항이 있습니다. ( CPUID 가상화에 대한 자세한 내용은 VMotion 및 CPU 호환성 을 참조하십시오 .) 권한있는 명령으로 실행될 때이 명령은 트랩되고 에뮬레이트 될 수 있지만 게스트에 일부 (아마도 흥미롭지 않은) 정보를 노출 할 수있는 기본 명령으로 실행될 수도 있습니다. .
그러나 게스트는 호스트에 대한 다른 정보를 수동으로 배울 수도 있습니다. 예를 들어, 메모리 타이밍을 프로빙하여 게스트는 다양한 캐시 크기의 정보를 얻을 수 있습니다. 타이밍 및 기타 벡터 ( "사이드 채널")를 통해 다른 손님 (또는 호스트)에 대해 배울 수있는 능력은 활발한 연구 분야입니다. 2012 년 10 월, 연구원들은 실제로 다른 VM에서 암호화 키 를 추출 할 수 있음을 발견했습니다 . 이것은 매우 무서울 수 있으며 발견 할 수있는 것의 한계와이를 방지하는 방법은 아직 명확하지 않습니다.
완벽하게 보호하는 가장 좋은 방법은 다른 지역과의 공극을 통해 기계를 분리하는 것입니다. 그러면 악의적 인 소프트웨어가 그 정보를 다른 사람과 통신 할 수 없기 때문에 무엇을 배우는지는 중요하지 않습니다. 완료되면 기기를 닦으십시오. VMware와 같은 도구를 사용하면 시스템 상태가 파일 세트로 캡슐화되므로이 삭제 및 상태 복구가 더 쉬워집니다.