基礎
プロンプトインジェクションとは?
言語モデルは、あなたの指示と、読んでいるコンテンツ——ウェブページ、ドキュメント、ツールの結果——に隠された指示を確実に区別できません。プロンプトインジェクションとは実際に何か、より賢いモデルでも完全には解決できない理由、そして起きたときに被害を抑えるものを解説します。
すべての解説 · 最終確認日:
二つの形態:直接と間接
直接的インジェクションは、誰かがチャットに直接指示を打ち込み、システムの意図した挙動を上書きしようとするものです——指示を無視するよう頼んだり、隠された設定を明かすよう求めたり、意図された範囲外で動くよう求めたりします。間接的インジェクションはより深刻な形態です。モデルがあなたに代わって読むコンテンツ——ウェブページ、メール、ファイル、API応答——に埋め込まれた指示で、モデルがそれをコマンドとして扱うことは決して意図されていなかったのに、モデルにはそれをコマンドと確実に区別する方法がありません。
なぜより賢いモデルだけではこれを解決できないのか
問題はモデルの知能が足りないことではなく、アーキテクチャ上のものです。モデルが見るものは、あなたのリクエストであれ、信頼できないソースから取得したテキストであれ、コンテキストウィンドウに入った時点で同じ種類のトークン列になります。「信頼できる指示」と「読むべきコンテンツ」を分ける、改ざん不可能な別のチャンネルは存在しません。より高性能なモデルはよくあるインジェクションの言い回しを認識するのが上手くなるかもしれませんが、十分に偽装された指示——テキストに分散させたり、間接的に言い換えたり、書式に隠したり——は依然としてすり抜けることがあります。根本的なアーキテクチャに強制すべき厳格な境界がないためです。
モデルがツールを呼び出せるようになると危険性は急上昇する
テキストしか生成しないチャットボットでは、インジェクションは悪い、または誤解を招く出力にとどまります——迷惑ではあっても限定的です。モデルがツールを呼び出せるようになると(ツール呼び出しの仕組みを参照)——メール送信、コマンド実行、ファイル変更など——インジェクションの成功は単なる悪い文章ではなく、望まれない現実世界の行動につながり得ます。だからこそ、ウェブ閲覧やドキュメント読み込みとツールアクセスを組み合わせたシステムは、単純なチャットボットよりも明らかに大きなインジェクションリスクを抱えます。
フィルタリングと権限の絞り込みはリスクを減らすが、どちらも取り除きはしない
取得したコンテンツを既知のインジェクションパターンでスキャンすれば一部の試みは捕捉できますが、固定されたパターンリストはどれも、指示を別の言い回しにすることで回避され得ます——これはフィルターであって保証ではありません。実際の被害をより確実に減らすのは、モデルに何を言われたかに関わらず、モデルに許可する行動自体を制限することです。ツールアクセスを狭く絞り込む、破壊的または外部に影響する行動の前に承認を求める、目の前の具体的なタスクより広い恒久的な権限をモデルに決して与えないこと、などです。
モデルが読むコンテンツは信頼できない入力であり、中立的な事実の源ではない
モデルに外部コンテンツ——検索結果、スクレイピングしたページ、ユーザーがアップロードしたドキュメント——を読ませるシステムはどれも、誰も求めていない指示にモデルをさらします。実務上の意味は、そのコンテンツを他のあらゆるソフトウェアにおける未検証のユーザー入力と同じように扱うことです。敵対的な何かが含まれ得ると想定し、インジェクションが起きないと仮定するのではなく、成功したインジェクションの影響範囲が限定されるよう周囲のシステムを設計します。
よくある質問
- プロンプトインジェクションは完全に防げますか?
- いいえ、現在のモデルアーキテクチャでは防げません。ユーザーの指示と、モデルが他所から読むテキストとの間に、改ざん不可能な内蔵の区別が存在しないため、フィルタリングと権限の絞り込みはリスクを減らし被害を抑えられますが、防止を保証することはできません。
- プロンプトインジェクションはジェイルブレイクと同じですか?
- 重なる部分はありますが同一ではありません。ジェイルブレイクは通常、ユーザーが直接モデルに自身のガイドラインを回避させようとすることを指します。プロンプトインジェクションは、ユーザーの知らないうちに、ユーザーに代わってモデルが読むコンテンツに隠された指示を指すことが多いです。
- ツールを使えないチャットボットにとってもプロンプトインジェクションは問題になりますか?
- リスクは小さくなります——インジェクションが成功しても誤解を招く、または操作された回答を生むだけで、テキスト生成を超える行動は取れません。モデルが会話の外で何かを行うツールを呼び出せるようになると、リスクは大幅に高まります。
- インジェクションパターンのコンテンツスキャンだけで十分な保護になりますか?
- 既知の認識可能な試みは捕捉できますが、固定されたパターンリストはどれも言い換えによって回避され得ます。本当の保護は、モデルに許可する行動を制限すること——狭いツール権限と、重大な行動に対する承認の必須化——からも生まれるのであって、検知だけからは生まれません。
読むより試してみる
ClawAIのリサーチサービスは、取得したウェブコンテンツを既知のプロンプトインジェクションパターンでスキャンし、そのコンテンツがモデルに届く前に秘密情報らしきトークンを伏せ字にします。固定されたパターンリストではすべての試みを捕捉できないため、静かにブロックするのではなく、検知した内容を記録します。この検知層は、モデルがそもそも呼び出せるツールを制限することにも依存する防御の一部にすぎません。