アジェンティック脅威モデルとは何ですか?
アジェンティック脅威モデルとは、自律型エージェントがどのように攻撃され得るかを示すマップです。これはモデルの重み(ウェイト)を介した攻撃ではなく、エージェントが読み取り、記憶し、呼び出し、実行を許可されているすべての要素を対象とします。直接的および間接的なプロンプトインジェクション、ツールの汚染(ツールポイズニング)、過剰なエージェンシー、メモリの汚染、サプライチェーン、情報の流出経路、混乱した代理人(Confused Deputy)問題などの攻撃対象領域(サーフェス)を特定し、システムプロンプトに期待するのではなく、ハーネス内でそれぞれに対する制御(コントロール)を実装できるようにします。
定義
アジェンティック脅威モデルとは、AIエージェントに特有の攻撃対象領域、攻撃者の目標、および悪用経路(入力、コンテキスト、メモリ、ツール、資格情報、自律性など)を構造化して列挙したものです。これは、エージェントに本番環境へのアクセス権を付与する前に、どのハーネス制御が必要かを決定するために使用されます。
主な要点
- モデルの出力ではなく、エージェントのアクションを対象に脅威モデリングを行う。
- エージェントが読み取るすべての入力(ドキュメント、ページ、ツールの実行結果、他のエージェントなど)は、指示チャネルとなる。
- エージェントが呼び出せるすべてのツールは、インジェクションが成功した瞬間に攻撃者が継承する能力となる。
- メモリは、単発の(ワンショット)攻撃を持続的な攻撃へと変化させる。
- 影響範囲(ブラストライジアス)は、プロンプトではなく、資格情報と送信(エグレス)制限によって決定される。
- 明文化されていない攻撃対象領域が存在しないわけではない。許容されたリスクは明示的に文書化する。
コンテキスト
従来の脅威モデリングでは、攻撃者がシステムに何を送信できるかを問いかけます。しかしエージェントの場合、より困難な問いは「システムが自発的に何を読み取り、それを指示として扱うか」です。ページを取得したり、チケットを開いたり、ツールの実行結果を読み取ったりするエージェントは、誰も意図しないうちに自らの信頼境界(トラストバウンダリ)を拡大してしまっています。
2つ目の移行はエージェンシー(自律性)です。騙されたチャットボットは誤った文章を生成するだけですが、騙されたエージェントはAPIを呼び出し、資金を移動し、ブランチを削除し、あるいはファイルをメールで送信します。攻撃成功時の深刻度は、エージェントに紐付けられたツールと資格情報によって決定されます。そのため、権限付与は利便性のための判断ではなく、セキュリティ上の決定なのです。
フレームワークは、この取り組みの指針となります。「OWASP Top 10 for LLM Applications」は脆弱性の分類を定義し、「MITRE ATLAS」はAIシステムに対して観測された攻撃者の戦術をカタログ化しています。これらは、独自のアーキテクチャを構築する代わりにするのではなく、そのアーキテクチャを検証するためのチェックリストとして使用してください。
アーキテクチャ
直接的プロンプトインジェクション — エージェントと対話している人物が、その指示を上書きしようと試みます。セッションに付与された権限の範囲内にユーザーがすでに存在するため、最も低コストで試行でき、制限するのも最も容易です。
間接的プロンプトインジェクション — エージェントが取得するコンテンツ(Webページ、PDF、チケットのコメント、メール、ソースファイル、他のエージェントの出力など)に指示が隠されているケースです。攻撃者はエージェントと直接対話することはなく、エージェントが読み取る場所にテキストを仕込みます。
ツールの汚染(ツールポイズニング) — ツールの説明や実行結果自体が敵対的なものであるケースです。サーバーは承認時には無害なツールとして説明し、承認後にそれを変更することができるため、信頼性のチェックが一度行われただけで、永続的に実行されてしまうリスクがあります。
過剰なエージェンシー(Excessive agency) — エージェントが、個々のタスクが必要とするよりも広範な権限を保持している状態。まだ問題は発生していませんが、乗っ取られたエージェントが、ハーネスが許可していたすべての権限を即座に引き継いでしまうという攻撃対象領域(サーフェス)が存在します。
メモリポイズニング(Memory poisoning) — 永続メモリやベクトルストアに誤った事実や指示が書き込まれることで、攻撃がセッションを超えて存続し、将来の無関係なタスクで再実行されること。
サプライチェーン — 組織の外部から取り込まれるモデル、システムプロンプト、MCPサーバー、パッケージ、データセット。ツールの説明を書き換えられる依存関係は、エージェントの動作を書き換えられる依存関係と同義です。
流出チャネル(Exfiltration channels) — バイトデータが外部に流出する可能性のあるあらゆる経路:アウトバウンドのfetch、返答内にレンダリングされた画像URL、メールやWebhookツール、コミットなど。データが盗まれるために人間がそれを読む必要はありません。URLだけで十分です。
代理の混乱(Confused deputy) — エージェントが要求元(リクエスター)の持っていない資格情報を使用して動作するため、システムに直接アクセスできない攻撃者が、エージェントに代理でアクセスするよう要求すること。
コンポーネント
メリット
- 『私たちのエージェントは安全か?』という問いを、それぞれにオーナーとコントロールが存在する、有限の攻撃対象領域(サーフェス)のリストへと変換します。
- 本番環境へのアクセス権限が許可される前に、権限に関する決定を明確にし、レビュー可能にします。
- レッドチームにターゲットリストを提供し、評価スイートに自動化のための具体的なケースを提供します。
- 経年劣化しにくい:モデルは頻繁に変更されますが、攻撃対象領域(サーフェス)の変化は緩やかであるため、このマップは次のモデルの入れ替え時にも有効であり続けます。
リスク
- エージェントではなくチャットボットをモデル化してしまうこと — 出力による害を列挙する一方で、それらを実行に移すツールを無視してしまうこと。
- モデルをコントロールポイント(制御点)として扱ってしまうこと。アライメントは試みを減らすことはできますが、結果を制限することはできません。
- 一度作成されたきり、二度と見直されないドキュメント。新しいツールはすべて新しい攻撃対象領域(サーフェス)となるため、モデルは変更プロセスに組み込まれるべきです。
- カバレッジと防御を混同すること:攻撃対象領域(サーフェス)を特定することはそれを制御することではなく、テストされていないコントロールは単なる主張にすぎません。
ツールとテクノロジー
例
- 顧客のメールを読み取るサポートエージェント:メッセージ本文は信頼できない指示入力であり、CRMツールは機能(ケイパビリティ)、返信チャネルは流出経路となります。1つの機能から3つの攻撃対象領域(サーフェス)が生じます。
- リポジトリへの書き込み権限とネットワーク送信(エグレス)権限を持つコーディングエージェント:依存関係のREADMEを介したインジェクション、コミットツールを介した機能(ケイパビリティ)、アクセス可能な任意のレジストリを介した流出。
- 社内Wikiを対象とする検索(RAG)エージェント:ページを編集できる人なら誰でもエージェントが読み取る指示を書き込めるため、低権限の社内編集者がインジェクションベクターになります。
FAQ
- 通常の脅威モデルと何が違うのですか?
- 手法は同じですが、攻撃対象領域(サーフェス)が新しくなっています。従来のモデルでは、コードが指示を実行し、データは実行しないと仮定していました。エージェントの場合、データが指示となります。そのため、検索結果、メモリ、ツールの実行結果のすべてが、攻撃者がアクセス可能な入力チャネルになります。
- エージェントが読み取り専用の場合でも、脅威モデルは必要ですか?
- はい、小規模なものが必要です。読み取り専用のエージェントであっても、流出の攻撃対象領域(サーフェス)は存在します(読み取れるものは何でも復唱させられる可能性があります)。また、『読み取り専用』という属性は、プロンプトから想定するのではなく、ツールレイヤーで強制適用される必要があります。
- 何も文書化されていない場合、どこから始めればよいですか?
- エージェントが呼び出せるツールと、それぞれがアクセスするデータをリストアップします。その1つの表からマップの大部分が作成されます。機能(ケイパビリティ)が影響範囲(ブラストラジアス)となり、それらに到達可能な入力が攻撃経路となります。
- どのくらいの頻度で見直すべきですか?
- ツール、データソース、または自律性のレベルが変更されるたびに見直す必要があります。これらは攻撃対象領域(サーフェス)を生み出すイベントだからです。モデルのアップグレードは、一般に思われているほど重要ではありません。アップグレードによって変わるのは発生可能性であり、到達範囲ではないからです。