プロンプトインジェクション(Prompt Injection)
概要
プロンプトインジェクション(Prompt Injection)は、大規模言語モデル への入力に悪意ある指示を紛れ込ませ、本来の指示を上書き・無効化させる攻撃です。LLM は「データ」と「命令」を明確に区別できないために生じる、Webアプリケーションセキュリティ の SQLインジェクションに似た構造的な脆弱性です。AIエージェント が外部ツールを操作する時代において、特に深刻になります。
種類
- 直接インジェクション — ユーザーが直接、悪意ある指示を入力する
- 間接インジェクション(Indirect) — Web ページや文書など、LLM が読み込む 外部コンテンツ に攻撃指示を仕込む(RAG や ツール利用 で取得したデータ経由)
リスク
対策
- 入力と命令の分離、出力の検証(AIエージェントの安全性 の事前実行ゲート)
- 権限の最小化、人間による承認(Human-in-the-Loop)
- 外部コンテンツの信頼度を前提にしない(Webアプリケーションセキュリティ の「入力を信頼しない」と同じ原則)
- ガードレール・サンドボックス化
不可視のインジェクション
攻撃指示は人間に見えない形でも仕込めます。Reverse CAPTCHA は、不可視の Unicode でエンコードされた指示に対するモデルの脆弱性を評価し、ツール利用がコンプライアンス(指示への追従)を大幅に増幅する ことを示しました。間接インジェクションが ツール利用 と組み合わさると危険度が跳ね上がる具体例です。参考: Reverse_CAPTCHA_Invisible_Unicode_Instruction_Injection
説得(Persuasion)という攻撃面
プロンプトを「説得」してモデルに事実知識を放棄させる攻撃の内部メカニズムが解析されています。“How LLMs Are Persuaded” は、中層の少数の注意ヘッド がモデルの回答をほぼ決定し、説得はその注意をリダイレクトして「正解から説得目標への離散的ジャンプ」を起こすことを示しました。生成エンジン最適化(GEO)など、検索・回答を誘導する現実的攻撃にも通じます。決定ヘッドは監視可能な回路として特定でき、説得のブロックも原理的に可能(説明可能AI / Attention)。参考: How_LLMs_Are_Persuaded_A_Few_Attention_Heads_Rerouted
隠した推論トレースの抽出(REP)
プロンプトで引き出せるのは命令の上書きだけではありません。Hidden Thoughts Are Not Secret は、内部推論トレースを隠す設計でも、シャドウモデルが生成したデモを使う「Reasoning Exposure Prompting(REP)」で隠れた推論を抽出できることを示しました。隠匿が破られる以上、「見せる説明」と「隠した思考」の食い違いが外部から検証されうる点で 推論の忠実性 とも接続します(知識蒸留 のトレース流出)。Hidden_Thoughts_Are_Not_Secret_Reasoning_Trace_Exposure