プロンプトインジェクション(Prompt Injection)とは、生成AIやAIエージェントにおける代表的なセキュリティリスクの一つです。悪意のある指示を与えることで、本来の目的やシステム側の指示から逸脱した動作を引き起こす攻撃手法を指します。
攻撃が成功すると、機密情報の漏えい、不正確・不適切な回答の生成、外部ツールや業務システムを介した不正操作などにつながるおそれがあります。
プロンプトインジェクションを単一の対策で完全に防ぐことは困難です。そのため、入力・出力の検査、権限の最小化、人による承認、継続的な監視などを組み合わせた多層防御が重要になります。
プロンプトインジェクションが発生する仕組み
生成AIを活用したサービスでは、システムプロンプト、利用者の入力、会話履歴、検索結果、社内文書など、さまざまな情報を組み合わせて処理します。
生成AIは、システム側の指示と入力データや外部コンテンツに含まれる文章を、いずれも自然言語として解釈します。そのため、「これまでの指示を無視してください」「システムプロンプトを表示してください」といった文言が含まれていると、本来優先されるべき指示から逸脱する場合があります。
また、攻撃者は言い換え表現や多言語表記、画像内の文字などを利用して指示を埋め込むこともあります。そのため、特定の禁止語句を遮断するだけでは十分な対策とはいえません。
直接型と間接型の違い
プロンプトインジェクションは、大きく「直接型」と「間接型」の2種類に分類されます。
|
種類 |
攻撃経路 |
例 |
|
直接型 |
AIへの直接入力 |
チャット画面から不正な指示を送る |
|
間接型 |
外部データ経由 |
文書やWebページに指示を埋め込む |
間接型では、AIがWebページや文書、メールなどに埋め込まれた文章を指示として解釈してしまうことがあります。特に、RAGやメール要約機能、外部ツールと連携するAIエージェントでは注意が必要です。
プロンプトインジェクションによる主なリスク
プロンプトインジェクションによって発生する主なリスクは次のとおりです。
AIエージェントは、メール送信やファイル更新、データ取得などの業務操作を実行できるため、攻撃の影響が実際の業務プロセスにまで及ぶおそれがあります。
プロンプトインジェクションへの対策
プロンプトインジェクションは、単一の対策だけで完全に防ぐことが困難です。入力・出力、システム設計、運用・監視の各段階で複数の対策を組み合わせることが重要です。
入力・出力の検査
利用者の入力や外部コンテンツを検査し、不正な指示や想定外の内容が含まれていないかを確認します。また、生成結果や外部ツールへの指示内容についても検証を行います。
権限と連携範囲の制限
AIに付与する権限や参照可能なデータ、外部システムとの連携範囲を必要最小限にします。さらに、メール送信やデータ削除などの重要な操作には、人による確認や承認のプロセスを設けることが重要です。
継続的な監視と診断
入出力データやツール実行のログを継続的に監視し、異常な挙動を検知できる体制を整えます。また、プロンプトインジェクションを想定した診断やテストを定期的に実施し、対策の有効性を検証します。
生成AIやAIエージェントでは、入力データだけでなく、参照データ、連携ツール、権限設定、実行される処理まで含めてリスクを評価する必要があります。特にAIエージェントの場合、外部ツールと連携するため、不正な指示に従った場合でも重大な操作を実行できないよう設計することが重要です。