🛡️

生成 AI の悪用を防ぐ Azure AI Content Safety の Prompt Shields

2024/05/07に公開

はじめに

2024/5/6 に Defender for Cloud で以下のブログがリリースされました。
https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/securing-cloud-native-applications-in-the-age-of-ai-defender-for/ba-p/4129523

AI 周りはそこまで詳しいわけではないのですが、Defender for Cloud の CNAPP においても 生成 AI (GenAI) アプリの脅威を保護する機能が追加されるということで、ベースとなる Azure AI Content Safety の Prompt Shields を確認してみました。
(Defender for Cloud 側の機能は Limited Preview のため、まだ検証できていません)

Azure AI Content Safety とは?

詳細は以下になるのですが、GenAI の入力もしくは出力をチェックし、有害なコンテンツを除外するためのサービスと理解しました。
https://learn.microsoft.com/ja-jp/azure/ai-services/content-safety/overview

2024/5 時点では以下の機能を有しています。

種類 機能
テキスト分析 API 性的コンテンツ、暴力、憎悪、自傷行為に関するテキストを複数の重大度レベルでスキャンします。
画像分析 API 性的コンテンツ、暴力、憎悪、自傷行為に関する画像を複数の重大度レベルでスキャンします。
プロンプト シールド (プレビュー) 大規模言語モデルに対するユーザー入力攻撃のリスクがないか、テキストをスキャンします。
根拠性検出 (プレビュー) 大規模言語モデル (LLM) のテキスト応答が、ユーザーが提供するソース資料に基づいているかどうかを検出します。
保護されたマテリアルのテキスト検出 (プレビュー) 既知のテキスト コンテンツ (曲の歌詞、記事、レシピ、一部の Web コンテンツなど) がないか、AI によって生成されたテキストをスキャンします。

似たような機能で Azure OpenAI のコンテンツ フィルターがあるのですが、大きな違いとしてコンテンツ フィルターは Azure OpenAI 組み込みの機能である一方、 Azure AI Content Safety は独立したサービスになっています。そのため使用する GenAI は何でもよく、ユーザーから入力を受け取って GenAI に入力を渡す前、もしくは GenAI から出力結果を受け取ってユーザーに表示させる前に Azure AI Content Safety に渡してチェックし、結果を取得するイメージになっている認識です。

プロンプト シールド (Prompt Shields) とは?

プロンプト シールドは GenAI への入力を分析し、想定しない動作や不正なアクセスを目的とする攻撃を検出するための機能です。ユーザー プロンプト攻撃とドキュメント攻撃が検出可能です。詳細は以下になります。
https://learn.microsoft.com/ja-jp/azure/ai-services/content-safety/concepts/jailbreak-detection

動作させてみる

[Azure AI services] > [Content Safety] から [+作成] でリソースを作成します。作成画面ではサブスクリプション、リソース グループ、リージョン、名前、価格レベルを指定します。プロンプト シールドは現在米国東部または西ヨーロッパのみサポートされています。検証のため、価格レベルは Free、 Standard どちらでも問題ないです。


価格レベルの詳細はこちら。
https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/content-safety/#pricing


リソース作成後、Content Safety Studio を開きます。


リソースが指定されていない場合、右上歯車マークから設定画面を開き、作成したリソースを選択します。


メイン画面に戻り、Prompt Shields のパネルをクリックします。


サンプルがあるので、そちらを選択し、[Run test] をクリックします。


攻撃を検出した場合、以下のように表示されます。[View code] をクリックすると、サンプル コードが取得できます。


サンプル コードは API キーとエンドポイントを設定し、user_prompt もしくは documents を指定することで確認できます。


ちなみに品質を担保できるのは現時点では英語のみですが、いちおう日本語でも動きます。

まとめ

企業や組織が GenAI の導入を進める際、ネットワーク層のアクセス保護や認証の強化(マネージド ID の利用)などの通常の PaaS/SaaS 利用時のセキュリティ対策 ( =CSPM でチェック) に加え、GenAI 特有の攻撃を検出できる必要があります (=CWPP で脅威検出) 。Defender for Cloud はこれらを包括的に管理できるようになる見込みのため、Public Preview 後にあらためて検証してみたいと思います。

Microsoft (有志)

Discussion