Zurück zu den Updates
New releaseSep 4, 2026

augustus v0.14.24

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 Adversarial-Angriffstests

Augustus - LLM-Schwachstellenscanner

Testen Sie große Sprachmodelle gegen 210+ Adversarial-Angriffe, darunter Prompt Injection, Jailbreaks, Encoding-Exploits und Datenextraktion.

CI Go Version License Go Report Card GitHub Release

Augustus ist ein auf Go basierender LLM-Schwachstellenscanner für Sicherheitsexperten. Er testet große Sprachmodelle gegen eine breite Palette von Adversarial-Angriffen, integriert 28 LLM-Anbieter und erstellt umsetzbare Schwachstellenberichte.

Im Gegensatz zu forschungsorientierten Tools ist Augustus für produktive Sicherheitstests konzipiert – paralleles Scannen, Ratenbegrenzung, Wiederholungslogik und Timeout-Behandlung sind standardmäßig enthalten.

Inhaltsverzeichnis

Warum Augustus

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

Funktionen

FunktionBeschreibung
210+ Schwachstellen-Probes47 Angriffskategorien: Jailbreaks, Prompt Injection, Adversarial-Beispiele, Datenextraktion, Sicherheits-Benchmarks, Agenten-Angriffe und mehr
28 LLM-AnbieterOpenAI, Anthropic, Azure, Bedrock, Vertex AI, Ollama und 22 weitere mit 43 Generator-Varianten
90+ DetektorenMusterabgleich, LLM-als-Richter, HarmJudge (arXiv:2511.15304), Perspective API, Erkennung unsicherer Inhalte
7 Buff-TransformationenKodierung, Paraphrasierung, Poesie (5 Formate, 3 Strategien), Übersetzung in ressourcenarme Sprachen, Falltransformationen
Flexible AusgabeTabellen-, JSON-, JSONL- und HTML-Berichtsformate
ProduktionsreifParalleles Scannen, Ratenbegrenzung, Wiederholungslogik, Timeout-Behandlung
Einzelne BinärdateiGo-basiertes Tool kompiliert zu einer portablen ausführbaren Datei
ErweiterbarPlugin-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
  • Adversarial-Beispiele: GCG, PAIR, AutoDAN, TAP (Tree of Attack Prompts), TreeSearch, DRA
  • Mehrrunden-Angriffe: Crescendo (schrittweise Eskalation), GOAT (adaptive Technikumschaltung)
  • Datenextraktion: API-Key-Leckage, Package-Halluzination, PII-Extraktion, LeakReplay
  • Kontextmanipulation: RAG-Vergiftung, Kontextüberlauf, Multimodale Angriffe, Fortsetzung, Divergenz
  • Format-Exploits: Markdown-Injection, YAML/JSON-Parsing-Angriffe, ANSI-Escape, Web-Injection (XSS)
  • Umgehungstechniken: Verschleierung, Zeichensubstitution, Übersetzungsbasierte Angriffe, Formulierung, ObscurePrompt
  • Sicherheits-Benchmarks: DoNotAnswer, RealToxicityPrompts, Snowball, LMRC
  • Agenten-Angriffe: Manipulation mehrerer Agenten, Browser-Exploits
  • Sicherheitstests: Guardrail-Umgehung, AV/Spam-Scanning, Exploitation (SQLi, Code-Ausführung), BadChars

Warnung: Der lmrc-Probe verwendet obszöne und beleidigende Sprache als Teil seiner Jailbreak-Tests. Verwenden Sie ihn nur in autorisierten Testumgebungen.

Schnellstart

Installation

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

Or aus dem Quellcode bauen:```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

### Beispielausgabe```
+--------------+-------------+--------+-------+--------+
| 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 Fähigkeiten 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           | Generatorname(n)          | Hinweise                        |
|--------------------|---------------------------|--------------------------------|
| 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 Open-Modelle    |
| HuggingFace        | `huggingface.InferenceAPI`, `huggingface.InferenceEndpoint`, `huggingface.Pipeline`, `huggingface.LLaVA` | HF-Inference-API, Endpunkte, Pipelines, multimodal |
| Together AI        | `together.Together`       | Schnelle Inferenz für OSS-Modelle |
| Anyscale           | `anyscale.Anyscale`       | Llama- und Mistral-Hosting      |
| Groq               | `groq.Groq`               | Ultraschnelle LPU-Inferenz      |
| Mistral            | `mistral.Mistral`         | Mistral-API-Modelle             |
| Fireworks          | `fireworks.Fireworks`     | Produktions-Inferenzplattform   |
| DeepInfra          | `deepinfra.DeepInfra`     | Serverlose GPU-Inferenz         |
| NVIDIA NIM         | `nim.NIM`, `nim.NVOpenAICompletion`, `nim.NVMultimodal`, `nim.Vision` | NVIDIA-AI-Endpunkte, multimodal |
| NVIDIA NeMo        | `nemo.NeMo`               | NVIDIA-NeMo-Framework           |
| NVIDIA NVCF        | `nvcf.NvcfChat`, `nvcf.NvcfCompletion` | NVIDIA Cloud Functions   |
| 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-Konversations-KI           |
| GGML               | `ggml.Ggml`               | GGML-lokale Modellinferenz      |
| Funktion           | `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. Konfiguration über Umgebungsvariablen oder YAML-Konfigurationsdateien. Siehe [Konfiguration](#configuration) für Einrichtungsdetails.

## Verwendung

### Einzelner Probe```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-Transformationen

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 $INPUT-Platzhalter
  • req_template_json_object: JSON-Anforderungstext (automatisch gemarshallt, $INPUT in Zeichenfolgen verwenden)
  • response_json: Antwort als JSON parsen (Standard: false)
  • response_json_field: JSONPath zum Extrahieren (z. B. $.data.text oder einfacher Feldname)
  • api_key: API-Schlüssel für die $KEY-Platzhalterersetzung
  • proxy: HTTP-Proxy-URL für die 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"}'

## So funktioniert es

Augustus verwendet eine Pipeline-Architektur, um LLMs gegen adversariale 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 Name, 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 dessen Provider-Integration senden
  4. Detektor-Analyse: Antworten mittels Musterabgleich, LLM-als-Richter oder spezialisierten 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 Kandidaten-Pruning und richterbasierter Bewertung
  7. Multi-Turn-Engine: Für konversationelle Proben (Crescendo, GOAT) pflegt die Multi-Turn-Engine den vollständigen Gesprächsverlauf mit dem Ziel über Turns hinweg, mit Verweigerungserkennung und dynamischer Anpassung

Multi-Turn-Angriffsstrategien

Multi-Turn-Angriffe führen ein persistentes Gespräch mit dem Ziel-LLM und nutzen die Tatsache aus, dass Modelle Informationen über Turns hinweg schrittweise preisgeben können, die sie in 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 graduelle 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, bildenden Fragen und erhöht die Spezifität über viele Turns hinweg schrittweise
  • Eskalationsmuster: Historischer Kontext → technische Mechanismen → spezifische Details → direkte Anfragen, die als natürliche Folgefragen formuliert sind
  • Stärke: Wirksam gegen Modelle, die den Gesprächston verfolgen — die graduelle Verschiebung umgeht Sicherheitsfilter```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 adversarischen Techniken und Chain-of-Attack-Thought-Argumentation, um dynamisch zwischen Strategien zu wechseln, je nachdem, was funktioniert oder scheitert.

- **Paper**: [Pavlova et al., 2024](https://arxiv.org/abs/2410.01606)
- **Ansatz**: Zielt ab Runde 1 auf das Ziel ab, unter Verwendung indirekter Rahmung, und erwähnt das Ziel dem Zielobjekt gegenüber nie direkt
- **7 Techniken** in 3 Kategorien:
  - *Output-Manipulation*: Refusal Suppression, Response Priming
  - *Safe-Response-Ablenkungen*: Dual Response, Topic Splitting, Opposite Intent
  - *Fiktive Szenarien*: Persona Modification, Hypothetical
- **Chain-of-Attack-Thought**: In jeder Runde denkt der Angreifer über Observation → Thought → Strategy → Response nach, bevor er seine Nachricht verfasst
- **Technik-Stapelung**: Mehrere Techniken können in einer einzigen Runde kombiniert werden, um eine stärkere Wirkung zu erzielen
- **Stärke**: Erzielt hohe Erfolgsquoten in weniger Runden (typischerweise 3-5), indem aggressiv zwischen grundlegend unterschiedlichen Ansätzen gewechselt wird```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 Turns zurück, wenn das Ziel die Anfrage ablehnt, und fordert den Angreifer zu einem völlig anderen Ansatz auf. Im Gegensatz zu Crescendo/GOAT (die bei Ablehnung umformulieren) entfernt Hydras Backtracking abgelehnte Turns vollständig aus der Sicht des Ziels.

  • Ansatz: Einzelpfad mit Backtracking auf Turn-Ebene — abgelehnte Turns 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 einen Turn löschen und erneut versuchen kann
  • Stateful-Modus: Setze stateful: true für Ziele, bei denen Nachrichten nicht zurückgenommen werden können (deaktiviert Backtracking)
  • Stärke: Hält den Gesprächsverlauf des Ziels sauber — das Ziel sieht niemals fehlgeschlagene Ansätze, was defensive Eskalation verhindert```bash augustus scan rest.Rest
    --probe hydra.Hydra
    --config-file hydra.yaml
    --html report.html -v
#### Unfug treibender Benutzer

Der Unfug treibende Benutzer simuliert eine unschuldige, neugierige Person, die auf subtile Weise die Grenzen der KI durch natürliche Konversation auslotet. Anders als bei adversarischen Strategien ist die Angreifer-Persona ein gelegentlicher Nutzer, der durch scheinbar harmlose Interaktion in Richtung verbotener Themen abdriftet.

- **Inspiriert von**: [Tau-bench](https://github.com/sierra-research/tau-bench) und promptfoos mischievous-user-Strategie
- **Ansatz**: Beziehungsaufbau-Phase → Grenzen ausloten → bestimmtes Nachfassen
- **7 Techniken**: Naive Neugier, absichtliches Missverständnis, sozialer Beweis, allmähliches Abdriften, emotionale Appelle, angenommene Erlaubnis, Rekontextualisierung
- **Zielspezifische Playbooks**: Integrierte Skripte zum Extrahieren von Systemanweisungen, Finden von Geheimnissen/Flags und Umgehen der Inhaltsrichtlinie
- **Standard-Runden**: 5 (weniger als bei anderen Strategien — der subtile Ansatz funktioniert entweder schnell oder gar nicht)
- **Stärke**: Wirksam gegen Modelle, die darauf trainiert sind, offensichtlichen adversarischen Mustern zu widerstehen — die lockere Persona umgeht die Heuristiken zur „Angriffserkennung"```bash
augustus scan rest.Rest \
  --probe mischievous.MischievousUser \
  --config-file mischievous.yaml \
  --html report.html -v

Strategie-Auswahl-Leitfaden

StrategieZügeStilAm besten geeignet fürKosten
crescendo.Crescendo10Schrittweise EskalationModelle mit tonverfolgenden SicherheitsfilternMittel (10 Züge × 3 LLM-Aufrufe)
goat.Goat10Aggressiver TechnikwechselSchnelle Ergebnisse, Modelle schwach gegenüber Framing-TricksMittel-Hoch (Overhead durch Technik-Abwägung)
hydra.Hydra10Zurückverfolgung bei VerweigerungSture Modelle, die häufig ablehnenHoch (Zurückverfolgung fügt Wiederholungen hinzu)
mischievous.MischievousUser5Lässige Persona-ErkundungModelle, die gegen adversariale Muster trainiert wurdenNiedrig (5 Züge, subtiler Ansatz)

Schnellentscheidung:

  • Beginnen Sie mit Crescendo — es ist die vielseitigste Strategie
  • Probieren Sie GOAT aus, wenn Crescendo zu langsam ist (GOAT gelingt typischerweise in 3-5 Zügen)
  • Verwenden Sie Hydra, wenn das Ziel häufig ablehnt (Zurückverfolgung hält die Konversation sauber)
  • Verwenden Sie Mischievous für Ziele mit starker Erkennung adversarischer Muster (die Persona umgeht Heuristiken)

Multi-Turn-Konfiguration

Alle vier Strategien teilen sich dieselbe 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

| `goal` | (erforderlich) | Das Ziel, das der Angreifer zu erreichen versucht |
|---------|---------|-------------|
| `max_turns` | 10 | Maximale Anzahl an Gesprächsrunden vor dem Stopp |
| `success_threshold` | 0.8 | Bewertungswert des Richters (0.0-1.0), der einen vorzeitigen Abbruch auslöst |
| `max_refusal_retries` | 10 | Umformulierungsversuche pro Runde, wenn das Ziel ablehnt |
| `attack_max_attempts` | 5 | Wiederholungen bei JSON-Parsing-Fehlern des Angreifer-LLM |
| `use_secondary_judge` | true | Sekundärer Richter aktivieren, um falsch-negative Ergebnisse zu erkennen |
| `max_backtracks` | 10 | Rollbacks auf Rundenebene bei Ablehnung (nur Hydra) |
| `enable_fast_refusal` | true | Musterbasierte Ablehnungserkennung vor dem LLM-Richteraufruf |
| `enable_scan_memory` | false | Lernen über Testfälle hinweg (teilt Taktiken über Sonden hinweg) |
| `stateful` | false | Backtracking für zustandsbehaftete Ziele deaktivieren |
| `exclude_target_output` | false | Zielantworten vor dem Angreifer-Feedback verbergen (Datenschutzmodus) |
| `attacker_model` | (automatisch) | Angreifer-Modellnamen für die Kontextfenstergröße überschreiben |

#### Fehlerbehebung bei mehreren Runden

| Symptom | Wahrscheinliche Ursache | Lösung |
|---------|-------------|-----|
| `no turns completed (attacker_parse_failures=N)` | Angreifer-LLM liefert ungültiges JSON zurück | Ein stärkeres Angreifer-Modell verwenden (GPT-4, Claude Opus). `attack_max_attempts` erhöhen. |
| `no turns completed (target_empty=N)` | Ziel liefert leere/null Antworten zurück | Prüfen, ob der Ziel-Endpunkt antwortet. REST-Konfigurationsvorlage überprüfen. |
| Alle Runden erzielen 0.0 | Ziel zu vage oder Angreifer nicht engagiert | `goal` spezifischer formulieren. Andere Strategie ausprobieren. |
| Hohe Werte, aber kein Erfolg | `success_threshold` zu hoch | `success_threshold` von 0.8 auf 0.6-0.7 senken |
| Läufe dauern zu lange / sind zu teuer | Zu viele Runden und Wiederholungen | `max_turns` reduzieren (5 versuchen). `enable_fast_refusal: true` setzen. |
| Hydra macht ständig Backtracking | Ziel lehnt alles ab | `stateful: true` versuchen oder auf Mischievous-Strategie wechseln |

## 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

Zentrale Designentscheidungen

  • Paralleles Scannen mit begrenzten Goroutine-Pools über errgroup
  • Plugin-basierte Registrierung mithilfe von Go-init()-Funktionen für Probes, Generatoren, Detektoren, Buffs und Harnesses
  • Iterative Angriffs-Engine mit Verwaltung mehrerer Gesprächsströme, Kandidaten-Pruning und richterbasierter Bewertung für PAIR/TAP
  • Mehrrunden-Angriffs-Engine mit persistentem Gesprächsverlauf, Verweigerungserkennung und strategieunabhängigem Design für Crescendo/GOAT
  • YAML-Probe-Vorlagen (Nuclei-Stil) für deklarative Probe-Definitionen neben Go-basierten Probes
  • Aho-Corasick-Vorfilterung für schnelles Schlüsselwort-Matching in Detektoren

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-Datenverkehr für die Inspektion durch einen Proxy (z. B. Burp Suite):```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 werden 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 Reimplementierung, inspiriert von [garak](https://github.com/NVIDIA/garak) (NVIDIAs Python-basiertem LLM-Schwachstellenscanner). Hauptunterschiede:
- **Leistung**: Go-Binary vs. Python-Interpreter – schnellere Ausführung und geringerer Speicherverbrauch
- **Verteilung**: Einzelnes Binary ohne Laufzeitabhängigkeiten vs. Python-Paket mit pip-Installation
- **Parallelität**: Go-Goroutine-Pools (probenübergreifende Parallelität) vs. Python-Multiprocessing-Pools (Parallelität innerhalb einer Probe)
- **Probenabdeckung**: Augustus verfügt über 210+ Proben; garak hat 160+ Proben mit längerer Forschungshistorie und veröffentlichtem Paper (arXiv:2406.11036)
- **Provider-Abdeckung**: Augustus verfügt über 28 Provider; garak hat 35+ Generatorvarianten über 22 Provider-Module

### 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 es mit registry.RegisterProbe() in einer init()-Funktion
  4. Neu bauen: make build

Siehe CONTRIBUTING.md für detaillierte Anweisungen.

Welche Ausgabeformate werden unterstützt?

Augustus unterstützt vier Ausgabeformate:

FormatFlagAnwendungsfall
Tabelle--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 gleichzeitig?```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:
- Parallelem Scannen mit konfigurierbaren Grenzwerten
- Ratenbegrenzung zur Einhaltung von API-Kontingenten
- Timeout-Behandlung für langlaufende Sonden
- Wiederholungslogik für vorübergehende Fehler
- Strukturierter Protokollierung für Beobachtbarkeit

## Fehlerbehebung

### Fehler: „API-Ratenlimit überschritten"

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

**Lösungen**:
1. Parallelität reduzieren: `--concurrency 5`
2. Anbieterspezifische Ratenlimit-Einstellungen 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: „invalid API key" oder „authentication failed"

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

**Lösungen**:
1. Überprüfen, ob die Umgebungsvariable gesetzt ist: `echo $OPENAI_API_KEY`
2. Auf Tippfehler in der Konfigurationsdatei prüfen
3. Sicherstellen, dass der API-Schlüssel über die erforderlichen Berechtigungen verfügt
4. Für Ollama sicherstellen, dass der Dienst läuft: `ollama serve`

### Fehler: „probe not found" oder „detector not found"

**Ursache**: Tippfehler im Namen oder Probe 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: Der Detektor hat keine Antworten abgeglichen, oder die Ausgabe wurde nicht geschrieben.

Lösungen:

  1. Führen Sie den Scan mit --verbose aus, um eine detaillierte Ausgabe zu sehen
  2. Prüfen Sie, ob der Detektor zum Probentyp passt
  3. Stellen Sie sicher, dass der Ausgabedateipfad beschreibbar ist

Mitwirken

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

  • Hinzufügen neuer Schwachstellen-Probes
  • 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 sofort einsatzbereite Cloud-Entwicklungsumgebung zum Benchmarking von LLMs ist über [DevPod](https://devpod.sh/) verfügbar. Sie 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

Inside the devpod:```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 Repository in VS Code oder Cursor und wählen Sie die CPU- oder GPU-Konfiguration aus `.devcontainer/`.

## Sicherheit

Augustus ist ausschließlich für **autorisierte Sicherheitstests** konzipiert.

- Augustus sendet adversariale Prompts an LLMs, die Sie festlegen – stellen Sie immer sicher, dass Sie autorisiert sind
- Testen Sie niemals Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Erlaubnis haben
- Einige Probes erzeugen absichtlich anstößige Inhalte (zum Testen von Sicherheitsfiltern)
- Ergebnisse können schädliche Inhalte enthalten, die von den 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/main/CONTRIBUTING.md) neue Probes, Detektoren oder Provider-Integrationen bei

[![Star History Chart](https://api.star-history.com/svg?repos=praetorian-inc/augustus&type=Date)](https://star-history.com/#praetorian-inc/augustus&Date)

## Lizenz

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

---

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

Kategorien