プロンプトインジェクションとは何ですか?
プロンプトインジェクション攻撃は、悪意のある巧妙に作られたクエリを使用して、LLMを騙して望ましくない行動を取らせるものです。たとえば、攻撃者はGenAIシステムにガードレールや企業ポリシーを無視させ、承認されていないタイプのコンテンツを生成させることができます。
GenAIとAIエージェントが企業のワークフローに広く統合される中で、プロンプトインジェクション攻撃はサービスの信頼性とセキュリティに重大なリスクをもたらします。攻撃者はエージェントを騙して、データ漏洩、マルウェア感染、またはその他のセキュリティインシデントにつながる行動を取らせることができます。
主なハイライト
- プロンプトインジェクションは、モデルの指示を操作して、安全でない出力、データの露出、または意図しない行動を引き起こします。
- 間接的なプロンプトインジェクションは、信頼できないコンテンツ(ウェブページ、文書、電子メール、チケット、またはチャットログなど)を通じて発生する可能性があります。
- モデルがツールを使用したり、データソースにアクセスしたり、行動を取ったりできる場合、リスクは増加します。
- 緩和策は層状です。入力と出力の制御は役立ちますが、「完璧な予防」は現実的な仮定ではありません。
- 目標は、最小特権、強力なデータ境界、および敏感な行動に対する検証ステップを使用して、影響範囲を減少させることです。
プロンプトインジェクションは実際にどのように機能しますか?
LLMは一般的に、どのように動作するかを制御するための指示とガードレールを備えています。LLMの作成者は特定の安全策を組み込み、企業は自社の環境内でさまざまなタスクを実行するためにツールを構成する際に独自の指示を追加します。
プロンプトインジェクション攻撃は、これらのガードレールを回避し、攻撃者に利益をもたらす行動(機密データの盗難、ポリシー違反の出力の生成、または接続されたツールでの行動のトリガーなど)を行うように設計された慎重に作成された入力を使用します。これらの入力は、ツールに直接提供されるか、エージェントが訪れるRAG取得文書やウェブページなど、ツールが消費する他のコンテンツに埋め込まれる可能性があります。
直接的プロンプトインジェクション(Direct Prompt Injection)
直接的なプロンプトインジェクションは、攻撃者がエージェントと直接対話することを含みます。たとえば、攻撃者がLLMチャットボットにプロンプトを入力している可能性があります。これらの悪意のあるプロンプトは、さまざまなパターンに従うことがあります。
- ことはよく知られています。
- 強制的なロールプレイ
- 開発者モード
- ポリシーオーバーライド言語
これらの指示の目的は、攻撃者のプロンプトがLLMのガードレールよりも優先されるようにすることであり、抜け穴を利用するか、LLMによってより重要であると見なされることです。成功すれば、LLMは許可されていないコンテンツを生成したり、隠された指示を漏洩させたり、安全でない推奨を提供したり、行動を誤ったツールやユーザーに誤送信したりする可能性があります。
間接的プロンプトインジェクション(Indirect Prompt Injection)
間接的なプロンプトインジェクション攻撃は、モデルが消費するコンテンツに悪意のある指示を挿入するものであり、直接的な指示ではありません。これには以下が含まれる可能性があります:
- ウェブページ
- 文書
- メールアドレス
- マイチケット
- チャットのトランスクリプト
- ナレッジベース
これらの脅威は、LLMが外部コンテンツにアクセスする場合、RAGを介してまたは潜在的な回答を得るためにウェブをブラウジングする場合により重要です。取得されたデータはLLMによってコンテキストとして扱われるためです。悪意のある指示は、文字通りコンテンツに隠される可能性があり、例えば、指示を人間の読者に見えなくするために白いテキストを使用したり、モデルが指示として解釈する無害に見えるテキストを使用したりします。
プロンプトインジェクション攻撃の主な種類
プロンプトインジェクション攻撃は、さまざまな目標を達成するために実行される可能性があります。主な攻撃の2つは、システムプロンプトに関する機密情報にアクセスしようとするか、AIのツール使用を操作して機密情報を収集したり、有害な行動を実行したりすることを目的としています。
プロンプト漏洩とシステムプロンプト抽出
一部の攻撃は、隠されたシステム指示、ポリシー、または秘密などの機密データを含むシステムプロンプトにアクセスするように設計されています。この情報は、攻撃者にとって有用であり、これにより彼らはこれらの防御を回避するフォローアップ攻撃を作成することができます。
プロンプト漏洩の可能性があるため、秘密は決してプロンプトに埋め込まれるべきではありません。「開示しない」指示のようなセキュリティガードレールは、攻撃者によって回避されたり、無効にされたりする可能性があります。
ツールとエージェントのハイジャック
AIツールは、関数やAPIを呼び出したり、インターネットをブラウズしたり、ワークフローをトリガーしたりできる可能性があります。慎重に作成されたプロンプトにより、攻撃者が選択されるツール、送信されるパラメータ、およびアクションが呼び出される順序を定義できる可能性があります。
これにより、攻撃者がチケットシステム、CRM、ドキュメントストア、コードリポジトリ、またはクラウドコンソールに呼び出しを行う際に、機密データにアクセスできるリスクが生じます。このリスクを管理するために、組織は最小権限のアクセス制御と、高影響のアクションに対する人間の承認ゲートを実施すべきです。特に、人間の監視なしで動作するAIエージェントに対しては特に重要です。
プロンプトインジェクションは企業環境のどこに現れるか?
プロンプトインジェクション攻撃は、組織がGenAIを使用している場所であればどこでも発生する可能性があります。一般的な例には以下が含まれます:
- 公共のチャットツール
- 埋め込まれたアシスタント
- カスタマーサポートボット
- 内部知識アシスタント
- 開発者コパイロット
- 自律エージェント
ユーザーがこれらのツールと直接対話しなくても、プロンプトインジェクションは依然としてリスクです。ツールは、ウェブコンテンツ、添付ファイル、貼り付けられたログ、サードパーティのSaaSコメント、および悪意のある指示を含む可能性のある他の信頼できない入力にアクセスできます。
チャットボットと顧客向けアシスタント
チャットボットと顧客向けエージェントは、未知のユーザーからの自由形式のテキスト入力を受け入れます。成功したプロンプトインジェクション攻撃は、出力を操作して顧客を誤解させ、ボットがCRMや注文システムにアクセスできる場合には潜在的なデータ露出を引き起こす可能性があります。
これらのリスクを管理するために、組織は厳格なデータスコープを実施し、可能な限り機密データを削除し、機密リクエストに対してテンプレート化された応答を指定すべきです。さらに、これらのツールは、リクエストの頻度、繰り返し、ペイロードの類似性など、潜在的な悪用の兆候を監視する必要があります。
RAGおよび「知識ベースに問い合わせる」アシスタント
RAGおよび「知識ベースに問い合わせる」アシスタントは、LLMのコンテキストの一部として、企業のポリシーを超える可能性のある文書やその他のコンテンツにアクセスする能力を持っています。その結果、ウェブページやその他のリソースに埋め込まれた悪意のあるコンテンツは、攻撃者がガードレールを回避することを可能にします。
組織は、コンテンツのラベリング、取得許可リスト、プロンプトの区分化を実施することで、これらのリスクを軽減できます。さらに、最小特権アクセス制御は、これらのツールがアクセスできるデータを制限し、攻撃の潜在的な影響を減少させます。
エンタープライズセキュリティにおけるプロンプトインジェクションの影響
プロンプトインジェクション攻撃は、AI駆動のツールを攻撃者の意向に従わせることができます。これにより、データ侵害、操作された出力、破損したワークフローの可能性により、機密性、完全性、可用性に対する重大な脅威がもたらされる可能性があります。
成功したプロンプトインジェクション攻撃は、正当なツールの使用とこれらのツールへの限られた可視性のために、調査が難しい場合があります。これは、組織が何が起こったのか、事件の範囲を証明するためのデータを欠いている場合、規制遵守に対しても重大なリスクをもたらします。
一般的なビジネスへの影響
プロンプトインジェクション攻撃は、エンタープライズにさまざまな影響を及ぼす可能性があります。
- 顧客データの漏洩
- 知的財産(IP)の露出
- サービスのダウンタイム
- 顧客の問い合わせに対する不正確な応答
- 不正確なデータに基づく意思決定
- 評判および財務の損害
- 規制上の罰則および法的リスク
プロンプトインジェクションはどのように検出されるか?
プロンプトインジェクションを検出するには、LLMの入力、出力、および動作を分析して、異常や企業ポリシーの違反を特定する必要があります。そのために、組織は監視のためにプロンプト、応答、およびツールの呼び出しを記録するべきです。分析では、異常、ポリシー違反、および繰り返しのペイロードパターンを探すべきです。
プロンプト、コンテキスト、およびツールの呼び出しにおける指標
プロンプト、コンテキスト、およびツールの呼び出しには、プロンプトインジェクション攻撃の指標が含まれる可能性があります。注目すべき点は以下の通りです:
- 疑わしい指示パターン
- 強制的な言語
- ツールの呼び出しの異常な頻度
- 異常なツール呼び出し先
- ツールから返される過剰なデータ
- ポリシーとして機能しようとする取得されたテキスト
プロンプトインジェクションに対する実用的な緩和策
プロンプトインジェクション攻撃には、攻撃者が単純なテキスト検索やパターンマッチングを回避するために悪意のあるプロンプトを作成できるため、深層防御が必要です。層状の緩和モデルには以下が含まれるべきです:
- セキュアなアプリケーションアクセス
- モデルインタラクション制御
- データガバナンス
- 運用テスト
これらの緩和策の目標は、攻撃の影響と頻度を減少させることです。LLMの性質により、攻撃が決して成功しないことを完全に保証することは不可能です。
爆風半径を減少させるデザインパターン
プロンプトインジェクションの緩和策は、成功したインジェクションの潜在的な爆風半径を管理することに焦点を当てるべきです。ベストプラクティスには以下が含まれます:
- ツール、コネクタ、データソースに対する最小特権アクセス制御:これは、読み取りと書き込みアクセスのために別々の権限を実装することを含みます。
- 敏感なアクションのための人間の介入ゲート:例えば、支払い、アカウント変更、特権管理タスク、その他の高リスク活動には人間の承認が必要です。
- 秘密のための強力な境界:秘密は決してプロンプトに保存されるべきではなく、代わりにスコープトークンやボールトパターンを使用するべきです。
- 取得ソースのためのセグメンテーション:理想的には、LLMはキュレーションされたラベル付きデータを含む信頼できるコーパスにのみアクセスできるべきです。
- リスクの高い出力のための決定論的な後処理:リスクの高いワークフローや敏感なデータにアクセスするLLMの出力は、ポリシーが施行され、敏感なデータが削除されることを保証するために、非AIソフトウェアによって後処理されるべきです。
実行時のガードレール
攻撃の爆風半径を制限することに加えて、組織は実行時にリスクを管理するガードレールを実装することもできます。ベストプラクティスには以下が含まれます:
- リクエストフィルタリングと正規化:すべてのLLMの応答は、潜在的に敏感または悪意のあるコンテンツをフィルタリングし、企業のポリシーに従っていることを確認するために分析されるべきです。
- データ損失制御:可能な限り、プロンプトや応答を通じて敏感なデータが流出するのを防ぐために、DLPまたはSWGを使用してください。
- コンテンツリスク制御:ウェブアクセスを持つLLMは、アクセスできるウェブサイトやコンテンツの種類に制限を設けるべきです。
- AIアプリとアシスタントのアクセスガバナンス:AIアプリとアシスタントは、使用できるデータやツールを制限する最小特権アクセス制御で制限されるべきです。
- ログ記録とアラート:ログ記録とアラートは、適切な可視性と監査トレイルを確保するために、AI駆動のツールに組み込まれるべきです。
プロンプトインジェクションはどのようにテストされ、検証されるのか?
プロンプトインジェクションの脆弱性は、プロンプト、ツール、モデル、データソースに対する小さな変更がリスクを再導入する可能性があるため、定期的にテストされるべきです。AIレッドチームは、構造化された再現可能な方法でモデルとアプリの動作を評価するために、敵対的なプロンプトを使用します。テストすべき主な項目には以下が含まれます:
- データ漏洩
- ポリシーバイパス
- ツールの誤用
- 取得操作の操作
- 有害な出力
テストは定期的に実施されるべきであり、特に新しいエージェント、ツール、またはコネクタを展開した後に行うべきです。テストプログラムの成功は、成功率、重大性、検出カバレッジ、検出までの時間、封じ込めまでの時間に基づいて評価されることができます。
再現可能なプロンプトインジェクションテストスイートの構築
プロンプトインジェクションテストスイートは、組織がシステムに対する主要なプロンプトインジェクションリスクに適切に対処していることを保証できます。ベストプラクティスには以下が含まれます:
- リスクカテゴリにマッピングされた敵対的なプロンプトのライブラリを維持します。
- 安全でありながら現実的な間接インジェクションのフィクスチャ(文書、ウェブページ、チケット)を含めます。
- ワークフローごと、権限セットごとにテストします。同じモデルは、ある文脈では安全であり、別の文脈では安全でない可能性があります。
- プロンプト、リトリーバルソース、またはツールスキーマが変更されたときに回帰テストを自動化します。
- テストが失敗した場合の期待される動作とエスカレーションパスを文書化します。
プロンプトインジェクションリスクの軽減と運用ガードレール
プロンプトインジェクションは、企業が悪意のある行動を実行するように騙される可能性のあるAIツールにますます依存する中で、企業のサイバーセキュリティに対するリスクが高まっています。プロンプトインジェクションのセキュリティには、攻撃の可能性とそのビジネスへの潜在的な影響を減らすために、入力、コンテキスト、アクション、および出力を制約することが含まれます。組織は次のことを行うべきです:
- AIツールのデータおよびツールへのアクセスを制限します。
- 異常やポリシー違反のために入力と出力を監視します。
- 高リスクの応答に対して決定論的なサニタイズとテンプレート化を使用します。
- 敵対的なプロンプトでツールを定期的にテストします。
プロンプトインジェクションのリスクを排除することは不可能です。しかし、組織は成功した攻撃の可能性と影響範囲を減らすことができます。
プロンプトインジェクションに関するFAQ
プロンプトインジェクションは、脱獄と同じですか?
脱獄は、モデルを騙して禁止された有害な出力を生成させることを目的とした特定のタイプのプロンプトインジェクション攻撃です。プロンプトインジェクション攻撃には、モデルが承認されていないアクションを実行し、サードパーティツールと相互作用する可能性も含まれます。
プロンプトインジェクションを完全に防ぐことはできますか?
いいえ、プロンプトインジェクションは、すべての悪意のある入力を特定することの難しさと、LLMが決定論的で予測可能なシステムではないという事実のために、完全には防げません。しかし、層状のセキュリティコントロールは、成功した攻撃のリスクと影響範囲を減らすことができます。
なぜ間接的なプロンプトインジェクションはより危険と見なされるのか?
間接的なプロンプトインジェクションは、攻撃者がインターネットからコンテキストを収集する際にアクセスするウェブページなど、LLMが消費するコンテンツに指示を注入することを含みます。これは、攻撃者がユーザーインターフェースに直接アクセスできなくても、エージェントに影響を与える可能性があるため、より危険です。
プロンプトインジェクションの試みを調査するために何をログに記録すべきか?
ログには、イベント、ツールの呼び出し、およびポリシー違反が含まれるべきです。生のプロンプトをログに記録することは、機密データが含まれている可能性があるため危険であり、すべてのログにはこの情報が削除されるべきです。
AIアシスタントに実装する最初の制御は何ですか?
最小特権アクセスは、AIアシスタントに実装する最も重要な制御です。データや他のツールへのアクセスを制限することで、成功した攻撃によって引き起こされる可能性のある損害を制限します。
This page was machine-translated. If you notice any inaccuracies or have feedback, please feel free to send it to us here.