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 を提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト