multikernel/sandlock
The lightest AI sandbox. A process-based sandbox for Linux, no container, no VM, no privilege, no prompt injection
解決的問題
Sandlock 提供了一個輕量級的 Linux 進程沙箱,允許使用者在不需要 root 權限、cgroups 或重型容器映像的情況下執行不受信任的程式碼。它彌補了無限制執行與重型 VM/容器之間的空白,以極低的啟動開銷(約 5ms)提供對檔案系統、網路和系統呼叫的嚴格限制。
工作原理
Sandlock 使用 Rust 編寫,結合多種 Linux 內核特性來強制隔離:
- Landlock:用於檔案系統、網路和 IPC 的作用域控制。
- seccomp-bpf:用於系統呼叫過濾。
- seccomp 使用者通知:一個使用 Tokio 建構的監督進程攔截特定系統呼叫,以強制執行資源限制(記憶體、進程數)、虛擬化
/proc,並實作複製-寫時(COW)檔案系統。 - 透明代理:處理 HTTP 級別的 ACL,包括方法、主機和路徑規則,並可向 HTTPS 流量注入憑證或 CA 憑證。
適用對象
- 需要執行不受信任程式碼或第三方腳本的開發者。
- 需要以受限資料存取和無網路環境執行生成程式碼(例如 XOA 模式)的 AI 代理開發者。
- 希望以決定性執行(凍結時間與種子隨機性)隔離進程的使用者。
主要亮點
- 無需 root:完全在使用者空間運作,無需 root 權限或
/etc/subuid設定。 - 細粒度網路控制:支援 IP/CIDR 允許/拒絕清單、埠特定規則和 HTTP 級別 ACL。
- 資源限制:透過 seccomp 通知強制執行記憶體和進程限制。
- COW 檔案系統:自動保護工作目錄,將寫入操作捕獲到上層目錄中。
- 可程式化策略:
policy_fn允許根據系統呼叫事件動態、即時調整權限。 - 多語言支援:提供 CLI、Rust 套件以及 Python 和 Go 的 SDK。
相關
- 專案
- 專案
- 專案
- 專案