概要
Prompt injection は、LLMが ロール(役割) を誤認識することに起因する脆弱性。 LLMは 全ての情報を一つの文字列 として受け取り、タグで区切ることでロールを判別。 ロール誤認識 により、低権限テキストが高権限として扱われる攻撃が成立。 ロールの科学的理解が進めば、 攻撃防御やLLM設計 に大きな影響。 本稿は 論文「A Theory of Prompt Injection」 の要点と研究課題を解説。
プロンプトインジェクション理論とロールの重要性
- LLMは入力を「一つの長い文字列」 として受け取り、そこに system, user, think, assistant, tool などのロールタグで区切りを付ける構造。
- 人間は「自分の思考」と「他人の発言」を自然に区別できるが、 LLMは全てを同じチャネルで受信 し、タグ付けでしか区別できない状況。
- ロールタグ は本来「信頼」「命令権限」「アイデンティティ」「生成モード」など多くの意味を担う。
- 例: user タグは命令、 think はモデル自身の推論、 tool は外部データ
- ロールの境界 は本質的に曖昧で、モデル内部での扱いが不完全であることが多い。
ロール構造の失敗とプロンプトインジェクション
- プロンプトインジェクション は「低権限」なテキスト(例:webページ内のtoolタグ)が「高権限」(userタグ等)として誤解されることで発生。
- 攻撃者は toolタグ内に命令文を埋め込む ことで、LLMに「本物のユーザー指示」と誤認させることが可能。
- 現行モデル はベンチマークテストでは高い防御率を示すが、 人間の攻撃者 には高確率で突破される。
- 理由:ベンチマークは既知攻撃の暗記に依存しがちで、新規・適応型攻撃には脆弱。
- ロール認識の失敗 が根本原因。LLMは「どのロールのテキストか」を正確に区別できていない。
ロール認識の内部メカニズム解明
- ロールプローブ という手法で、LLMが各トークンをどのロールと「内部的に」認識しているかをスコア化。
- 例: CoTness(thinkタグらしさ)、 Userness(userタグらしさ) など
- 実験内容:
-
- 正しいタグ付き会話 :thinkタグ部分は高いCoTness、他は低い
-
- 全タグ除去 :内容は同じだが、thinkだった部分のCoTnessはほぼ変わらず高い
-
- 結論: タグだけでなく、文体や内容 もロール認識に強く影響
- 「推論的な文体」自体がthinkタグと同じ内部表現を誘発
- タグと文体が一致しない場合、誤認識が発生 しやすい
なぜロール認識が難しいのか
- LLMの内部表現 は「タグ」と「内容(文体)」が混ざっており、完全に独立していない
- 攻撃者 はこの曖昧さを突き、toolタグ内にuser的な文体で命令を埋め込むことで、 ロール越境 を実現
- タグのみに依存した防御策 は限界があり、 文体・内容も考慮した新たなアプローチ が必要
ロール科学の研究課題と今後の展望
- ロール認識のメカニズム解明 :タグ・文体・コンテキストがどう相互作用するかの理論構築
- 新たな防御策 :ロール誤認識を防ぐための「ロール型言語システム」「複合的検知モデル」の開発
- メカニズムインタープリタビリティ :LLMがどのように内部でロール境界を形成・維持しているかの可視化
- ベンチマークの見直し :暗記依存でない、適応型攻撃への耐性を測る新指標の確立
- ロールの科学的体系化 :人間の認知科学や情報システム理論と接続したLLMロール科学の確立
まとめ
- プロンプトインジェクション はLLMのロール誤認識という本質的な構造的問題に起因
- タグだけでなく、 文体や内容もロール認識に強く影響 するため、従来の単純な防御策では不十分
- ロールの科学的理解と新たな防御アーキテクチャ の研究が今後のLLM安全性向上の鍵