게스트가 사용할 수있는 vmware 호스트에 대한 정보는 무엇입니까?


9

에서는 vmware Workstation, 호스트 소프트웨어 및 하드웨어에 대한 어떤 정보는 게스트 OS로 사용할 수 있습니다.

내 응용 프로그램의 목적을 위해 게스트 OS의 프로세스가 호스트가 실행중인 물리적 하드웨어에 대한 정보를 얻는 데 관심이 있습니다. 여기에는 일련 번호, MAC 주소 또는 실제로 실행중인 컴퓨터를 식별 할 수있는 모든 항목이 포함될 수 있습니다.

호스트와 게스트 모두 Ubuntu Linux를 실행합니다.

편집 : vmware-tools게스트에 설치됩니다

편집 2 : 현상금 추가

이 질문에 대해 많은 연구를 해왔으며 대부분의 답변에는 "하지 말아야 할 것"과 같은 단어가 있습니다. 어느 정도 확실하게 vmware 게스트가 다음 항목을 볼 수 없다는 것을 알아야합니다.

  • 모든 하드웨어 일련 번호
  • 호스트 네트워크 인터페이스의 mac 주소
  • vmware 소프트웨어의 등록 일련 번호
  • 호스트 운영 체제의 모든 파일

이 질문의 동기는 신뢰할 수없는 소프트웨어를 실행해야하며 내 신원을 밝힐 수있는 정보와는 별도로 샌드 박스를 만들고 싶습니다. 예를 들어,이 소프트웨어가 프로세서 일련 번호를 읽고이를 생성자에게 다시보고하려고한다고 가정하면 실제 ID로 되돌아 갈 수 있습니다. 원한다면이 편집증을 부르십시오. 내 상황의 일부는 vmware-tools가 설치되어 있어야합니다.

답변:


5

호스트에 대한 정보는 여러 가지 방법으로 게스트에게 유출 될 수 있습니다. VMware (및 가상화 제품)는 많은 것들로부터 보호합니다. 완전한 격리 환경을 제공 할 수는 없지만, 꽤 잘 작동합니다. 예를 들어 일부 바이러스 연구원은 VMware 를 사용하여 맬웨어의 행동연구 할 수있는 안전한 환경을 제공합니다 .

호스트 정보가 게스트에게 유출 될 수 있습니다.

  • 게스트가 가상화 계층이 인터셉트하지 않는 명령을 직접 실행하는 경우
  • 게스트가 호스트와 동일한 네트워크 세그먼트에서 직접 네트워크 트래픽을 관찰 할 수있는 경우
  • 게스트가 외부 세계와 통신하고 호스트로 다시 조사 할 수있는 경우

가장 중요한 관심사는 첫 번째 누출 방법에 관한 것으로 보이지만 다른 메커니즘에서도 보호해야합니다.

VMware (및 기타 하이퍼 바이저)는 민감한 지침으로 간주되는 것을 가로 채 가상화를 제공합니다. 민감한 지침은 게스트에게 호스트에 대한 정보를 제공하거나 게스트가 가상화 계층의 격리를 벗어날 수 있도록합니다. 예를 들어, 메모리 액세스를 제어하는 ​​페이지 테이블베이스를 수정하는 명령어는 가상화 계층에 의해 감지되고 인터셉트되어 가상화의 환상을 유지하는 해당 명령어의 "안전한"버전으로 대체되어야합니다.

호스트와 별도의 시스템을 제공하기 위해 호스트에 대한 식별 정보 (예 : 일련 번호, MAC 주소 등)를 나타내는 명령도 가상화됩니다. VMware에서는 이러한 것들을 vmx파일 에서 설정할 수 있습니다 . 이 물건은 잘 이해되고 아마도 안전합니다.

때로는 최신 버전의 VMware에서 "보호"기능을 제공하는 CPUID 명령과 같이 노출되는 항목에 대한 절충 사항이 있습니다. ( CPUID 가상화에 대한 자세한 내용은 VMotion 및 CPU 호환성 을 참조하십시오 .) 권한있는 명령으로 실행될 때이 명령은 트랩되고 에뮬레이트 될 수 있지만 게스트에 일부 (아마도 흥미롭지 않은) 정보를 노출 할 수있는 기본 명령으로 실행될 수도 있습니다. .

그러나 게스트는 호스트에 대한 다른 정보를 수동으로 배울 수도 있습니다. 예를 들어, 메모리 타이밍을 프로빙하여 게스트는 다양한 캐시 크기의 정보를 얻을 수 있습니다. 타이밍 및 기타 벡터 ( "사이드 채널")를 통해 다른 손님 (또는 호스트)에 대해 배울 수있는 능력은 활발한 연구 분야입니다. 2012 년 10 월, 연구원들은 실제로 다른 VM에서 암호화 키추출 할 수 있음을 발견했습니다 . 이것은 매우 무서울 수 있으며 발견 할 수있는 것의 한계와이를 방지하는 방법은 아직 명확하지 않습니다.

완벽하게 보호하는 가장 좋은 방법은 다른 지역과의 공극을 통해 기계를 분리하는 것입니다. 그러면 악의적 인 소프트웨어가 그 정보를 다른 사람과 통신 할 수 없기 때문에 무엇을 배우는지는 중요하지 않습니다. 완료되면 기기를 닦으십시오. VMware와 같은 도구를 사용하면 시스템 상태가 파일 세트로 캡슐화되므로이 삭제 및 상태 복구가 더 쉬워집니다.


1

게스트는 네트워크와 같은 호스트 설정에 대해 아무것도 알아야합니다. 실제 hw와 거의 동일하게 동작해야하는 가상 hw를 전달하기 때문입니다. 그러나 게스트와 같은 CPU는 알아야하지만 그 지식은 보안을 손상시키지 않아야합니다.

따라서 호스트에서 게스트로 유출되는 설정 정보가 있으면 보안 허점이 될 것입니다.

그러나 hgfs (host-guest 파일 시스템)를 활성화하면 호스트 파일 시스템의 적어도 일부가 게스트에 표시되며 호스트에 대한 일부 정보를 얻을 수 있습니다. 우려되는 경우이를 비활성화해야합니다.

대부분의 경우 워크 스테이션이 개인적으로 사용되므로 어떠한 경우에도 호스트에 액세스 할 수 있으므로이 모든 것이 실제로 중요하지 않을 수 있습니다. 그렇지 않으면 서버 가상화 (vsphere, xen, kvm)를 조사해야합니다.


1

VM 내에서 호스트 정보를 추출하는 방법 기사 게스트가 호스트 정보를 얻기 위해 사용할 수있는 ESX (i) / vSphere의 유틸리티를 설명합니다. 보안상의 이유로 범위가 반드시 제한됩니다.

첫 번째 유틸리티는 VMware Toolbox 명령입니다. 기본 자원 통계를 포함하여 ESX (i) 및 guestOS 구성에 대한 정보를 제공합니다.

UNIX/Linux - /usr/bin/vmware-toolbox-cmd
Windows - C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe

두 번째는 vmtoolsd (VMware Tools Daemon) 유틸리티입니다. 여기서 "info-get"매개 변수는 가상 머신이 실행되는 동안 가상 머신의 .vmx 구성 파일 또는 VMX 메모리에 guestinfo 세트를 가져올 수 있습니다.

UNIX/Linux - /usr/bin/vmtoolsd
Windows - C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.