gengirish/adversary-planner
GitHub: gengirish/adversary-planner
将garak扫描结果转化为自适应红队行动的贝叶斯攻击规划引擎,智能推荐下一步最有价值的LLM安全测试技术。
Stars: 0 | Forks: 0
# Adversary Planner
**LLM 安全的贝叶斯攻击规划引擎** —— 将 garak 扫描结果转化为自适应红队行动。
garak 告诉你*发生了什么*。Adversary Planner 告诉你*下一步该做什么*。
## 功能
- **贝叶斯引擎 (Bayesian Engine)** — 针对 13 个家族的 49 种攻击技术维护 Beta 分布后验。使用 Thompson Sampling 推荐价值最高的下一项待测技术。
- **garak 集成** — 解析 `.report.jsonl` 文件,将探测类名映射到 MITRE ATLAS 对齐的技术,并以 30% 的同级溢出更新后验。
- **Z-Score 校准** — 以 HarmBench/JailbreakBench 基准为参照,评估你模型的攻击成功率,为原始数据提供上下文。
- **合规映射** — 追踪针对 OWASP LLM Top 10、NIST AI RMF 和 EU AI Act 框架的覆盖情况。
- **自适应行动** — 随着不确定性降低,自动从广泛探索过渡到针对性利用。无需手动切换阶段。
## 安装
```
cd adversary-planner
pip install -e .
```
## 快速开始
### 1. 定义目标
```
# target.yaml
name: Customer Support Bot
target_type: chatbot
access_level: black_box
goals: [jailbreak, extraction]
constraints:
max_queries: 500
stealth_priority: moderate
defenses:
has_moderation: true
has_input_filtering: true
capabilities:
has_tools: false
has_rag: false
```
### 2. 创建行动
```
aplanner campaign new target.yaml --name "q1-chatbot-assessment"
```
### 3. 获取建议
```
aplanner campaign next
```
规划器使用 Thompson Sampling 推荐技术。在行动初期,它倾向于高不确定性技术以最大化探索。
### 4. 使用建议的探测运行 garak
```
garak --model_type openai --model_name gpt-4 --probes probes.dan.Dan_6_0
```
### 5. 导入结果
```
aplanner import garak path/to/report.jsonl
```
### 6. 获取更新后的建议
```
aplanner campaign next
```
后验已发生变化。规划器现在根据成功、失败及未测试的内容推荐不同的技术。
### 7. 生成报告
```
aplanner report --output report.md
```
## CLI 参考
| 命令 | 描述 |
|---------|-------------|
| `aplanner campaign new --name "..."` | 创建新行动 |
| `aplanner campaign list` | 列出所有行动 |
| `aplanner campaign next ` | 获取下一项技术建议 |
| `aplanner campaign status ` | 显示行动状态和历史 |
| `aplanner import garak ` | 导入 garak 扫描结果 |
| `aplanner report [--output file.md]` | 生成行动报告 |
| `aplanner techniques [--family ]` | 列出技术目录 |
| `aplanner families` | 列出技术家族 |
## 工作原理
### 贝叶斯后验
每种技术都有一个 `Beta(α, β)` 分布。在没有任何数据之前:
- **60%** 来自已发布的基线 ASR(HarmBench, JailbreakBench)
- **40%** 来自针对目标配置的启发式兼容性评分
当扫描结果到达时:
- 攻击成功 → `α += 1.0`
- 攻击失败 → `β += 1.0`
- **30% 溢出** 给同家族的兄弟技术
### Thompson Sampling
推荐下一项技术时:
1. 从每种技术的 Beta 后验中采样一次
2. 按采样值排序(最高 = 最有希望)
3. 多样化:每个家族最多一项技术
### Z-Score 校准
```
Z = (observed_ASR - baseline_mean) / baseline_std
```
| Z-Score | 解释 |
|---------|----------------|
| ≥ 2.0 | 显著比基线更易受攻击(严重) |
| 1.0 – 2.0 | 比基线更易受攻击(高) |
| -1.0 – 1.0 | 在正常范围内(中) |
| ≤ -2.0 | 显著更具抵抗力(防御强健) |
## 技术目录
49 种技术横跨 13 个家族,与 MITRE ATLAS 对齐:
| 家族 | 数量 | 示例技术 |
|--------|-------|--------------------|
| jailbreak | 5 | DAN, Persona, Multi-turn, Hypothetical, Roleplay |
| prompt_injection | 5 | Direct, Indirect, Hierarchy Bypass, Delimiter, Context |
| encoding | 5 | Base64, ROT13, Unicode, Leetspeak, Multi-layer |
| data_extraction | 4 | Training Data, System Prompt, PII, Membership Inference |
| toxicity | 5 | Hate Speech, Violence, Sexual, Self-harm, Harassment |
| social_engineering | 4 | Authority, Urgency, Emotional, Grandma Exploit |
| adversarial_suffix | 3 | GCG Suffix, AutoDAN, Token Manipulation |
| automated_red_team | 3 | TAP, PAIR, Crescendo |
| rag_poisoning | 3 | KB Poisoning, Context Stuffing, Retrieval Manipulation |
| agent_abuse | 3 | Tool Misuse, Delegation, Privilege Escalation |
| hallucination | 3 | Package, Citation, Factual |
| information_disclosure | 3 | API Key Leakage, Config Disclosure, Model Architecture |
| evasion | 3 | Language Switching, Payload Splitting, Obfuscation Chaining |
## 未来:TrustGate 集成
Adversary Planner 设计为一个独立工具,将作为自适应规划引擎集成到 [TrustGate](../TrustGate/) 中。在 TrustGate 中,它将作为智能层,决定下一步运行哪个扫描器、探测和技术 —— 将 TrustGate 从扫描编排器转变为战略红队平台。
## 许可证
Apache 2.0
标签:AI鲁棒性, Beta分布, garak, HarmBench, MITRE ATLAS, NIST AI RMF, OWASP LLM Top 10, Python, Thompson Sampling, Z-Score校准, 反取证, 合规性映射, 大语言模型安全, 安全评估, 攻击路径规划, 文档结构分析, 无后门, 机密管理, 模型防御, 欧盟人工智能法案, 白盒/黑盒测试, 自动化渗透测试, 自适应攻击, 贝叶斯规划, 逆向工具