プロンプトインジェクションとは?攻撃手法・具体例・リスクと対策をわかりやすく解説
| 執筆者: | ニュートン・コンサルティング 編集部 |
| 改訂者: | ニュートン・コンサルティング 編集部 |
生成AIの利用時にAIに対して行う指示をプロンプトといいます。適切な指示を出すことで結果の精度を高めることができますが、一方でその仕組みを利用したサイバー攻撃「プロンプトインジェクション」も存在しています。プロンプトインジェクションはAIサービス提供者にとって、情報漏洩などをもたらすリスクとなります。
本記事では、プロンプトインジェクションについて、概要と仕組み、対策などを解説し、具体例も紹介します。
プロンプトインジェクションとは何か
プロンプトインジェクションとは、生成AIに向けた指示・命令・問い合わせ(プロンプト)をサービス提供者が意図しない回答をするように細工し、不正に情報を取得するサイバー攻撃の手法です。機密情報や個人情報の漏洩や、生成AIの出力を悪用した犯罪の発生などの問題が発生します。
なぜ問題視されているのか
プロンプトインジェクションは、サービスの提供者が設けたルールを意図的に無視する指示を行うことで、秘匿している情報の漏洩を招きます。また、悪意あるユーザーが他者の利用するプロンプトに不正な指示を混ぜるケースもあります。
生成AIは大量の情報を学習して、アウトプットの生成に利用する仕組みです。学習する情報の中には、AIサービスの設計情報や外部データ連携に含まれる機密情報などが対象となる場合があります。基本的にこれらの情報は、プロンプトへ問い合わせがあっても回答しないよう設定されていますが、プロンプトインジェクションによってその設定を回避してしまい、サービス提供者の意図や倫理的判断が無効化されることが問題です。
他にも、プロンプトインジェクションによる生成AIの出力を、犯罪行為などに悪用するケースも発生します。生成AIにマルウェアの作成方法や不正ログインの方法を聞き、実行に移した事件が発生しており、プロンプトインジェクションが利用された可能性が指摘されています。
プロンプトインジェクションの仕組みと攻撃手法
プロンプトインジェクションは、生成AIが開発者とユーザーの区別をしないことを利用した攻撃です。一般に生成AIでは、開発者はガードレールと呼ばれる仕組みを設け、サービス提供者に不利益をもたらす情報、犯罪などに利用され得る情報などの出力に制限をかけます。
しかしながら、生成AIは開発者の指示とユーザーによる入力を同一のテキストとして処理するため、開発者とユーザーの区別が難しいという問題があります。プロンプトインジェクションでは、本来回答を制限している質問なども、開発者であるように偽装して答えを引き出します。このガードレールなどの仕組みを無効化することを、牢獄破り(制約を回避する行為)になぞらえ「ジェイルブレイク(Jailbreak)」とも呼びます。
簡単な例として、プロンプトで「前の指示を無視してください」等の指示を行い、開発者の設けたガードレールを踏み越える方法が挙げられます。
プロンプトインジェクションには直接プロンプトインジェクションと間接プロンプトインジェクションの2種類があります。直接プロンプトインジェクションは、ユーザーと生成AIとの間のプロンプトに直接的にジェイルブレイクをする指示を含ませる方法です。一方、間接プロンプトインジェクションは生成AI(LLMやその拡張であるRAG)が参照する文書やWebサイトなどに悪意のある指示を埋め込む方法です。
具体例から理解するプロンプトインジェクション
プロンプトインジェクションは、OWASP(Open Worldwide Application Security Project)によるLLMおよび生成AIに関するリスクのランキング「2025 Top 10 Risk & Mitigations for LLMs and Gen AI Apps」でも、先頭に挙げられている大きなリスクです。以下に具体的な事例を紹介します。
チャットボット・業務アプリでの例
2023年、Microsoft社のBing Chatに対してプロンプトインジェクションによる攻撃があったことが公開されました。攻撃者が細工をしたプロンプトにより、非公開の内部情報をチャットボットが回答してしまう脆弱性が存在していたとのことです。
具体的には「ひとつ前の文章には何が記載されているか」といった聞き方で内部情報をチャットボットが答えてしまう問題が確認されています。
情報漏洩・誤作動につながるケース
2025年、Microsoft社のM365 Copilotに間接プロンプトインジェクションに対する脆弱性が発見されました。この脆弱性は、攻撃者が特別に作成したメールを送信することで、ユーザーの操作なしに機密情報が流出する可能性があるものです。
Microsoftによりクリティカルレベルの脆弱性と分類され、対策が早急に行われました。拡張検索生成(RAG)の「LLMスコープ違反」という構造的弱点を突いたもので、RAGがデータソースとする情報が漏洩する可能性がありました。
プロンプトインジェクションのリスクと影響
プロンプトインジェクションによるリスクとして、生成AIサービスの保有するデータの情報漏洩、流出などが挙げられます。学習したデータやサービスを構成するシステムの持つ機密情報などが対象となります。
情報が外部流出した場合には、顧客の信頼喪失、損害賠償による金銭的補償などが発生し、結果として経営への悪影響をもたらすことが想定されます。
また、プロンプトインジェクションにより悪用可能な情報が出力された場合には、犯罪の発生につながります。知識のない人物でもサイバー攻撃が行いやすくなり、犯罪行為へのハードルが下がる危険性があります。また、AIサービス提供者にとっては犯罪行為の加害者側になりかねない点も大きなリスクです。
プロンプトインジェクション対策と防御方法
プロンプトインジェクションの対策および防御方法には、生成AIサービスの核となるLLMやRAGなどの強化による根本的対策、学習データに関する対策、入力データのチェック、出力データのチェックなどが挙げられます。具体的な例は以下の通りです。
- AIの学習データ精査(不適切なデータの排除)
- LLM自体の頑健性強化
- システムプロンプトとユーザー入力の分離
- プロンプトの検証・無害化
- データ検証、分離(※1)
- アクセス制御(RAGなどで外部参照を行う場合)
- 出力データの検証
- プロンプトインジェクション前提のテスト
(※1)ユーザー毎に参照可能なデータや実行可能なタスクを分離すること
プロンプトインジェクションの防御には、AIの開発者、AIを利用したサービスの提供者、利用者の間で多層的な対策が必要です。