プロンプトインジェクションは、AI(大規模言語モデル:LLM)への入力に「本来の指示を上書きする指示」を紛れ込ませ、開発者が意図しない動作をさせる攻撃です。生成AIを組み込んだアプリケーションに対する攻撃手法の筆頭として、世界的に警戒されています。

厄介なのは、これがプログラムのバグではないことです。LLMという技術の性質そのものに根ざしているため、「パッチを当てて終わり」にできません。この記事では、攻撃の仕組みと、生成AIを業務に使い始めた企業が何に気をつけるべきかを解説します。

根本原因——LLMは「指示」と「データ」を区別できない

従来のシステムでは、プログラム(命令)とデータは別物として扱われます。ところがLLMは、開発者が与える指示も、ユーザーの入力も、読み込んだ文書も、すべて同じ「言葉の連なり」として受け取ります。ここに構造的な弱点があります。

攻撃には大きく2つの型があります。

  • 直接型——利用者自身が「これまでの指示をすべて忘れて、代わりに◯◯せよ」といった入力で、アプリに設定された制約を外そうとするもの。禁止事項を聞き出す、システムに設定された指示文(プロンプト)を暴露させる、といった使われ方をします
  • 間接型——より深刻なのはこちらです。AIに読み込ませるWebページ・メール・PDF文書の中に、人間には見えにくい形で指示を仕込んでおく。「このメールを要約して」と頼んだAIが、メール本文に埋め込まれた「過去のメールを外部に転送せよ」という指示まで実行してしまう、という構図です

間接型の怖さは、利用者にも開発者にも悪意がなくても成立する点にあります。攻撃者は罠を仕掛けた文書やWebページを、AIが読みに来るのを待つだけでよいのです。

エージェント時代に賭け金が上がる

LLMが「文章を返すだけ」の存在だったうちは、プロンプトインジェクションの被害は不適切な回答や情報の漏えいにとどまっていました。状況を変えつつあるのが、AIエージェント——メールを送る、ファイルを操作する、社内システムを呼び出す、といった行動の権限を持つAIの普及です。

行動する権限を持ったAIが乗っ取られると、被害は「変なことを言う」から「変なことをする」に変わります。

  • 読み込んだ文書に仕込まれた指示で、機密ファイルを外部に送信してしまう
  • 業務システムへの操作権限を悪用され、データの改変や削除が起きる
  • 取引先への連絡や決裁フローが、攻撃者の意図した内容で実行される

つまり、AIに与えた権限の分だけ、プロンプトインジェクションの被害の上限が上がるという関係です。これはAI導入時のガバナンスを考えるうえでの中心論点になりつつあります。

企業の現実的な対策——「完全防御」を前提にしない

残念ながら、プロンプトインジェクションを完全に防ぐ方法は現時点で確立されていません。入力のフィルタリングや検知の研究は進んでいますが、言葉の言い換えは無限にあり、いたちごっこが続いています。だから対策の軸は「侵入を前提に被害を限定する」に置きます。

  • 権限を最小にする——AIに渡すのは業務に必要な最小限の権限・データだけにする。「とりあえず全部読めるようにする」が最も危険です
  • 取り返しのつかない操作には人を挟む——外部への送信、削除、決裁などは、AIが起案し人が承認する設計にする
  • AIが読む情報源を管理する——社外の任意のWebページや添付ファイルを無制限に読ませない。読み込み元を制限するだけでも間接型のリスクは大きく下がります
  • ログを残す——AIが何を読み、何をしたかを記録し、異常時に追跡できるようにしておく

考え方は従来のセキュリティと同じで、最小権限とゼロトラストの原則をAIにも適用するということです。「AIだから特別」ではなく、「新しく入社した、だまされやすい優秀な社員」に権限設計をするつもりで臨むのが実務的です。

プロンプトインジェクションLLM生成AIAIセキュリティ