概要
OpenClaw のサンドボックス隔離環境は、システムセキュリティを保証するための重要なコンポーネントです。AIエージェントがツール操作を実行する際、サンドボックスはこれらの操作がホストシステムのセキュリティと安定性に影響を与えないことを保証します。本記事では、サンドボックスの3つのコア機能であるツールパス制約、コンテナ実行、ブラウザブリッジの設定について詳しく解説します。
サンドボックスアーキテクチャ
OpenClawはPiコーディングエージェントSDKを直接組み込んでいるため(サブプロセスとして呼び出すのではなく)、サンドボックスメカニズムはツール実行レイヤーに深く統合されています。各ツール呼び出しはサンドボックスチェックを経て、7段階ツールパイプラインのポリシーフィルタリング段階で権限検証を完了した後、実行時にもサンドボックスのランタイム制約を受けます。
ツールパス制約
基本概念
パス制約(Path Constraints)はツールがアクセスできるファイルシステムの範囲を制限します。設定ファイルで許可するパスプレフィックスを宣言することで、AIエージェントのファイル操作の境界を正確に制御できます。
設定方法
sandbox:
allowedPaths:
- /home/openclaw/workspace
- /tmp/openclaw
deniedPaths:
- /etc
- /var/log
- /home/openclaw/.ssh
maxFileSize: 10MB
maxDepth: 10
パス解決ルール
サンドボックスはパスをチェックする際に正規化処理を行います。シンボリックリンクの解決、.. パストラバーサルの排除、パス区切り文字の統一を実施します。つまり、../../etc/passwd のようなパスで制約を回避しようとしても無効です。
一時ファイルの処理
ツール実行中に生成される一時ファイルはデフォルトで /tmp/openclaw/<session-id>/ ディレクトリに保存されます。各セッションは独立した一時ディレクトリを持ち、セッション終了後にサンドボックスが自動的にクリーンアップします。
コンテナ実行
コンテナ隔離モード
任意のコードを実行する必要があるシナリオ(コード実行スキルなど)では、OpenClawはツール操作をコンテナ内で実行することをサポートしています。コンテナ実行はパス制約よりも強い隔離レベルを提供します。
コンテナランタイムの設定
sandbox:
containerExec:
enabled: true
runtime: docker
image: openclaw/sandbox:latest
memoryLimit: 512m
cpuLimit: 1.0
networkMode: none
timeout: 30s
主要パラメータの説明
- runtime:コンテナランタイム、DockerとPodmanをサポート
- image:サンドボックスコンテナイメージ、公式のプリビルトイメージには一般的なプログラミング言語ランタイムが含まれる
- memoryLimit:メモリ上限、リソース枯渇攻撃を防止
- cpuLimit:CPU使用制限
- networkMode:ネットワークモード、
noneは完全なネットワーク隔離、restrictedは制限付き外部アクセスを許可 - timeout:実行タイムアウト、超過時にコンテナを強制終了
ファイルシステムのマウント
コンテナ実行時、サンドボックスは必要なファイルを読み取り専用でコンテナ内にマウントします。ツールが生成する出力ファイルは専用の出力ディレクトリマッピングを通じてホストシステムに返されます。
ブラウザブリッジ
ブリッジメカニズム
OpenClawのブラウザツール(browser tool)は実際のブラウザインスタンスとインタラクションする必要があります。サンドボックスはブラウザブリッジURLを通じて制御された通信チャンネルを確立し、AIエージェントがブラウザを操作できるようにしつつ、ブラウザ操作がサンドボックスの範囲から逸脱することを防ぎます。
ブラウザブリッジの設定
sandbox:
browserBridge:
enabled: true
bridgeUrl: "ws://localhost:9222"
allowedDomains:
- "*.example.com"
- "docs.openclaw.com"
blockedDomains:
- "*.internal.corp"
maxTabs: 3
maxPageLoadTime: 15s
screenshotFormat: png
screenshotQuality: 80
ドメインフィルタリング
ブラウザブリッジはドメインのホワイトリストとブラックリストをサポートします。許可リスト内のドメインのみがアクセス可能で、AIエージェントがブラウザを通じて内部ネットワークリソースや機密サービスにアクセスすることを防ぎます。
ブリッジのセキュリティ
ブラウザブリッジはWebSocketプロトコルで通信します。接続確立時にトークン認証が必要で、各セッションには独立したトークンがあります。ブリッジレイヤーは実行ファイルのダウンロード、file:// プロトコルへのアクセスなどの危険な操作も遮断します。
サンドボックス監視
サンドボックスランタイムはリソース使用状況を継続的に監視します。ファイルシステム操作の回数とデータ総量、コンテナのCPUとメモリ使用量、ブラウザブリッジのネットワークトラフィック、ツール呼び出し頻度などを追跡します。リソース使用が制限に近づくと、システムがアラートをトリガーします。
トラブルシューティング
よくあるサンドボックス関連の問題:
- パスアクセスの拒否:
allowedPathsにターゲットパスが含まれているか確認、シンボリックリンクの解決に注意 - コンテナ起動の失敗:コンテナランタイムがインストール済みでイメージがプルされていることを確認
- ブラウザブリッジのタイムアウト:ブラウザインスタンスが正常に動作しているか、ブリッジURLが正しいか確認
- リソース超過:
memoryLimitとcpuLimitパラメータを調整
まとめ
OpenClawのサンドボックスメカニズムは、パス制約、コンテナ実行、ブラウザブリッジの3層の防護を通じて、AIエージェントの能力を保証しつつシステムセキュリティを確保します。これら3つの次元を適切に設定することで、セキュリティと機能性の最適なバランスを取ることができます。