如果您需要仰賴第三方開發的軟體,而且您沒有原始碼的存取權,或是沒有足夠的資源執行原始碼評估功能,就很適合使用沙箱不受信任的程式碼。沙箱也可以當做您程式碼的額外安全邊界。

根據您的用途,有不同的工具可納入程式碼。下表列出各項產品及其適用用途。其中部分產品是由 Google 內部開發,並由 Google 工程師開發。

Sandbox2 和 Sandboxed API 是 Google 安全團隊的沙箱部門開發的產品。

產品 說明 用途
沙箱 2 使用命名空間、資源限制和 seccomp-bpf syscall 篩選器的 Linux 沙箱模式。提供 Sandboxed API 的基礎沙箱技術。 一般沙箱
gVisor 在應用程式核心中實作系統呼叫。使用 ptrace 或硬體虛擬化攔截系統呼叫。 一般沙箱
對話框 使用部分使用者命名空間實作的沙箱工具。做為 Flatpak 等執行引擎使用。 CLI 工具
迷你 Chrome OS 和 Android 中使用的沙箱和安全工具。提供執行檔和程式庫,並用於啟動其他程式和程式碼,並將其沙箱。 CLI 工具
NSJail 使用命名空間、資源限制和 seccomp-bpf syscall 篩選器的 Linux 程序隔離。您可以選擇使用 Kafel (自訂網域專屬語言) 來指定 syscall 政策。 CLI 工具
沙箱 API 使用沙箱模式的 C/C++ 程式庫可重複使用沙箱。 C/C++ 程式碼
原生用戶端 已淘汰

透過編譯至 x86 (NaCl)/LLVM 位元碼 (PNaCl) 的子集子集,在沙箱 C/C++ 二進位檔中使用強大的技巧。

影響其繼承人 (WebAssembly) 的設計,且大部分會被它取代。

C/C++ 程式碼
WebAssembly (WASM) 可攜式二進位檔的二進位格式。WASM 模組會在獨立的執行階段環境中執行。 C/C++ 程式碼
RLBox 採用 C++17 的沙箱 API,可以使用多種執行後端:Native Client、WebAssembly 或遠端程序。 C/C++ 程式碼
平坦 以 Bubblewrap 為基礎,提供 Linux 電腦版應用程式的沙箱功能。強調原生應用程式的封裝與發布。 電腦版應用程式

Sandbox2 是適用於 Linux 的開放原始碼 C++ 安全沙箱。使用 Sandbox2 時,您可以將執行階段環境限制為實際作業所需的最低限制,藉此限制潛在程式碼執行安全漏洞的影響。

Sandbox2 可用於針對整個程式或以 C/C++ 編寫的程式進行部分沙箱。

Sandboxed API (SAPI) 是一項開放原始碼專案,用於沙箱 C/C++ 程式庫。採用 Sandboxed API 的沙箱可輕鬆重複使用,有助減輕日後專案的負擔。在採用 Sandboxed API 之前,Google 提供的沙箱版本必須與每個要進行沙箱作業的新專案一起運作,即使重複使用相同的軟體程式庫也一樣。對沙箱機制套用的 Sandbox2 政策和其他限制必須每次都必須重新導入,且程式碼的受信任和不受信任的部分程式碼交換機制也必須從頭開始設計。