OpenAI、Codex用Windows版サンドボックスを独自開発
詳細を読む
OpenAIのコーディングエージェントCodexは、開発者のローカルマシン上でコマンドを実行するため、安全なサンドボックス環境が不可欠です。macOSやLinuxにはSeatbeltやseccompといったOS標準の隔離機構がありますが、Windowsには同等の仕組みがなく、ユーザーは毎回コマンドを手動承認するか、制限なしのフルアクセスモードを使うかの二択を強いられていました。
開発チームはまずWindows標準のAppContainer、Windows Sandbox、整合性レベル制御(MIC)を検討しましたが、いずれもエージェント型ワークロードには不適合でした。AppContainerは事前に必要な権限を定義する必要があり、Git・Python・ビルドツールなど多様なプロセスを動的に起動するCodexの用途に合いません。Windows Sandboxは使い捨てVMであり、ユーザーの実際の開発環境に直接作用できないという根本的な問題がありました。
最初のプロトタイプでは、合成SIDと書き込み制限付きトークンを組み合わせ、管理者権限不要のサンドボックスを構築しました。ファイル書き込みはワークスペース内に限定できたものの、ネットワーク制御が環境変数ベースの「助言的」な制限にとどまり、悪意あるコードが直接ソケットを開けば容易に迂回できる弱点がありました。
最終的に採用された設計では、セットアップ時に管理者権限を要求する代わりに、CodexSandboxOffline・CodexSandboxOnlineという2つの専用Windowsユーザーを作成します。オフラインユーザーにはWindows Firewallで全送信トラフィックを遮断するルールを適用し、OS層で確実にネットワークアクセスを制御します。コマンド実行はcodex-command-runner.exeがサンドボックスユーザーとして起動し、制限付きトークンを生成してから子プロセスを立ち上げる2段階方式です。
最終アーキテクチャはcodex.exe、セットアップ用バイナリ、コマンドランナー、子プロセスの4層構成となりました。各層が独立した責務を持つことで、権限昇格の範囲を最小化しつつ、開発者が普段使うワークフローとの互換性を維持しています。単一のOS機能では実現できなかった「安全かつ実用的な自律コーディングエージェント」を、複数の仕組みの組み合わせで達成した事例です。