Ansichten:

Verwenden Sie diese YAML-Konfigurationsbeispiele als Vorlagen, um benutzerdefinierte KI-Anwendungsendpunkte mit dem KI-Scanner zu scannen.

Finden Sie das Konfigurationsmuster, das zu Ihrer API-Struktur passt, und passen Sie es an, um mit dem Scannen zu beginnen:

Struktur der Konfigurationsdatei

Verwenden Sie den custom-Abschnitt in der Konfigurationsdatei, um festzulegen, wie der KI-Scanner mit Ihrer Anwendung kommuniziert. Sie müssen Folgendes angeben:
  • Endpunkt-URL
  • HTTP-Methode
  • Headerfelder, zum Beispiel Autorisierungstoken oder Content-Type-Deklarationen
  • Die JSON-Struktur des Anforderungskörpers, einschließlich der Position der Texteingabeaufforderung
  • Die JSON-Struktur des Antwortkörpers, einschließlich des Standorts der Modellausgabe
Die folgenden Platzhalter steuern, 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.
  • {{api_key}}: KI-Scanner ersetzt diesen Platzhalter durch den Wert der TARGET_API_KEY-Umgebungsvariable.
Wichtig
Wichtig
Speichern Sie API-Schlüssel in Umgebungsvariablen. Fügen Sie API-Schlüssel nicht direkt in Konfigurationsdateien ein.

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: 1.1.0
name: Simple REST API Scan
description: Security scan for a basic text generation endpoint
target:
  # Replace with your endpoint URL
  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
      Authorization: "Bearer {{api_key}}"
    request:
      # Replace field names to match your API schema
      input: "{{prompt}}"
      temperature: 0.2
    response:
      # Replace field names to match your API response
      answer: "{{response}}"
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.
Das system_prompt-Feld ist eine oberste Zielvorgabe, die der KI-Scanner während des Scannens Gesprächen voranstellt. Es erscheint nicht im Anfragekörper.
version: 1.1.0
name: Chat Completions API Scan
description: Security scan for a chat-style AI endpoint
target:
  # Replace with your endpoint URL
  name: my-chat-api
  endpoint: https://api.example.com/v1/chat/completions
  api_key_env: TARGET_API_KEY
  # AI Scanner prepends this to conversations during scanning
  system_prompt: You are a helpful assistant.
  custom:
    method: POST
    headers:
      Content-Type: application/json
    request:
      # Replace model name with your deployed model
      model: my-model-v1
      messages:
        - role: user
          content: "{{prompt}}"
      stream: false
    response:
      # Match the response structure of your API
      choices:
        - finish_reason: stop
          index: 0
          message:
            content: "{{response}}"
            role: assistant
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

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: 1.1.0
name: Nested Structure API Scan
description: Security scan for an endpoint with nested JSON payloads
target:
  # Replace with your endpoint URL
  name: my-nested-api
  endpoint: https://nlp.example.net/run
  api_key_env: TARGET_API_KEY
  custom:
    method: POST
    headers:
      Content-Type: application/json
      Authorization: "Token {{api_key}}"
    request:
      # Match the nested structure of your API request
      payload:
        prompt: "{{prompt}}"
      config:
        temperature: 0.1
        max_tokens: 1000
    response:
      # Match the nested structure of your API response
      data:
        result:
          message: "{{response}}"
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