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代理, 大语言模型, 安全评估工具, 安全防御评估, 红队评估, 自定义脚本, 请求拦截, 逆向工具, 配置错误