AIエージェント向けブラウザおよびコンピューター使用サンドボックス:隔離すべき内容

AIエージェント向けブラウザおよびコンピューター使用サンドボックス:隔離すべき内容

ブラウザおよびコンピューター使用サンドボックスは、セッション、ファイルシステムとダウンロード、認証情報、クッキー、ネットワークアクセス、ツールアクション、スクリーンショットと録画、ログ、およびリセット状態を隔離する必要があります。これにより、AIエージェントがWebサイト、アプリケーション、ファイルを操作する際に、静かに信頼境界を拡大するのを防ぎます。

ブラウザおよびコンピューター使用エージェントにサンドボックスが必要な理由

ブラウザ使用エージェントとコンピューター使用エージェントは、通常のチャットボットとは異なります。質問に答えるだけでなく、クリック、入力、ファイルのダウンロード、Webページの読み取り、フォームへの入力、場合によっては完全なデスクトップ環境の操作も行います。そのため、ランタイムはセキュリティモデルの一部となります。

テキストのみのアシスタントは誤った回答を生成する可能性があります。ブラウザまたはコンピューター使用エージェントは誤ったアクションを実行する可能性があります。フォームを送信したり、セッションクッキーをログに漏洩させたり、安全でないファイルをダウンロードしたり、ワークスペースを上書きしたり、Webページに隠されたプロンプトインジェクションに従ったり、本来利用不可能なコンテキストで認証情報を使用したりする可能性があります。

サンドボックスは、これらのアクションが制約される場所です。以下のような実用的な質問に答える必要があります。

  • ブラウザはどのアカウントにログインしているか?
  • エージェントはどのファイルを読み取りまたは書き込みできるか?
  • エージェントはどのドメインに接続できるか?
  • タスク終了後も持続するクッキーとトークンはどれか?
  • どのクリック、コマンド、スクリーンショット、ファイル変更を後で確認できるか?
  • タスク終了時に何が破棄されるか?

目標は、サンドボックスがあらゆるリスクを除去すると偽ることではありません。目標は、エージェントの動作環境を狭く、観測可能で、リセット可能にすることです。モデルやツールが誤った判断を下した場合、その爆発半径はセッションと意図的に露出させたリソースに限定されるべきです。

ブラウザセッションで隔離すべきもの

ブラウザプロファイルから始めます。ブラウザエージェントは、開発者の日常的なブラウザプロファイル、個人用拡張機能、保存されたパスワード、永続的なクッキー、または管理されていないダウンロードディレクトリを使用すべきではありません。意図的に状態を共有する理由がない限り、各タスク、ユーザー、またはワークフローに独自のプロファイル境界を与えます。

最低限、サンドボックスが以下を分離しているか評価してください。

境界 分離がない場合の問題 確認すべき点
ブラウザプロファイル エージェントが無関係なログイン、拡張機能、クッキー、自動入力、閲覧履歴を継承する。 タスク単位またはユーザー単位のプロファイル、明示的な永続化ルール、拡張機能の制御。
セッションライフサイクル 前のタスクの状態が次のタスクの結果を変える。 新しいセッション作成、スナップショット復元、クリーンアップ、有効期限切れの動作。
タブとウィンドウ エージェントが誤ったコンテキストからコンテンツを読み取ったりクリックしたりする。 タブのスコープ、アクティブウィンドウの追跡、イベントログ。
ブラウザストレージ LocalStorage、IndexedDB、キャッシュ、サービスワーカーが機密状態を保持する。 ストレージのリセット、エクスポートルール、ドメインスコープのクリーンアップ。
ダウンロード Webからのファイルが共有ディレクトリに保存される。 隔離されたダウンロードフォルダ、ファイルタイプポリシー、必要に応じたマルウェアスキャンワークフロー。

ブラウザを単なる使い捨てのUIラッパーではなく、ワークスペースとして扱います。現代のWebアプリケーションは、クッキー、ローカルストレージ、キャッシュ、サービスワーカー、バックグラウンドリクエスト、ダウンロードファイルに意味のある状態を保持しています。サンドボックスがブラウザウィンドウを開くだけで、その状態に対して何が起こるかを定義していなければ、分離境界は不完全です。

コンピューター使用環境では、同じ原則がブラウザを超えて適用されます。エージェントは端末、ファイルマネージャー、ドキュメントエディター、ローカルプレビューサーバー、GUIアプリケーションと対話する可能性があります。その環境には、スコープされたホームディレクトリ、明確なマウントポイント、タスク成果物をランタイム内部から分離する方法が必要です。

クッキー、アカウント、認証情報の処理方法

クッキーとログイン済みアカウントは、ブラウザ自動化において最も機密性の高い部分であることがよくあります。有効なセッションを持つブラウザエージェントは、モデルが生のパスワードを決して見なくても、アカウントが許可するあらゆる操作を実行できます。

可能な場合は、エージェント作業用に別のアカウントを使用します。アカウントはワークフローに必要な最小限の権限を持ち、サンドボックスはクッキーが注入されるのか、ログイン時に作成されるのか、実行間で永続化されるのか、完了後に破棄されるのかを明確にする必要があります。

認証情報の取り扱いには、より厳格なルールが必要です。Webサイトが要求するかもしれないという理由だけで、エージェントに広範なシークレットを与えてはいけません。スコープされ時間制限のあるトークン、ワークフローごとの認証情報、およびエージェントが生のシークレットを読み取るのではなく、狭いツールを呼び出すブローカーアクセスを優先します。シークレットをサンドボックス内で利用可能にする必要がある場合は、環境変数、マウントされたファイル、ブラウザ認証情報、またはツールのみの機能として表示するかを決定します。

以下のアンチパターンに注意してください。

  • 個人用または管理者用クッキーを含む共有ブラウザプロファイル。
  • 承認なしにモデルによってページに貼り付けられたシークレット。
  • サンドボックス内のすべてのツールが利用可能なAPIキー。
  • 全画面スクリーンショットやデバッグログにキャプチャされたセッションクッキー。
  • 実稼働アカウントで有効になっているフォームの自動入力。
  • ダウンロードファイル、シェル履歴、ブラウザストレージに残された長期有効な認証情報。

LLMアプリケーションに関するOWASPのガイダンスは、エージェントシステムにおける反復的なリスクとしてプロンプトインジェクションと過度な権限を強調しています。ブラウザエージェントの場合、これらのリスクはWebに直接直面します。ページにはモデルに影響を与えようとする指示が含まれ、モデルは実際のアクションを実行するツールを持つ可能性があります。分離は、指示に従うだけでは不十分な場合の第二の防御線を提供します。

ダウンロード、ファイル、クリップボードデータの封じ込め方法

ダウンロードは信頼境界です。ブラウザエージェントは、PDF、スプレッドシート、アーカイブ、スクリーンショット、請求書、ビルド成果物、実行可能ファイルを保存する可能性があります。これらのファイルは、共有デスクトップフォルダや実稼働ワークスペースではなく、サンドボックスが所有するディレクトリに配置されるべきです。

実践的なダウンロードポリシーは以下をカバーする必要があります。

  • 許可されるファイルタイプと最大ファイルサイズ。
  • ダウンロードしたファイルを自動的に開くことができるかどうか。
  • ファイルを別のサイトにアップロードできるかどうか。
  • ファイルのスキャン、ハッシュ化、ログ記録の方法。
  • 実行終了時にサンドボックスからエクスポートされるファイル。
  • 一時ファイルの削除方法。

コンピューター使用エージェントの場合、ファイル境界はさらに重要です。エージェントはタスクの一部としてローカルファイルを作成または変更する可能性があるためです。コーディングエージェントはリポジトリを編集するかもしれません。データエージェントはチャートを作成するかもしれません。ブラウザエージェントはCSVをダウンロードし、変換し、結果をアップロードするかもしれません。各パス(入力が到着する場所、作業ファイルが存在する場所、承認された出力がエクスポートされる場所、消去されるもの)は明示的である必要があります。

クリップボードアクセスには独自の決定が必要です。GUI自動化には便利ですが、無関係なアプリケーション間で機密テキストを移動させる可能性もあります。エージェントがクリップボードを読み取れる場合、数秒前に人間がコピーしたトークンを見る可能性があります。書き込める場合、人間の次の貼り付けアクションに影響を与える可能性があります。機密性の高いワークフローでは、クリップボードアクセスをセッションローカルにするか、人間とサンドボックスの境界を越える前に明示的な承認を要求します。

画面操作も同様の問題があります。コンピューター使用エージェントはスクリーンショット、アクセシビリティツリー、またはレンダリングされたUI状態から動作します。スクリーンショットには、プライベートデータ、アカウント名、トークン、ドキュメントテキスト、顧客記録が含まれる可能性があります。スクリーンショットが保持されるか、編集されるか、モデルプロバイダーにストリーミングされるか、リプレイ用に保存されるかを決定します。それらを無害なデバッグ画像として扱わないでください。

DOMアクション、スクリーンショット、リプレイトレイルのログ記録方法

ブラウザサンドボックスはアクションをレビュー可能にする必要があります。エージェントがボタンをクリックしたりフォームを送信したりするとき、セキュリティチームや開発者は最終結果から推測することなく何が起こったかを再構築できる必要があります。

ブラウザ自動化の場合、有用なログには以下が含まれます。

  • 訪問したURLとオリジン。
  • 各アクションに使用されたDOMセレクターまたはアクセシビリティターゲット。
  • 入力されたテキスト(シークレットは編集済み)。
  • フォーム送信イベント。
  • 開始および完了したダウンロード。
  • ドメインまたはエンドポイントレベルでのネットワークリクエスト。
  • コンソールエラーおよびページエラー。
  • 機密ステップの前後のスクリーンショットチェックポイント。

コンピューター使用自動化の場合は、ツール呼び出し、プロセス開始、シェルコマンド、ファイルの読み書き、ウィンドウフォーカス変更、エクスポートされた成果物を追加します。ログは、モデルが要求したもの、自動化レイヤーが実行したもの、環境が返したものを区別する必要があります。この区別は、プロンプトインジェクション、不安定なUI動作、ツールラッパーのバグをデバッグする際に重要です。

リプレイは便利ですが、データ保持の問題が発生します。完全なリプレイトレイルには、編集が組み込まれていない限り、スクリーンショット、ページテキスト、フォーム内容、ファイル名、端末出力、認証情報が含まれる可能性があります。誰がリプレイにアクセスできるか、どのくらい保持されるか、機密値が保存前にマスクされるかを事前に決定します。

詳細の適切なレベルはワークフローによって異なります。公開価格監視エージェントは軽量なログで十分かもしれません。顧客アカウント、請求ページ、インフラストラクチャコンソール、内部ツールに触れるエージェントは、より強力な監査証跡と厳格な保持制御を必要とします。

ネットワーク、承認、リセット境界の設定方法

ネットワークアクセスは、ブラウザサンドボックスが静かに拡大する可能性がある場所です。タスクは1つのWebサイトから始まり、サードパーティスクリプトを読み込み、リダイレクトを追跡し、APIを呼び出し、パッケージをダウンロードし、内部ドメインに到達する可能性があります。サンドボックスが広範なアウトバウンドアクセスを持っている場合、エージェントはアプリケーション所有者が予期しない場所にデータを移動できます。

ブラウザおよびコンピューター使用エージェントの場合、以下を検討します。

  • 予想されるWeb送信先のドメイン許可リスト。
  • 内部メタデータサービスとプライベートネットワーク範囲のブロック。
  • パッケージレジストリ、オブジェクトストレージ、Web検索に対する個別のポリシー。
  • セキュリティレビューが必要な場合のDNSログ記録。
  • セッションとタスクに結び付けられる出口ログ。

取り消しが困難または法的に意味のあるアクションの前には、人間の承認を置くべきです。例としては、購入の送信、メッセージの送信、アカウント設定の変更、ファイルの削除、認証情報のローテーション、ユーザーの招待、サポートチケットの作成、顧客データのアップロードなどがあります。承認イベントは、エージェントが行おうとしていること、関係するページやファイル、承認された正確なアクションをキャプチャする必要があります。

リセット動作は最後の境界です。優れたサンドボックスは、タスク終了時に何が起こるかを明確にする必要があります。

状態 リセットの質問
ブラウザクッキー 破棄されるか、永続化されるか、チェックポイント化されるか?
ブラウザストレージ キャッシュ、ローカルストレージ、IndexedDB、サービスワーカーの状態が消去されるか?
ダウンロード ファイルは削除されるか、レビューのために保持されるか、管理された場所にエクスポートされるか?
認証情報 トークンは失効、ローテーション、または環境から削除されるか?
ログとリプレイ 何が保持され、編集され、どのくらいの期間か?
ネットワークアクセス 一時的な許可リストやプロキシ認証情報は削除されるか?
ファイルシステム ワークスペースは消去されるか、スナップショットされるか、再利用されるか?

永続セッションは長期実行エージェントに便利ですが、永続性は意図的であるべきです。ブラウザプロファイル、ファイルシステム、またはプロセス状態が実行間で生存する場合は、なぜ永続化するのか、誰がリセットできるのかを文書化します。

Novita Agent Sandboxがこの評価にどのように適合するか

Novita Agent Sandbox は、隔離されたクラウド環境でAIエージェントワークロードを実行するために設計されています。製品ページでは、コード実行、ブラウザ使用、コンピューター使用、永続セッション、ライブセッション表示、再利用可能なテンプレートのサポートが説明されています。Novita Agent Sandboxクイックスタートドキュメント は、開発者がサンドボックスを作成し、コマンドを実行し、ファイルを操作し、SDKを通じてサンドボックスを管理する方法を示しています。

これらの機能により、Novitaはブラウザエージェント、コーディングエージェント、データ分析、長期実行エージェントのワークフローを評価する際に関連性があります。評価は依然としてあなたの脅威モデルに固有である必要があります。機密性の高いブラウザまたはコンピューター使用自動化にサンドボックスプロバイダーを使用する前に、ブラウザプロファイル、クッキー、認証情報注入、ネットワーク出口、スクリーンショット保持、ファイルエクスポート、ログ、リセットセマンティクスに関する必要な正確な動作を確認してください。

すでにNovita AIモデルを使用しているチームにとって、実用的な利点は運用上の適合性です。推論とエージェント実行は、個別のインフラストラクチャ決定として扱う代わりに、同じビルダープラットフォーム内で計画できます。ただし、製品の主張とセキュリティの仮定は分けてください。サンドボックスは有用な分離とライフサイクル制御を提供できますが、アプリケーションには、エージェントが実行するアクションに対して、最小権限アカウント、スコープされた認証情報、承認ゲート、監査ルールが依然として必要です。

ブラウザおよびコンピューター使用サンドボックスのチェックリスト

エージェントに実際のWebサイト、アカウント、またはデスクトップライクなワークスペースへのアクセスを許可する前に、このチェックリストを使用してください。

領域 評価の質問
セッション 各タスクに隔離されたブラウザプロファイルまたはワークスペースが与えられているか?
アカウント エージェントは人間のメインアカウントではなく、最小権限アカウントを使用しているか?
クッキー クッキーはスコープされ、意図的に永続化され、リセット時に消去されるか?
認証情報 シークレットはスコープされ、時間制限があり、ログで編集され、無関係なツールから利用できないか?
ダウンロード ファイルは明示的にエクスポートされるまで、サンドボックスが所有するディレクトリ内に留まるか?
クリップボード エージェントは人間のクリップボードを読み書きできるか、それともセッションローカルのみか?
スクリーンショット スクリーンショットは保持され、編集され、アクセス制御されているか?
DOMアクション クリック、入力テキスト、フォーム、セレクター、ページオリジンがログ記録されているか?
ツール呼び出し モデルの意図と実行されたツールアクションを分離できるか?
ネットワーク ドメイン、プライベート範囲、パッケージレジストリ、DNS動作が制御されているか?
承認 どのアクションに人間の確認ステップが必要か?
リセット 実行後に正確に何が消去され、保持され、失効され、スナップショットされるか?
インシデントレビュー ログ、ファイル、ネットワークイベント、リプレイから何が起こったかを再構築できるか?

FAQ

ブラウザサンドボックスとコンピューター使用サンドボックスの違いは何ですか?

ブラウザサンドボックスは、Webブラウザができることを制約します。つまり、どのプロファイル、クッキー、ストレージが利用可能か、ブラウザが接続できるドメイン、許可されるダウンロードなどです。コンピューター使用サンドボックスはより広範で、完全なデスクトップライクな環境(ブラウザに加えて、端末アクセス、ファイルマネージャー、GUIアプリケーション、ローカルプロセス)をカバーします。両者はリセット、ログ記録、認証情報のスコープ、最小権限アカウントに関する同じ中核的な懸念を共有しますが、コンピューター使用環境では、マウントされたディレクトリ、クリップボードアクセス、画面データ、プロセス分離に関する追加の決定が必要です。

すべてのエージェントタスクに個別のブラウザプロファイルが必要ですか?

ほとんどの場合、はい。タスク間でプロファイルを共有すると、あるタスクが別のタスクが残したクッキー、ログイン、保存されたパスワード、ブラウザストレージを表示できることを意味します。タスクごとのプロファイルは、意図しない状態の持ち越しを防ぐ最も簡単な方法です。ワークフローにセッションの永続性が必要な場合(たとえば、中断したところから再開する長期実行エージェント)、永続性を明示的にし、どの状態が引き継がれ、その理由を文書化します。

AIエージェントはサンドボックス内で認証情報を安全に処理できますか?

認証情報は、制御されていない環境よりもサンドボックス内の方が安全ですが、サンドボックスだけでは認証情報の取り扱いを安全にするわけではありません。主なリスクは、過剰露出(タスクが必要とする以上のアクセスをエージェントに与えること)、漏洩(認証情報がログ、スクリーンショット、デバッグ出力に現れること)、および永続性(タスク終了後もトークンやクッキーが利用可能なままであること)です。スコープされ時間制限のある認証情報を優先し、生のシークレットではなく狭いツール呼び出しを通じてアクセスを仲介し、ログとスクリーンショットが保存前に機密値を編集することを確認します。

AIエージェントが悪意のあるファイルをダウンロードしたらどうなりますか?

サンドボックスのダウンロードポリシーが爆発半径を決定します。ダウンロードがサンドボックス所有のディレクトリに隔離され、自動開封が無効になり、ファイルタイプ制限が設定されている場合、ダウンロードされたファイルは自動的に実行されたり、より広範なファイルシステムに到達したりできません。これらの制御がない場合、悪意のあるファイルが実行され、共有ディレクトリに到達し、人間がレビューする前に別の場所にアップロードされる可能性があります。ダウンロードを潜在的に信頼できない入力として扱い、許可されるファイルタイプ、サンドボックス内で開封できるかどうか、スキャンやログ記録の方法に関する明示的なポリシーを定義します。

ブラウザエージェントでのプロンプトインジェクションをどのように検出しますか?

Webページからのプロンプトインジェクションは、モデル層で確実に検出するのは困難です。サンドボックス化は主要な防御制御の1つです。悪意のある指示が実行された場合でも、エージェントが実行できることを制限するためです。実用的なシグナルには、予期しないツール呼び出しやナビゲーション、意図されたドメイン外のアクション、異常なフォーム送信、認証情報やセッションデータの取得や送信の試みが含まれます。良好なDOMアクションログ(訪問したページ、ターゲットにされたセレクター、入力されたテキストを記録)により、ページがエージェントの動作に影響を与えたかどうかを再構築しやすくなります。

サンドボックスを使用すればエージェントは安全ですか?

サンドボックスは爆発半径を狭めますが、リスクを排除するわけではありません。エージェントが到達できるものとリセット後も残るものを制約しますが、モデルの誤った決定、設定ミスの認証情報、またはアプリケーションレベルの脆弱性を防ぐことはできません。セキュリティは層状の制御に依存します。最小権限アカウント、スコープされた認証情報、不可逆的なアクションに対する承認ゲート、モデルの意図と実行されたアクションをキャプチャする監査ログ、機密ワークフローが実稼働に達する前の人間によるレビューなどです。サンドボックスは1つの層であり、完全な答えではありません。

スクリーンショットとリプレイデータはどのくらいの期間保持すべきですか?

保持期間は、ワークフローの機密性と監査要件によって異なります。個人データ、請求システム、顧客アカウント、内部ツールに触れるエージェントの場合、アクセス制御と機密値(トークン、フォーム内容、表示された認証情報)の編集を伴う定義された保持期間が合理的なベースラインです。低機密性のワークフローの場合、より短い保持期間やサマリーのみのログ記録で十分かもしれません。デプロイ前に、誰がリプレイにアクセスできるか、どのくらいの期間保持されるか、どのように削除されるかを決定します。スクリーンショットを無害なデバッグ成果物として扱わないでください。構造化ログよりも機密データを含むことがよくあります。

どのエージェントアクションに常に人間の承認が必要ですか?

取り消しが困難または法的に意味のあるアクションが最も明確な候補です。購入、アカウント設定の変更、ファイルの削除、認証情報のローテーション、ユーザー招待、サポートチケットの送信、顧客または規制対象データのアップロードなどです。これらに加えて、エージェントの元のタスク範囲外のアクション、実行開始時に想定されていなかったドメインやアカウントに対するアクション、タスクが明示的に要求していないファイルのダウンロードや実行についても承認を要求することを検討します。承認イベントは、エージェントが何をしようとしていたか、人間が明示的に確認したものを記録する必要があります。

推奨記事