Windows Sandbox, czyli izolowane maszyny wirtualne dla mas. Jak działają?

Maciej Olanicki , 19.12.2018 r.
Windows

Microsoft właśnie poinformował o dostępności Windows Sandbox, czyli przystępnych izolowanych środowisk do uruchamiania na przykład podejrzanego oprogramowania. Oczywiście kontenery i piaskownice nie są w Windowsie niczym nowym, ale chyba po raz pierwszy proponuje się korzystanie z nich także mniej zaawansowanym użytkownikom.

Windows Sandbox – maszyna wirtualna dla każdego?

Docker, Kubernetes, konteneryzacja i wirtualizacja całkowicie zdominowały infrastrukturę sieciową i mimo buzzwordów w rodzaju architektury bezserwerowej nic nie wskazuje na to, by wkrótce miało się to zmienić. Maszyny wirtualne to także chleb powszedni deweloperów testujących swoje oprogramowanie oraz ekspertów związanych z cyberbezpieczeństwem, którzy w izolowanym środowisku mogą bez ryzyka zainfekowania hosta przyjrzeć się każdemu szkodnikowi.

To własnie to ostatnie rozwiązanie sugeruje Microsoft w opisie Windows Sandbox – ma to być przede wszystkim izolowana efemeryczna piaskownica, w której użytkownicy będą mogli na przykład sprawdzić, czy podejrzany załącznik pocztowy nie zawiera malware. Każde uruchomienie piaskownicy skutkuje uruchomieniem świeżej instancji Windowsa z jądrem izolowanym przez hipernadzorcę przez jądra hosta.

Jak to działa?

Od strony technicznej windowsowa piaskownica to oczywiście maszyna wirtualna, nie wykorzystuje ona jednak wirtualnych dysków VHD, lecz buduje system maszyny w oparciu o sklonowaną instalację z hosta. Według Microsoftu pliki wyłączonej maszyny mają zajmować jedynie 25 MB, zaś po jej uruchomieniu około 100 MB. Jak tego dokonano? Między innymi przez redukcję liczby plików – Windows Sandbox klonuje na swoje potrzeby wyłącznie pliki zmienne Windowsa. W pozostałych przypadkach zamiast plików stosuje dowiązania z plikami na hoście. Słowem – jeśli plik jest zmienny, Sandbox klonuje go na swoje potrzeby, jeśli nie – wie, gdzie ten plik znajduje się poza piaskownicą i wykorzystuje go do własnych potrzeb.

Podobnie sprawy mają się z RAM-em. Problem apetytu maszyn wirtualnych z Windowsem na pamięć operacyjną rozwiązano w ten sposób, że Sandbox wykorzystuje te same strony pamięci, co gospodarz. Microsoft zastosował też mechanizm, który nazwano zintegrowanym planistą – chodzi o to, że wirtualizowany procesor wykorzystywany przez Windows Sandbox jest przez procesor gospodarza traktowany w taki sam sposób, jak wątki są traktowane przez procesy. Podobnie jak w przypadku linuksowego KVM gospodarz może zatem dynamicznie lokować zasoby, przez co – jak twierdzi Microsoft – Sandbox jest przez CPU zarządzany bardziej jak proces niż jak maszyna wirtualna.

WindowSandbox

Co przygotowano w kwestii grafiki? Stos po stronie gościa składa się ze sterowników i oprogramowania systemowego, API i samych aplikacji. Aplikacja wywołuje API, zaś API przesyła do gospodarza informacje o obciążeniu stosu, gdyż samo nie ma dostępu do GPU. Dzięki temu gospodarz dynamicznie rezerwuje fizyczne zasoby wedle potrzeb maszyny wirtualnej i dostarcza w ten sposób przyśpieszenie sprzętowe dla renderowania. Potrzebne są do tego sterowniki WDDM 2.5, inaczej wszystko będzie nie renderowane na grafice, lecz na CPU.

Jeżeli chodzi o samo stawianie maszyny wirtualnej i jej uruchamianie to Microsoft opiera się na migawkach i klonowaniu. Po wyłączeniu piaskownicy nie jest ona zatem wyłączana lecz zrzucana do wspomnianych 25 MB, zaś gdy użytkownik ponownie zechce skorzystać z Sandboksa, to środowisko przywracane jest z migawki. Nie oznacza to jednak zapisu zmian wprowadzanych przez użytkownika – jak już wspomnieliśmy, każde uruchomienie Windowsa w piaskownicy oznacza jego nową instancję.

Jak i na czym uruchomić Windows Sandbox?

Do rozpoczęcia korzystania z Windows Sandbox konieczne jest posiadanie Windowsa 10 Pro lub Enterprise, kompilacji 18305. Wymaganie sprzętowe to procesor w architekturze amd64 z co najmniej dwoma rdzeniami (zalecane 4 rdzenie z hyperthreadingiem), 4 GB RAM-U (zalecane 8 GB), 1 GB miejsca na dysku (zalecana pamięć SSD). Po upewnieniu się, że w BIOS-ie włączona jest obsługa wirtualizacji należy włączyć Windows Sandbox w Panelu Sterowania, w menu Włącz lub wyłącz funkcje systemu Windows. Sandbox powinien być dostępny w menu Start – do przenoszenia plików z gospodarza wykorzystać można współdzielony schowek.

Trzeba przyznać, że na papierze Windows Sandbox robi bardzo pozytywne wrażenie. Wykorzystano sprytne mechanizmy odchudzania maszyny, pozostaje tylko żywić nadzieję, że nie rozszczelnią one piaskownicy. Aktualnie funkcja dostępna jest w kompilacji testowej 18305, zaś w stabilnym wydaniu Windowsa 10 Pro i Enterprise pojawi się w pierwszej połowie przyszłego roku.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: