O co chodzi z tą “piaskownicą”? Czyli Sandboxing w pigułce

November 16, 2021, 09:35

Sandbox jest niezależnym, testowym środowiskiem umożliwiającym uruchamianie czy też instalację plików, programów, aplikacji bez wpływu na system operacyjny. Testowane aplikacje oraz związane z nimi procesy mają ograniczony dostęp do lokalnego dysku, sieci i zasobów systemowych.

 

Sandboxing w kontekście bezpieczeństwa pozwala nam przenieść podejrzaną zawartość, program, plik w specjalnie wyizolowane środowisko gdzie można go bezpiecznie przetestować. Sandboxy zostały stworzone aby odzwierciedlać prawdziwe środowisko produkcyjne.

 

Przykładowe dwa use case’y, które wykorzystują rozwiązanie Sandboxingu:

  • testowanie aplikacji - instalacja, lub uruchomienie programu, który pochodzi z niezaufanego źródła, jest podejrzany aby sprawdzić jak wpłynie na system bez ingerencji w naszą lokalną maszynę. Sandbox zachowuje się jak kompletny system operacyjny, co utrudnia np. oprogramowaniu malware wykrycie, że został uruchomiony w środowisku, które jest wyizolowanym wirtualnym środowiskiem,
  • przeglądarka internetowa - używanie zaufanej przeglądarki wewnątrz sandbox’a. Ten sposób pozwoli nam odwiedzić podejrzaną stronę w celu sprawdzenia bezpieczeństwa samej przeglądarki jak i ewentualnego wpływu złośliwego kodu, który może zostać przesłany do nas wraz z plikami, które serwuje nam strona na system operacyjny.

 

Te dwa przykłady mogą zobrazować nam jak wiele możliwości daje nam wykorzystanie sandbox’a. Skoro mamy już ogólny obraz tego rozwiązania oraz jego zastosowania to dowiedzmy się jak możemy z niego skorzystać.

Sposobów jest kilka, ale przyjrzyjmy się tym najpopularniejszym:


1. Maszyna wirtualna zwana potocznie “wirtualką”, “VMką”. Tworzy pełny system operacyjny, który może bezpośrednio pracować na zasobach sprzętowych (Typ 1 hypervisora) lub na lokalnym systemie operacyjnym (Typ 2). Zapewnia wysoki poziom izolacji oraz nieodróżnialne środowisko od normalnego systemu zainstalowanego bezpośrednio na maszynie.
Możemy stworzyć wirtualny obraz maszyny, która zawiera testowane oprogramowanie i powiązane z nią zasoby. Minusem tego rozwiązania w kontekście Sandboxa jest fakt, że taka maszyna potrzebuje relatywnie dużo zasobów w postaci procesora, dysku oraz pamięci RAM.
W dużych środowiskach produkcyjnych wykorzystuje się rozwiązania takie jak: VMware, Citrix, Microsoft Hyper-V. W miejszej skali możemy skorzstać np. z dramowego open-source’owego Oracle VirtualBox’a.

 

2. Konteneryzacja zazwyczaj bazowana na Dockerze. Jest niezwykle popularnym rozwiązaniem w tworzeniu oprogramowania. Kontenery konfigurowane są tak aby zawierały tylko to co niezbędne do przetestowania aplikacji, programu np. komponent systemu operacyjnego wraz z plikami konfiguracyjnymi. Kontenery są właśnie typowym sandboxem. Natomiast, kontenery w teorii mogą dawać dostęp do lokalnego systemu hosta oraz jego zasobów dlatego ważne jest aby były poprawnie skonfigurowane aby zapewniać pełną izolację.

 

3. Rozwiązania wbudowane w systemy operacyjne. I tutaj w zasadzie możemy wymienić dwa:

-   Windows Sandbox - narzędzie, które dostępne jest na Windows 10 od wersji 19H1 oraz w wersji Enterprise. Daje nam dostęp do pełnego Windowsa wraz ze wszystkimi jego funkcjami, do którego możemy instalować co chcemy tak jak na normalną “10 tkę”. Windows Sandbox jest lżejszym dla komputera środowiskiem aniżeli maszyna wirtualna ponieważ korzysta z zasobów będącego pod nim Windows’a.

-   Apple oraz Linux. Apple dostarcza podobną funkcjonalność Windows - Apple Sandbox. W Linux’ie można wykorzystać seccomp-BPF, dodatek kernela, który izoluje proces linuxowy od komunikacji z innymi procesami.

 

4. Antywirusy, a nawet już Firewalle również wykorzystują sandboxy jako części składowe swojego oprogramowania. W tym przypadku nie mamy bezpośrednio wpływu na sam proces testowania podejrzanej aplikacji czy pliku. Dzieje się to w czasie rzeczywistym i jest już praktycznie nie zauważalne dla końcowego użytkownika. Wspomniany antywirus lub firewall sam uruchamia lub sprawdza żądany przez użytkownika plik lub aplikację i decyduje czy jest ona bezpieczna czy też nie. W razie wykrycia zagrożenia otrzymujemy stosowny komunikat oraz odpowiednia informacja wędruje do administratora systemu.

 

Jak więc widać scenariuszy wykorzystania tego rozwiązania jest wiele i zadomowiło się one już na dobre obszarze bezpieczeństwa informatycznego.

 

Jeżeli korzystasz z systemu Windows 10 Pro w wersji 19H1 lub wyższej, możesz bardzo łatwo i szybko przygotować takie środowisko dla siebie. Wystarczy, te kilka kroków:

  1. Kliknij przycisk Start.

  2. Wpisz Włącz lub wyłącz funkcję systemu Windows (opcja powinna pojawić się w trakcie pisania).

  3. Wyszukaj na liście i zaznacz Piaskownica systemu Windows (eng. Windows Sandbox).

  4. Kliknij ‘OK’ i przejdź dalej zatwierdzając kroki instalacji.

Po restarcie systemu wystarczy, że wyszukasz w menu Start aplikacji Windows Sandbox. Gotowe twoje własne środowisko testowe jest gotowe.

Jeżeli chciałbyś dowiedzieć się więcej w jaki sposób możesz podnieść swoje bezpieczeństwo oraz swojej firmy skontaktuj się z nami, a nasi specjaliści pomogą wybrać rozwiązanie dopasowane do ciebie oraz potrzeb twojej organizacji.

 

 MM