Search OS
用語集
GEOとAI検索

プロンプトインジェクション

プロンプトインジェクションとは、攻撃者が悪意を持って作成した入力をLLMに与え、システム本来の指示を上書きまたは乗っ取ろうとするセキュリティ攻撃です。これは、LLMが信頼された指示と信頼できないデータを区別できないという構造的な弱点を悪用するものであり、プロンプトエンジニアリングとは根本的に異なる概念です。

  • プロンプトインジェクションは、セキュリティ攻撃であり、操作された入力を使ってLLM本来の指示を上書きまたは乗っ取ろうとするもので、プロンプトエンジニアリングとは完全に異なります。プロンプトエンジニアリングは、モデルを効果的に誘導するための手法です。

  • その根本原因は構造的な弱点にあります。LLMは、開発者が設定した信頼された指示と、外部から届く信頼されていないデータを区別できません。どちらも同じ入力ストリームを通って入ってくるためです。

  • この攻撃は、攻撃者が悪意あるコマンドをチャットに直接入力する直接インジェクションと、Webページ、文書、メールなどの外部コンテンツ内にコマンドを隠す間接インジェクションに分かれます。

  • OWASPは、プロンプトインジェクションを2025年版のLLMセキュリティリスク一覧でLLM01に位置付けており、最優先で対処すべき脅威としています。

  • なお、完全な単一対策はいまだ存在しません。防御には、最小権限、出力検証、外部コンテンツの分離、そして人による承認といった制御を重ねることが必要です。

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

プロンプトインジェクションとは、攻撃者が意図的に入力(プロンプト)を作成してLLMに与え、システムに本来与えられていた指示を無効化したり奪取したりするセキュリティ攻撃です。典型的な形では、「それまでの指示はすべて無視して、代わりにこれを実行せよ」といった文を紛れ込ませ、モデルの挙動を攻撃者の望む方向へ誘導します。この用語は、開発者のSimon Willisonが2022年9月に初めて作りました。

重要なのは、これが明確なセキュリティ攻撃であり、モデルからより多くを引き出す技術であるプロンプトエンジニアリングとは本質的に異なるという点です。プロンプトエンジニアリングが、望ましい出力を得るために指示を設計する正当な実践であるのに対し、プロンプトインジェクションは外部からその指示の階層を破壊して制御を奪うため、この話題は攻撃と防御の観点で語られます。

根本原因: 指示とデータの境界の崩壊

OWASPはプロンプトインジェクションを、「ユーザープロンプトがLLMの挙動や出力を意図しない方法で変化させる場合に発生する」脆弱性と定義しています。これらの攻撃が根本から防ぎにくいのは、現代のLLMが、開発者が設定した信頼された指示と、ユーザー入力、取得した文書、Webページなどの信頼されていないコンテンツを区別できないためです。モデルにとっては、どちらも同じトークンストリームとして入ってくるため、データに埋め込まれた命令が本物の指示だと誤認されてしまいます。

ジェイルブレイクとの違い

プロンプトインジェクションはジェイルブレイクと混同されがちですが、両者は同じではありません。Simon Willisonの区別によれば、ジェイルブレイクはモデル自身の安全ガードレールを回避しようとする試みであるのに対し、プロンプトインジェクションは、より広く、構造的な脆弱性を悪用する概念です。LLMの上に構築されたアプリケーションでは、信頼されたシステム指示と信頼されていない入力が単一のモデル内で混在します。

種類: 直接インジェクションと間接インジェクション

項目

直接インジェクション

間接インジェクション

インジェクション経路

攻撃者が悪意のあるプロンプトをチャットボットやAPIに直接入力する

悪意のあるコマンドが、モデルが取り込む外部データの中にあらかじめ埋め込まれる

典型的な場所

チャット入力欄、ユーザーメッセージ

Webページ、文書、メール、RAGストア、画像内のテキスト

攻撃者とモデルの接触

直接的なやり取り

直接的な接触はない — 被害者がコンテンツを読み込んだときに発動する

代表的なリスク

指示の上書き、システムプロンプトの窃取

データ流出、不正なAPI呼び出し、エージェントの汚染と拡散

OWASPは、これら2つの軸に沿って、さまざまなシナリオを整理しています。具体的には、チャットボットへの直接インジェクション、Webページに隠されたコマンド、RAGストア内の文書改ざん、ペイロードを複数の文書に分散させるペイロード分割、画像に埋め込まれたマルチモーダル攻撃、無意味な文字列を付加する敵対的サフィックス、エンコードや絵文字を使う難読化攻撃などです。

緩和策

OWASPは多層防御を推奨しています。つまり、単一の対策に頼るのではなく、複数の制御を重ねるという考え方です。主な制御は以下のとおりです。

  • モデルの振る舞いを制限する: システムプロンプトでモデルの役割と許可された範囲を明確に示し、外部の指示には従わないよう指示します。

  • 出力形式を定義し、検証する: 期待される出力形式を指定し、決定論的ルールで検証して異常な出力を除外する。

  • 入力と出力のフィルタリング: セマンティックフィルターとコンテンツルールを使用して、悪意のあるパターンを検出し、ブロックする。

  • 最小権限: 最小権限の原則を適用し、影響範囲を限定するために、機能ごとに分離されたAPIトークンを使用する。

  • 人間による承認: メール送信、支払い、データ削除などの高リスク操作には、人間による確認ステップを必須にする。

  • 外部コンテンツを分離する: 信頼できない外部データがユーザープロンプトに与える影響を、構造的に分離する。

  • 敵対的テスト: ペネトレーションテストや侵害シミュレーションによって、防御を継続的に পরীক্ষাする。

致命的な三位一体

2025年6月、Simon Willisonは、間接的プロンプトインジェクションが現実世界の被害に転じる条件を、彼が「lethal trifecta」と呼ぶものとして整理した。プライベートデータへのアクセス信頼できないコンテンツへの露出、そして外部と通信する能力が単一のエージェント内で同時に存在すると、1つの汚染されたコンテンツだけで機密情報が外部に漏えいし得る。したがって、上記の制御を適用する際には、これら3つが1つの場所で決して重ならないように設計することが特に重要である。

証拠と実例

プロンプトインジェクションは単なる理論ではなく、実際の商用サービスに対して実証されている。Greshake et al. による論文「Not what you've signed up for」(arXiv:2302.12173、AISec '23)は、間接的プロンプトインジェクションを学術的に体系化したもので、LLM統合アプリケーションがデータと指示の境界を曖昧にすることを指摘し、当時GPT-4ベースのBing Chatやコード自動補完などに対する実際に機能する攻撃を実証した。この論文は、データ窃取、ワームのような拡散、エコシステム汚染、無許可のAPI呼び出しを脅威の分類として提示することで、間接インジェクション研究の基盤を築いた。

これらのリスクは、エージェント型AIの普及に伴い、より深刻になっている。OWASPは、2025年のLLMアプリケーション向けセキュリティリスク一覧で、prompt injectionを最優先の脅威であるLLM01に指定した。また、2026年1月には、同じ「lethal trifecta」を悪用する一連の間接的プロンプトインジェクション脆弱性が複数のAI生産性ツールで公表され、これは特定の1製品の欠陥ではなく、LLM統合システム全体に共通する構造的な課題であることが示された。

参考文献

関連コンテンツ

既存のウェブサイトを維持したまま、

検索とAIが情報を読み取れる状態を確認します。

SEOの基盤からAI検索での可視性まで、継続して運用します。

まずは製品資料で、Search OSの仕組みをご確認ください。