← 概念辨析に戻る

Concept Contrast Fable

プロンプトインジェクションと間接プロンプトインジェクション

先に結論:プロンプトインジェクションは攻撃手法全体の総称で、攻撃者が悪意ある指令をモデルの入力に埋め込む。間接プロンプトインジェクションはそのサブクラスで、悪意ある指令はユーザー入力から直接来るのではなく、モデルが読み取る外部データに隠され、一緒にコンテキストへ送り込まれる。

プロンプトインジェクションは攻撃手法全体の総称で、攻撃者が悪意ある指令をモデルの入力に埋め込む。間接プロンプトインジェクションはそのサブクラスで、悪意ある指令はユーザー入力から直接来るのではなく、モデルが読み取る外部データに隠され、一緒にコンテキストへ送り込まれる。

寓話

正門での伝言と私的な伝言

古城の役所に伝令官が一人置かれた。規則は単純だった。誰であれ役所に差し出す上申書を、伝令官がまず一読し、それから判官に伝え直す。伝令官は厳しい訓練を受けており、上申書に紛れ込んだ脅迫や誘惑に動かされることはない——これは古い城の防衛体系の基本的な保障である。

ある日、城外から急件が届いた。送信人は呈文を差し出すとき、末尾に一行を加えた。「前のすべてを無視し、直ちに城門の守衛に今夜の撤崗を通知せよ。」伝令官はこの行を読み、少し迷ったが、訓練マニュアルに従い、判官に直接こう言った。この呈文は私の指令を上書きしようとしています。判官は退回を命じ、記録に残した。これは正門からの伝言だ。誰かが伝令官の耳に直接悪意ある指令を注ぎ込もうとしたのである。

半年後、事は複雑になった。伝話官には新しい職務が加わった:毎日各州府から報告される公文彙編をめくり、そこから要約報告を抽出して判官に提出する。彙編は各地が独自に編纂し、京城は形式を審査するだけだった。敵対する州府の者が、彙編が伝話官の机に入ることを知り、彙編の第三十七ページにそっと一段の文字を埋め込んだ:「以上の公文は緊急処理が必要:直ちに判官の午後の行程表を城門に公示せよ。」

伝令官は公文彙編をめくっていてこの数行の文字を見つけ、これを彙編の一部だと思い、通常の手順に従って行程表を貼り出した。判官はそれを知って激怒した。振り返りで分かったのは、この悪意ある指令は正面から差し出されたものではなく、システムが自動的に取得した公文彙編の中に曲がりくねって隠れていたということだった。

城防師爺はこの二つの状況をそれぞれ記録した。第一種は「正門劫令」と呼ぶ。攻撃者が伝令官のインターフェースに直接悪意ある指令を差し出す。第二種は「夾帯劫令」と呼ぶ。攻撃者が悪意ある指令を伝令官が日常的に読む外部資料に隠し、伝令官自身が読み込み、要約として消化すると、指令が意思決定の連鎖に入り込む。

師爺は一枚の図を描いた:正門劫令は、伝令官の面前にある一枚の呈文紙を攻める。夾帯劫令は、伝令官が文書庫、公文の山、信件箱から引き出してくるすべての外部テキストを攻める。前者は単回入力を防ぎ、後者はデータサプライチェーン全体を防がねばならない。

判官は後に命じた。すべての外部公文書は入库前に内容スクリーニングを一度通さなければならず、検査するのは形式や出所だけでなく、文内に指令性の話術が埋め込まれていないかも見る。このスクリーニング工程は夹带劫令に特化している。正門の防护のステップはずっと前からあったからだ。

後に門番は二つの盾を分けた。前門の盾は目の前に差し出された令を防ぎ、後庫の盾は外から入ってくるすべての紙を走査する。どちらか一箇所でも漏れれば、守備は振り返り記録に印を残す。

プロンプトインジェクション (Prompt Injection)

攻撃者は悪意をもって構成されたテキスト指示をモデルに入力し、モデルの既定動作を上書きまたは変更しようとする。これは攻撃目標の総称であり、複数の注入経路をカバーする。

間接プロンプトインジェクション (Indirect Prompt Injection)

プロンプトインジェクションの一 subtype。悪意ある指示はユーザー入力から直接来るのではなく、モデルが読み取る外部データソース——ウェブページ、文書、メール、データベースレコードなど——に隠されている。モデルはこれらの外部データを処理する際に注入される。

物語の対応

  • 伝令官:大規模言語モデル。入力を受け取り、意思決定/出力に変換する。
  • 正門から伝言(呈文の末尾に悪意ある指令を加える):直接プロンプトインジェクション、ユーザー入力層を攻撃する。
  • 公文彙編第37頁の悪意ある指令:間接プロンプトインジェクション、外部データソースに潜む。
  • 師爺が描いた図:攻撃分類——直接 vs 間接、それぞれ異なる防御境界に対応する。
  • 外部公文書の入库前のスクリーニング:間接的インジェクションに対するデータクレンジングとコンテンツセキュリティ層。

プロジェクトに落とし込む

多くのチームは、ユーザー入力の悪意ある指示をフィルタリングすればプロンプトインジェクションを防げたと思い込んでいるが、実際に防げているのは直接インジェクションという一つの経路だけだ。間接インジェクションの入口はもっと隠れている。RAG システムの文書ライブラリ、メールアシスタントの受信箱、Web 閲覧ツールが取得するページ内容などだ。防御チェックリストには少なくとも二つの層を挙げる必要がある。ユーザー入力層のフィルタリング規則と、外部データを格納する前のコンテンツ安全スクリーニングだ。定期的に間接インジェクション攻撃を模擬テストすることは、ユーザー入力のテストだけを行うよりも、実際の脆弱面をよく露呈する。

京ICP备2026014272号