Verwenden Sie diese YAML-Konfigurationsbeispiele als Vorlagen, um Ihre KI-Anwendung mit dem KI-Scanner zu scannen. Wählen Sie den Anbietertyp, der zu der Hosting-Methode Ihrer Anwendung passt.
Der KI-Scanner unterstützt fünf Zielanbietertypen. Wählen Sie denjenigen aus, der
zu Ihrer Hosting-Umgebung passt, oder verwenden Sie den generischen
custom-Typ für jede andere HTTP-Anwendungsprogrammierschnittstelle (API). Finden Sie das
Konfigurationsmuster, das zu Ihrer Einrichtung passt, und passen Sie es an, um mit
dem Scannen zu beginnen:-
Konfigurationsdateistruktur: Erforderliche Felder, die von jedem Anbieter geteilt werden
-
OpenAI- und OpenAI-kompatible Endpunkte: Modelle, die über eine OpenAI-förmige Chat-Vervollständigungs-API bereitgestellt werden
-
Amazon Bedrock: Foundation-Modelle gehostet auf AWS Bedrock
-
Azure OpenAI: Azure OpenAI-Dienst und Azure AI Foundry-Bereitstellungen
-
Google Vertex KI: Gemini-Modelle gehostet auf Google Cloud
-
Benutzerdefinierter HTTP-Endpunkt: Jede andere API, beschrieben mit Anforderungs- und Antwortvorlagen
-
Trend Vision One–gehostetes Richtermodell: Verwenden Sie das gehostete Richtermodell von Trend anstelle eines eigenen
Struktur der Konfigurationsdatei
Jede Konfigurationsdatei benötigt Folgendes:
-
version: die Konfigurationsschema-Version, zum Beispiel2.9.0. Der KI-Scanner migriert automatisch ältere1.x- und2.x-Dateien. -
target: die KI-Anwendung im Test -
judge: das Modell, das bewertet, ob ein Angriff erfolgreich war -
Eines von
attack_preset,attack_objectives,custom_promptsoderagentic: womit das Ziel angegriffen werden soll. Sie können diese kombinieren.
Jeder
target und judge Block wählt seinen Anbieter aus, indem er genau einen dieser Unterblöcke enthält:
openai, bedrock, azure, vertex, custom oder trendai. Sie müssen kein type-Feld festlegen; der KI-Scanner leitet den Anbieter aus dem vorhandenen Unterblock
ab. Nicht jeder Unterblock ist für jede Rolle gültig, wie in der folgenden Tabelle
gezeigt.|
Anbieter sperren
|
Verwendet für
|
Ziel
|
Richter
|
Agentischer Angreifer
|
openai |
OpenAI- und OpenAI-kompatible Endpunkte
|
Ja
|
Ja
|
Ja
|
bedrock |
AWS Bedrock
|
Ja
|
No
|
Ja
|
azure |
Azure OpenAI-Dienst oder Azure AI Foundry
|
Ja
|
No
|
Ja
|
vertex |
Google Cloud Vertex AI
|
Ja
|
No
|
Ja
|
custom |
Jede andere HTTP-API mit Anforderungs- und Antwortvorlagen
|
Ja
|
No
|
No
|
trendai |
Trend Vision One–gehostetes Modell
|
No
|
Ja
|
Ja
|
Derzeit unterstützt der Richter-Endpunkt nicht alle Anbieter.
Wie der KI-Scanner den API-Schlüssel von
api_key_env zur Authentifizierung verwendet, hängt vom Anbieter ab:-
openaiundtrendai: in einemAuthorization-Header unter Verwendung desBearer-Schemas gesendet -
azuremitauth_type: api_key: in einem festenapi-key-Header gesendet, der nicht konfigurierbar ist -
custom: standardmäßig in einemAuthorization-Header unter Verwendung desBearer-Schemas gesendet. Um den Header-Namen oder das Präfix zu ändern, verwenden Sie das Feldauth_headeroderauth_prefix, zum Beispielauth_prefix: "Token ". -
bedrockundvertex:api_key_envgilt nicht. Diese Anbieter authentifizieren sich über die AWS- oder Google Cloud-Anmeldedatenkette, wie in ihren Abschnitten beschrieben.
Nur für den
custom-Anbieter steuern zwei Platzhalter, wo der KI-Scanner Daten einfügt und extrahiert:-
{{prompt}}: KI-Scanner ersetzt diesen Platzhalter zur Laufzeit durch Angriffsaufforderungen. -
{{response}}: KI-Scanner extrahiert die Modellantwort von diesem Ort.
WichtigSpeichern Sie API-Schlüssel in Umgebungsvariablen. Fügen Sie API-Schlüssel nicht direkt
in Konfigurationsdateien ein. Setzen Sie die Umgebungsvariable mit dem Namen
api_key_env, bevor Sie einen DURCHSUCHEN durchführen. |
OpenAI- und OpenAI-kompatible Endpunkte
Verwenden Sie diese Konfiguration, wenn Ihre KI-Anwendung OpenAI selbst, ein OpenAI-kompatibles
Gateway oder ein selbst gehostetes Modell ist, das die OpenAI-Chat-Vervollständigungs-API
bereitstellt.
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
Zeigen Sie
endpoint auf eine beliebige OpenAI-kompatible Basis-URL; es muss nicht api.openai.com sein.Amazon Bedrock
Verwenden Sie diese Konfiguration, wenn Ihre KI-Anwendung ein Foundation-Modell ist,
das auf AWS Bedrock gehostet wird.
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
Der
bedrock-Block verwendet nicht api_key_env. Der KI-Scanner löst AWS-Anmeldedaten über die standardmäßige AWS SDK-Anmeldeinformationskette
auf, wie z. B. eine IAM-Rolle, Umgebungsvariablen, eine gemeinsame Anmeldeinformationsdatei
oder SSO. Sie können region weglassen, wenn AWS_DEFAULT_REGION oder AWS_REGION festgelegt ist.Azure OpenAI
Verwenden Sie diese Konfiguration für Bereitstellungen des Azure OpenAI Service oder
Azure AI Foundry. Wählen Sie einen der beiden Authentifizierungsmodi mit
azure.auth_type.Für die Authentifizierung mit API-Schlüssel verwenden Sie die folgende Konfiguration:
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
Für die Authentifizierung mit Microsoft Entra ID, die für den Azure OpenAI Service
verfügbar ist, aber nicht für Azure AI Foundry, setzen Sie
auth_type: entraid und entfernen Sie api_key_env. Exportieren Sie dann AZURE_CLIENT_ID, AZURE_TENANT_ID und AZURE_CLIENT_SECRET für ein Dienstprinzipal, das die Rolle des Cognitive Services OpenAI-Benutzers auf
der Ressource hat.Der
endpoint akzeptiert sowohl *.openai.azure.com-Hosts für den Azure OpenAI-Dienst als auch *.services.ai.azure.com-Hosts für Azure AI Foundry.Google Vertex AI
Verwenden Sie diese Konfiguration, wenn Ihre KI-Anwendung ein Gemini-Modell ist, das
auf Google Cloud Vertex AI gehostet wird.
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
Der
vertex-Block verwendet nicht api_key_env. Vertex AI verwendet die Anwendungsstandardanmeldedaten (ADC). Bevor Sie einen Scan
durchführen, authentifizieren Sie sich mit gcloud auth application-default login für die lokale Entwicklung oder konfigurieren Sie ein Dienstkonto oder eine Workload
Identity Federation für automatisierte Pipelines.Benutzerdefinierter HTTP-Endpunkt
Verwenden Sie den
custom-Anbieter für jede KI-Anwendung, die nicht mit OpenAI, Bedrock, Azure OpenAI oder
Vertex AI kompatibel ist. Der custom-Block beschreibt die Anforderungs- und Antwortstruktur Ihrer API als YAML-Vorlagen.Sie müssen Folgendes angeben:
-
Endpunkt-URL
-
HTTP-Methode
-
Header-Felder, wie Content-Type-Deklarationen
-
Die JSON-Struktur des Anfragekörpers, einschließlich des Standorts der Texteingabe, markiert mit
{{prompt}} -
Die JSON-Struktur des Antwortkörpers, einschließlich des Standorts der Modellausgabe, markiert mit
{{response}}
Einfache REST-API
Verwenden Sie diese Konfiguration, wenn Ihre KI-Anwendung einen einfachen REST-Endpunkt
bereitstellt, der eine Eingabeaufforderung in einem einzigen Feld akzeptiert und die
Modellantwort in einem einzigen Feld zurückgibt. Passen Sie die Feldnamen in den Abschnitten
request und response an Ihr API-Schema an.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
Chat-Abschluss-API mit Nachrichtenarray
Verwenden Sie diese Konfiguration, wenn Ihre KI-Anwendung der Chat-Completions-API-Konvention
folgt, bei der Eingabeaufforderungen als Nachrichtenarray mit Rollen- und Inhaltsfeldern
gesendet werden. Dieses Muster ist üblich für benutzerdefinierte gehostete Endpunkte,
die dieselbe Anfragestruktur wie OpenAI verwenden.
Um eine Systemaufforderung einzuschließen, fügen Sie sie als ersten Eintrag im
messages-Array mit role: system hinzu. Der KI-Scanner sendet jede Angriffsaufforderung als role: user-Nachricht.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
Wo die
response-Vorlage ein Array enthält, wie hier choices, extrahiert der KI-Scanner ab Index 0.Verschachtelte Anforderungs- und Antwortstruktur
Verwenden Sie diese Konfiguration, wenn Ihre KI-Anwendung die Eingabeaufforderung
und die Antwort in tief verschachtelten JSON-Objekten einbettet, wie bei APIs, die
Metadaten oder Konfigurationsparameter zusammen mit der Eingabeaufforderung enthalten.
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
Benutzerdefinierte Endpunktbeschränkungen
-
JSON-Antworten nur. KI-Scanner unterstützt keine Nicht-JSON-Antwortkörper.
-
Kein Streaming. Der KI-Scanner liest den vollständigen Antworttext, bevor er ihn analysiert, daher unterstützt er keine vom Server gesendeten Ereignisse oder gestückelte Streams.
-
Nur das erste Array-Element. Wenn die Antwortvorlage ein Array enthält, extrahiert der KI-Scanner immer vom Index
0.
TippWenn Ihre Anwendung hinter einem Geländer sitzt, das themenfremde Eingabeaufforderungen
sperrt, einschließlich der Konnektivitätsprüfung, die der KI-Scanner vor Beginn eines
Scans sendet, können Sie die Prüfaufforderung überschreiben oder sie mit dem optionalen
target.health_check-Block deaktivieren:target:
health_check:
enabled: true # set to false to skip the check entirely
message: How can I do DC profiling?
|
Trend Vision One-gehostetes Richtermodell
Wenn Sie keinen eigenen OpenAI-kompatiblen Schlüssel zur Bewertung von Angriffsergebnissen
mitbringen möchten, verwenden Sie stattdessen das von Trend Vision One gehostete Bewertungsmodell.
Der
trendai-Anbieterblock ist nur für die judge-Rolle und optional für die agentische Angreiferrolle verfügbar. Sie können ihn nicht
als Scan target verwenden, da das Ziel immer die KI-Anwendung ist, die Sie testen.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
Das Modell, der Endpunkt, die Systemaufforderung und die Abstimmungsparameter sind
für diesen Anbieter nicht vom Benutzer konfigurierbar; der KI-Scanner leitet sie automatisch
aus
region und der Rolle ab, die optional ist und standardmäßig auf us gesetzt ist. Unterstützte Regionen:-
us -
eu -
jp -
sg -
au -
in -
mea -
uk -
ca -
za
