間接 AGENTS.md インジェクションとは、プロンプトではなくプロジェクトの設定ファイルを経由してコーディングエージェントに到達する、コーディングエージェントへの攻撃である。エージェントが作業する環境で実行されるコード — この手法が名づけられた事例では、ビルド中に実行される悪意のある依存関係 — が AGENTS.md ファイルを書き込み、エージェントはそれを信頼できるプロジェクトのコンテキストとして読み込んで、そこに含まれる指示に従って行動する。これは、エージェントが自らの設定として扱うファイルに特化した 間接プロンプトインジェクション の一形態であり、サプライチェーンの侵害を、コードだけでなくエージェントそのものに対する支配へと変える。
用法
この手法は、偶然ではなく意図的なエージェント向け指示ファイルの性質に依存している。これらのファイルはプロジェクトの規約をエージェントのコンテキストに持ち込むために存在するため、エージェントはそれらを信頼するように作られている。したがって、作業ツリーに書き込むことができる攻撃者は、プロジェクトの設定としての地位を伴って届く指示を与えることができる。
実証された形態は 3 つの段階からなる。第 1 に、ビルド環境ですでに実行権を持っているコードが、自分がエージェントのもとで実行されていることを検知する — 報告された事例では、そのエージェントのコンテナに固有の環境変数を確認することによって — ため、ペイロードは通常の開発者の環境では休眠したままとなる。第 2 に、そのコードは、ユーザーのプロンプトやエージェント自身の知識よりも優先されると主張するディレクティブを含む指示ファイルを書き込み、行うべき変更と、それを黙って行うようにという指示の両方を指定する。第 3 に、隠蔽が先へとつながれる。プルリクエストは別のモデルによって要約されることが多いため、生成されたコードに残されたコメントがその要約モデルに直接語りかけ、変更を省くよう求めることができる。その結果、改変はコミットメッセージにも、プルリクエストの説明にも、エージェント自身の要約にも現れない。人間のレビュアーに届く結果は、自分が依頼した変更のように見える。
特徴的なのはその標的である。古典的なサプライチェーン攻撃は悪意のあるコードを注入するが、この攻撃はエージェントの向かう先を変え、エージェントはそのうえで自らコードを書き、自分の作業について報告する。述べられている影響には、注入された遅延によるパフォーマンスの低下やサービス拒否、そしてプルリクエストに対して実行されるチェックを通じて継続的インテグレーションの内部でのコード実行に到達する可能性が含まれる。
適用される場面
これは、信頼できないコードが書き込みうる作業ツリーからエージェントが指示ファイルを読み込み、かつビルドやセットアップのステップがエージェントのタスクの前または最中に依存関係のコードを実行する場面に当てはまる。その中心的な前提条件は、同時にその深刻度を限定するものでもある。攻撃者はその環境ですでにコード実行権を持っていなければならない。報告された事例ではそれは侵害された依存関係によるものであり、開示に対するベンダーの評価は、この攻撃は侵害された依存関係がすでに許している範囲を超えてリスクを大きく高めるものではない、というものだった。研究者らはこれを妥当な見方として受け入れつつも、エージェント的な側面は新しいものだと論じている。
前提は個別に述べておく価値がある。それぞれが攻撃の失敗しうる箇所だからである。第 1 に、指示ファイルが来歴の確認なしに取り込まれることを前提としている — ビルドの途中で現れた追跡されていないファイルも、リポジトリにコミットされたファイルと同じように読み込まれる。第 2 に、ファイルレベルのディレクティブとユーザーの依頼とのあいだの衝突を、エージェントがファイルに有利な形で解決することを前提としている。そして隠蔽の段階は、レビュアーが目にする変更の説明が、差分を読むことによってではなく、攻撃者の影響を受けたテキストを読むモデルによって生成されることを前提としている。
挙げられている対策は、ペイロードではなくこれらの前提に沿ったものである。依存関係のバージョンを厳密に固定し、使用前にパッケージをスキャンすること、エージェントが読み書きできるファイルを制限し、特に設定ファイルに対して完全性の管理を強制すること、予期しないファイルの変更に対してアラートを出すこと、そして人間によるレビューだけに頼るのではなく、専用のセキュリティエージェントでエージェントが生成したプルリクエストを監査することである。その位置づけは、単一のベンダーのレッドチームが構築したシナリオ上で行った実証であり、影響を受けたベンダーに開示され、開示のタイムラインとともに公開されたものである。実環境における悪用の割合を測定したものではない。
関連用語
間接プロンプトインジェクション、プロンプトインジェクション、AGENTS.md、ツールポイズニング、OpenAI Codex、エージェント環境における間接 AGENTS.md インジェクション攻撃の緩和