From LLM Fingerprinting to LLM Prompt Injection
Last month we released Julius, a tool that answers the question: “what LLM service is running on this endpoint?” Julius identifies the infrastructure. But identification is only the first step. The natural follow-up: “now that I know what’s running, how do I test whether it’s secure?” That’s what Augustus does.
LLMs Are Deployed Faster Than They're Tested
- FlipAttack achieves 98% bypass rates against GPT-4o by simply reordering characters in prompts
- DeepSeek R1 showed a 100% bypass rate against 50 HarmBench jailbreak prompts in testing by Cisco and the University of Pennsylvania
- A study of 36 production LLM-integrated applications found **86% were vulnerable** to prompt injection
- PoisonedRAG demonstrated that just 5 malicious documents in a corpus of millions can manipulate AI outputs 90% of the time
Introducing Augustus
Augustus is a Go-native reimplementation inspired by garak (NVIDIA’s Python-based LLM vulnerability scanner). Key differences:
- Performance: Go binary vs Python interpreter — faster execution and lower memory usage
- Distribution: Single binary with no runtime dependencies vs Python package with pip install
- Concurrency: Go goroutine pools (cross-probe parallelism) vs Python multiprocessing pools (within-probe parallelism)
- Probe coverage: Augustus has 210+ probes; garak has 160+ probes with a longer research pedigree and published paper (arXiv:2406.11036)
- Provider coverage: Augustus has 28 providers; garak has 35+ generator variants across 22 provider modules
Existing tools like garak (NVIDIA) and promptfoo serve the research and red-teaming community well. But we needed something built for the way our operators work: a fast, portable binary that fits into existing penetration testing workflows without requiring Python environments, npm installs, or runtime dependencies.
What Augustus Tests
Jail Break Attacks
Prompt Injection
Adversarial Examples
Data Extraction
Context Manipulation
Format Exploits
Evasion Techniques
Safety Benchmarks
Agent Attacks
Security Testing
Features
Feature | Description |
|---|---|
210+ Vulnerability Probes | 47 attack categories: jailbreaks, prompt injection, adversarial examples, data extraction, safety benchmarks, agent attacks, and more |
28 LLM Providers | OpenAI, Anthropic, Azure, Bedrock, Vertex AI, Ollama, and 22 more with 43 generator variants |
90+ Detectors | Pattern matching, LLM-as-a-judge, HarmJudge (arXiv:2511.15304), Perspective API, unsafe content detection |
7 Buff Transformations | Encoding, paraphrase, poetry (5 formats, 3 strategies), low-resource language translation, case transforms |
Flexible Output | Table, JSON, JSONL, and HTML report formats |
Production Ready | Concurrent scanning, rate limiting, retry logic, timeout handling |
Single Binary | Go-based tool compiles to one portable executable |
Extensible | Plugin-style registration via Go init() functions |
How It Works
---
config:
layout: elk
theme: dark
themeVariables:
primaryColor: '#270A0C'
primaryTextColor: '#ffffff'
primaryBorderColor: '#535B61'
lineColor: '#535B61'
background: '#0D0D0D'
---
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
Buff Transformations
Augustus ships 5 buff categories (7 individual transformations):
Encoding (`encoding.Base64`, `encoding.CharCode`)
Paraphrase (`paraphrase.Pegasus`, `paraphrase.Fast`)
Poetry (`poetry.Poetry`)
Low-Resource Language Translation (`lrl.LRL`)
Case Transforms (`lowercase.Lowercase`)
You can chain multiple transformations — encode, then paraphrase, then translate — creating layered evasion that tests defense-in-depth by applying a buff with `–buff`, or chain multiple with `–buffs-glob`:
28 LLM Providers
Quick Start
# Install
go install github.com/praetorian-inc/augustus/cmd/augustus@latest
# Test for DAN jailbreak against OpenAI
export OPENAI_API_KEY="your-api-key"
augustus scan openai.OpenAI \
--probe dan.Dan \
--detector dan.DanDetector \
--verbose
# Run all 210+ probes against a local model (no API key needed)
augustus scan ollama.OllamaChat \
--all \
--config '{"model":"llama3.2:3b"}'
# Test a custom REST endpoint
augustus scan rest.Rest \
--probe dan.Dan \
--config '{
"uri": "https://your-api.example.com/v1/chat/completions",
"headers": {"Authorization": "Bearer YOUR_KEY"},
"req_template_json_object": {
"model": "your-model",
"messages": [{"role": "user", "content": "$INPUT"}]
},
"response_json": true,
"response_json_field": "$.choices[0].message.content"
}' Output is clean and actionable:
PROBE | DETECTOR | PASSED | SCORE | STATUS |
|---|---|---|---|---|
dan.Dan | dan.DAN | false | .85 | VULN |
encoding.base64 | encoding | true | .10 | SAFE |
smuggling.Tag | smuggling | true | .05 | SAFE |
You can also export to JSON, JSONL, or generate HTML reports for stakeholders.
What's Next
Augustus is the second tool release of our “The 12 Caesars” open source tool campaign where we will be releasing one open source tool per week for the next 12 weeks. Each tool follows the Unix philosophy: do one thing, do it well, compose with the others.
Contributing & Community
Augustus is available now under the Apache 2.0 license at https://github.com/praetorian-inc/augustus
We welcome contributions from the community. Whether you’re adding probes for services we haven’t covered, reporting bugs, or suggesting new features, check the repository’s CONTRIBUTING.md for guidance on probe definitions and development workflow.
Ready to start? Clone the repository, experiment with Augustus in your environment, and join the discussion on GitHub. We’re excited to see how the security community uses this tool in real-world reconnaissance workflows. Star the project if you find it useful, and let us know what LLM prompt injection techniques you’d like to see us support next.