Informacje o hoście mogą wyciekać do gościa na wiele różnych sposobów. VMware (i ogólnie produkty do wirtualizacji) zapewniają ochronę przed wieloma rzeczami. Chociaż jest mało prawdopodobne, aby zapewnić pełne środowisko izolacyjne, prawdopodobnie wykonuje całkiem dobrą robotę. Na przykład niektórzy badacze wirusów używają VMware, aby zapewnić bezpieczne środowisko do badania zachowania złośliwego oprogramowania .
Informacje hosta mogą wyciekać do gościa:
- jeśli gość bezpośrednio wykona instrukcje, których warstwa wirtualizacji nie przechwytuje.
- jeśli gość może obserwować ruch sieciowy bezpośrednio w tym samym segmencie sieci co host.
- jeśli gość może komunikować się ze światem zewnętrznym i sondować go z powrotem do gospodarza.
Wydaje się, że Twoim głównym zmartwieniem jest pierwsza metoda wycieku, ale powinieneś być pewien, że zabezpieczysz się również przed innymi mechanizmami.
VMware (i inne hiperwizory) zapewniają wirtualizację, przechwytując instrukcje uważane za poufne. Wrażliwe instrukcje albo ujawnią gościom informacje o hoście, albo pozwolą gościowi uciec przed warstwą wirtualizacji. Na przykład instrukcja modyfikująca podstawę tabeli stron (która kontroluje dostęp do pamięci) musi zostać wykryta przez warstwę wirtualizacji, przechwycona i zastąpiona „bezpieczną” wersją tej instrukcji, która zachowuje iluzję wirtualizacji.
Aby zapewnić złudzenie, że maszyna jest oddzielna od hosta, instrukcje, które ujawniają informacje identyfikujące hosta (takie jak numery seryjne, adresy MAC itp.) Są również wirtualizowane. W VMware te rzeczy można ustawić w vmx
pliku. Te rzeczy są dobrze zrozumiałe i przypuszczalnie bezpieczne.
Czasami występują kompromisy dotyczące tego, co jest ujawniane, na przykład instrukcja CPUID, przed którą najnowsze wersje VMware zapewniają pewną „ochronę”. (Zobacz VMotion i kompatybilność procesora, aby uzyskać szczegółowe informacje na temat wirtualizacji CPUID.) Wykonane jako instrukcja uprzywilejowana, może zostać uwięzione i emulowane, ale może być również wykonane jako instrukcja natywna, która może ujawnić gościom pewne (prawdopodobnie nieciekawe) informacje .
Gość może jednak również pasywnie uczyć się innych informacji na temat hosta. Na przykład poprzez sondowanie czasów pamięci gość może uzyskać informacje o rozmiarze różnych pamięci podręcznych. Zdolność do uczenia się o innych gościach (lub gospodarzu) za pomocą czasu i innych wektorów („kanałów bocznych”) jest obszarem aktywnych badań. W październiku 2012 r. Naukowcy odkryli, że w rzeczywistości możliwe jest wyodrębnienie kluczy kryptograficznych z innych maszyn wirtualnych . Może to być dość przerażające, a granice tego, co można odkryć i jak się przed tym zabezpieczyć, nie są jeszcze w pełni jasne.
Najlepszym sposobem na pełne bezpieczeństwo jest odizolowanie urządzenia od szczeliny powietrznej od reszty świata. Wtedy nie ma znaczenia, czego uczy się złośliwe oprogramowanie, ponieważ nie może nikomu przekazać tych informacji. Po zakończeniu wyczyść urządzenie. Korzystanie z narzędzia takiego jak VMware ułatwia czyszczenie i odzyskiwanie stanu, ponieważ stan komputera jest zamknięty w zestawie plików.