Pytania:
- jeśli maszyna wirtualna jest uszkodzona (zhakowana), jakie mam ryzyko na innych maszynach wirtualnych działających na tej samej maszynie fizycznej?
- Jakie są problemy bezpieczeństwa między maszynami wirtualnymi działającymi na tym samym hoście fizycznym?
- Czy istnieje (czy można zrobić) listę tych (potencjalnych) słabości i / lub problemów?
Ostrzeżenie:
Wiem, że istnieje wiele typów / rozwiązań wirtualizacji i mogą mieć różne słabości. Jednak przede wszystkim szukam ogólnych problemów bezpieczeństwa związanych z technikami wirtualizacji, a nie konkretnego błędu dostawcy.
Proszę podać prawdziwe fakty, (poważne) badania, napotkane problemy lub wyjaśnienia techniczne. Być specyficznym. Nie (tylko) wyrażaj swojej opinii.
- Przykłady:
Dwa lata temu słyszałem, że mogą istnieć problemy z bezpieczeństwem związane z MMU (myślę, że mam dostęp do pamięci głównej innych maszyn), ale nie wiem, czy jest to praktyczne zagrożenie na dzień dzisiejszy, czy tylko teoretyczne badanie Przedmiot.
EDYCJA: Znalazłem również ten atak „Flush + Reload”, który jest w stanie odzyskać tajne klucze GnuPG na tej samej maszynie fizycznej, wykorzystując pamięć podręczną procesora L3, nawet jeśli GnuPG działa na innej maszynie wirtualnej. Od tego czasu GnuPG zostało załatane.
Odpowiedzi:
Oczywiście możliwe jest wykorzystanie innej maszyny wirtualnej działającej na tym samym sprzęcie, z uwagi na działający exploit. Dodatkowo można istnieć. Twoje pytanie przytacza niektóre najnowsze prace, które je pokazują. Nie zamierzam udostępniać tutaj żadnych konkretnych exploitów ani PoC, ale chętnie powiem, jak można je stworzyć.
Exploity, które są używane w tym kontekście, są naturalnie różne od tych, które działają, gdy działasz na tym samym komputerze, na którym próbujesz wykorzystać usługę, i są one zwykle nieco trudniejsze ze względu na zwiększoną izolację. Jednak niektóre ogólne podejścia, które można wykorzystać do osiągnięcia takiego exploita, obejmują:
Z czasem pojawią się określone ataki, które zostaną załatane, więc klasyfikowanie określonego mechanizmu jako możliwego do wykorzystania, możliwego do wykorzystania tylko w warunkach laboratoryjnych lub niewykonalnego nigdy nie jest poprawne. Jak widać, ataki bywają zaangażowane i trudne, ale które z nich są wykonalne w danym momencie , szybko się zmieniają i musisz być przygotowany.
To powiedziawszy, wektory, o których wspomniałem powyżej (z możliwym wyjątkiem ostatniego w niektórych przypadkach) po prostu nie istnieją w środowisku bez metalu. Tak więc, biorąc pod uwagę, że bezpieczeństwo polega na ochronie przed exploitami, o których nie wiesz i które nie są na wolności, a także te, które zostały publicznie ujawnione, możesz zyskać trochę bezpieczeństwa, uruchamiając go na czystym metalu lub w przynajmniej w środowisku, w którym hiperwizor nie hostuje maszyn wirtualnych dla wszystkich.
Zasadniczo skuteczną strategią bezpiecznego programowania aplikacji byłoby założenie, że na komputerze działają inne procesy, które mogą być kontrolowane przez atakującego lub złośliwe, i używać technik programowania świadomych pod kątem wykorzystania, nawet jeśli uważasz, że inaczej nie zapewniasz takiego procesu istnieje na twojej maszynie wirtualnej. Jednak szczególnie w przypadku pierwszych dwóch kategorii pamiętaj, że wygrywa ten, kto pierwszy dotknie sprzętu.
źródło
Teoretycznie nie. Celem hiperwizora jest izolowanie maszyn wirtualnych od siebie.
W praktyce wystąpiły (i mogą być w przyszłości) błędy bezpieczeństwa w różnych hiperwizorach, które mogą pozwolić jednej maszynie wirtualnej wpłynąć na hiperwizora lub inne maszyny wirtualne na tym samym hoście. Środki bezpieczeństwa, takie jak sVirt (dla KVM / QEMU) mają na celu rozwiązanie tego problemu.
źródło
Edycja: Myślałem, że ten temat został ukończony kilka miesięcy temu, ale właśnie został odnowiony, a teraz OP prosi o więcej „prawdziwych faktów, cytowanych badań” itp., Więc pomyślałem, do cholery.
Wykorzystania tego rodzaju to:
Nie możemy powiedzieć, że nie można zhakować hiperwizora i uzyskać dostęp do innych maszyn wirtualnych. Nie możemy również określić ilościowego ryzyka, z wyjątkiem tego, że doświadczenie pokazuje nam, że jest dość niskie, biorąc pod uwagę, że nie znajdziesz wielu opowieści o atakach wykorzystujących exploity hypervisora.
Oto coś w rodzaju interesującego artykułu, który sugeruje, że przeprowadzono więcej niż kilka ataków opartych na hiperwizorach.
Jednak z uwagi na to, że technologia w większym stopniu niż kiedykolwiek opiera się na hiperwizorach, takie exploity zostałyby załatane i zabezpieczone przed większą pilnością niż jakikolwiek inny rodzaj exploita.
Oto fragment raportu na temat trendów i ryzyka w połowie roku IBM X-Force 2010:
(Otwórz ten obraz w nowej karcie, aby wyświetlić go w pełnym rozmiarze).
Zwróć uwagę na zmierzony procent luk w zabezpieczeniach „Escape to hypervisor”, co wydaje mi się dość przerażające. Oczywiście chcesz przeczytać resztę raportu, ponieważ zawiera on o wiele więcej danych na poparcie roszczeń.
Oto opowieść o możliwym exploicie przeprowadzonym na hiperwizorze Playstation 3, co jest zabawne. Może nie ma to tak dużego wpływu na Twoją firmę, chyba że Twoja firma to Sony, w którym to przypadku ma to ogromny wpływ.
Oto wspaniały artykuł od Erica Horschmana z VMware, w którym trochę mi się podoba, że brzmi jak nastolatek, który często przyjmuje anty-Micro $, ale wciąż jest to dobry artykuł. W tym artykule znajdziesz ciekawostki takie jak to:
Sprzeczanie się między konkurentami. Ale prawdopodobnie najbardziej klarowna rzecz, którą mówi w całym artykule, to:
źródło
Zawsze cytowany Theo de Raddt z projektu OpenBSD:
Trochę zapalny, ale jego punkt widzenia jest dobrze przyjęty. Teoretycznie wirtualizacja ma zapewnić pełną izolację między maszynami wirtualnymi a ich hostem. W praktyce zdarzają się luki w zabezpieczeniach, które pozwalają zaawansowanym atakującym obejść te zabezpieczenia i uzyskać dostęp do innych maszyn wirtualnych lub nawet gorzej ich hosta (patrz Badanie empiryczne dotyczące narażenia na bezpieczeństwo hostów wrogich środowisk zwirtualizowanych ). Jak wspomina Ryan Ries, tego rodzaju luki są dość rzadkie (co nie znaczy, że ich nie ma) i często nie są ujawniane przez dostawców, ale istnieją.
Jeśli obawiasz się możliwości wystąpienia tego rodzaju ataków (i myślę, że w pewnym stopniu powinieneś), radzę nie mieszać stref bezpieczeństwa na jednym wirtualnym hoście lub klastrze hostów wirtualnych. Na przykład - miałbyś dedykowany klaster dwóch hostów wirtualnych hosta dla maszyn wirtualnych DMZ, dedykowany klaster dla oprogramowania pośredniego i dedykowany klaster dla chronionych zasobów. W ten sposób, w przypadku wykorzystania luki w zabezpieczeniach, umożliwiającej atakującemu obalenie innych maszyn wirtualnych lub, co gorsza, samego hiperwizora, model bezpieczeństwa pozostaje nienaruszony.
źródło