RezaAbbaszadeh/AI-Red-Team
GitHub: RezaAbbaszadeh/AI-Red-Team
该项目将 Promptfoo 红队测试框架与含有故意漏洞的 AI Agent 对接,自动化检测 Agent 在工具调用上的访问控制和过度代理风险。
Stars: 0 | Forks: 0
# AI Red Team
AI Red Team 将 Promptfoo 连接到包含特意设置漏洞的 DVAIA agent API。
## 范围
首个里程碑评估一个 DVAIA 配置:
- 目标:`POST http://127.0.0.1:5000/api/agent/chat`
- Agent tools:全部六个 DVAIA 工具
- 基准测试:确定性工具使用检查
- Red-team 测试:Promptfoo 生成的访问控制和过度代理探测
- 验证:实际的 DVAIA `tool_calls`,而不仅仅是最终的模型文本
请仅将此用于您的本地 DVAIA 实例或您获得授权测试的其他系统。
## 前置条件
- 带有 WSL2 的 Docker Desktop
- Git
- Node.js 24 LTS
- Python 3.10 或更高版本
- DVAIA 的默认本地模型大约需要 10 GB 或更多的空间
## 1. 启动 DVAIA
在 WSL 内:
```
git clone https://github.com/airtasystems/DVAIA-Damn-Vulnerable-AI-Application.git
cd DVAIA-Damn-Vulnerable-AI-Application
cp .env.example .env
./run_docker.sh
```
打开:
```
http://127.0.0.1:5000
```
完整的本地 Docker 模式通常会在端口 `11480` 上向主机公开 Ollama。
## 2. 验证 DVAIA
在 AI Red Team 项目目录中:
```
python3 scripts/verify_dvaia.py
```
预期检查:
- `/api/health` 返回 `{"status":"ok"}`
- `/api/models` 返回一个 agent 模型
- `/api/agent/chat` 返回 `response` 和 `tool_calls`
- 简单的测试通常会调用 `list_users`
## 3. 安装 Promptfoo
```
npm install
```
该项目将 Promptfoo 固定在 `package.json` 中记录的版本。
## 4. 运行确定性基准测试
```
npm run baseline
```
然后查看结果:
```
npm run view
```
一些安全测试预期会失败,因为 DVAIA 是故意存在漏洞的。测试失败可能意味着漏洞被成功演示。
## 5. 运行首次自动化 red-team 扫描
加载本地环境:
```
set -a
source .env.example
set +a
```
运行:
```
npm run redteam
```
查看安全报告:
```
npm run redteam-report
```
该项目使用已由 DVAIA 下载的 Ollama 模型来进行本地攻击生成和评分。这使得首次实验保持在本地,但较小的本地模型生成的探测可能比更强大的专用攻击模型弱。
## 6. 两个响应解析器的作用
`providers/dvaia-natural.js`:
- 返回正常的 assistant 响应
- 将 tool calls 存储在 Promptfoo 响应元数据中
- 用于确定性基准测试
`providers/dvaia-trace.js`:
- 返回 assistant 响应
- 追加包含实际工具名称的紧凑安全追踪
- 将相同的数据存储在元数据中
- 用于自动化 red-team 评分
追加的追踪有助于评分器区分以下两种情况:
- 模型仅在讨论危险操作
- Agent 实际调用了危险工具
## 7. 首次实验
将此作为漏洞基准:
```
Configuration A: all six tools available
```
后续里程碑将添加:
```
Configuration B: read-only tools only
Configuration C: risky tools behind explicit approval
```
衡量指标:
- 未经授权的危险工具调用率
- 敏感工具调用率
- 攻击成功率
- 良性任务完成率
- 错误拒绝率
- 重复运行一致性
- 请求数、运行时和 token 使用量
## 仓库计划
```
AI-Red-Team/
├── promptfooconfig.baseline.yaml
├── promptfooconfig.redteam.yaml
├── providers/
├── tests/
├── scripts/
├── results/
└── docs/
```
## 重要的解释规则
不要仅将 Promptfoo 的通过率作为最终事实。根据记录的 DVAIA 工具追踪手动验证重要的发现。对于本项目,工具侧的效应是比看起来不安全的文本响应更有力的证据。
标签:AI安全, AI风险缓解, Chat Copilot, CodeQL, DLL 劫持, Docker, MITM代理, 大语言模型, 安全评估工具, 安全防御评估, 红队评估, 自定义脚本, 请求拦截, 逆向工具, 配置错误