64-bitowe hiperwizory na procesorach Intela podatne na atak?
- Michał Witkowski,
- David Marshall,
- 21.06.2012, godz. 09:00
Oprogramowanie wirtualizacyjne było przez długi czas obiektem krytyki z powodu zagrożeń bezpieczeństwa. Przez lata zidentyfikowano i usunięto w nim wiele luk. Ostatnie ostrzeżenie amerykańskiego CERT dolało sporo oliwy do ognia - po raz pierwszy problem bezpieczeństwa dotyczy nie jednego a wielu hiperwizorów.
Polecamy Wirtualizacja i cloud computing przyszłości
Zobacz również:
- Chiny wypowiedziały amerykańskim producentom chipów wojnę
- Niemcy wzbogacą się o dwa nowe superkomputery
- 5 priorytetów, które obniżają koszty chmury i usprawniają operacje IT
Według komunikatu US-CERT KB VU#649219," Atakujący z poziomu ring3 (aplikacji) może tak spreparować ramkę stosu, by była wykonana na poziomie ring0 (jądra ), po wyjątku #GP (general Protection Exeption). Błąd zostanie obsłużony przed przeładowaniem stosu co znaczy, że mechanizm obsługi wyjątku (exception handler) zostanie uruchomiony na poziomie ring0, z wybranym przez użytkownika wskaźnikiem stosu (RSP) powodującym podwyższenie uprawnień".
Używając mniej technicznego języka - oznacza to, że atakujący może spowodować wyjątek systemu w maszynie wirtualnej i przeskoczyć z niej do systemu hosta z podwyższonymi uprawnieniami.
Zarówno Intel jak i AMD wyposażyły swoje procesory w funkcje bezpieczeństwa, które powinny izolować operacyjne systemy od siebie i od systemu hosta, by zapobiegać tego rodzaju atakom. Niestety wygląda na to, że zastosowana przez Intela implementacja tego schematu ochrony może zawierać lukę pozwalającą przebić się z wirtualnego systemu do chronionego systemu hosta.
Polecamy Bezpłatne narzędzia VMware dla administratorów wirtualizacji
Na oficjalnym blogu Xen.org zagrożenie wyjaśniono następująco: "[Luka] wynika z drobnej różnicy w sposobie, w który procesory Intel a obsługują błędy w swojej wersji instrukcji SYSRET. Instrukcja SYSRET jest częścią standardu x86-64 zdefiniowanego przez AMD. Jeśli system operacyjny jest napisany zgodnie ze specyfikacją AMD ale zostanie uruchomiony na platformie Intela, różnica w implementacji może być wykorzystana przez atakującego do zapisu w pamięci pod dowolnym adresem"
Polecamy Hyper-V w Windows 8 Server - silna konkurencja dla VMware
Zdaniem Intela nie jest to błąd w implementacji instrukcji w procesorze a jego udokumentowana cecha. W oświadczeniu firmy możemy przeczytać: "Problem wynika z implementacji oprogramowania. Procesory Intela funkcjonują zgodnie ze specyfikacją i działanie to jest prawidłowo udokumentowane w instrukcji: IntelR64 Software Developers Manual, Volume 2B str. 4-598-599".
Biorąc pod uwagę, że problem nie dotyczy platformy AMD, a to ta właśnie firma opracowała standard x86-64, wydaje się, że Intelowi trudno będzie przekonać specjalistów, że problem tkwi w oprogramowaniu hiperwizorów. Nie ulega wątpliwości, że pewne funkcje sprzętowe realizowane są inaczej na CPU Intela niż na procesorach wyprodukowanych przez AMD.