VMware DirectPath I/O 기능을 사용하여 PCI 또는 PCIe 디바이스를 가상 시스템에 전달하면 잠재적인 보안 취약성이 발생합니다. 버그성 코드나 악성 코드(예: 디바이스 드라이버)가 게스트 운영 체제에서 권한이 있는 모드로 실행되면 취약성이 유발될 수 있습니다. 현재는 업계 표준 하드웨어 및 펌웨어에서 ESXi 호스트를 취약성으로부터 보호할 수 있는 충분한 오류 억제가 지원되지 않습니다.
신뢰할 수 있는 엔티티가 가상 시스템을 소유하고 관리하는 경우에만 가상 시스템에 대한 PCI 또는 PCIe 패스스루를 사용하십시오. 이 엔티티가 가상 시스템에서 호스트를 충돌시키거나 악용하려고 시도하지 않는지 확인해야 합니다.
사용 중인 호스트가 다음 방법 중 하나로 손상될 수 있습니다.
- 게스트 OS가 복구할 수 없는 PCI 또는 PCIe 오류를 생성할 수 있습니다. 이러한 오류는 데이터를 손상시키지는 않지만 ESXi 호스트가 충돌되게 할 수 있습니다. 통과하는 하드웨어 디바이스의 버그 또는 비호환성으로 인해서나 게스트 운영 체제의 드라이버 관련 문제로 인해 이러한 오류가 발생할 수 있습니다.
- 게스트 운영 체제가 ESXi 호스트에서 IOMMU 페이지 장애를 일으키는 DMA(Direct Memory Access) 작업을 생성할 수 있습니다. 예를 들어 DMA 작업이 가상 시스템의 메모리 외부 주소를 대상으로 하는 경우 이 작업이 생성될 수 있습니다. 일부 시스템에서 호스트 펌웨어는 IOMMU 장애가 NMI(Non-Maskable Interrupt)를 통해 치명적인 오류를 보고하도록 구성하고 이 치명적인 오류로 인해 ESXi 호스트가 충돌하게 됩니다. 게스트 OS의 드라이버 관련 문제로 인해 이 문제가 발생할 수 있습니다.
- ESXi 호스트의 운영 체제가 인터럽트 재매핑을 사용하고 있지 않은 경우 게스트 OS가 벡터의 ESXi 호스트에 가상 인터럽트를 주입할 수 있습니다. 현재 ESXi는 인터럽트 재매핑이 사용 가능한 Intel 플랫폼에서 인터럽트 재매핑을 사용합니다. 인터럽트 매핑은 Intel VT-d 기능 세트의 일부입니다. ESXi는 AMD 플랫폼에서 인터럽트 매핑을 사용하지 않습니다. 가상 인터럽트는 ESXi 호스트의 충돌을 일으킬 가능성이 높으며 이론적으로는 이러한 가상 인터럽트를 악용하는 다른 방법이 존재할 수 있습니다.