Bezpieczeństwo i sprzęt
Niektóre maszyny wirtualne, jak i hypervisory, mogą potrzebować odpowiedniego wsparcia sprzętowego. W przypadku x86 wymagane jest spełnienie dwóch warunków:
- Procesor musi mieć wbudowaną obsługę technologii AMD-V lub Intel VT-x.
- Wspomniane technologie muszą być uaktywnione przez BIOS/EFI (dokonuje się tego przez przestawienie jednej z opcji).
Ustawienia te są zazwyczaj domyślnie wyłączone, dodatkowo przez dłuższy czas wielu producentów płyt głównych czy komputerów wzbraniało się przed ich udostępnianiem. Dlaczego?
Rozwiązania wirtualizacyjne (szczególnie te wspierane sprzętowo) rodzą bowiem pewne obawy z co najmniej dwóch przyczyn:
- Doskonała wirtualizacja (do której się poniekąd dąży) powinna powodować, że oprogramowanie nie będzie mieć możliwości sprawdzenia, że nie działa na rzeczywistym sprzęcie.
- W przypadku uzyskania kontroli przez złośliwy kod nad systemem operacyjnym i uruchomieniu go pod kontrolą hypervisora może być niezwykle trudno wykryć fakt wystąpienia ataku (z powodu opisanego w poprzednim punkcie) i jemu przeciwdziałać.
To tylko przykłady, ale częściowo niestety poparte praktyką - od 2006 (rootkit "Blue Pill" Joanny Rutkowskiej udostępniony później z kodem źródłowym) co jakiś czas choćby na konferencjach Black Hat można znaleźć informacje o kolejnych przykładach zagrożeń związanych z wirtualizacją.
Z drugiej strony wspomniana Joanna Rutkowska właśnie w tych technologiach widzi jedyny sposób na istotne zwiększenie bezpieczeństwa systemów operacyjnych na platformie x86. Praktycznym przykładem ma być jej system operacyjny Qubes, którego wersja testowa Alpha 2 pojawiła się 1 lipca br. Jest oparty m.in. na hypervisorze Xen.
Czy należy się obawiać?
Nie ma tutaj niestety jednoznacznej odpowiedzi. Każda kolejna warstwa zabezpieczająca może skutecznie zniechęcić potencjalnego włamywacza i to jest duża zaleta stosowania tego typu rozwiązań. Dodatkowo wsparcie sprzętowe można najczęściej wyłączyć i wiele z opisywanych dalej aplikacji będzie działać bez niego.
Tylko że dalej jest jedno małe "ale" - mogą one nawet wtedy zawierać potencjalne luki i potencjalnie wpływać na system operacyjny gospodarza, choćby przez dołączane do niego sterowniki.
Z ciekawostek - w Ubuntu mamy dostępną aplikację imvirt, która pokazuje czy jest uruchomiona w maszynie wirtualnej czy nie.