Il sandboxing del codice non attendibile è utile quando devi fare affidamento su software sviluppati da terze parti e non hai accesso al codice sorgente oppure non disponi delle risorse per eseguire una valutazione del codice sorgente. La sandbox può essere utile anche come limite di sicurezza aggiuntivo per il tuo codice.

A seconda del caso d'uso, sono disponibili diversi strumenti per il contenimento del codice. Nella tabella che segue viene fornita una panoramica dei diversi prodotti e del caso d'uso applicabile. Alcuni di questi prodotti vengono utilizzati all'interno di Google e sviluppati dai tecnici di Google.

Sandbox2 e l'API Sandboxed sono due prodotti sviluppati dalla divisione sandbox del team di sicurezza di Google.

Prodotto Descrizione Caso d'uso
Sandbox 2 Limitazione tramite sandbox di Linux con spazi dei nomi, limiti di risorse e filtri di sistema seccomp-bpf. Fornisce la tecnologia di sandboxing sottostante per l'API Sandboxed. Sandboxing generale
GVisor Implementa chiamate di sistema all'interno di un kernel dell'applicazione. Intercetta le chiamate di sistema tramite ptrace o con la virtualizzazione hardware. Sandboxing generale
Bolla Strumento di sandbox implementato con un sottoinsieme di spazi dei nomi degli utenti. Utilizzato come motore di esecuzione, ad esempio Flatpak. Strumenti dell'interfaccia a riga di comando
Minijail Lo strumento Sandbox e Contenimento utilizzato in Chrome OS e Android. Fornisce un file eseguibile e una libreria che può essere utilizzata per avviare e limitare tramite sandbox altri programmi e codice. Strumenti dell'interfaccia a riga di comando
NSJail Isolare i processi per Linux utilizzando gli spazi dei nomi, i limiti delle risorse e i filtri di sistema seccomp-bpf. Facoltativamente, puoi utilizzare Kafel, un linguaggio personalizzato specifico del dominio, per specificare i criteri di chiamata syscall. Strumenti dell'interfaccia a riga di comando
API sandbox Sandbox riutilizzabili per le librerie C/C++ che utilizzano Sandbox2. Codice C/C++
Client nativo Deprecato

Potente tecnica per la limitazione dei programmi binari C/C++ compilando un sottoinsieme limitato di x86 (NaCl)/codecode LLVM (PNaCl).

Ha influenzato il design del suo successore (WebAssembly) e lo ha sostituito in gran parte.

Codice C/C++
WebAssembly (WASM) Un formato binario per i programmi binari portatili. I moduli WASM vengono eseguiti in ambienti di runtime isolati. Codice C/C++
RLBox Un'API sandbox (scritta in C++17), che può utilizzare vari backend di esecuzione: Client nativo, WebAssembly o processi remoti. Codice C/C++
Piatta Basato su Bubblewrap, offre la limitazione tramite sandbox per le applicazioni desktop Linux. Mette in evidenza la pacchettizzazione e la distribuzione delle app native. Applicazioni desktop

Sandbox2 è una sandbox per la sicurezza C++ open source per Linux. Con Sandbox2 puoi limitare l'ambiente di runtime al minimo richiesto per le operazioni autentiche, limitando così l'impatto delle potenziali vulnerabilità di esecuzione del codice.

Sandbox2 può essere utilizzato per creare sandbox per interi programmi o parti di programmi scritti in C/C++.

L'API Sandboxed (SAPI) è un progetto open source per la limitazione delle librerie C/C++. Le librerie con sandbox con l'API Sandboxed possono essere riutilizzate facilmente, eliminando così la necessità di progetti futuri. Prima dell'API Sandbox, le sandbox disponibili per l'uso presso Google richiedevano un lavoro di implementazione aggiuntivo con ogni nuova istanza di un progetto che era previsto per la sandbox, anche se questa riutilizzava la stessa libreria software. I criteri Sandbox2 e altre restrizioni applicati al processo con sandbox devono essere reimplementati ogni volta e i meccanismi di scambio di dati tra parti del codice attendibili e non attendibili devono essere progettati da zero.