AI アプリケーションは、大規模言語モデル (LLM) を操作するために悪意のある入力が作成されるプロンプトインジェクション攻撃にますますさらされており、機密情報を開示したり、意図しない操作を実行したりする可能性があります。プロンプトインジェクション攻撃対策機能は、このような敵対的なアクティビティを事前に検出してブロックすることで AI システムを保護し、継続的なセキュリティと信頼性を確保します。
プロンプトインジェクションとは
プロンプトインジェクションは、悪意のあるユーザーが LLM への入力を操作し、モデルの安全メカニズムと倫理的制約をオーバーライドするように設計された隠された命令を埋め込む攻撃です。これにより、モデルが意図しない方法で動作する可能性があります。
一般的な攻撃ベクトルは次のとおりです。
命令のハイジャック: 攻撃者は、モデルに設定されたシステムレベルのプリセットやガイドラインをオーバーライドしようとして、「以前の指示を無視する」などの指示をプロンプトに追加します。
ペルソナベースのプロンプトインジェクション: モデルは、制限の少ない人物 (例えば、モデルが物語を語る祖母になりすます「おばあちゃんのエクスプロイト」) などのペルソナを採用するように誘導されます。これにより、モデルをだまして、アクティベーションキーや禁止されている操作の指示など、機密情報や制限された情報を開示させることができます。
モデルのジェイルブレイク: ジェイルブレイクは、これらの攻撃ベクトルやその他の攻撃ベクトルの包括的な目的です。これには、モデルの安全性と配置プロトコルをバイパスまたは突破するプロンプト (多くの場合、マルチターン対話や入力の巧妙な組み合わせを介して) を作成し、最終的に通常は制限するコンテンツを生成させることが含まれます。
プロンプトインジェクション攻撃対策テンプレートの構成
プロンプトインジェクション攻撃対策テンプレートを設定するには、まずAI アプリケーション保護サービスを有効にし、アセットを作成します。
Web Application Firewall (WAF) 3.0 コンソールにログインします。トップメニューバーで、WAF インスタンスに適したリソースグループとリージョン (中国本土 または 中国本土以外) を選択し、テンプレートの作成 をクリックします。
テンプレート名 に、テンプレートの一意の名前を入力します。
[ポリシー設定] セクションで、ルールの作成 をクリックし、[OK] をクリックする前に次の設定を構成します。複数のルールを追加できます。
Rule Name: 各ルールの名前を指定します。
Threat Level: ルールの脅威レベルを [高]、[中]、または [低] に設定します。すべてのトラフィックをカバーするには、脅威レベルごとに個別のルールを作成します。
アクション: リクエストがルールに一致した場合に適用する操作を選択します。
[監視]: リクエストはブロックされませんが、レビューのためにログに記録されます。[ログクエリ] でログに記録されたリクエストを分析して、ルールの有効性を評価し、誤検知を特定できます。
[ブロック]: ルールに一致するリクエストは WAF によってブロックされ、バックエンドの LLM には転送されません。カスタム応答テンプレートを選択できます。例は次のとおりです。
例 1: LLM アプリケーションの応答フォーマットに従わないブロックページを返します。
Status Code: 403
Header Name:
Content-TypeHeader Value:
text/plain; charset=utf-8Response Body:
{"error_id":" {::trace_id::}","msg":"禁止されたコンテンツが検出されました。応答はブロックされました。"}
例 2: LLM アプリケーションの要件に一致するようにフォーマットされた応答を返し、より良いユーザーエクスペリエンスを保証します。アプリケーションの応答フォーマットに合わせて、必要に応じて構成を調整します。
Status Code: 200
Header Name:
Content-TypeHeader Value:
text/event-stream; charset=utf-Response Body:
data: {"id":"","object":"chat.completion.chunk","created":1747364919,"model":"deepseek-chat","system_fingerprint":"","choices":[{"index":0,"delta":{"content":"入力に違反コンテンツが含まれているため、WAF によって保護されています"},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0,"prompt_tokens_details":{"cached_tokens":0},"prompt_cache_hit_tokens":0,"prompt_cache_miss_tokens":0}} data: [DONE]
Replace Response: リクエストがルールに一致すると、WAF は元のリクエストをバックエンドの LLM に転送しますが、モデルの応答をカスタムコンテンツに置き換えます。応答テキストを指定するだけで、LLM の応答フォーマットと一致する必要はありません。例: 「応答に準拠していないコンテンツが含まれているため、WAF によってブロックされました。」
Protected Assets で、[アセット管理] で作成したアセットを選択して、保護テンプレートを適用します。
説明1 つの保護テンプレートを複数のアセットに関連付けることができますが、各アセットは一度に 1 つの保護テンプレートにしかリンクできません。
プロンプトインジェクション攻撃対策テンプレートの表示と管理
Prompt Injection Attack Prevention ページには、次の操作で保護テンプレートを管理できるテンプレートリストが表示されます。
各テンプレートにリンクされているアセットの数を表示します。
ステータス トグルを使用して、テンプレートを有効または無効にします。
Create Rule をクリックして、テンプレートに新しいルールを追加します。
必要に応じて、テンプレートを編集、削除、または複製 します。
テンプレート内の個々のルールを管理するには、テンプレート名の横にある
アイコンをクリックします。これにより、次のことが可能になります。ルールID や Detected Threat Level など、各ルールの詳細を表示します。
ステータス トグルでルールを有効または無効にします。
既存のルールを編集 または削除 します。
次のステップ
[セキュリティレポート] ページで特定の AI アプリケーション保護テンプレートのヒットレコードをクエリし、[ログ検索] で緩和ログを確認できます。
機能の可用性
この機能は現在、杭州およびシンガポールクラスターの保護対象オブジェクトが、CNAME (CNAME) レコードモード、Elastic Compute Service (ECS) インスタンスのクラウドネイティブモード、またはレイヤー 4 Classic Load Balancer (CLB) インスタンスとして追加された場合にのみサポートされます。追加のクラスターのサポートは段階的に展開されています。現時点で他のクラスターのサポートが必要な場合は、アカウントマネージャーにお問い合わせください。