プロンプトインジェクション──LLMの構造的弱点はなぜ消えないのか

解説

LLMを組み込んだサービスが急速に広がる一方で、プロンプトインジェクションという根本的な脆弱性は未解決のまま残っている。OWASPのLLMアプリケーション脅威ランキングで第1位、NISTは生成AIが抱える最大のセキュリティ上の欠陥と評した。2022年にSimon Willisonが最初にこの問題を指摘してから3年以上が経つが、状況は本質的に変わっていない。


プロンプトインジェクションとは何か

プロンプトインジェクションの本質は、LLMが命令とデータを区別できないという構造的な問題にある。

SQLインジェクションとの対比がわかりやすい。従来のデータベースでは、パラメータ化クエリによってコードとデータを物理的に分離できる。LLMにこの方法は使えない。システムプロンプトもユーザー入力も外部ドキュメントも、すべて同じテキスト空間で同じメカニズムにより処理される。モデルにとってはすべてが等しくトークンの列であり、どれが命令でどれがデータかを構造的に判定する手段がない。

攻撃は大きく二つに分類される。直接インジェクションは、ユーザーが入力欄に悪意ある命令を書き込む手法だ。2023年のBing Chat攻撃──内部コードネームSydneyの開示に成功した事例──が典型例である。間接インジェクションは、LLMが参照する外部データに命令を埋め込む手法であり、より深刻な脅威となる。被害者は普段どおりAIツールを使っているだけで、攻撃者はAIが読むコンテンツを汚染するだけでよい。


主な攻撃手法

直接インジェクションでは、ロール偽装、ペイロード分割、エンコーディング操作、Crescendo攻撃といった手法が用いられる。

ロール偽装は、モデルに対して新たな役割を与えることで安全制約をバイパスする手法だ。DAN(Do Anything Now)が代表例で、制限のないAIとして振る舞うよう指示する。ペイロード分割は、悪意ある命令を複数のメッセージに分けて送信し、個別には無害に見せつつ組み合わせで攻撃を成立させる。エンコーディング操作は、命令をBase64や別言語に変換してフィルタリングを回避しながら、モデルにはデコード・解釈させる手法である。Crescendo攻撃は、多ターンの会話を通じて徐々に話題を誘導し、段階的にモデルの制約を緩和させる。一回のプロンプトでは拒否される内容でも、文脈の積み重ねにより引き出せてしまう。

間接インジェクションの攻撃面はさらに広い。LLMが読むあらゆるコンテンツが攻撃経路になりうる。代表的な手法と事例を挙げる。

隠しテキスト埋め込みは、CSSで人間には不可視だがLLMには読み取れるテキストをWebページに仕込む手法だ。2024年12月、ChatGPTの検索機能がこの手法に脆弱であることが報告された。メールベースの攻撃は、受信メールに隠し命令を埋め込み、AIアシスタントがそのメールを処理した時点で攻撃が発動する。2025年6月のEchoLeakでは、Microsoft 365 Copilotに対しメール一通で内部ファイルを外部送信させるゼロクリック攻撃が実証され、CVE-2025-32711として登録された。ドキュメント汚染は、PDFや共有ファイルに不可視の命令を埋め込む手法で、学術分野では論文PDFに隠しプロンプトを仕込みAI査読の評価を操作する事例が確認されている。ICLR 2024論文を用いた評価では最大100%の受理スコアが達成された。

マルチモーダル攻撃も現実の脅威だ。2024年のFlipAttackは、人間には無害に見える画像にAIが命令として解釈する敵対的パターンを埋め込み、GPT-4V、Claude 3、Geminiのいずれにも有効であることを示した。


なぜ根本的な解決が難しいのか

LLMが入力テキストの意味を解釈すること自体が、このモデルの存在意義である。しかし意味を解釈した時点で、そのテキストはすでにモデルの動作に影響を与えている。命令かデータかの判定に意味解釈が必要であり、意味解釈がすでに命令の実行を含んでいる。この循環構造がプロンプトインジェクションを原理的に解決困難な問題にしている。

デリミタやXMLタグによる分離はヒントにすぎず、モデルに遵守を強制する仕組みがない。Instruction Hierarchy(命令の優先順位をモデルに学習させる防御)のような訓練ベースの対策も、訓練データへのわずか2%のバックドア混入で無効化できることが2025年の研究で示された。防御が導入されるたびに新たな迂回手法が生まれるいたちごっこの構造が、この問題の本質にある。


現時点での対策

完全な解決策は存在しないが、多層防御により攻撃の成功確率と被害を大幅に低減できる。

入力側では、ガードレールLLM(インジェクション検出専用モデル)の導入が有望だ。PromptArmorはGPT-4oをガードレールとして用い、偽陽性率・偽陰性率ともに1%未満を達成した。モデル側では、Instruction Hierarchy、StruQ、SecAlignといった訓練ベースの防御が進んでおり、GoogleやAnthropicも自社モデルでの防御実装と成果を公開している。

だが最も重要なのはアーキテクチャレベルの設計だ。LLMへのアクセス権を最小限に絞る最小権限の原則、信頼できるソースとできないソースの明確な分離、LLM出力を直接実行せず人間の承認を挟む設計、サンドボックス化──これらはインジェクションの成功を前提として被害を限定する思想であり、ゼロトラスト・セキュリティと本質的に同じだ。


今後の展望

LLMエージェントの普及がこの問題の緊急性をさらに高める。テキスト生成だけなら被害は不正確な出力に限定されるが、ツール呼び出し、ファイル操作、API実行の能力を持つエージェントに対するインジェクションは現実世界に物理的な影響を及ぼしうる。

プロンプトインジェクションはLLMのバグではなくアーキテクチャの特性だ。テキストを柔軟に理解するという能力そのものが、悪意ある命令にも従ってしまうリスクを生む。開発者に求められるのは銀の弾丸を探すことではなく、侵入される前提で設計する思考の転換である。


参考文献

[1] OWASP Foundation, “LLM01:2025 Prompt Injection,” OWASP Top 10 for LLM Applications 2025. https://genai.owasp.org/llmrisk/llm01-prompt-injection/

[2] NIST, “Artificial Intelligence Risk Management Framework: Generative AI Profile,” NIST AI 600-1, 2024.

[3] Simon Willison, “Prompt Injection Attacks against GPT-3,” 2022. https://simonwillison.net/2022/Sep/12/prompt-injection/

[4] Kai Greshake et al., “Not What You’ve Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection,” arXiv:2302.12173, 2023.

[5] Yi Liu et al., “Prompt Injection attack against LLM-integrated Applications,” arXiv:2306.05499, 2023.

[6] Mark Russinovich et al., “Great, Now Write an Article About That: The Crescendo Multi-Turn LLM Jailbreak Attack,” arXiv:2404.01833, 2024.

[7] The Guardian, “ChatGPT search tool vulnerable to manipulation through hidden text,” December 2024.

[8] Aim Security, “EchoLeak: The First Real-World Zero-Click Prompt Injection Exploit in a Production LLM System,” arXiv:2509.10540, 2025. (CVE-2025-32711)

[9] Janis Keuper et al., “Prompt Injection Attacks on LLM Generated Reviews of Scientific Publications,” arXiv:2509.10248, 2025.

[10] Eric Wallace et al., “The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions,” arXiv:2404.13208, 2024.

[11] “Backdoor-Powered Prompt Injection Attacks Nullify Defense Methods,” arXiv:2510.03705, 2025.

[12] “PromptArmor: Simple yet Effective Prompt Injection Defenses,” arXiv:2507.15219, 2025.

[13] Sizhe Chen et al., “StruQ: Defending Against Prompt Injection with Structured Queries,” arXiv:2402.06363, 2024.

[14] Sizhe Chen et al., “Aligning LLMs to Be Robust Against Prompt Injection,” arXiv:2410.05451, 2024. (SecAlign)

[15] Chongyang Shi et al., “Lessons from Defending Gemini Against Indirect Prompt Injections,” arXiv:2505.14534, 2025.

[16] Anthropic, “Prompt Injection Defenses Research,” 2025.

コメント

タイトルとURLをコピーしました