Agent Sandboxing
エージェント・サンドボックスがAIエージェントをどのように隔離し、ファイルやネットワークへのアクセスを制限し、プロンプトインジェクション、ツール乱用、データ流出のリスクを軽減するかを学びます。
エージェント・サンドボックスとは、AIエージェント、そのツール、または生成されたコードを制限された実行環境内で実行する手法です。サンドボックスは、エージェントがアクセスできるファイル、ネットワーク、認証情報、プロセス、およびコンピューティング・リソースを制限します。エージェントが安全ではない判断を下したり、悪意のある指示を処理したりした場合でも、これらの境界によって本番システムや機密データへの潜在的な影響を軽減できます。
エージェント・サンドボックスの仕組み#
エージェントは多くの場合、モデルをツール、メモリ、API、および実行ループに接続するエージェント・ハーネスを通じて動作します。サンドボックスは、これらの機能の周囲に強制レイヤーを追加します。「プライベートファイルにアクセスしないでください」といったプロンプトに従うことをモデルに信頼させる代わりに、オペレーティング環境が技術的にそのアクセスを防ぎます。
実用的なサンドボックスの組み合わせには、以下が含まれます。
- タスク終了後に破棄される、エフェメラルなコンテナまたは仮想マシン。
- 書き込み可能な小さなワークスペースを持つ、読み取り専用のベースファイルシステム。
- 承認されたドメインまたは内部サービスのみを許可するネットワーク・エグレス・ルール。
- 現在のユーザーとタスクのスコープに限定された、短命な認証情報。
- CPU、メモリ、ストレージ、プロセス、および実行時間の制限。
- ツール呼び出し、ファイル変更、ネットワーク要求、ポリシー違反をカバーする監査ログ。
DockerのデフォルトseccompプロファイルなどのLinux制御によってシステムコールを制限でき、一方Dockerのリソース制約によってリソース消費を制限できます。クラスター・スケールでは、Kubernetes NetworkPoliciesを使用してエージェントのワークロードが通信するサービスを制御できます。
エージェント・サンドボックスが重要な理由#
エージェントは関数呼び出しとツール使用を通じてアクションを実行できるため、その障害は不正確なチャットボットの応答よりも重大な結果をもたらします。コーディング・エージェントはシェル・コマンドを実行する可能性があり、一方オペレーション・エージェントはレコードの更新やデプロイのトリガーを行う可能性があります。
OWASP AIエージェントセキュリティガイダンスでは、ツール乱用、特権昇格、メモリ・ポイズニング、データ流出などのリスクが特定されています。サンドボックスは、特にウェブページ、ドキュメント、画像メタデータ、またはツール応答に隠されたプロンプトインジェクションにエージェントが遭遇したときに、これらのリスクを封じ込めるのに役立ちます。OWASPプロンプトインジェクション防止ガイダンスでは、入力フィルタリングだけではすべての敵対的な指示を確実に識別できないため、多層防御を推奨しています。
サンドボックスは過剰なエージェンシー(主体性)にも対処します。不要なツール、広範な権限、制限のない自律性を持つエージェントは、モデルのエラーや操作された入力の後に有害なアクションを実行する可能性があります。過剰なエージェンシーに関するOWASPガイダンスでは、モデルの動作だけに頼るのではなく、ツールの機能、権限、および自律性を最小限に抑えることを推奨しています。
サンドボックスと関連コントロールの比較#
エージェント・サンドボックスは他のセキュリティメカニズムを補完するものであり、それらを置き換えるものではありません。
- AIガードレール: ガードレールは入力、出力、または提案されたアクションを検査します。サンドボックスは、ガードレールが脅威を見逃した場合でも環境上の制限を強制します。
- アクセス制御: 認可によってアクションが許可されるかどうかが決定されます。サンドボックスは、認可ロジックがバイパスされた場合に利用可能なリソースを制限します。AWSのアイデンティティおよびアクセス管理のベストプラクティスでは、一時的な認証情報と最小特権の権限が強調されています。
- コンテナ化: コンテナはプロセスをパッケージ化して分離しますが、デフォルトのコンテナ設定が必ずしも強力なセキュリティ境界になるとは限りません。Ultralytics Dockerクイックスタートは一貫性のある独立したコンピュータビジョン環境をサポートしますが、本番環境のサンドボックスには追加のファイルシステム、機能、ネットワーク、およびリソースの制限が必要です。
- テスト環境: 開発用の「サンドボックス」は、システムの非本番用コピーです。エージェント・サンドボックスは実行を具体的に制約し、開発および本番環境で適用される場合があります。
Ultralyticsエージェントスキルはコーディング・エージェント向けの再利用可能な指示を提供しますが、スキル自体は分離境界を作り出しません。それらのスクリプトと依存関係は引き続き確認され、適切な権限で実行される必要があります。
実社会での応用#
エンタープライズ・コーディング・エージェント: コーディング・エージェントは、一時的なワークスペース内でリポジトリの検査、ファイルの変更、テストの実行を行うことができます。サンドボックスは割り当てられたリポジトリのみをマウントし、本番の認証情報をブロックし、承認されたパッケージ・レジストリへのアウトバウンド通信を制限し、マージまたはデプロイの前に人間の承認を要求します。そのため、侵害された依存関係や挿入された指示が内部ストレージを自由にスキャンしたりソースコードを送信したりすることはできません。
ビジョン有効化オペレーション・エージェント: 倉庫のエージェントは、Ultralytics YOLO26を使用してカメラ画像を分析し、通路の閉塞を特定し、メンテナンス・チケットを開くことができます。そのサンドボックスは、受信画像への読み取り専用アクセスと、推論およびチケット発行APIへのみアクセス可能なネットワークを提供できます。制限のないカメラ管理、従業員レコード、またはデプロイ認証情報を受け取るべきではありません。
知覚ステップでは、ドキュメント化されたUltralytics YOLO予測ワークフローを使用できます。
from pathlib import Path
from ultralytics import YOLO
source = "https://ultralytics.com/images/bus.jpg"
output_path = Path("sandbox_result.jpg")
# Run visual inference inside the restricted workspace
model = YOLO("yolo26n.pt")
results = model(source)
result = results[0]
result.save(filename=str(output_path))Pythonコードは通常の推論を実行し、周囲のランタイムがファイル、ネットワーキング、認証情報、およびリソースを制限することでサンドボックスを提供します。
実践的な設計ガイダンス#
最初はアクセス権を一切持たせない状態から始め、各タスクに必要なものだけを明示的に許可します。一時的なワークスペース、短命な認証情報、読み取り専用のマウント、アウトバウンド・ネットワークの許可リスト、タイムアウト、およびリソース制限を使用します。取り返しのつかないアクションには承認を要求し、認可チェックをモデルの外側に維持します。
ブロックされた操作を含め、試行されたすべてのアクションをログに記録し、ログ内に機密情報が露出しないようにします。チームはUltralyticsプラットフォームのデプロイ監視を使用して、エージェント・ワークフロー内のビジョン・エンドポイントのリクエスト、レイテンシ、エラー、およびヘルスを監視できます。最後に、悪意のあるファイル、間接的なプロンプト、繰り返し発生するツール呼び出し、リソース枯渇の試みに対してシステム全体をテストします。NIST AIリスク管理フレームワークプレイブックは、これらのリスクをガバナンス、測定、および継続的に管理するためのより広い構造を提供します。






