veriyoung/ai-redteam
GitHub: veriyoung/ai-redteam
面向大模型应用的自动化红队安全测试CLI工具,内置OWASP LLM Top 10攻击模板与变异引擎,支持CI/CD集成与多模型接入,帮助团队持续验证AI安全性。
Stars: 1 | Forks: 0
# AI Red Team 🛡️
AI Red Team 是一个面向测试开发者的AI安全测试CLI工具,内置 OWASP LLM Top 10 攻击模板库,支持 CI/CD 集成,帮助你持续验证大模型应用的安全性。
## 特性
- **内置攻击模板库** — 覆盖 OWASP LLM Top 10,包含提示注入、越狱、PII泄露、Agent过度授权、RAG投毒等 30+ 内置探测用例
- **变异引擎** — 5种变异算子自动生成更多对抗性输入(编码混淆、任务包装、角色注入、交叉变异、改写变异)
- **多模型支持** — OpenAI / Anthropic / DeepSeek / Qwen / 通义千问 / 本地模型,任何兼容 OpenAI API 的模型均可接入
- **CI/CD原生集成** — GitHub Actions / GitLab CI / Jenkins,输出 JUnit XML 报告,安全门禁阻断不安全部署
- **三种输出格式** — JSON(程序化处理)、HTML(人工审阅)、JUnit XML(CI集成)
- **中国本土化** — 内置中文攻击模板(文言文绕过、谐音字、方言变体),映射中国AI监管合规要求
- **安全回归追踪** — 模型升级/prompt修改后的安全diff对比,像代码回归一样追踪AI安全退化
## 快速开始
# 安装
pip install ai-redteam
# 使用Mock模型快速演示
ai-redteam --mock
# 使用OpenAI API测试
ai-redteam --provider openai --model gpt-4o-mini --api-key sk-xxx
# 使用DeepSeek测试
ai-redteam --provider openai --model deepseek-chat \
--base-url https://api.deepseek.com/v1 --api-key sk-xxx
# 使用Anthropic Claude测试
ai-redteam --provider anthropic --model claude-3-haiku-20240307 --api-key sk-xxx
# 使用配置文件
ai-redteam --config redteam.yaml
## 使用示例
### 基础用法
# 列出所有可用的漏洞类别
ai-redteam --list-categories
# 列出所有内置探测用例
ai-redteam --list-probes
# 仅测试特定类别
ai-redteam --mock --categories prompt_injection jailbreak
# 启用变异,生成更多对抗性输入
ai-redteam --mock --mutate --mutations 3
# 自定义安全阈值和输出格式
ai-redteam --mock --threshold 0.85 --formats json html junit
### 使用配置文件
# redteam.yaml
name: "我的AI安全测试"
target:
provider: openai
model: gpt-4o-mini
api_key: "${OPENAI_API_KEY}"
system_prompt: "你是一个客服AI助手,只回答与产品相关的问题。"
categories:
- prompt_injection
- system_prompt_leak
- pii_leak
- jailbreak
mutate: true
mutations_per_probe: 2
overall_threshold: 0.85
output_formats:
- json
- html
- junit
ai-redteam --config redteam.yaml
### CI/CD 集成
# .github/workflows/ai-redteam.yml
name: AI Security Test
on:
pull_request:
paths:
- 'prompts/**'
- 'config/**'
jobs:
redteam:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install ai-redteam
- run: |
ai-redteam \
--provider openai \
--model ${{ vars.AI_MODEL }} \
--threshold 0.85 \
--formats junit \
--output-dir ./results
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
## 输出报告
运行后会在输出目录生成报告:
| 文件 | 格式 | 用途 |
|------|------|------|
| `redteam-report.json` | JSON | 程序化处理、API集成 |
| `redteam-report.html` | HTML | 人工审阅、团队分享 |
| `redteam-report.junit.xml` | JUnit XML | CI/CD测试报告展示 |
### 报告指标
- **ASR(攻击成功率)** = 攻击成功数 / 总探测数,越低越好
- **Safety Score(安全评分)** = 通过数 / 总探测数,越高越好
- **阈值**:各类别有不同的最低安全评分要求(非法内容生成 ≥ 95%,Prompt注入 ≥ 85%)
## 支持的漏洞类别
| 类别 | OWASP映射 | 最低安全评分 | 说明 |
|------|----------|-------------|------|
| `prompt_injection` | LLM01 | 85% | 提示注入攻击 |
| `system_prompt_leak` | LLM07 | 85% | 系统提示词泄露 |
| `pii_leak` | LLM02 | 85% | 个人信息泄露 |
| `jailbreak` | LLM01 | 85% | 越狱攻击 |
| `harmful_content` | LLM06 | 95% | 有害内容生成 |
| `excessive_agency` | LLM08 | 75% | Agent过度授权 |
| `rag_poison` | LLM08 | 80% | RAG知识库投毒 |
## 项目结构
ai-redteam/
├── src/ai_redteam/
│ ├── __main__.py # CLI入口
│ ├── models/
│ │ ├── types.py # 数据模型
│ │ └── adapter.py # 多模型适配器
│ ├── probes/
│ │ └── library.py # 攻击模板库(30+内置探测)
│ ├── mutators/
│ │ └── engine.py # 变异引擎(5种变异算子)
│ ├── runners/
│ │ ├── tester.py # 测试运行器
│ │ └── config.py # 配置加载器
│ └── reporters/
│ └── engine.py # 报告引擎(JSON/HTML/JUnit)
├── configs/
│ └── example.yaml # 示例配置
├── examples/
│ └── github-actions.yml # CI/CD集成示例
├── pyproject.toml
└── README.md
## 技术架构
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌─────────────┐
│ Probe Lib │────>│ Mutator │────>│ Test Runner │────>│ Reporter │
│ 攻击模板库 │ │ 变异引擎 │ │ 测试运行器 │ │ 报告引擎 │
│ (30+ 模板) │ │ (5种算子) │ │ (异步并发) │ │ (3种格式) │
└─────────────┘ └──────────────┘ └─────────────┘ └─────────────┘
│
┌───────────┴───────────┐
│ Model Adapter │
│ ┌─────┐ ┌─────┐ │
│ │OpenAI│ │Claude│ │
│ └─────┘ └─────┘ │
│ ┌─────┐ ┌─────┐ │
│ │DeepS.│ │ Qwen │ │
│ └─────┘ └─────┘ │
└───────────────────────┘
## License
MIT License
## 路线图
- [ ] AI裁判模式(使用LLM判定攻击成功与否,替代关键词匹配)
- [ ] Agent安全测试(工具调用劫持、权限越界)
- [ ] 回归对比(两次测试结果diff)
- [ ] VS Code扩展
- [ ] Web Dashboard
- [ ] 自定义探测用例市场
标签:AI安全, Chat Copilot, DLL 劫持, LLM安全测试, Petitpotam, 大语言模型, 文档结构分析, 逆向工具