Użycie niezaufanego kodu w trybie piaskownicy przydaje się wtedy, gdy chcesz polegać na oprogramowaniu zewnętrznym, które nie ma dostępu do kodu źródłowego lub nie masz zasobów do przeprowadzenia oceny kodu źródłowego. Piaskownica może być także dodatkowym zabezpieczeniem kodu.

W zależności od przypadku możesz używać różnych narzędzi do przechowywania kodu. W tabeli poniżej znajdziesz omówienie różnych usług i ich zastosowania. Niektóre z tych produktów są używane w Google i opracowane przez inżynierów Google.

Sandbox2 i Sandbox API to 2 usługi opracowane przez zespół ds. piaskownicy Google.

Produkt Opis Przykład zastosowania
Piaskownicy2 Piaskownica Linuksa z przestrzeniami nazw, limitami zasobów i filtrami syscall seccomp-bpf. Udostępnia podstawową technologię piaskownicy w interfejsie API Sandbox. Ogólne tryb piaskownicy
gVisor implementuje wywołania systemowe w jądrze aplikacji; Przechwytuje wywołania systemowe za pomocą narzędzia ptrace lub przez wirtualizację sprzętową. Ogólne tryb piaskownicy
Oprawa bąbelkowa Narzędzie typu „piaskownica” zostało zaimplementowane z podzbiorem przestrzeni nazw użytkowników. Może być używany jako mechanizm wykonawczy, na przykład Flatpak. Narzędzia wiersza poleceń
Minijail Piaskownica i narzędzie do przechowywania danych używane w Chrome OS i Androidzie. Udostępnia plik wykonywalny oraz bibliotekę, która może służyć do uruchamiania innych programów i kodu w piaskownicy. Narzędzia wiersza poleceń
NSJail Izolacja procesów dla systemu Linux przy użyciu przestrzeni nazw, limitów zasobów i filtrów syscall syscomp-bpf. Opcjonalnie może używać Kafel (niestandardowego języka niestandardowego dla domen) do określania zasad syscall. Narzędzia wiersza poleceń
API w trybie piaskownicy Piaskownice do wielokrotnego użytku w bibliotekach C/C++ przy użyciu Sandbox2. Kod C/C++
Klient natywny Wycofane

Skuteczna metoda plików binarnych C/C++ w trybie piaskownicy przez kompilację do ograniczonego podzbioru kodów x86 (NaCl) lub LLVM (PNaCl).

Inspirowany wyglądem następca modelu (WebAssembly) i znacznie zastąpiony przez niego.

Kod C/C++
WebAssembly (WASM), Plik binarny do przenośnych plików binarnych. Moduły WASM są wykonywane w izolowanych środowiskach wykonawczych. Kod C/C++
RLBox Interfejs API piaskownicy (napisany w języku C++17), który może korzystać z różnych backendów wykonania: klient natywny, WebAssembly lub procesy zdalne. Kod C/C++
Flatpak Został oparty na Bubblewrap i udostępnia piaskownicę aplikacji komputerowych na Linuksa. Nacisk na opakowanie i dystrybucję aplikacji natywnych. Aplikacje komputerowe

Sandbox2 to open source C++ dla bezpiecznej platformy Linux. W trybie piaskownicy 2 możesz ograniczyć środowisko wykonawcze do minimum wymaganego do prawdziwej operacji, a w ten sposób ograniczyć wpływ potencjalnych luk w zabezpieczeniach związanych z uruchamianiem kodu.

Trybu piaskownicy 2 można używać do piaskownicy całych programów lub ich części napisanych w C/C++.

Sandbox API (SAPI) to projekt open source do bibliotek C/C++ w trybie piaskownicy. Biblioteki umieszczone w piaskownicy w interfejsie API Sandbox można z łatwością wykorzystać, co pozwoli uniknąć przyszłych prac. Zanim interfejs API Piaskownicy danych był dostępny w Google, konieczna była dodatkowa implementacja każdej instancji projektu, która miała być umieszczona w piaskownicy, nawet jeśli ponownie wykorzystała ona tę samą bibliotekę oprogramowania. Za każdym razem trzeba było ponownie wdrażać zasady Sandbox2 i inne ograniczenia stosowane w tym trybie, a mechanizmy wymiany danych między zaufanymi i niezaufanymi elementami kodu musiały być projektowane od zera.