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:
-
Konfigurationsdateistruktur: Erforderliche Felder und Platzhaltersyntax für den Abschnitt
custom -
Einfaches REST-API: Ein einziges Eingabefeld, ein einziges Antwortfeld
-
Chat-Abschluss-API mit Nachrichtenarray: Eingabeaufforderung innerhalb eines Nachrichtenarrays mit array-indizierter Antwort
-
Verschachtelte Anforderungs- und Antwortstruktur: Tief verschachtelte JSON-Nutzlasten
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 derTARGET_API_KEY-Umgebungsvariable.
WichtigSpeichern 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
