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。

相關

  • 專案
  • 專案
  • 專案
  • 專案