multikernel/sandlock
The lightest AI sandbox. A process-based sandbox for Linux, no container, no VM, no privilege, no prompt injection
何を解決するか
Sandlock は、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 を提供。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト