Zacznijmy od tego, czym w ogóle jest Sandbox. Z angielskiego piaskownica, jest to środowisko, które ma na celu np uruchomienie aplikacji do której nie mamy zaufania. Sandbox tworzy w pełni kontrolowane warunki, dając dostęp tylko do wyznaczonych części systemu czy pamięci.
Bywa też nazywany serwerem testowym, serwerem deweloperskim. Kreowany jest wirtualny system lub jego część, w którym dana aplikacja może działać. Jeśli okaże się, że aplikacja chciała w jakikolwiek sposób zaszkodzić komputerowi, wystarczy wykasować ten sandbox, żeby powrócić do stanu sprzed działania aplikacji. Takie środowisko zostało wprowadzone najpierw na system Windows, ale można je także znaleźć dla użytkowników Mac’a. W dalszej części artykułu kolejne informacje na ten temat.
Co daje korzystanie z Sandbox’a?
Przede wszystkim, tworzy odseparowaną od reszty systemu przestrzeń, w której może się poruszać wybrana aplikacja. Jeśli taka aplikacja chciałaby uzyskać dostęp na zewnątrz Sandbox’a, musi za każdym razem prosić o zgodę administratora. Można też całkowicie zablokować zapytania o dostęp. W takim Sandboxie aplikacje mogą np. nie mieć dostępu do internetu, może on być także celowo spowolniony, może nie mieć dostępu do żadnych plików systemowych itp.
Głównym plusem i celem korzystania z Sandbox’a jest oczywiście ochrona systemu. Jeśli mamy podejrzenia co do aplikacji czy pliku, wrzucamy go do sandbox’a i możemy na bieżąco śledzić zmiany zachodzące wewnątrz sandbox’a. Wszelkie operacje wykonane przez aplikację będą widoczne na bieżąco. Co ważne, Sandbox nie zastępuje antywirusa ani innych programów podnoszących bezpieczeństwo. Raczej działa on we współpracy z tymi programami.
Jakie programy warto włączać w Sandboxie oprócz programów, które wydają nam się podejrzane? Na przykład przeglądarki, czy poczta. Można jednocześnie stworzyć albo kilka piaskownic – dla każdego programu osobno, albo do jednej piaskownicy można wrzucić kilka programów. Trzeba tylko pamiętać, że w tym drugim przypadku te programy będą mogły oddziaływać także na siebie nawzajem.
Korzystanie z Sandboxa na Macu
Wiele ludzi tego nie wie, ale korzystając z Maca, już w znacznej części korzysta także z Sandboxów. Od 2012 roku Apple wymaga od developerów wydających aplikacje na Appstore aby korzystały z wbudowanych procedur sandboxowych na macOS. Decyzja podyktowana była tym, aby ograniczyć możliwość dokonania celowo, lub przypadkowo (np. poprzez nieświadomego szkodliwego buga) szkód przez aplikacje które wydawane są na oficjalnym sklepie producenta. Apple w ramach bezpieczeństwa weryfikuje także uprawnienia o jakie prosi aplikacja na appstore, co później kontroluje środowisko sandboxowe.
Jednak nie wszystkie aplikacje zainstalowane na macOS domyślnie korzystać będą ze środowiska piaskownicy. Jeżeli instalujemy aplikację spoza Appstore, dbając o bezpieczeństwo możemy zainstalować specjalną aplikację służącą do tworzenia środowiska sandboxowego, w którym to my mamy pełną kontrolę. Przykładami takich aplikacji na macOS są Cuckoo Sandbox oraz Deep Freeze, jednak wybór jest szerszy.
Sandbox a wirtualna maszyna
Piaskownice bywają mylone z wirtualnymi maszynami. Pomimo że mają kilka części wspólnych, nie jest to jednak to samo. Maszyna wirtualna to w pełni funkcjonalny odrębny byt, z przydzielonymi zasobami, z możliwością instalacji na niej dowolnych aplikacji. Maszyna wirtualna, to aplikacja która udaje prawdziwy komputer, z jego pełnią możliwości. Sandbox to jedynie środowisko w którym uruchamiana jest aplikacja, jednak działa on na już postawionym systemie, wydzielając jego część. Maszyny wirtualne choć mają także inne zastosowania, z definicji najczęściej używane na serwerach gdzie jeden fizyczny komputer współdzielony jest pośród wielu użytkowników, z wyznaczeniem dla nich zasobów fizycznych i obliczeniowych. Sandboxy natomiast najczęściej używane są w celu uruchomienia wybranych (lub wszystkich) aplikacji we wskazanych przez nas granicach bezpieczeństwa.
W praktyce, jeżeli uruchamiana aplikacja spowoduje działania niepożądane, zarówno Sandbox jak i maszynę wirtualną można porzucić, lub przywrócić do stanu poprzedniego, jednak postawienie sandboxa trwa zdecydowanie krócej. Dodatkowo w maszynie wirtualnej nie posiadamy aż takiej uproszczonej kontroli nad tym co i w jaki sposób może ona robić. Sandbox daje nam zatem znacznie mniejsze ryzyko wystąpienia przykrych skutków, ponieważ to my kontrolujemy to, jakie uprawnienia ma aplikacja.
Możliwe jest także działanie łączne poprzez postawienie piaskownicy wewnątrz maszyny wirtualnej. W ten sposób ochronić możemy zarówno identyfikację naszego komputera dzięki maszynie wirtualnej (która zasymuluje “bycie” zupełnie innym komputerem), a dzięki Sandboxowi wewnątrz niej ograniczymy dostęp do jakichkolwiek plików. Jeśli do działania aplikacji niezbędny jest dostęp do internetu pamiętać należy także o dodatkowym zabezpieczeniu naszej tożsamości w internecie, np. pobierając VPN. Załóżmy, że chcemy, żeby w kontrolowanym środowisku tylko jedna aplikacja korzystała z sieci VPN. Wrzucamy ją do sandboxa. Następnie, możemy stworzyć połączenie internetowe pomiędzy Sandboxem a siecią i tworząc most sieciowy. Jest to przykład na izolację aplikacji nie ze względów bezpieczeństwa, ale żeby stworzyć połączenie VPN tylko z jedną aplikacją.