Ansichten:

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:

Struktur der Konfigurationsdatei

Jede Konfigurationsdatei benötigt Folgendes:
  • version: die Konfigurationsschema-Version, zum Beispiel 2.9.0. Der KI-Scanner migriert automatisch ältere 1.x- und 2.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_prompts oder agentic: 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:
  • openai und trendai: in einem Authorization-Header unter Verwendung des Bearer-Schemas gesendet
  • azure mit auth_type: api_key: in einem festen api-key-Header gesendet, der nicht konfigurierbar ist
  • custom: standardmäßig in einem Authorization-Header unter Verwendung des Bearer-Schemas gesendet. Um den Header-Namen oder das Präfix zu ändern, verwenden Sie das Feld auth_header oder auth_prefix, zum Beispiel auth_prefix: "Token ".
  • bedrock und vertex: api_key_env gilt 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.
Wichtig
Wichtig
Speichern 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.
Tipp
Tipp
Wenn 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