Выход из виртуальной машины

Выход из виртуальной машины (англ. Virtual machine escape, VM escape) — это процесс, при котором программа выходит за пределы виртуальной машины (ВМ), на которой она запущена, и взаимодействует с хостовой операционной системой[1]. Теоретически, виртуальная машина представляет собой «полностью изолированную установку гостевой операционной системы внутри обычной хостовой операционной системы»[2], однако на практике это не всегда так.

К примеру, в 2008 году уязвимость () в VMware, обнаруженная компанией Core Security Technologies, сделала возможным выход из виртуальной машины на VMware Workstation версий 6.0.2 и 5.5.4[3].[4] Полностью рабочий эксплойт под названием Cloudburst был разработан компанией Immunity Inc. для инструмента Immunity CANVAS (коммерческого средства для проведения тестов на проникновение)[5]. Демонстрация Cloudburst прошла на конференции Black Hat USA 2009[6].

Известные уязвимости

  • Xen pygrub: внедрение команд через файл grub.conf.
  • Уязвимость обхода каталогов в функции общих папок VMware.
  • Уязвимость обхода каталогов в функции общих папок VMware.
  • Xen: переполнение буфера в бэкенде паравиртуализированного фрейм-буфера.
  • Cloudburst: функция отображения ВМ в VMware.
  • QEMU-KVM: эмуляция PIIX4 не проверяет возможность устройства к горячему отключению перед извлечением[7].
  • Ошибка в реализации системных вызовов x86-64 ядра Xen 4.1.2 и ранее.
  • Oracle VirtualBox: уязвимость повреждения памяти при трёхмерном ускорении.
  • VENOM: переполнение буфера в виртуальном дисководе QEMU.
  • QEMU-KVM: переполнение кучи в функции pcnet_receive[8].
  • Гипервизор Xen: неконтролируемое создание отображений больших страниц гостевыми PV.
  • Xen: упрощенные сценарии для обновления pagetable приводили к небезопасным сценариям.
  • Xen: отключение рекурсивных L3-таблиц страниц для 32-разрядных PV-гостей.
  • CVE-2017-5715, CVE-2017-5753, CVE-2017-5754: аппаратные уязвимости Spectre и Meltdown, атаки бокового канала кэша на уровне процессора (RDCL), позволяют процессу получать доступ ко всей памяти компьютера, включая невыделенную данной ВМ.
  • Hyper-V: удалённое выполнение кода.
  • Hyper-V: удалённое выполнение кода.
  • VMware ESXi, Workstation, Fusion: переполнение буфера в драйвере SVGA может позволить гостю выполнить код на хосте[9].
  • VMware Workstation, Fusion: переполнение буфера кучи в устройстве VMNAT может позволить гостю выполнить код на хосте[10].
  • VMware Workstation, Horizon View: множественные ошибки выхода за пределы границ при использовании Cortado ThinPrint могут позволить гостю выполнить код или вызвать отказ в обслуживании на Windows-хосте[10].
  • Oracle VirtualBox: интерфейс общей памяти VGA позволяет чтение и запись на хосте[11].
  • VMware ESXi, Workstation, Fusion: использование неинициализированной памяти стека в виртуальном сетевом адаптере vmxnet3[12].
  • MDS-атаки (Microarchitectural Data Sampling): атаки боковых каналов на уровне процессора позволяют читать данные между ВМ и даже с хост-системы. Подтипы: MSBDS, MFBDS (Zombieload), MLPDS, MDSUM.
  • , , , , : уязвимости удалённого выполнения кода в Windows Hyper-V.
  • Xen Hypervisor и Citrix Hypervisor: позволяют гостевым системам скомпрометировать хост (отказ в обслуживании, повышение привилегий)[13].
  • (критическая), : в Windows 10 и VMware Workstation с графическими картами AMD Radeon и драйвером Adrenalin: атакующий внутри гостевой системы может с помощью pixel shader вызвать ошибку памяти на хосте, внедрить вредоносный код и выполнить его[14].
  • : ZombieLoad, ZombieLoad v2, Vector Register Sampling (VRS), Microarchitectural Data Sampling (MDS), Transactional Asynchronous Abort (TAA), CacheOut, L1D Eviction Sampling (L1DES): атаки на L1-кэш процессоров позволяют ВМ читать память за пределами своей «песочницы»[15].
  • CVE-2020-3962, CVE-2020-3963, CVE-2020-3964, CVE-2020-3965, CVE-2020-3966, CVE-2020-3967, CVE-2020-3968, CVE-2020-3969, CVE-2020-3970, CVE-2020-3971: VMware ESXi, Workstation Pro/Player, Fusion Pro, Cloud Foundation: уязвимости в SVGA, графическом шейдере, драйвере USB, xHCI/EHCI, PVNVRAM и vmxnet3 могут привести к выходу из виртуальной машины[16].

Примечания

  1. What is VM Escape? - The Lone Sysadmin (22 сентября 2007). Дата обращения: 23 октября 2011. Архивировано 9 декабря 2011 года.
  2. Virtual Machines: Virtualization vs. Emulation. Дата обращения: 11 марта 2011. Архивировано 15 июля 2014 года.
  3. Path Traversal vulnerability in VMware's shared folders implementation (18 мая 2016). Архивировано 8 июля 2011 года.
  4. Dignan, Larry Researcher: Critical vulnerability found in VMware's desktop apps - ZDNet. ZDNet. Архивировано 29 ноября 2014 года.
  5. Security Monitoring News, Analysis, Discussion, & Community. Dark Reading. Дата обращения: 23 октября 2011. Архивировано 19 июля 2011 года.
  6. Black Hat ® Technical Security Conference: USA 2009 // Briefings. blackhat.com. Архивировано 10 сентября 2025 года.
  7. DEFCON 19: Virtunoid: Breaking out of KVM. Nelson Elhage. Дата обращения: 24 декабря 2024. Архивировано 4 декабря 2024 года.
  8. VM escape - QEMU Case Study. Mehdi Talbi & Paul Fariello. Архивировано 23 июня 2025 года.
  9. VMSA-2017-0006. VMware. Дата обращения: 1 апреля 2017. Архивировано 1 апреля 2017 года.
  10. 1 2 VMSA-2017-0018.1. VMware. Дата обращения: 17 ноября 2017. Архивировано 18 ноября 2017 года.
  11. CVE-2018-2698. exploit-db.com: Oracle VirtualBox < 5.1.30 / < 5.2-rc1 - Guest to Host Escape (24 января 2018). Дата обращения: 24 декабря 2024. Архивировано 10 декабря 2024 года.
  12. Chaos Communication Congress 2019: The Great Escape of ESXi. media.ccc.de (28 декабря 2019). Архивировано 25 мая 2025 года.
  13. CVE-2019-18420 to 18425. Patches beheben Schwachstellen in Xen und Citrix Hypervisor (5 ноября 2019). Дата обращения: 5 ноября 2019. Архивировано 5 ноября 2019 года.
  14. CVE-2019-0964 (critical), CVE-2019-5124, CVE-2019-5146, CVE-2019-5147. Sicherheitsupdate: AMD-Treiber und VMware (22 января 2020). Дата обращения: 22 января 2020. Архивировано 22 января 2020 года.
  15. Mantle, Mark Sicherheitslücken in Intel-CPUs: Modifizierte Angriffe erfordern BIOS-Updates (нем.). Heise (28 января 2020). Дата обращения: 10 января 2024. Архивировано 10 января 2024 года.
  16. CVE-2020-3962, CVE-2020-3963, CVE-2020-3964, CVE-2020-3965, CVE-2020-3966, CVE-2020-3967, CVE-2020-3968, CVE-2020-3969, CVE-2020-3970, CVE-2020-3971. VMWare Advisory VMSA-2020-0015.1. Архивировано 26 июня 2020 года.

Категории