Piaskownica (bezpieczeństwo komputera)

W bezpieczeństwie komputerowym piaskownica jest mechanizmem zabezpieczającym służącym do oddzielania uruchomionych programów, zwykle w celu ograniczenia rozprzestrzeniania się awarii systemu i/lub luk w oprogramowaniu . Metafora izolacji została zaczerpnięta z idei dzieci, które nie bawią się dobrze razem, więc każde z nich otrzymuje własną piaskownicę do zabawy w pojedynkę. Jest często używany do uruchamiania nieprzetestowanych lub niezaufanych programów lub kodu, prawdopodobnie od niezweryfikowanych lub niezaufanych stron trzecich, dostawców, użytkowników lub witryn internetowych, bez ryzyka uszkodzenia komputera hosta lub systemu operacyjnego . Piaskownica zwykle zapewnia ściśle kontrolowany zestaw zasobów do uruchamiania programów-gości, takich jak pamięć masowa i przestrzeń magazynowa . Dostęp do sieci, możliwość inspekcji systemu hosta lub odczytu z urządzeń wejściowych są zwykle zabronione lub mocno ograniczone.

W sensie zapewniania wysoce kontrolowanego środowiska, piaskownice mogą być postrzegane jako specyficzny przykład wirtualizacji . Piaskownica jest często używana do testowania niezweryfikowanych programów, które mogą zawierać wirusa lub inny złośliwy kod , nie pozwalając oprogramowaniu na uszkodzenie urządzenia hosta.

Implementacje

Piaskownica jest wdrażana poprzez uruchamianie oprogramowania w ograniczonym środowisku systemu operacyjnego, kontrolując w ten sposób zasoby (np. deskryptory plików , pamięć, przestrzeń systemu plików itp.), z których może korzystać proces.

Przykłady implementacji piaskownicy obejmują:

  • Linux , zbudowana na przestrzeniach nazw Seccomp , cgroups i Linux . Szczególnie używany przez Systemd , Google Chrome , Firefox , Firejail.
  • Android był pierwszym popularnym systemem operacyjnym, który zaimplementował pełną piaskownicę aplikacji, zbudowaną poprzez przypisanie każdej aplikacji własnego identyfikatora użytkownika systemu Linux.
  • Apple App Sandbox jest wymagana w przypadku aplikacji dystrybuowanych za pośrednictwem Apple Mac App Store i iOS / iPadOS App Store oraz zalecana w przypadku innych podpisanych aplikacji.
  • System Windows Vista i nowsze wersje zawierają uruchomiony proces „niskiego” trybu, znany jako „Kontrola konta użytkownika” (UAC) , który umożliwia zapisywanie tylko w określonym katalogu i kluczach rejestru. Windows 10 Pro , od wersji 1903, udostępnia funkcję znaną jako Windows Sandbox.
  • Interfejs API piaskownicy Google .
  • Maszyny wirtualne emulują kompletny komputer hosta, na którym konwencjonalny system operacyjny może się uruchamiać i działać tak, jak na rzeczywistym sprzęcie. System operacyjny gościa działa w trybie piaskownicy w tym sensie, że nie działa natywnie na hoście i może uzyskiwać dostęp do zasobów hosta tylko za pośrednictwem emulatora.
  • Więzienie : ograniczenia dostępu do sieci i ograniczona przestrzeń nazw systemu plików. Więzienia są najczęściej używane w wirtualnym hostingu .
  • Wykonywanie oparte na regułach daje użytkownikom pełną kontrolę nad tym, jakie procesy są uruchamiane, uruchamiane (przez inne aplikacje) lub mogą wstrzykiwać kod do innych aplikacji i mieć dostęp do sieci, poprzez przypisywanie przez system poziomów dostępu dla użytkowników lub programów zgodnie z zbiór ustalonych reguł. Może również kontrolować bezpieczeństwo plików/rejestrów (jakie programy mogą odczytywać i zapisywać w systemie plików/rejestrze). W takim środowisku wirusy i trojany mają mniejsze szanse na zainfekowanie komputera. Frameworki bezpieczeństwa SELinux i Apparmor to dwie takie implementacje dla Linuksa .
  • Badacze bezpieczeństwa polegają w dużej mierze na technologiach piaskownicy do analizowania zachowania złośliwego oprogramowania. Tworząc środowisko, które naśladuje lub replikuje docelowe komputery, badacze mogą ocenić, w jaki sposób złośliwe oprogramowanie infekuje i naraża docelowego hosta. Liczne analizy złośliwego oprogramowania są oparte na technologii sandboxingu.
  • Google Native Client to piaskownica do wydajnego i bezpiecznego uruchamiania skompilowanego kodu C i C++ w przeglądarce, niezależnie od systemu operacyjnego użytkownika.
  • zdolności można traktować jako drobnoziarnisty mechanizm piaskownicy, w którym programy otrzymują nieprzejrzyste tokeny podczas tworzenia i mają możliwość robienia określonych rzeczy na podstawie posiadanych tokenów. Implementacje oparte na możliwościach mogą działać na różnych poziomach, od jądra po przestrzeń użytkownika. Przykład piaskownicy na poziomie użytkownika opartej na możliwościach obejmuje renderowanie kodu HTML w przeglądarce internetowej .
  • Bezpieczny tryb obliczeniowy (seccomp) tryb ścisły, seccomp zezwala tylko na wywołania systemowe write() , read() , exit() i sigreturn() .
  • HTML5 ma atrybut „sandbox” do użytku z ramkami iframe .
  • Wirtualne maszyny Java obejmują piaskownicę, która ogranicza działania niezaufanego kodu, takiego jak aplet Java .
  • Środowisko uruchomieniowe języka wspólnego platformy .NET zapewnia zabezpieczenia dostępu do kodu w celu wymuszenia ograniczeń dotyczących niezaufanego kodu.
  • Software Fault Isolation (SFI) umożliwia uruchamianie niezaufanego kodu natywnego poprzez izolowanie wszystkich instrukcji przechowywania, odczytu i przeskakiwania asemblera do izolowanych segmentów pamięci.

Niektóre przypadki użycia piaskownic obejmują:

Zobacz też

Linki zewnętrzne