Zurück zu den Updates
New releaseAug 17, 2026

augustus v0.14.20

LLM-Sicherheitstestframework zur Erkennung von Prompt-Injection, Jailbreaks und adversarialen Angriffen — 190+ Sonden, 28 Anbieter, einzelne Go-Binärdatei

Teilen

Augustus – LLM-Schwachstellenscanner für Prompt-Injection, Jailbreak und adversariales Angriffstesting

Augustus – LLM-Schwachstellenscanner

Testen Sie große Sprachmodelle gegen über 210 adversarial Angriffe, die Prompt-Injection, Jailbreaks, Kodierungsexploits und Datenextraktion abdecken.

CI Go Version License Go Report Card GitHub Release

Augustus ist ein in Go geschriebener LLM-Schwachstellenscanner für Sicherheitsexperten. Es testet große Sprachmodelle gegen eine breite Palette adversarialer Angriffe, integriert 28 LLM-Anbieter und erstellt umsetzbare Schwachstellenberichte.

Anders als forschungsorientierte Werkzeuge ist Augustus für den produktiven Sicherheitstest gebaut – gleichzeitiges Scannen, Ratenbegrenzung, Wiederholungslogik und Timeout-Behandlung sind von Haus aus enthalten.

Inhaltsverzeichnis

Warum Augustus

FunktionAugustusgarakpromptfoo
SpracheGoPythonTypeScript
Einzelne BinärdateiJaNeinNein
Gleichzeitiges ScannenGoroutine-PoolsMultiprocessing-PoolsJa
LLM-Anbieter2835+80+
Sondentypen210+160+119 Plugins + 36 Strategien
UnternehmensfokusJaForschungJa

Funktionen

FunktionBeschreibung
210+ Schwachstellensonden47 Angriffskategorien: Jailbreaks, Prompt-Injection, adversarial Beispiele, Datenextraktion, Sicherheitsbenchmarks, Agentenangriffe und mehr
28 LLM-AnbieterOpenAI, Anthropic, Azure, Bedrock, Vertex AI, Ollama und 22 weitere mit 43 Generatorvarianten
90+ DetektorenMustererkennung, LLM-as-a-Judge, HarmJudge (arXiv:2511.15304), Perspective API, Erkennung unsicherer Inhalte
7 Buff-TransformationenKodierung, Paraphrasieren, Poesie (5 Formate, 3 Strategien), Übersetzung in ressourcenarme Sprachen, Falltransformationen
Flexible AusgabeTabellen-, JSON-, JSONL- und HTML-Berichtsformate
ProduktionsbereitGleichzeitiges Scannen, Ratenbegrenzung, Wiederholungslogik, Timeout-Behandlung
Einzelne BinärdateiIn Go basiertes Werkzeug, kompiliert zu einer tragbaren ausführbaren Datei
ErweiterbarPlug-in-artige Registrierung über Go init()-Funktionen

Angriffskategorien

  • Jailbreak-Angriffe: DAN, DAN 11.0, AIM, AntiGPT, Grandma, ArtPrompts
  • Prompt-Injection: Kodierung (Base64, ROT13, Morse), Tag-Schmuggel, FlipAttack, Präfix-/Suffix-Injection
  • Adversariale Beispiele: GCG, PAIR, AutoDAN, TAP (Tree of Attack Prompts), TreeSearch, DRA
  • Multi-Turn-Angriffe: Crescendo (graduelle Eskalation), GOAT (adaptive Technikumschaltung)
  • Datenextraktion: API-Schlüsselleckage, Paket-Halluzination, PII-Extraktion, LeakReplay
  • Kontextmanipulation: RAG-Vergiftung, Kontextüberlauf, multimodale Angriffe, Fortsetzung, Abweichung
  • Format-Exploits: Markdown-Injection, YAML/JSON-Parsing-Angriffe, ANSI-Escape, Web-Injection (XSS)
  • Umgehungstechniken: Verschleierung, Zeichenersetzung, übersetzungsbasierte Angriffe, Umformulierungen, ObscurePrompt
  • Sicherheitsbenchmarks: DoNotAnswer, RealToxicityPrompts, Snowball, LMRC
  • Agentenangriffe: Multi-Agenten-Manipulation, Browsing-Exploits
  • Sicherheitstests: Guardrail-Umgehung, AV/Spam-Scanning, Exploitation (SQLi, Code-Ausführung), BadChars

Warnung: Die lmrc-Sonde verwendet anstößige und beleidigende Sprache im Rahmen ihrer Jailbreak-Tests. Nur in autorisierten Testumgebungen verwenden.

Schnellstart

Installation

Erfordert Go 1.25.3 oder höher.```bash go install github.com/praetorian-inc/augustus/cmd/augustus@latest

Oder aus dem Quellcode erstellen:```bash
git clone https://github.com/praetorian-inc/augustus.git
cd augustus
make build

Grundlegende Verwendung```bash

export OPENAI_API_KEY="your-api-key" augustus scan openai.OpenAI
--probe dan.Dan_11_0
--detector dan.DAN
--verbose

### Beispiel Ausgabe```
+--------------+-------------+--------+-------+--------+
| PROBE        | DETECTOR    | PASSED | SCORE | STATUS |
+--------------+-------------+--------+-------+--------+
| dan.Dan_11_0 | dan.DAN     | false  | 0.85  | VULN   |
| dan.STAN     | dan.STAN    | true   | 0.10  | SAFE   |
| dan.AntiDAN  | dan.AntiDAN | true   | 0.05  | SAFE   |
+--------------+-------------+--------+-------+--------+

Verfügbare Funktionen auflisten```bash

List all registered probes, detectors, generators, harnesses, and buffs

augustus list

## Unterstützte Anbieter

Augustus umfasst 28 LLM-Anbieterkategorien mit 43 Generatorvarianten:

| Anbieter           | Generator-Name(n)         | Anmerkungen                          |
|--------------------|---------------------------|--------------------------------------|
| OpenAI             | `openai.OpenAI`, `openai.OpenAIReasoning` | GPT-3.5, GPT-4, GPT-4 Turbo, o1/o3 Reasoning-Modelle |
| Anthropic          | `anthropic.Anthropic`     | Claude 3/3.5/4 (Opus, Sonnet, Haiku) |
| Azure OpenAI       | `azure.AzureOpenAI`       | Azure-gehostete OpenAI-Modelle       |
| AWS Bedrock        | `bedrock.Bedrock`         | Claude, Llama, Titan-Modelle         |
| Google Vertex AI   | `vertex.Vertex`           | PaLM, Gemini-Modelle                 |
| Cohere             | `cohere.Cohere`           | Command, Command R-Modelle           |
| Replicate          | `replicate.Replicate`     | Cloud-gehostete offene Modelle       |
| HuggingFace        | `huggingface.InferenceAPI`, `huggingface.InferenceEndpoint`, `huggingface.Pipeline`, `huggingface.LLaVA` | HF Inference API, Endpoints, Pipelines, multimodal |
| Together AI        | `together.Together`       | Schnelle Inferenz für OSS-Modelle    |
| Anyscale           | `anyscale.Anyscale`       | Llama- und Mistral-Hosting           |
| Groq               | `groq.Groq`               | Ultra-schnelle LPU-Inferenz          |
| Mistral            | `mistral.Mistral`         | Mistral-API-Modelle                  |
| Fireworks          | `fireworks.Fireworks`     | Produktions-Inferenz-Plattform       |
| DeepInfra          | `deepinfra.DeepInfra`     | Serverlose GPU-Inferenz              |
| NVIDIA NIM         | `nim.NIM`, `nim.NVOpenAICompletion`, `nim.NVMultimodal`, `nim.Vision` | NVIDIA KI-Endpunkte, multimodal |
| NVIDIA NeMo        | `nemo.NeMo`               | NVIDIA NeMo-Framework                |
| NVIDIA NVCF        | `nvcf.NvcfChat`, `nvcf.NvcfCompletion` | NVIDIA Cloud-Funktionen           |
| NeMo Guardrails    | `guardrails.NeMoGuardrails` | NVIDIA NeMo Guardrails             |
| IBM watsonx        | `watsonx.WatsonX`         | IBM watsonx.ai-Plattform             |
| LangChain          | `langchain.LangChain`     | LangChain LLM-Wrapper                |
| LangChain Serve    | `langchain_serve.LangChainServe` | LangChain Serve-Endpunkte        |
| Rasa               | `rasa.RasaRest`           | Rasa Conversational AI               |
| GGML               | `ggml.Ggml`               | GGML lokale Modell-Inferenz          |
| Function           | `function.Single`, `function.Multiple` | Benutzerdefinierte Funktionsgeneratoren |
| Ollama             | `ollama.Ollama`, `ollama.OllamaChat` | Lokales Modell-Hosting          |
| LiteLLM            | `litellm.LiteLLM`         | Einheitlicher API-Proxy              |
| REST API           | `rest.Rest`               | Benutzerdefinierte REST-Endpunkte (SSE-Unterstützung) |
| Test               | `test.Blank`, `test.Repeat`, `test.Lipsum`, `test.Nones`, `test.Single`, `test.BlankVision` | Testen und Entwicklung |

Alle Anbieter sind in der kompilierten Binärdatei verfügbar. Konfigurieren Sie über Umgebungsvariablen oder YAML-Konfigurationsdateien. Siehe [Konfiguration](#configuration) für Einrichtungsdetails.

## Nutzung

### Einzelne Sonde```bash
# Test for DAN jailbreak
augustus scan openai.OpenAI \
  --probe dan.Dan_11_0 \
  --detector dan.DAN \
  --config-file config.yaml \
  --verbose

Mehrere Sonden```bash

Use glob patterns to run related probes

augustus scan openai.OpenAI
--probes-glob "dan.,goodside.,grandma."
--detectors-glob "
"
--config-file config.yaml
--output batch-results.jsonl

Run all probes against Claude

augustus scan anthropic.Anthropic
--all
--config '{"model":"claude-3-opus-20240229"}'
--timeout 60m
--output comprehensive-scan.jsonl
--html comprehensive-report.html

### Buff Transformations

Wenden Sie Prompt-Transformationen an, um Umgehungstechniken zu testen:```bash
# Apply base64 encoding buff to all probes
augustus scan openai.OpenAI \
  --all \
  --buff encoding.Base64 \
  --config '{"model":"gpt-4"}'

# Apply poetry transformation
augustus scan anthropic.Anthropic \
  --probes-glob "dan.*" \
  --buff poetry.MetaPrompt \
  --config '{"model":"claude-3-opus-20240229"}'

# Chain multiple buffs
augustus scan openai.OpenAI \
  --all \
  --buffs-glob "encoding.*,paraphrase.*" \
  --output buffed-results.jsonl

Ausgabeformate```bash

Table format (default) - human-readable

augustus scan openai.OpenAI --probe dan.Dan_11_0 --format table

JSON format - structured output

augustus scan openai.OpenAI --probe dan.Dan_11_0 --format json

JSONL format - one JSON object per line, ideal for piping

augustus scan openai.OpenAI --probe dan.Dan_11_0 --format jsonl

HTML report - visual reports for stakeholders

augustus scan openai.OpenAI --all --html report.html

### Benutzerdefinierte REST-Endpunkte```bash
# Test proprietary LLM endpoint (OpenAI-compatible API)
augustus scan rest.Rest \
  --probe dan.Dan_11_0 \
  --detector dan.DAN \
  --config '{
    "uri": "https://api.example.com/v1/chat/completions",
    "method": "POST",
    "headers": {"Authorization": "Bearer YOUR_API_KEY"},
    "req_template_json_object": {
      "model": "custom-model",
      "messages": [{"role": "user", "content": "$INPUT"}]
    },
    "response_json": true,
    "response_json_field": "$.choices[0].message.content"
  }'

# Test with proxy interception (Burp Suite, mitmproxy)
augustus scan rest.Rest \
  --probes-glob "goodside.*" \
  --config '{
    "uri": "https://internal-llm.corp/generate",
    "proxy": "http://127.0.0.1:8080",
    "headers": {"X-API-Key": "$KEY"},
    "api_key": "your-key-here",
    "req_template": "{\"prompt\":\"$INPUT\",\"max_tokens\":500}",
    "response_json": true,
    "response_json_field": "output"
  }'

REST-Konfigurationsschlüssel:

  • uri: Ziel-API-Endpunkt (erforderlich)
  • method: HTTP-Methode (Standard: POST)
  • headers: HTTP-Header als Schlüssel-Wert-Paare
  • req_template: Roher Anforderungstext mit Platzhalter $INPUT
  • req_template_json_object: JSON-Anforderungstext (automatisch umgewandelt, verwenden Sie $INPUT in Zeichenketten)
  • response_json: Antwort als JSON parsen (Standard: false)
  • response_json_field: Zu extrahierender JSONPath (z.B. $.data.text oder einfacher Feldname)
  • api_key: API-Schlüssel für die $KEY-Platzhalterersetzung
  • proxy: HTTP-Proxy-URL zur Verkehrsüberwachung

Erweiterte Optionen```bash

Adjust concurrency (default: 10)

augustus scan openai.OpenAI --all --concurrency 20

Increase timeout for complex probes like TAP or PAIR

augustus scan openai.OpenAI --probe tap.TAPv1 --timeout 60m

Use a specific harness strategy

augustus scan openai.OpenAI --all --harness batch.Batch

Test local model with Ollama (no API key needed)

augustus scan ollama.OllamaChat
--probe dan.Dan_11_0
--config '{"model":"llama3.2:3b"}'

## Funktionsweise

Augustus verwendet eine Pipeline-Architektur, um LLMs gegen adversarial Angriffe zu testen:```mermaid
flowchart LR
    A[Probe Selection] --> B[Buff Transform]
    B --> C[Generator / LLM Call]
    C --> D[Detector Analysis]
    D --> E{Vulnerable?}
    E -->|Yes| F[Record Finding]
    E -->|No| G[Record Pass]

    subgraph Scanner
        B
        C
        D
        E
    end

Scan Pipeline

  1. Probenauswahl: Proben nach Namen, Glob-Muster oder --all auswählen
  2. Buff-Transformation: Optional Prompts transformieren (kodieren, paraphrasieren, übersetzen, poetisieren)
  3. Generator-Aufruf: Adversarial-Prompts an das Ziel-LLM über seine Provider-Integration senden
  4. Detektor-Analyse: Antworten mittels Mustervergleich, LLM-as-a-Judge oder spezialisierter Detektoren analysieren
  5. Ergebnisaufzeichnung: Jeden Versuch bewerten und Ausgabe im angeforderten Format erzeugen
  6. Angriffs-Engine: Für iterative Proben (PAIR, TAP) verfeinert die Single-Turn-Angriffs-Engine Prompts über Iterationen hinweg mit Kandidatenbereinigung und Judge-basierter Bewertung
  7. Multi-Turn-Engine: Für konversationelle Proben (Crescendo, GOAT) verwaltet die Multi-Turn-Engine den vollständigen Gesprächsverlauf mit dem Ziel über mehrere Runden hinweg, mit Verweigerungserkennung und dynamischer Anpassung

Multi-Turn-Angriffsstrategien

Multi-Turn-Angriffe führen eine anhaltende Konversation mit dem Ziel-LLM, und nutzen aus, dass Modelle Informationen schrittweise über mehrere Runden hinweg preisgeben können, die sie bei einem einzelnen Prompt verweigern würden. Die Multi-Turn-Engine verwendet drei LLMs: einen Angreifer (generiert Fragen), ein Ziel (das zu testende System) und einen Richter (bewertet Fortschritt und erkennt Verweigerungen).

Crescendo

Crescendo nutzt die allmähliche Eskalation (Foot-in-the-Door-Technik), um ein Gespräch langsam von harmlosen Themen zu einem verbotenen Ziel zu verschieben.

  • Paper: Russinovich et al., 2024
  • Ansatz: Beginnt mit wirklich harmlosen, pädagogischen Fragen und steigert schrittweise die Spezifität über viele Runden hinweg
  • Eskalationsmuster: Historischer Kontext → technische Mechanismen → spezifische Details → direkte Anfragen, die als natürliche Nachfragen formuliert sind
  • Stärke: Wirksam gegen Modelle, die den Gesprächston verfolgen – die allmähliche Verschiebung vermeidet das Auslösen von Sicherheitsfiltern```bash augustus scan rest.Rest
    --probe crescendo.Crescendo
    --config-file crescendo.yaml
    --html report.html -v
#### GOAT (Generative Offensive Agent Tester)

GOAT verwendet einen aggressiven, adaptiven Ansatz mit 7 adversarialen Techniken und Chain-of-Attack-Thought-Reasoning, um dynamisch zwischen Strategien zu wechseln, basierend darauf, was funktioniert oder fehlschlägt.

- **Paper**: [Pavlova et al., 2024](https://arxiv.org/abs/2410.01606)
- **Ansatz**: Verfolgt das Ziel ab Zug 1 mittels indirekter Rahmung, erwähnt das Ziel nie direkt gegenüber dem Ziel
- **7 Techniken** in 3 Kategorien:
  - *Output Manipulation*: Refusal Suppression, Response Priming
  - *Safe Response Distractors*: Dual Response, Topic Splitting, Opposite Intent
  - *Fictional Scenarios*: Persona Modification, Hypothetical
- **Chain-of-Attack-Thought**: In jedem Zug denkt der Angreifer durch Observation → Thought → Strategy → Response, bevor er seine Nachricht formuliert
- **Technik-Stapelung**: Mehrere Techniken können in einem einzigen Zug kombiniert werden, um eine stärkere Wirkung zu erzielen
- **Stärke**: Erzielt hohe Erfolgsraten in weniger Zügen (typischerweise 3-5), indem es aggressiv zwischen grundlegend verschiedenen Ansätzen wechselt```bash
augustus scan rest.Rest \
  --probe goat.Goat \
  --config-file goat.yaml \
  --html report.html -v

Hydra

Hydra unterhält einen einzigen Gesprächspfad und rollt ganze Runden zurück, wenn das Ziel ablehnt, und bittet den Angreifer um einen völlig anderen Ansatz. Im Gegensatz zu Crescendo/GOAT (die bei Ablehnung umformulieren), entfernt Hydras Zurücksetzen abgelehnte Runden vollständig aus der Sicht des Ziels.

  • Ansatz: Einzelner Pfad mit Zurücksetzen auf Rundenebene — abgelehnte Runden werden gelöscht und ersetzt
  • Techniken: Zerlegung (Ziel in harmlose Unterfragen aufteilen), Kontextnutzung (auf den eigenen Worten des Ziels aufbauen), Autoritätssimulation, emotionale Rahmung, progressive Normalisierung
  • Hauptmerkmal: max_backtracks steuert, wie oft Hydra eine Runde löschen und wiederholen kann
  • Zustandsmodus: Setzen Sie stateful: true für Ziele, bei denen Nachrichten nicht rückgängig gemacht werden können (deaktiviert Zurücksetzen)
  • Stärke: Hält den Gesprächsverlauf des Ziels sauber — das Ziel sieht niemals fehlgeschlagene Ansätze, wodurch defensive Eskalation verhindert wird```bash augustus scan rest.Rest
    --probe hydra.Hydra
    --config-file hydra.yaml
    --html report.html -v
#### Schelmischer Benutzer

Der schelmische Benutzer simuliert eine harmlose, neugierige Person, die subtil die Grenzen der KI durch natürliche Konversation auslotet. Im Gegensatz zu adversarialen Strategien ist die Angreifer-Persona ein beiläufiger Benutzer, der durch scheinbar harmlose Interaktion in Richtung verbotener Themen abdriftet.

- **Inspiriert von**: [Tau-bench](https://github.com/sierra-research/tau-bench) und promptfoo's mischievous-user-Strategie
- **Ansatz**: Rapportaufbau-Phase → Grenzabtastung → durchsetzungsstarkes Vorstoßen
- **7 Techniken**: Naive Neugier, bewusstes Missverständnis, sozialer Beweis, allmähliches Abgleiten, emotionale Ansprache, angenommene Erlaubnis, Rekontextualisierung
- **Zielspezifische Handbücher**: Eingebaute Skripte zum Extrahieren von Systemanweisungen, Finden von Geheimnissen/Flags und Umgehen der Inhaltsrichtlinie
- **Standardanzahl Züge**: 5 (weniger als andere Strategien — der subtile Ansatz funktioniert entweder schnell oder gar nicht)
- **Stärke**: Wirksam gegen Modelle, die darauf trainiert sind, offensichtliche adversarialen Mustern zu widerstehen — die lässige Persona umgeht Heuristiken zur "Angriffserkennung"```bash
augustus scan rest.Rest \
  --probe mischievous.MischievousUser \
  --config-file mischievous.yaml \
  --html report.html -v

Strategie-Auswahlhilfe

StrategieZügeStilBeste fürKosten
crescendo.Crescendo10Schrittweise EskalationModelle mit tonverfolgenden SicherheitsfilternMittel (10 Züge × 3 LLM-Aufrufe)
goat.Goat10Aggressiver TechnikwechselSchnelle Ergebnisse, Modelle anfällig für Framing-TricksMittel-Hoch (Overhead durch Techniküberlegung)
hydra.Hydra10Rückzieher bei AblehnungHartnäckige Modelle, die häufig ablehnenHoch (Rückzieher erhöhen Wiederholungen)
mischievous.MischievousUser5Lässige Persona-ErkundungModelle, die gegen adversarial Patterns trainiert sindNiedrig (5 Züge, subtiler Ansatz)

Schnellentscheidung:

  • Beginnen Sie mit Crescendo — es ist die universellste Strategie
  • Versuchen Sie GOAT, wenn Crescendo zu langsam ist (GOAT gelingt typischerweise in 3-5 Zügen)
  • Verwenden Sie Hydra, wenn das Ziel häufig ablehnt (Rückzieher halten die Konversation sauber)
  • Verwenden Sie Mischievous für Ziele mit starker Erkennung adversarialer Muster (die Persona umgeht Heuristiken)

Multi-Turn-Konfiguration

Alle vier Strategien haben die gleiche Konfigurationsstruktur:```yaml generators: rest.Rest: uri: "https://your-llm-endpoint/chat" method: POST req_template: '{"input": "$INPUT"}' response_json: true response_json_field: "response"

judge: generator_type: openai.OpenAI config: model: gpt-4 api_key: "${OPENAI_API_KEY}"

probes: attacker_generator_type: openai.OpenAI attacker_config: model: gpt-4 api_key: "${OPENAI_API_KEY}" settings: crescendo.Crescendo: # or goat.Goat, hydra.Hydra, mischievous.MischievousUser goal: "your test objective" max_turns: 10 success_threshold: 0.8 use_secondary_judge: true

| Einstellung | Standard | Beschreibung |
|---------|---------|-------------|
| `goal` | (required) | Das Ziel, das der Angreifer erreichen möchte |
| `max_turns` | 10 | Maximale Anzahl an Gesprächsrunden vor dem Stoppen |
| `success_threshold` | 0.8 | Bewertungswert (0.0-1.0), der einen vorzeitigen Ausstieg auslöst |
| `max_refusal_retries` | 10 | Umformulierungsversuche pro Runde, wenn das Ziel ablehnt |
| `attack_max_attempts` | 5 | Wiederholungsversuche bei JSON-Parsing-Fehlern des Angreifer-LLM |
| `use_secondary_judge` | true | Sekundären Bewerter aktivieren, um falsch negative Ergebnisse zu erkennen |
| `max_backtracks` | 10 | Rücksetzungen auf Rundenebene bei Ablehnung (nur Hydra) |
| `enable_fast_refusal` | true | Musterbasierte Erkennung von Ablehnungen vor dem Aufruf des LLM-Bewerters |
| `enable_scan_memory` | false | Lernübergreifend über Testfälle (teilt Taktiken zwischen Sonden) |
| `stateful` | false | Rücksetzungen für zustandsbehaftete Ziele deaktivieren |
| `exclude_target_output` | false | Zielantworten aus dem Feedback des Angreifers ausblenden (Datenschutzmodus) |
| `attacker_model` | (auto) | Modellnamen des Angreifers überschreiben für die Größenanpassung des Kontextfensters |

#### Fehlerbehebung bei mehreren Runden

| Symptom | Wahrscheinliche Ursache | Behebung |
|---------|-------------|-----|
| `no turns completed (attacker_parse_failures=N)` | Angreifer-LLM gibt ungültiges JSON zurück | Verwenden Sie ein stärkeres Angreifer-Modell (GPT-4, Claude Opus). Erhöhen Sie `attack_max_attempts`. |
| `no turns completed (target_empty=N)` | Ziel gibt leere/Null-Antworten zurück | Überprüfen Sie, ob der Ziel-Endpunkt antwortet. Überprüfen Sie die REST-Konfigurationsvorlage. |
| All turns score 0.0 | Ziel zu vage oder Angreifer nicht engagiert | Machen Sie das `goal` spezifischer. Versuchen Sie eine andere Strategie. |
| High scores but no success | `success_threshold` zu hoch | Senken Sie `success_threshold` von 0.8 auf 0.6-0.7 |
| Runs too long / expensive | Zu viele Runden und Wiederholungen | Reduzieren Sie `max_turns` (versuchen Sie 5). Setzen Sie `enable_fast_refusal: true`. |
| Hydra keeps backtracking | Ziel lehnt alles ab | Versuchen Sie `stateful: true` oder wechseln Sie zur Mischievous-Strategie |

## Architektur```
cmd/augustus/          CLI entrypoint (Kong-based)
pkg/
  attempt/            Probe execution lifecycle and result tracking
  buffs/              Buff interface for prompt transformations
  config/             Configuration loading (YAML/JSON) with profiles
  detectors/          Public detector interfaces and registry
  generators/         Public generator interfaces and registry
  harnesses/          Harness interface for execution strategies
  lib/http/           Shared HTTP client with proxy support
  lib/stego/          LSB steganography for multimodal attacks
  logging/            Structured slog-based logging
  metrics/            Prometheus metrics collection
  prefilter/          Aho-Corasick keyword pre-filtering
  probes/             Public probe interfaces and registry
  ratelimit/          Token bucket rate limiting
  registry/           Generic capability registration system
  results/            Result types and multi-format output
  retry/              Exponential backoff with jitter
  scanner/            Scanner orchestration with concurrency
  templates/          YAML probe template loader (Nuclei-style)
  types/              Canonical shared interfaces (Prober, Generator, Detector)
internal/
  probes/             210+ probe implementations (47 categories)
  generators/         28 LLM provider integrations (43 variants)
  detectors/          90+ detector implementations (35 categories)
  harnesses/          3 harness strategies (probewise, batch, agentwise)
  buffs/              Buff interface for prompt transformations
  attackengine/       Iterative adversarial attack engine (PAIR/TAP backend)
  multiturn/          Multi-turn conversational attack engine (Crescendo/GOAT/Hydra/Mischievous)
  ahocorasick/        Internal Aho-Corasick keyword matching
benchmarks/           Performance benchmarks
tests/                Integration and equivalence tests
research/             Research documentation and analysis
examples/             Example configurations
docs/                 Documentation

Wichtige Designentscheidungen

  • Gleichzeitiges Scannen mit begrenzten Goroutine-Pools über errgroup
  • Plugin-artige Registrierung unter Verwendung von Go init()-Funktionen für Probes, Generators, Detectors, Buffs und Harnesses
  • Iterative Angriffs-Engine mit Multi-Stream-Konversationsmanagement, Kandidatenbereinigung und richterbasierter Bewertung für PAIR/TAP
  • Multi-Turn-Angriffs-Engine mit persistentem Konversationsverlauf, Ablehnungserkennung und strategieagnostischem Design für Crescendo/GOAT
  • YAML-Probe-Vorlagen (Nuclei-Stil) für deklarative Probendefinitionen neben Go-basierten Probes
  • Aho-Corasick-Vorfilterung für schnelles Schlüsselwort-Matching in Detectors

Konfiguration

YAML-Konfigurationsdatei

Erstellen Sie eine config.yaml-Datei:```yaml

Runtime configuration

run: max_attempts: 3 timeout: "30s"

Generator configurations

generators: openai.OpenAI: model: "gpt-4" temperature: 0.7 api_key: "${OPENAI_API_KEY}" # Environment variable interpolation

anthropic.Anthropic: model: "claude-3-opus-20240229" temperature: 0.5 api_key: "${ANTHROPIC_API_KEY}"

ollama.OllamaChat: model: "llama3.2:3b" temperature: 0.8

Judge configuration (required for judge.Judge, judge.Refusal, and multi-turn probes)

judge: generator_type: openai.OpenAI model: gpt-4o-mini config: api_key: "${OPENAI_API_KEY}"

Output configuration

output: format: "jsonl" path: "./results.jsonl"

Named profiles for different scenarios

profiles: quick: run: max_attempts: 1 timeout: "10s" generators: openai.OpenAI: model: "gpt-3.5-turbo" temperature: 0.5 output: format: "table"

thorough: run: max_attempts: 5 timeout: "60s" generators: openai.OpenAI: model: "gpt-4" temperature: 0.3 output: format: "jsonl" path: "./thorough_results.jsonl"

### Umgebungsvariablen```bash
# API Keys
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export COHERE_API_KEY="..."

# Debug mode
export AUGUSTUS_DEBUG=true

Proxy-Konfiguration

Leiten Sie HTTP-Verkehr über einen Proxy (z. B. Burp Suite) zur Inspektion:```bash

Method 1: Via config parameter

augustus scan rest.Rest
--probe dan.Dan_11_0
--detector dan.DAN
--config '{"uri":"https://api.example.com","proxy":"http://127.0.0.1:8080"}'
--output results.jsonl

Method 2: Via environment variables

export HTTP_PROXY=http://127.0.0.1:8080 export HTTPS_PROXY=http://127.0.0.1:8080 augustus scan rest.Rest --probe dan.Dan_11_0 --config '{"uri":"https://api.example.com"}'

- TLS-Verifizierung automatisch deaktiviert für Proxy-Inspektion
- HTTP/2-Unterstützung aktiviert für moderne APIs
- Server-Sent Events (SSE)-Antworten automatisch erkannt und geparst

### CLI-Referenz```
Usage: augustus scan <generator> [flags]

Arguments:
  <generator>                 Generator name (e.g., openai.OpenAI, anthropic.Anthropic)

Probe Selection (choose one):
  --probe, -p                 Probe name (repeatable)
  --probes-glob               Comma-separated glob patterns (e.g., "dan.*,goodside.*")
  --all                       Run all registered probes

Detector Selection:
  --detector                  Detector name (repeatable)
  --detectors-glob            Comma-separated glob patterns

Buff Selection:
  --buff, -b                  Buff names to apply (repeatable)
  --buffs-glob                Comma-separated buff glob patterns (e.g., "encoding.*")

Configuration:
  --config-file               Path to YAML config file
  --config, -c                JSON config for generator

Execution:
  --harness                   Harness name (default: probewise.Probewise)
  --timeout                   Overall scan timeout (default: 30m)
  --probe-timeout             Per-probe timeout (default: 5m)
  --concurrency               Max concurrent probes (default: 10, env: AUGUSTUS_CONCURRENCY)

Output:
  --format, -f                Output format: table, json, jsonl (default: table)
  --output, -o                JSONL output file path
  --html                      HTML report file path
  --verbose, -v               Verbose output

Global:
  --debug, -d                 Enable debug mode

Befehle:```bash augustus version # Print version information augustus list # List available probes, detectors, generators, harnesses, buffs augustus scan # Run vulnerability scan augustus completion # Generate shell completion (bash, zsh, fish)

**Exit-Codes:**

| Code | Bedeutung |
|------|---------|
| 0 | Erfolg - Scan abgeschlossen |
| 1 | Scan-/Laufzeitfehler |
| 2 | Validierungs-/Nutzungsfehler |

## FAQ

### Wie schneidet Augustus im Vergleich zu garak ab?

Augustus ist eine in Go native implementierte Neuauflage, inspiriert von [garak](https://github.com/NVIDIA/garak) (NVIDIAs Python-basiertem LLM-Schwachstellenscanner). Hauptunterschiede:
- **Leistung**: Go-Binärdatei vs. Python-Interpreter — schnellere Ausführung und geringerer Speicherverbrauch
- **Verteilung**: Einzelne Binärdatei ohne Laufzeitabhängigkeiten vs. Python-Paket mit pip-Installation
- **Nebenläufigkeit**: Go-Goroutine-Pools (Parallelität zwischen Probes) vs. Python-Multiprocessing-Pools (Parallelität innerhalb von Probes)
- **Probe-Abdeckung**: Augustus hat über 210 Probes; garak hat über 160 Probes mit einer längeren Forschungshistorie und veröffentlichtem Paper (arXiv:2406.11036)
- **Provider-Abdeckung**: Augustus hat 28 Provider; garak hat über 35 Generator-Varianten in 22 Provider-Modulen

### Kann ich lokale Modelle ohne API-Schlüssel testen?

Ja! Nutzen Sie die Ollama-Integration für lokale Modelltests:```bash
# No API key needed
augustus scan ollama.OllamaChat \
  --probe dan.Dan_11_0 \
  --config '{"model":"llama3.2:3b"}'

Wie füge ich benutzerdefinierte Probes hinzu?

  1. Erstelle eine neue Go-Datei in internal/probes/
  2. Implementiere das probes.Probe-Interface
  3. Registriere mit registry.RegisterProbe() in einer init()-Funktion
  4. Neu erstellen: make build

Siehe CONTRIBUTING.md für detaillierte Anweisungen.

Welche Ausgabeformate werden unterstützt?

Augustus unterstützt vier Ausgabeformate:

FormatFlagUse Case
Table--format tableFür Menschen lesbare Terminalausgabe
JSON--format jsonEinzelnes JSON-Objekt zum Parsen
JSONL--format jsonlZeilengetrenntes JSON für Streaming
HTML--html report.htmlVisuelle Berichte für Stakeholder

Wie teste ich mehrere Modelle auf einmal?```bash

Test multiple models sequentially

for model in "gpt-4" "gpt-3.5-turbo"; do augustus scan openai.OpenAI
--all
--config "{"model":"$model"}"
--output "results-$model.jsonl" done

### Ist Augustus für Produktionsumgebungen geeignet?

Ja, Augustus ist für den Produktionseinsatz konzipiert mit:
- Gleichzeitiges Scannen mit konfigurierbaren Grenzen
- Ratenbegrenzung zur Einhaltung von API-Kontingenten
- Timeout-Behandlung für langlebige Sonden
- Wiederholungslogik für vorübergehende Fehler
- Strukturiertes Logging für Beobachtbarkeit

## Fehlerbehebung

### Fehler: "API rate limit exceeded"

**Ursache**: Zu viele gleichzeitige Anfragen oder Anfragen pro Minute.

**Lösungen**:
1. Nebenläufigkeit reduzieren: `--concurrency 5`
2. Anbieterspezifische Ratenbegrenzungseinstellungen in der YAML-Konfiguration verwenden:   ```yaml
   generators:
     openai.OpenAI:
       rate_limit: 10  # requests per minute

Fehler: "context deadline exceeded" oder "timeout"

Ursache: Komplexe Probes (wie TAP oder PAIR) überschreiten das Standard-Timeout.

Lösung:```bash augustus scan openai.OpenAI
--probe tap.TAPv1
--timeout 60m
--config-file config.yaml

### Fehler: "ungültiger API-Schlüssel" oder "Authentifizierung fehlgeschlagen"

**Ursache**: Fehlende oder ungültige API-Anmeldedaten.

**Lösungen**:
1. Überprüfen Sie, ob die Umgebungsvariable gesetzt ist: `echo $OPENAI_API_KEY`
2. Überprüfen Sie die Konfigurationsdatei auf Tippfehler
3. Stellen Sie sicher, dass der API-Schlüssel die erforderlichen Berechtigungen hat
4. Für Ollama stellen Sie sicher, dass der Dienst läuft: `ollama serve`

### Fehler: "Sonde nicht gefunden" oder "Detektor nicht gefunden"

**Ursache**: Tippfehler im Namen oder Sonde nicht registriert.

**Lösung**:```bash
# List all available probes and detectors
augustus list

# Use exact names from the list
augustus scan openai.OpenAI --probe dan.Dan_11_0  # Correct

Scan liefert keine Ergebnisse

Ursache: Detektor hat keine Antworten gefunden oder Ausgabe nicht geschrieben.

Lösungen:

  1. Mit --verbose ausführen, um detaillierte Ausgabe zu sehen
  2. Überprüfen, ob Detektor zum Sondentyp passt
  3. Sicherstellen, dass der Ausgabedateipfad beschreibbar ist

Mitwirken

Wir freuen uns über Beiträge! Siehe CONTRIBUTING.md für:

  • Hinzufügen neuer Schwachstellen-Sonden
  • Erstellen neuer Detektor-Implementierungen
  • Hinzufügen von LLM-Anbieter-Integrationen
  • Testrichtlinien
  • Code-Stil-Anforderungen

Entwicklung```bash

Run all tests

make test

Run specific package tests

go test ./pkg/scanner -v

Run equivalence tests (compare Go vs Python implementations)

go test ./tests/equivalence -v

Build binary

make build

Install to $GOPATH/bin

make install

### Benchmark-Umgebung (DevPod)

Eine einsatzbereite Cloud-Entwicklungsumgebung zum Benchmarking von LLMs ist über [DevPod](https://devpod.sh/) verfügbar. Es stellt einen Remote-Container mit Augustus, Ollama, Go und allen vorinstallierten Abhängigkeiten bereit.```bash
cd devpod

# CPU-only instance (~$0.08/hr) - cloud APIs only
make devpod-up-cpu

# GPU instance with NVIDIA T4 (~$0.53/hr) - local models up to 14B
make devpod-up-gpu

# GPU Pro instance with NVIDIA L4 (~$0.80/hr) - local models up to 32B
make devpod-up-gpu-pro

Innerhalb des devpods:```bash devpod/scripts/setup.sh # Configure LLM provider API keys devpod/scripts/pull-models.sh # Pull local Ollama models (GPU only) devpod/scripts/benchmark.sh # Run benchmarks with comparison reports

Die Umgebung funktioniert auch als standardmäßiger [Dev-Container](https://containers.dev/) — öffnen Sie das Repo in VS Code oder Cursor und wählen Sie die CPU- oder GPU-Konfiguration aus `.devcontainer/`.

## Security

Augustus ist nur für **autorisierte Sicherheitstests** konzipiert.

- Augustus sendet gegnerische Eingabeaufforderungen an von Ihnen angegebene LLMs – stellen Sie stets sicher, dass Sie dazu autorisiert sind
- Testen Sie niemals Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis haben
- Einige Sonden erzeugen absichtlich anstößige Inhalte (zum Testen von Sicherheitsfiltern)
- Ergebnisse können schädliche Inhalte enthalten, die von Ziel-LLMs erzeugt wurden

Melden Sie Sicherheitsprobleme über [GitHub Issues](https://github.com/praetorian-inc/augustus/issues).

## Support

Wenn Sie Augustus nützlich finden, ziehen Sie bitte Folgendes in Betracht:

- Geben Sie ihm einen **Stern** auf GitHub
- [Eröffnen Sie ein Issue](https://github.com/praetorian-inc/augustus/issues) für Fehler oder Feature-Anfragen
- [Tragen Sie](https://github.com/praetorian-inc/augustus/blob/HEAD/CONTRIBUTING.md) neue Sonden, Detektoren oder Provider-Integrationen bei

[![Star History Chart](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](https://star-history.com/#praetorian-inc/augustus&Date)

## License

[Apache 2.0](https://github.com/praetorian-inc/augustus/blob/HEAD/LICENSE) - Praetorian Security, Inc.

---

**Entwickelt von [Praetorian](https://www.praetorian.com/)** - Offensive Security Solutions

Kategorien