Uczestnicy tegorocznych zawodów hakerskich Pwn2Own popisali się nie lada wyczynem - zaatakowali słynącą z nowoczesnych zabezpieczeń przeglądarkę Microsoft Edge w taki sposób, by opuścić maszynę wirtualną VMware Workstation i zyskać pełną kontrolę nad systemem-hostem. Za to osiągnięcie hakerzy otrzymali 105 tys. dolarów, czyli najwyższą nagrodę w tegorocznych zawodach.
Jak ogłosili organizatorzy konkursu, operacja polegała na exploitowaniu podatności przepełnienia sterty (heap overflow) w Edge, luki typu type confusion w jądrze Windows, co poprowadziło do niezainicjowanego błędu w buforze VMware. W efekcie atakujący dokonali pełnej ucieczki czy też wyskoczenia (virtual machine escape) z maszyny wirtualnej. Wyczynu dokonali członkowie zespołu Qihoo 360, którzy w taki sposób opisują swój atak: "Wykorzystaliśmy bug w silniku JavaScript w Microsoft Edge, by osiągnąć wykonanie kodu w sandboksie Edge, i użyliśmy buga w jądrze Windows 10, by wyskoczyć z niego i w przejąć w pełni maszynę-gościa. Następnie exploitowaliśmy bug symulacji sprzętowej w VMWare, by uciec z systemu operacyjnego-gościa do systemu-gospodarza. Wszystko zaczęło się od zaledwie jednej kontrolowanej witryny".
Wow. @mj0011sec did it. Used heap overflow in Edge, type confusion in kernel, & uninit buffer in VMware for complete virtual machine escape.
— Zero Day Initiative (@thezdi) 17 marca 2017
"Hiperwizor wirtualnej maszyny to po prostu kolejna warstwa izolacji na poziomie oprogramowania, która może zawierać podatności, pozwalające atakującemu na jej pokonanie. Warstwy izolujące, takie jak sandboksy, wirtualizacja i kontenerowanie zmuszają atakującego do dodatkowej pracy, ale nic nie jest perfekcyjne. Zabezpieczający [te środowiska] powinni zawsze pamiętać, że atakujący może się przedrzeć, o ile włoży w to odpowiednio dużo pracy" - komentuje Dino Dai Zovi z Capsule8, firmy zajmującej się ochroną kontenerową w czasie rzeczywistym.
Maszyny wirtualne to dla wielu klientów indywidualnych i firm kluczowe narzędzie zapewniające ochronę przed niepowołanym dostępem. W infrastrukturze serwerowej VM-y pełnią rolę kontenerów, chroniących dane i system operacyjny klienta przed dostępem innych klientów, współdzielących ten sam fizyczny serwer. W zastosowaniach lokalnych maszyny typu VMWare Workstation służą m.in. do testów czy uruchamiania w izolacji niezaufanej zawartości (np. nieoficjalnych kompilacji systemów czy potencjalnie szkodliwego oprogramowania), dzięki czemu nasz główny system operacyjny pozostaje bezpieczny. Gdy system-gość (uruchomiony w VM) zostanie zaatakowany, wszystko dzieje się w owym kontenerze i nie ma wpływu na system-gospodarza i jego pliki. Jak jednak pokazuje przypadek na tegorocznym Pwn2Own, ucieczka z wirtualnej maszyny JEST możliwa, o ile w oprogramowaniu do wirtualizacji znajdziemy niezałataną podatność.