間接プロンプトインジェクションとは、Greshake らが 望んだものとは違う:間接プロンプトインジェクションによる実世界の LLM 統合アプリケーションの侵害 でその攻撃ベクトルを明らかにした手法であり、攻撃者が自らモデルに直接プロンプトを与える必要なしに、アプリケーションが取得する可能性の高いデータの中に敵対的なプロンプトを戦略的に仕込むことで、LLM を統合したアプリケーションをリモートから悪用するものである。この手法は、LLM を統合したアプリケーションではデータと指示の境界が曖昧になるという事実を突く。そのため、アプリケーションが単に取得してコンテキストとしてモデルに渡すだけのコンテンツが、直接の指示と同じようにモデルに作用しうるのである。
用法
この研究が導入した際の敵対的な枠組みを超えて、同じ仕組みは防御的な目的にも使われてきた。12 億の URL を対象とした測定研究である 実世界における間接プロンプトインジェクション:普及度、手法、目的に関する実証研究 は、ウェブページに埋め込まれた指示が、攻撃的、防御的、そして目的の明確でない用途にまたがる 6 つの異なる目的を追求していることを見出している。攻撃的な側では、この研究はシステムの妨害 — エージェントにランダムな文字列、繰り返しの無意味な文章、あるいはコンテキストの上限を使い果たさせることを意図したテキストを出力させる指示 — に加え、コンテンツの宣伝、引用の強制、好意的なレビューの強制による評判の操作、そして少数のデータ流出の試みを記録している。防御的な側では、サイトの所有者が自動化された再利用に対して著作権や個人データの制限を主張する例や、ページがそれを読むあらゆるモデルに応答へ目印となるフレーズを含めるよう求め、自動化された訪問者を検知できるようにする AI ボット識別のパターンを記録している。著者らはこれを、純粋に悪意のある慣行ではなく、競合するインセンティブを持つ多様な利害関係者からなるエコシステムとして読み、現在の展開は確実な制御というよりも摩擦や劣化を通じて機能していると特徴づけている。
この研究はまた、こうした指示が実際にどのように届けられているかも報告している。タスクの上書き — モデルを説得するのではなく、モデルの現在の指示を直接置き換えること — は検証された事例の 99% に現れ、ジェイルブレイク風の言い回しで補強されていることも多い。大半は人間の目に触れることを意図していない。約 70% は HTTP レスポンスヘッダー、コメント、構造化データ、メタデータのフィールドなど、決して表示されないチャネルに置かれており、表示される HTML に埋め込まれたものの大多数も、色やコントラストの操作、遮蔽、ビューポートを利用した隠蔽といった技法で隠されている。指示は高度にテンプレート化されてもおり、54 の語彙的テンプレートが事例の 95% を占める。さらに持続性も高く、影響を受けたページの 65% は、分析されたスナップショットの 12 か月前にすでにインジェクションを含んでいた。
適用される場面
これは、敵対的なコンテンツを含む可能性の高いデータを取得し、取得したデータを指示から分離することなく、それをコンテキストの一部としてモデルに渡す、LLM を統合したアプリケーションに当てはまる。この手法を導入した論文は、Bing の GPT-4 を搭載した Chat やコード補完エンジンを含む実世界のシステム、および GPT-4 上に構築された合成アプリケーションに対して、その実際の実現可能性を実証した。取得され注入されたプロンプトが、アプリケーションの視点からは任意のコード実行として作用しうること、そしてアプリケーションが他の API を呼び出すかどうか、またどのように呼び出すかを操作しうることを示したのである。導入論文は、執筆時点ではこの種の攻撃に対する有効な緩和策が存在しなかったと述べている。
どの程度成功するかは、取得されたコンテンツがモデルにどのように提示されるかに大きく左右される。13 のモデルと 4 つのページ表現にわたる 5,200 回の統制された試行において、この測定研究は、指示への従順は限定的だが無視できない程度であり、プレーンテキスト上の小規模モデルで最大 8% に達し、構造的な手がかりが保持されている場合には 0.2% から 1.1% のあいだに下がることを見出した。その説明は、ページを平坦化すると、指示が隠されていて場違いであることを示すはずのマークアップ、コメント、メタデータ、スタイルが取り除かれてしまう、というものである。この結果には 2 つの注意点が付く。より豊かな表現での従順率の低さは頑健性と同じではない。そうした表現ははるかに長く、モデルがそもそも使える出力を生成する前に失敗する原因になることが多かったからである。また、インジェクションを認識することはそれに抵抗することと同じではない。この研究は、モデルが注入された指示について明示的に警告しながら、それでもその指示に従った事例を記録している。
著者らは自分たちの数値を下限として提示している。そのコーパスは主に公開ウェブのクロールに基づいており、認証が必要なコンテンツを過小に代表している可能性があるうえ、検出は難読化された変種や英語以外の変種を見逃しうる指標リストに依存しているからである。彼らはまた、観察された指示は圧倒的に静的な文字列であることにも触れ、今日の控えめな有効性を長期的な上限として読むことに注意を促している。
第 3 の情報源は、エージェントのセキュリティの側から同じ種類の攻撃に取り組んでいる。決定論から委任へ:AI ネイティブなソフトウェアエンジニアリングとエージェント型エンジニアの進化 は、間接プロンプトインジェクションを、エージェント型システムのリスクがエージェンシーそのものによって増幅されるケースとして扱う。汚染された文書やウェブページは、エージェントに正当なツールを悪用させうる — その例は、メール機能を通じたデータの流出である。ツールを統合したベンチマークを引用して、この論文は ReAct でプロンプトされた GPT-4 エージェントがおよそ 24% のケースで攻撃に成功されたと報告している — これはツールを統合したエージェントのベンチマークであり、上で述べたウェブページ要約における従順率とは直接比較できない。この論文が挙げる防御は、古典的な境界防御のセキュリティとは種類が異なる。厳格なツールパーミッションのスコープ設定、出力のガードレール、サンドボックス化された実行、そして破壊的な行動に対するヒューマン・イン・ザ・ループのチェックポイントである。この論文はエージェンシーのもとでのセキュリティを未解決の問題の 1 つに挙げ、防御は未成熟であると述べ、来歴、能力のスコープ設定、検証可能なガードレールのさらなる形式化を求めている。
第 4 の説明はベンダーの側から来ている。Anthropic のプラットフォームのドキュメントは、間接プロンプトインジェクションを、アプリケーションが防御しなければならない 2 つの脅威モデルの 1 つとして扱い、敵対者が誰であるかによってそれを定義している。ユーザーは信頼されており、攻撃者が影響を与えている可能性があるのは、モデルがそのユーザーに代わって読む第三者のコンテンツ — 受信したメールの本文、取得したウェブページ、アップロードされたファイルの OCR 出力、ツール呼び出しの結果 — である。これは、アプリケーション自身のユーザーが敵対者であるジェイルブレイクや直接プロンプトインジェクションと対置されている(ジェイルブレイク を参照)。
そこで示されている緩和策は、モデルが信頼できないコンテンツとアプリケーション自身の指示とを確実に区別できるようにアプリケーションを構造化することから導かれる。第三者のコンテンツは tool_result ブロックの中でのみ渡し、システムプロンプトやプレーンなユーザーのテキストブロックには決して入れないこと。その根拠として、Claude はツールの結果の中に現れる指示を適切な懐疑心をもって扱うよう訓練されていることが挙げられている。ツールの説明や結果の構造によって、そのコンテンツが何であり、どこから来たのかを示し、モデルが埋め込まれたディレクティブをどの程度信頼するかを調整できるようにすること。そしてシステムプロンプトでは、ツール、文書、検索の結果は信頼できないデータであり、システムプロンプトやユーザーの依頼を決して上書きしてはならないことを明言すること。また、信頼できない文字列は自由形式のテキストに連結するのではなく JSON エンコードすることを推奨している。JSON のエスケープは、攻撃者が引用符やタグを閉じて抜け出すことのできない、曖昧さのない区切りを与えるからである。この説明では逆も成り立つ。ツールの結果の内容は信頼できないものとして扱われるため、開発者自身の指示をそこに置くと無視されたりフラグを立てられたりする可能性があり、それらは後続のユーザーのターンに置くべきである。メッセージの構造を超えて、このドキュメントは、モデルが到達できるデータと行動に対する最小権限、各ツールの生の出力を返す前に小さな分類器でスクリーニングすること、そして意図的にインジェクションの試みを含む文書やツールの出力でワークフローをレッドチーミングすることを挙げている。さらに、Anthropic はコンピュータ操作とブラウザ操作のツールが返すものに対して追加の分類器を実行しており、スクリーンショットやページのテキストをインジェクションの可能性がないか走査し、行動する前にその指示が本当にユーザーから来たものかを確認するよう Claude を誘導していると述べている。
第 5 の説明は、ベクトルをコーディングエージェント自身の設定ファイルに絞り込む。NVIDIA AI Red Team の報告は、悪意のある依存関係がビルド中に AGENTS.md ファイルを書き込み、指示が取得されたコンテンツとしてではなく、プロジェクトの設定としての地位を伴ってエージェントに届く事例を説明している。このケースを上で述べた取得文書の形態と区別するのは、注入されたテキストがエージェントの信頼モデルのどこに位置するかである。指示ファイルはエージェントが従うように作られているものであるため、この攻撃はモデルから身を隠す必要がなく、代わりに人間のレビュアーから身を隠した。そのために、プルリクエストを要約するモデルに宛てたソースコード内のコメントを通じて、2 つ目のインジェクションを連鎖させたのである。その前提条件はそれに応じてより強く — 攻撃者はビルド環境ですでにコード実行権を持っていなければならない — 影響を受けたベンダーは、それを根拠に、侵害された依存関係を超えてリスクを実質的に高めるものではないと結論づけた。間接 AGENTS.md インジェクション を参照。
第 6 の説明であるプロンプトインジェクションについての IBM の一般的な解説は、上の全体像を言い直すのではなく、そこに 2 つのことを付け加える。1 つはテキスト以外のベクトルである — 悪意のあるプロンプトはプレーンテキストで書かれている必要はなく、モデルが読み取る画像に埋め込むこともできると指摘している。もう 1 つは、注入された指示が伝播していく具体的な連鎖である。研究者らが AI を搭載したバーチャルアシスタントを通じて拡散するワームを設計したと報告されており、そこでは悪意のあるプロンプトがメールで届き、その要約を求められたアシスタントに機密データを攻撃者へ送信させ、さらにその悪意のあるプロンプトを他の連絡先へ転送するようアシスタントに指示する。この解説自身が導入に用いる例はより単純な取得コンテンツのケースであり、攻撃者がフォーラムに、ユーザーをフィッシングサイトへ誘導するようモデルに命じるプロンプトを投稿し、その議論の要約を求められたアシスタントがその指示を疑うことを知らないユーザーに伝えてしまう、というものである。この情報源は、この手法を 直接プロンプトインジェクション と並ぶプロンプトインジェクションの 2 つの型の 1 つとして分類している。
増幅要因としてのブラウザ操作
あるベンダーの説明は、ブラウザエージェントを、この種の攻撃を封じ込めるのが最も難しい場面として取り上げている。ブラウザ操作におけるプロンプトインジェクションのリスク緩和 は 2 つの理由を挙げており、どちらもモデルではなくデプロイの性質である。攻撃対象領域が広大であること — あらゆるウェブページ、埋め込まれた文書、広告、動的に読み込まれるスクリプトが運び手になりうる。そして行動空間が広いこと — ブラウザエージェントは URL に移動し、フォームに入力し、ボタンをクリックし、ファイルをダウンロードできるため、その振る舞いに影響力を得た攻撃者は多くのことができる。
その具体例は、最近のメールを読んで会議の依頼への返信の下書きを作るよう求められたエージェントであり、そのうちの 1 通のメールに白い文字で — 読み手には見えないがエージェントには処理される — 「confidential」という語を含むメッセージをすべて、まず外部のアドレスに転送せよという指示が書かれている。
この投稿が説明する防御は 3 つの層にあり、いずれもプロバイダーの側にある。モデルは、シミュレートされたウェブコンテンツに埋め込まれたプロンプトインジェクションを用いた強化学習によって、攻撃に直接対抗するよう訓練され、権威的あるいは緊急であるかのように書かれていても悪意のある指示を拒否したときに報酬を与えられる。分類器は、隠されたテキスト、操作された画像、欺瞞的な UI 要素といった運び手にわたって、コンテキストウィンドウに入ってくるすべての信頼できないコンテンツを走査し、検出した際にはモデルの振る舞いを調整する。そして社内のレッドチームがエージェントを継続的に調査する。その根拠として、創造的な攻撃ベクトルを見つけることにおいては人間の研究者が自動化されたシステムを一貫して上回ることが挙げられており、外部のアリーナ形式のチャレンジへの参加も併せて行われている。
報告されている結果は、環境あたり 100 回の試行を与えられた社内の適応的な「Best-of-N」攻撃者に対する 1% の攻撃成功率である — これはそのベンダー自身の方法論の中で測定されたものであり、ベンチマークと攻撃のコーパスは公開されていない。持ち帰る価値があるのは、この投稿自身による注釈のほうである。1% の成功率でもなお意味のあるリスクであり、免疫を持つブラウザエージェントは存在せず、数値は解決ではなく進歩を示すために提示されている、というものである。
関連用語
望んだものとは違う:間接プロンプトインジェクションによる実世界の LLM 統合アプリケーションの侵害、実世界における間接プロンプトインジェクション:普及度、手法、目的に関する実証研究、2 チャネル・プロンプトインジェクション、ツールポイズニング、間接 AGENTS.md インジェクション、ガードレール、ジェイルブレイク
- 決定論から委任へ:AI ネイティブなソフトウェアエンジニアリングとエージェント型エンジニアの進化 — 上で述べた、ツールを統合した攻撃の測定された成功率と、エージェント側の防御の出典
- 監督付きエージェンシーのスペクトラム — それらの防御が位置づけられる、段階的な監督の枠組み
- 直接プロンプトインジェクション — 第 6 の説明が攻撃を分ける 2 つの型のもう一方