Jak bezpieczny jest system operacyjny hosta z systemu operacyjnego gościa wirtualnej maszyny podczas korzystania z GPU passthrough (przy użyciu metod opisanych tutaj )?
Czy w przypadku naruszenia bezpieczeństwa gościa może trwale zainfekować procesor graficzny i jego oprogramowanie układowe? Jeśli to możliwe, co może zrobić ten zhakowany procesor graficzny?
- Nawet jeśli VT-d / IOMMU został zaprojektowany tak, aby bezpiecznie przechowywać urządzenia w maszynie wirtualnej, czy gość może użyć GPU do złamania zabezpieczeń hosta (systemu operacyjnego lub innych urządzeń)?
-
Jeśli podejrzewa się, że GPU jest zagrożone, jaki powinien być idealny sposób postępowania? Jeśli system operacyjny hosta komputera zostanie ponownie zainstalowany, czy GPU będzie w stanie go zaatakować i zainfekować?
(Przeniesiono do oddzielnego pytania )
Szukam ogólnej odpowiedzi, ale jeśli ma to znaczenie, załóżmy, że host Linux z KVM i gość Windows.
Komentarze
- Istnieje dowód słuszności koncepcji meduzy rootkit GPU na github. Przetrwa ponowne uruchomienie, ale nie wyłączenie.
Odpowiedź
-
Jeśli gość jest zagrożony, czy może trwale zainfekować procesor graficzny i jego oprogramowanie sprzętowe?
Według OpenStack dokumentacja , tak .
Wiele hiperwizorów oferuje funkcję znaną jako przepustowość PCI. Umożliwia to instancji bezpośredni dostęp do elementu sprzętowego w węźle. Można go użyć, aby umożliwić wystąpieniom dostęp do kart graficznych lub procesorów graficznych oferujących zunifikowaną architekturę obliczeniową (CUDA) do obliczeń o wysokiej wydajności.
Ta funkcja niesie ze sobą dwa rodzaje zagrożeń bezpieczeństwa: bezpośredni dostęp do pamięci i infekcja sprzętowa .
Bezpośredni dostęp do pamięci ma znaczenie tylko w przypadku przekazywania urządzeń bez korzystania z IOMMU.
-
Mimo że VT-d / IOMMU został zaprojektowany do bezpiecznego przechowywania urządzeń maszyny wirtualnej, czy gość może użyć GPU do złamania zabezpieczeń hosta (systemu operacyjnego lub innych urządzeń)?
Prawdopodobnie, jeśli urządzenie jest używane przez hosta.
Infekcja sprzętowa występuje, gdy instancja dokonuje złośliwej modyfikacji oprogramowania układowego lub innej części urządzenia. Ponieważ to urządzenie jest używane przez inne instancje lub system operacyjny hosta, złośliwy kod może rozprzestrzenić się na te systemy. Efektem końcowym jest ta jedna instancja może uruchamiać kod poza swoją domeną bezpieczeństwa. Jest to poważne naruszenie, ponieważ trudniej jest zresetować stan sprzętu fizycznego niż sprzętu wirtualnego i może prowadzić do dodatkowych zagrożeń, takich jak dostęp do sieci zarządzania.
Komentarze
- Czy urządzenie jest " używane " przez hosta po zamknięciu maszyny wirtualnej? Czy kiedykolwiek?
- Urządzenie jest przynajmniej " używane " przez BIOS, gdy Następnie komputer hosta jest ponownie uruchamiany i próbuje dowiedzieć się, jakie urządzenia są w systemie.
- Myślę, że infekcja sprzętu wymaga dostępu do przestrzeni konfiguracyjnej PCI (aby zapisać opcjonalne ROMy). Nie ' nie uważam CUDA za wystarczające, aby faktycznie " zainfekować " GPU z kod.