zeroFhacker/promptfuzz
GitHub: zeroFhacker/promptfuzz
基于遗传算法的 LLM 自动化红队测试框架,帮助安全团队在攻击者之前发现越狱、注入、信息泄露等漏洞。
Stars: 0 | Forks: 0
# PromptFuzz 🧨
[](https://python.org)
[](LICENSE)
[](https://owasp.org/www-project-top-10-for-large-language-model-applications/)
[](CONTRIBUTING.md)
## 问题所在
你已经部署了一个基于 LLM 的产品。你添加了系统提示词。你认为它是安全的。
但其实不然。
攻击者正在对他们发现的每一个 LLM 产品发起系统化的 prompt 注入攻击。他们使用经过演化的、经过变异测试的 payload——而不是你手动测试的那些基本越狱手法。**PromptFuzz 能在规模上自动执行攻击者的操作,让你能抢先发现漏洞。**
## 它的功能
PromptFuzz 针对任何 LLM endpoint 运行对抗性 prompt 攻击活动,并准确报告哪些防护栏失效以及失效原因:
| 模块 | 测试内容 |
|--------|--------------|
| `genetic_fuzzer` | 使用遗传算法演化绕过 payload |
| `owasp_llm` | 完整的 OWASP LLM Top-10 测试覆盖 |
| `injection_scanner` | 通过用户输入、RAG 上下文、工具输出进行 prompt 注入 |
| `exfiltration_prober` | 测试系统提示词 / 训练数据是否可以被提取 |
| `jailbreak_library` | 200+ 种精选越狱技术,已分类并评分 |
| `role_confusion` | 人设劫持、DAN 变体、角色扮演漏洞利用 |
所有内容都会输出一份**每个防护栏类别的绕过率**以及一份**带有风险评分的 HTML 报告**。
## 演示
```
$ promptfuzz scan --target openai --model gpt-4o --system-prompt system.txt
[*] PromptFuzz v1.0.0 — LLM Security Testing Framework
[*] Target model: gpt-4o
[*] System prompt: loaded (342 tokens)
[*] Running OWASP LLM Top-10 suite...
[LLM01] Prompt Injection ........... 3/20 bypassed (15%) ⚠️
[LLM02] Insecure Output Handling ... 0/10 bypassed (0%) ✅
[LLM06] Sensitive Info Disclosure .. 2/15 bypassed (13%) ⚠️
[LLM07] Insecure Plugin Design ..... N/A
[LLM09] Overreliance ............... 5/10 triggered (50%) 🔴
[*] Running genetic fuzzer (50 generations)...
[!] Bypass found at generation 12 — payload saved
[!] Bypass found at generation 31 — payload saved
[*] Overall bypass rate: 18.4%
[*] Risk level: HIGH
[*] Report saved to reports/gpt4o_20240115_143022/
├── report.html (full interactive report)
├── report.json (machine-readable)
└── bypasses/ (all successful payloads)
```
## 安装
```
git clone https://github.com/zeroFhacker/promptfuzz.git
cd promptfuzz
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp config.example.yaml config.yaml
# 将你的 LLM API 密钥添加到 config.yaml
```
## 用法
```
# 使用 system prompt 针对 OpenAI 进行测试
promptfuzz scan --target openai --model gpt-4o --system-prompt system.txt
# 仅运行 OWASP LLM Top-10 测试
promptfuzz scan --target openai --modules owasp
# 仅运行 genetic fuzzer
promptfuzz scan --target openai --modules genetic --generations 100
# 测试自定义 endpoint (任何 OpenAI 兼容的 API)
promptfuzz scan --target custom --endpoint https://your-api.com/v1 --model your-model
# 列出所有可用的 attack module
promptfuzz modules list
# 显示库中的所有 jailbreak 技术
promptfuzz payloads list --category role_confusion
```
## 支持的目标
| 目标 | 模型 |
|--------|--------|
| OpenAI | gpt-4o, gpt-4-turbo, gpt-3.5-turbo |
| Anthropic | claude-3-5-sonnet, claude-3-opus |
| Google | gemini-1.5-pro, gemini-1.5-flash |
| Ollama | 任何本地模型 (llama3, mistral, 等) |
| 自定义 | 任何兼容 OpenAI 的 endpoint |
## 架构
```
promptfuzz/
├── promptfuzz/
│ ├── cli.py # Click CLI entrypoint
│ ├── engine.py # Scan orchestrator
│ ├── models.py # Data models
│ ├── llm_client.py # Multi-provider LLM client
│ ├── modules/
│ │ ├── base.py # BaseModule abstract class
│ │ ├── genetic_fuzzer.py # Genetic algorithm payload evolution
│ │ ├── owasp_llm.py # OWASP LLM Top-10 test suite
│ │ ├── injection_scanner.py # Prompt injection tests
│ │ ├── exfiltration.py # System prompt extraction tests
│ │ └── role_confusion.py # Persona hijacking tests
│ ├── payloads/
│ │ ├── loader.py # Payload library loader
│ │ ├── jailbreaks.yaml # 200+ jailbreak techniques
│ │ ├── injections.yaml # Injection payloads
│ │ └── exfiltration.yaml # Data extraction payloads
│ ├── utils/
│ │ ├── judge.py # LLM-as-judge bypass detector
│ │ ├── mutator.py # Payload mutation engine
│ │ └── rate_limiter.py # API rate limiting
│ └── reporters/
│ ├── json_reporter.py
│ └── html_reporter.py
├── tests/
├── config.example.yaml
└── requirements.txt
```
## 遗传模糊测试器的工作原理
大多数越狱工具使用静态 payload。PromptFuzz 则是对它们进行演化:
1. **种子种群** — 从 20 种已知的绕过技术开始
2. **适应度函数** — 发送每个 payload,使用 LLM 裁决器对响应进行评分
3. **选择** — 保留最有效的前 50% payload
4. **交叉** — 组合成功 payload 的元素
5. **变异** — 随机修改措辞、框架和编码
6. **重复** — 运行 N 代,保存发现的每一个绕过方法
这能发现静态 payload 列表完全遗漏的新型绕过方法。
## OWASP LLM Top-10 覆盖范围
| ID | 漏洞 | 已覆盖 |
|----|--------------|---------|
| LLM01 | Prompt 注入 | ✅ |
| LLM02 | 不安全的输出处理 | ✅ |
| LLM03 | 训练数据污染 | ⚠️ 部分 |
| LLM04 | 模型拒绝服务 | ✅ |
| LLM05 | 供应链漏洞 | ❌ 路线图中 |
| LLM06 | 敏感信息泄露 | ✅ |
| LLM07 | 不安全的插件设计 | ✅ |
| LLM08 | 过度授权 | ✅ |
| LLM09 | 过度依赖 | ✅ |
| LLM10 | 模型窃取 | ⚠️ 部分 |
## 道德使用
PromptFuzz 适用于:
- 测试自有 LLM 部署的安全团队
- 获得书面授权的红队人员
- 研究 LLM 安全性的研究人员
- 在规定范围内的漏洞赏金猎人
**切勿对您不拥有或未获得明确书面许可的 LLM 系统进行测试。**
## 许可证
MIT
标签:AI安全, AI风险缓解, Chat Copilot, CISA项目, DAN攻击, Fuzzing, LLM安全测试, OpenAI GPT-4, OWASP LLM Top 10, Petitpotam, Python, 代码生成, 反取证, 大语言模型安全, 安全评估, 数据泄露测试, 无后门, 机密管理, 渗透测试工具, 系统提示词提取, 红队框架, 自动化红队, 角色混淆, 越狱库, 逆向工具, 遗传算法, 风险报告