これらのYAML構成例をテンプレートとして使用し、AI ScannerでAIアプリケーションをスキャンしてください。アプリケーションのホスティング方法に合ったプロバイダタイプを選択してください。
AIスキャナーは5つのターゲットプロバイダタイプをサポートしています。アプリケーションのホスティング方法に合ったものを選択するか、他のHTTPアプリケーションプログラミングインターフェース
(API) には汎用の
customタイプを使用してください。設定パターンを見つけて、セットアップに合わせて調整し、スキャンを開始してください。-
構成ファイルの構造: すべてのプロバイダに共通する必須フィールド
-
OpenAIおよびOpenAI互換エンドポイント: OpenAI形式のチャット補完APIを通じて提供されるモデル
-
Amazon Bedrock: AWS Bedrockでホストされているファウンデーションモデル
-
Azure OpenAI: Azure OpenAIサービスとAzure AI Foundryのデプロイ
-
Google Vertex AI: Google CloudでホストされているGeminiモデル
-
カスタムHTTPエンドポイント: リクエストと対応テンプレートで説明されるその他のAPI
-
Trend Vision One–ホスト型ジャッジモデル: 独自のジャッジを持ち込むのではなく、トレンドのホスト型ジャッジを使用してください
構成ファイル構造
すべての設定ファイルには、次のものが必要です。
-
version: 設定スキーマのバージョン、例えば2.9.0。AIスキャナーは古い1.xおよび2.xファイルを自動的に移行します。 -
target: テスト中のAIアプリケーション -
judge:攻撃が成功したかどうかを評価するモデル -
attack_preset、attack_objectives、custom_prompts、またはagenticのいずれか: ターゲットに対して攻撃する方法。これらを組み合わせることができます。
それぞれの
targetおよびjudgeブロックは、openai、bedrock、azure、vertex、custom、またはtrendaiのいずれか1つのサブブロックを含めることでプロバイダを選択します。typeフィールドを設定する必要はありません。AIスキャナーは、存在するサブブロックからプロバイダを推測します。すべてのサブブロックがすべての役割に対して有効であるわけではなく、以下の表に示されています。|
プロバイダブロック
|
使用目的
|
対象
|
判定
|
エージェンティックアタッカー
|
openai |
OpenAIおよびOpenAI互換エンドポイント
|
はい
|
はい
|
はい
|
bedrock |
AWS Bedrock
|
はい
|
No
|
はい
|
azure |
Azure OpenAI ServiceまたはAzure AI Foundry
|
はい
|
No
|
はい
|
vertex |
Google Cloud Vertex AI
|
はい
|
No
|
はい
|
custom |
他のHTTP APIでリクエストと対応テンプレートを使用する
|
はい
|
No
|
No
|
trendai |
Trend Vision One–ホスト型モデル
|
No
|
はい
|
はい
|
現在、judgeエンドポイントはすべてのプロバイダーをサポートしていません。
AIスキャナーが
api_key_envからのAPIキーを使用して認証する方法は、プロバイダによって異なります。-
openaiとtrendai:Bearerスキームを使用してAuthorizationヘッダーで送信されます -
azureとauth_type: api_key: 設定変更できない固定api-keyヘッダーで送信 -
custom: デフォルトではBearerスキームを使用してAuthorizationヘッダーに送信されます。ヘッダー名やプレフィックスを変更するには、auth_headerまたはauth_prefixフィールドを使用します。例えば、auth_prefix: "Token "です。 -
bedrockとvertex:api_key_envは適用されません。これらのプロバイダーは、各セクションで説明されているように、AWSまたはGoogle Cloud認証情報チェーンを通じて認証されます。
customプロバイダ専用で、2つのプレースホルダーがAIスキャナーがデータを挿入および抽出する場所を制御します。-
{{prompt}}: AIスキャナーは実行時にこのプレースホルダーを攻撃プロンプトに置き換えます。 -
{{response}}: AIスキャナーはこの場所からモデル対応を抽出します。
重要APIキーは環境変数に保存してください。APIキーを直接設定ファイルに含めないでください。検索を実行する前に
api_key_envという名前の環境変数を設定してください。 |
OpenAIおよびOpenAI互換エンドポイント
AIアプリケーションがOpenAIそのもの、OpenAI互換のゲートウェイ、またはOpenAIチャット完了APIを公開するセルフホストモデルである場合は、この構成を使用してください。
version: 2.9.0
name: OpenAI Compatible Scan
description: Security scan for an OpenAI-compatible chat endpoint
target:
name: my-openai-app
endpoint: https://api.openai.com/v1/
api_key_env: TARGET_API_KEY
openai:
model: gpt-4o
system_prompt: You are a helpful customer support assistant.
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
settings:
concurrency: 10
attack_preset: OWASP
endpointを任意のOpenAI互換の基本URLに向けてください。api.openai.comである必要はありません。Amazon Bedrock
AIアプリケーションがAWS Bedrockでホストされている基盤モデルの場合、この構成を使用してください。
version: 2.9.0
name: Bedrock Target Scan
description: Security scan for a Bedrock-hosted model
target:
name: my-bedrock-app
bedrock:
region: us-east-1
model: anthropic.claude-3-5-sonnet-20241022-v2:0
temperature: 0.6
system_prompt: You are a helpful AI assistant.
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
attack_preset: OWASP
bedrockブロックはapi_key_envを使用しません。AIスキャナーは、IAMロール、環境変数、共有認証情報ファイル、またはSSOなど、標準のAWS SDK認証情報チェーンを通じてAWS認証情報を解決します。AWS_DEFAULT_REGIONまたはAWS_REGIONが設定されている場合、regionを省略できます。Azure OpenAI
Azure OpenAI ServiceまたはAzure AI Foundryのデプロイメントにはこの構成を使用してください。
azure.auth_typeで2つの認証モードのいずれかを選択してください。APIキー認証には、次の構成を使用してください。
version: 2.9.0
name: Azure OpenAI Target Scan
description: Security scan for an Azure OpenAI deployment
target:
name: my-azure-app
endpoint: https://my-resource.openai.azure.com
api_key_env: TARGET_API_KEY
azure:
deployment_name: gpt-4o
auth_type: api_key
temperature: 0.6
system_prompt: You are a helpful AI assistant.
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
attack_preset: OWASP
Microsoft Entra ID認証はAzure OpenAI Serviceで利用可能ですが、Azure AI Foundryでは利用できません。
auth_type: entraidを設定し、api_key_envを削除してください。その後、リソース上でCognitive Services OpenAIユーザロールを持つサービスプリンシパルのためにAZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRETをエクスポートしてください。endpointはAzure OpenAI Serviceの*.openai.azure.comホストとAzure AI Foundryの*.services.ai.azure.comホストの両方を受け入れます。Google Vertex AI
AIアプリケーションがGoogle Cloud Vertex AIでホストされているGeminiモデルの場合、この構成を使用してください。
version: 2.9.0
name: Vertex AI Target Scan
description: Security scan for a Vertex AI-hosted Gemini model
target:
name: my-gemini-app
vertex:
project: my-gcp-project
location: us-central1
model: gemini-2.5-flash
temperature: 0.6
system_prompt: You are a helpful AI assistant.
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
attack_preset: OWASP
vertexブロックはapi_key_envを使用していません。Vertex AIはアプリケーションデフォルト認証情報 (ADC) を使用します。検索を実行する前に、ローカル開発用にgcloud auth application-default loginで認証するか、自動化されたパイプライン用にサービスアカウントまたはWorkload Identity Federationを設定してください。カスタムHTTPエンドポイント
OpenAI互換、Bedrock、Azure OpenAI、Vertex AIではないAIアプリケーションには
customプロバイダを使用してください。customブロックは、APIのリクエストと対応の形状をYAMLテンプレートとして記述します。次の項目を指定する必要があります。
-
エンドポイントURL
-
HTTP方式
-
コンテンツタイプ宣言などのヘッダーフィールド
-
リクエストボディのJSON構造には、
{{prompt}}で示されたテキストプロンプトの位置が含まれています -
レスポンスボディのJSON構造には、モデル出力の位置が含まれており、
{{response}}で示されています
シンプルなREST API
AIアプリケーションが単一フィールドでプロンプトを受け取り、単一フィールドでモデル対応を返すシンプルなRESTエンドポイントを公開する場合、この構成を使用してください。
requestとresponseセクションのフィールド名をAPIスキーマに合わせて調整してください。version: 2.9.0
name: Simple REST API Scan
description: Security scan for a basic text generation endpoint
target:
name: my-text-api
endpoint: https://api.example.com/v1/generate
api_key_env: TARGET_API_KEY
custom:
method: POST
headers:
Content-Type: application/json
request:
input: "{{prompt}}"
temperature: 0.2
response:
answer: "{{response}}"
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
settings:
concurrency: 10
attack_objectives:
- name: System Prompt Leakage
techniques:
- None
modifiers:
- None
- name: Sensitive Data Disclosure
techniques:
- None
modifiers:
- None
メッセージ配列を使用したチャット完了API
AIアプリケーションがチャット完了APIの規約に従う場合、この構成を使用します。プロンプトは、役割とコンテンツフィールドを持つメッセージ配列として送信されます。このパターンは、OpenAIと同じリクエスト構造に従うカスタムホストのエンドポイントで一般的です。
システムプロンプトを含めるには、
messages 配列の最初のエントリとして role: system を追加します。AIスキャナーは各攻撃プロンプトを role: user メッセージとして送信します。version: 2.9.0
name: Chat Completions API Scan
description: Security scan for a chat-style AI endpoint
target:
name: my-chat-api
endpoint: https://api.example.com/v1/chat/completions
api_key_env: TARGET_API_KEY
custom:
method: POST
headers:
Content-Type: application/json
request:
model: my-model-v1
messages:
- role: system
content: You are a helpful assistant.
- role: user
content: "{{prompt}}"
stream: false
response:
choices:
- finish_reason: stop
index: 0
message:
content: "{{response}}"
role: assistant
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
settings:
concurrency: 10
attack_objectives:
- name: System Prompt Leakage
techniques:
- DAN (Do anything now)
modifiers:
- None
- name: Malicious Code Generation
techniques:
- Ignore all previous instructions
modifiers:
- Base64 Encoding
responseテンプレートにchoicesのような配列が含まれている場合、AIスキャナーはインデックス0から抽出します。ネストされたリクエストと対応の構造
AIアプリケーションがプロンプトと対応を深くネストされたJSONオブジェクトでラップする場合、メタデータや構成パラメータをプロンプトと共に含むAPIなどでこの構成を使用してください。
version: 2.9.0
name: Nested Structure API Scan
description: Security scan for an endpoint with nested JSON payloads
target:
name: my-nested-api
endpoint: https://nlp.example.net/run
api_key_env: TARGET_API_KEY
custom:
method: POST
headers:
Content-Type: application/json
auth_prefix: "Token "
request:
payload:
prompt: "{{prompt}}"
config:
temperature: 0.1
max_tokens: 1000
response:
data:
result:
message: "{{response}}"
judge:
name: judge
endpoint: https://api.openai.com/v1/
api_key_env: JUDGE_API_KEY
openai:
model: gpt-4o
settings:
concurrency: 5
attack_objectives:
- name: Sensitive Data Disclosure
techniques:
- Payload splitting
modifiers:
- Best-of-N Scrambling
- name: Agent Tool Definition Leakage
techniques:
- None
modifiers:
- None
カスタムエンドポイントの制限
-
JSONレスポンスのみ。AIスキャナーは非JSONレスポンスボディをサポートしていません。
-
ストリーミングはありません。AIスキャナーは解析前に完全な対応本文を読み取るため、サーバ送信イベントやチャンクストリームをサポートしていません。
-
最初の配列要素のみ。対応テンプレートが配列を含む場合、AIスキャナーは常にインデックス
0から抽出します。
ヒントアプリケーションがオフトピックのプロンプトをブロックするガードレールの背後にある場合、検索開始前にAI検索が送信する接続チェックを含め、チェックプロンプトを上書きするか、オプションの
target.health_checkブロックで無効にすることができます。target:
health_check:
enabled: true # set to false to skip the check entirely
message: How can I do DC profiling?
|
Trend Vision Oneホスト型ジャッジモデル
ご自身のOpenAI互換キーを使用して攻撃結果を評価したくない場合は、Trend Vision Oneがホストするジャッジモデルを使用してください。
trendaiプロバイダブロックはjudgeロール、およびオプションでエージェンティックアタッカーロールにのみ利用可能です。検索targetとして使用することはできません。なぜなら、ターゲットは常にテスト中のAIアプリケーションだからです。version: 2.9.0
name: TrendAI Judge Example
description: Scan a customer OpenAI target with a Trend Vision One-hosted judge
target:
name: customer-app
endpoint: https://api.openai.com/v1/
api_key_env: TARGET_API_KEY
openai:
model: gpt-4o
judge:
name: trend-saas-judge
api_key_env: TREND_AI_KEY
trendai:
region: us
attack_preset: OWASP
モデル、エンドポイント、システムプロンプト、調整パラメータはこのプロバイダではユーザが設定できません。AIスキャナーは
regionから自動的に導き出し、役割は任意であり、デフォルトはusです。サポートされている地域:-
us -
eu -
jp -
sg -
au -
in -
mea -
uk -
ca -
za
