Pracując w branży IT niejednokrotnie spotykamy się z sytuacjami, w których potrzebujemy uruchomić pewną aplikację, skrypt czy pojedynczy plik na odizolowanym środowisku. Niestety często nie mamy pod ręką maszyny, na której możemy bezkarnie eksperymentować z konfiguracją. Równie często brakuje nam czasu na instalację narzędzi umożliwiających wirtualizację, a następnie na instalację i konfigurację systemu wirtualnego. Wymaga to w dodatku dość dużego obszaru wolnej pamięci RAM, miejsca na dysku twardym oraz współdzielenia co najmniej jednego rdzenia procesora. Nawet, gdy już skonfigurujemy wirtualny system, to każdorazowe jego uruchomienie zajmuje kolejne zbędne minuty i wymaga stworzenia „snapshota” przed wykonaniem ryzykownych zmian. Chciałoby się mieć miejsce do eksperymentów „tu i teraz”, na kliknięcie.
Z pomocą przychodzi sam Microsoft, a dokładniej narzędzie Windows Sandbox instalowane w postaci funkcji systemu Windows dostępne w systemach Windows 10 Pro oraz Enterprise.
Czym jest Windows Sandbox?
Jest to narzędzie umożliwiające uruchomienie odizolowanej na poziomie kernela kopii Windowsa 10 zainstalowanego na Twoim hoście. Słowo „kopia” jest o tyle kluczowe, że narzędzie wykorzystuje bazowe pliki systemu Windows i linkuje je w dynamicznej kopii uruchamianej w ramach piaskownicy. Dzięki temu podstawowy obraz zajmuje raptem 100MB i nie wymaga pobierania pełnej wersji systemu.
Źródło: https://techcommunity.microsoft.com/t5/windows-kernel-internals/windows-sandbox/ba-p/301849
To nie wszystko, ponieważ Microsoft zintegrował również proces zarządzania pamięcią. W związku z wykorzystaniem tego samego obrazu systemu i tych samych plików, na których pracuje host, Windows Sandbox potrafi mapować również te same rejestry pamięci dla plików wykonywalnych ntdll, oszczędzając przy tym praktycznie niemal 100% pamięci RAM.
Źródło: https://techcommunity.microsoft.com/t5/windows-kernel-internals/windows-sandbox/ba-p/301849
Kolejnym plusem jest pełna wirtualizacja procesora graficznego, która umożliwia jego optymalne wykorzystanie i współdzielenie między hostem, a systemem Windows Sandbox, a co za tym idzie równie optymalne zarządzanie energią, co ma ogromne znaczenie w przypadku urządzeń mobilnych.
Czy to bezpieczne?
Najbardziej precyzyjna odpowiedź brzmi – to zależy. Oczywiście jesteśmy w stanie odizolować środowisko Sandbox od danych znajdujących się na hoście. Oznacza to, że dowolne zmiany w obrębie piaskownicy nie naruszą struktury plików systemowych hosta. Oznacza to również, że przypadkowe bądź celowe uruchomienie oprogramowania typu Ransomware jest potencjalnie niebezpieczne wyłącznie dla systemu Sandbox, nie narusza bezpieczeństwa danych znajdujących się na partycjach hosta i znika wraz z zamknięciem piaskownicy. Problem jednak pojawia się na poziomie sieci, która nie wspiera pełnej izolacji. Microsoft zapewnia, że Sandbox działa w osobnej podsieci, natomiast umożliwia dostęp do urządzeń znajdujących się w sieci za pośrednictwem NAT. Może to zostać wykorzystane przez oprogramowanie typu Malware, które po przeskanowaniu sieci jest w stanie dostać się do systemu hosta. Zaleca się zatem ograniczenie zaufania wobec izolacji systemu Sandbox od maszyny fizycznej i ostrożne wykorzystywanie jego możliwości w obrębie nieznanego oprogramowania.
Do celu…
W powyższym artykule starałem się przedstawić obiektywnie cechy systemu Windows Sandbox, które pomogą Ci podjąć decyzję o ewentualnym zastosowaniu tej funkcji systemu Windows 10, a także zbudować podstawową świadomość bezpieczeństwa stosowania tego rodzaju oprogramowania.
__________________________________
Damian Petliński - Manager z prawie 10-letnim doświadczeniem w obszarze IT. Pasjonat automatyzacji i entuzjasta metodyki DevOps. Jeden z założycieli i współtwórców bloga technologicznego Architects Guru.