Zerobox - OpenAI Codexランタイムベースの軽量クロスプラットフォームプロセスサンドボックス化ツール
(github.com/afshinm)- Codexのサンドボックスランタイムを独立したツールとして抽出し、任意のコマンドにファイル・ネットワーク・認証情報の制御を適用できる軽量プロセス分離ツール
- AIが生成したコードをそのまま実行してもファイル破損・データ漏えいの心配なし
- デフォルトポリシーはdeny-by-defaultに設定されており、明示的に許可していない書き込み・ネットワーク・環境変数へのアクセスはすべて遮断
- APIキーをコードに露出させずに外部API呼び出しが可能: **認証情報注入(Credential Injection)**機能により、サンドボックス内部のプロセスはプレースホルダーだけを参照し、実際のAPIキーはネットワークプロキシ
- 単一バイナリで
curl ... | shまたはnpm install -g zeroboxによりインストール完了、コンテナイメージのビルドやVMの起動待ちは不要 npm installの誤操作で何が変わったかを追跡・巻き戻しですぐ確認可能:zerobox --restore --allow-write=. -- npm installを実行すれば完了後に自動復旧され、--snapshotで記録だけ残して後でzerobox snapshot diff <id>で変更点を確認し、restoreでロールバック可能- LLMのツール呼び出しごとに権限を分離可能: 読み取り専用サンドボックス、書き込み専用サンドボックス、特定ドメインのみを許可するサンドボックスをそれぞれ作成し、エージェントの各tool callを異なる権限で実行 → プロンプトインジェクションで
rm -rfを投げられても書き込み権限のないサンドボックスなら無視 - ビルド/テストで意図しない外部ネットワーク呼び出しを自動遮断:
zerobox --allow-write=/tmp -- npm testでテストを実行すると、コードがこっそり外部APIを呼び出した瞬間に失敗し、サプライチェーン攻撃や副作用を早期発見 - 機密ディレクトリの遮断ルールを手動で書く必要なし: デフォルトプロファイルが
~/.ssh、~/.awsのようなパスを自動でdeny処理し、追加設定なしでも基本的な安全装置を確保 - 環境変数汚染の心配なし: デフォルトでは
PATH、HOMEなど必須のものだけが渡されるため、AWS_SECRET_ACCESS_KEYのような値が子プロセスへ漏れ出さず、必要なものだけを--allow-env=DATABASE_URLのようにホワイトリスト指定 - Rust SDKとTypeScript SDKの両方をサポートし、CLI単一バイナリでDockerやVMなしに約10msのオーバーヘッドで実行可能
- AIエージェントが生成したコードの実行、LLMツール呼び出しの隔離、ビルドスクリプトの保護などAIワークフローのセキュリティに特に有用なツール
- プラットフォーム対応と技術情報
- macOS: Seatbelt(sandbox-exec)ベースで完全対応
- Linux: Bubblewrap + Seccomp + Namespacesベースで完全対応
- Windows: Restricted Tokens + ACLs + Firewallベースで対応予定
--strict-sandboxオプションにより、bubblewrapがない環境(例: Docker内部)で弱い分離にフォールバックする代わりに実行を中断するよう強制可能
- Apache-2.0ライセンス / Rust + TypeScript
まだコメントはありません。