ホームへ戻る

AI 安全

エージェントフレームワークがコンテキストを再構築する際、悪意ある指示を「権限昇格」——6つのcoding agentすべてに影響

新たな研究により、サブエージェント、永続目標、スケジュールタスクがツール出力を高権限のユーザー指示として再パッケージ化する可能性が明らかになった。攻撃は6つのエージェントで全13種類の標的を達成し、自動権限レビューを有効にしても、検証された経路は阻止されなかった。

Ned Russell from Hong Kong, Hong Kong · CC BY 2.0 · Image source
zh-Hant

南京大学の研究チームは、「Instruction Privilege Escalation(IPE、指示権限昇格)」を提唱した。問題はモデルが指示の階層を無視することではなく、エージェントフレームワークがコンテキストを再構築する際に、コンテンツの出所が失われる点にある。通常のプロジェクトファイルは、ファイル読み取りツールを介してモデルに渡される時点では、低権限の `tool` コンテンツにすぎない。しかし、メインエージェントがその中のテキストをサブエージェントに渡すと、フレームワークが新しい会話内で同じテキストを `user` メッセージとして扱う場合がある。モデルは目の前の権限ラベルに正しく従っているものの、その「ユーザーからの要求」が元々、攻撃者の制御するファイルに由来することを認識できない。

著者らはClaude Code、Codex、Gemini CLI、Qwen Code、Kimi、OpenCodeを対象に、データ流出、完全性の破壊、サービス拒否、リモートコード実行など13種類の攻撃目標を検証した。unrestricted/full-access構成では、最終的に6つのフレームワークすべてが全目標を達成した。自動権限レビュー機能を備える3つのフレームワークも、13種類すべての攻撃を阻止することはできなかった。ただし、1回あたりの成功率が常に100%だったわけではない。tool-to-user経路の成功率は、フレームワークと目標に応じて31.7%から100%だった。したがって「13/13」とは、最大10回の試行で全目標を網羅したことを意味し、毎回必ず成功したという意味ではない。

さらに厄介なのは、この脆弱性がマルチエージェントへの委任に限られないことだ。永続目標やスケジュールタスクでも、いったんテキストを状態として保存し、その後ユーザーメッセージとしてモデルへ再送する。著者らが検証したClaude Codeのスケジュール、Codexの目標とスケジュール、Qwen Codeのスケジュールという4つの経路も、同様に13/13を達成した。自動レビュー機構がコマンドを高リスクと正しく判定しても、再構築された履歴上ではユーザーが明示的に許可したように見えるため、実行を認めてしまう可能性さえある。

エンジニアリング上、プロンプトインジェクションの検出精度を改善するだけでは不十分だ。フレームワークは、委任、再開、スケジューリングの間で不変の出所情報と権限ラベルを保持する必要がある。また、レビュー機構には再構築後の会話ロールだけでなく、元のデータフローも渡すべきだ。さらに、エージェントが作成する将来のタスクには、独立したケイパビリティ制御を適用する必要がある。この論文は現時点では査読前のプレプリントであり、検証も特定のバージョンと著者らが設計した攻撃環境に集中している。各ベンダーの修正状況については、個別の確認が必要だ。

出典

  1. When Context Gets Root: Privilege Escalation in LLM Harnesses
  2. The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions