我构建了一个 Multi-Agent AI Pen Tester,因为 AI 编码工具正在发布漏洞代码
Source: Dev.to

问题
AI 编码助手随处可见。开发者使用 Claude、Copilot 和 Cursor 以比以往更快的速度交付代码——但他们也在交付:
- SQL 注入
- 硬编码的密钥
- 认证失效
- XSS
AI 工具优化的是可运行的代码,而不是安全的代码。典型输出:
- 一个可以工作的登录表单,但可以通过
‘ OR 1=1--轻易绕过。 - 为了让演示快速运行而硬编码的 API 密钥。
- 除非你明确要求,否则没有输入验证。
大多数独立开发者和小团队从不雇佣渗透测试人员。一次基础渗透测试费用为 $500–$2,000,且可能需要数周才能安排,于是漏洞直接被发布。
介绍 VulnSwarm
VulnSwarm 部署了一群专门的 AI 代理,模拟真实的渗透测试团队。它不是单一的整体模型,而是每个代理都有明确的角色:
| Agent | Role |
|---|---|
| 🔭 Recon Agent | 绘制攻击面,识别入口点,指纹技术栈,标记最高风险区域。 |
| 💥 Exploit Agent | 使用 Recon 数据,判断哪些真正可被利用。按严重性、可利用性和影响(类似 CVSS 评分)对每个发现进行评级。 |
| 🗡️ Red Team Agent | 站在攻击者角度思考。将漏洞串联成真实的攻击路径,寻找最坏情况。 |
| 🛡️ Blue Team Agent | 防御方。编写具体的代码层面修复方案,并根据工作量与影响进行优先级排序。 |
| 📄 Report Agent | 将所有信息整合成专业的渗透测试报告,提供整体风险评分、严重性细分和整改路线图。 |
这些代理 相互辩论:Red Team 对 Exploit 分析提出挑战,Blue Team 对严重性评级进行反驳,Report Agent 则汇总并细化输出。
在 OWASP Juice Shop 上的测试
手动测试(≈30 秒)
- 使用电子邮件字段中的
' OR 1=1--登录为管理员。 - 访问位于
/administration的管理员面板。 - 获取了 21 个用户的电子邮件地址。
- 在客户反馈中发现了泄露的加密钱包助记词。
VulnSwarm 自动化发现(≈15 分钟,CPU‑only VPS,llama3.2:3b)
| 严重程度 | 发现 | CVSS |
|---|---|---|
| 🔴 Critical | 文件上传端点 – 可利用来注入恶意代码或窃取数据。 | 9.0 |
| 🔴 Critical | 未验证的 API 端点 – 缺乏输入验证和消毒。 | 9.0 |
| 🟠 Medium | 缺少 Content‑Security‑Policy | 5.3 |
| 🟠 Medium | 缺少 Strict‑Transport‑Security | 5.3 |
| 🟠 Medium | 缺少 X‑XSS‑Protection | 5.3 |
| 🟠 Medium | 缺少 Referrer‑Policy | 5.3 |
| 🟠 Medium | 缺少 Permissions‑Policy | 5.3 |
更大的模型(例如 qwen2.5:14b 或 Claude)也能捕获我手动发现的 SQL 注入。
多代理架构如何工作
安全分析受益于 多个视角相互争论,就像真实的安全团队一样。
Your Code/App
│
▼
┌──────────┐ ┌───────────┐ ┌──────────┐ ┌─────────┐
│ Recon │───▶│ Exploit │───▶│ Red Team │───▶│ Blue │
│ Agent │ │ Agent │ │ Agent │ │ Team │
└──────────┘ └───────────┘ └──────────┘ └────┬────┘
│
▼
┌──────────┐
│ Report │
│ Agent │
└──────────┘
- Recon 只能看到原始代码/应用程序。
- Exploit 只能看到 Recon 数据(没有修复信息)。
- Red Team 只能看到 Exploit 的发现(没有修复信息)。
- Blue Team 只能看到攻击路径(没有 Recon 信息)。
- Report 能看到全部信息并生成面向开发者的文档。
运行 VulnSwarm
VulnSwarm 支持 Claude、GPT‑4o、Gemini、OpenRouter 和 Ollama。要 免费且本地运行它:
# 克隆仓库
git clone https://github.com/aaronsood/VulnSwarm.git
cd VulnSwarm
# 安装 Python 依赖
pip install -r requirements.txt
拉取本地模型(可选)
ollama pull llama3.2:3b
启动扫描器
python -m cli.main
启动测试目标(OWASP Juice Shop)
docker run --rm -p 3000:3000 bkimminich/juice-shop
然后将 VulnSwarm 指向 http://localhost:3000/。
默认情况下,网页扫描仅限本地主机——VulnSwarm 不会触及您不拥有的任何内容。
它 不 做的事情(尚未实现)
- 这只是一次 初步审查,并不能取代专业安全团队。
- 它无法发现需要深度业务逻辑理解的零日漏洞或新颖攻击链。
- 小模型会遗漏大模型能够捕获的发现。
- 没有 CI/CD 或 GitHub Actions 集成(路线图项目)。
路线图包括更深入的模型支持、CI/CD 插件以及更丰富的报告。
更大的图景
使用 AI 来发现漏洞是 诗意 的:我们让能够编写代码的机器也帮助我们编写更安全的代码。VulnSwarm 解决了最常见的痛点——那 99 % 的开发者在没有任何安全审查且没有预算的情况下发布代码——通过为他们提供一种经济实惠、自动化的“第一‑线防御”。
VulnSwarm
AI 带来的挑战与责任。
随着 AI 编码工具成为软件编写的默认方式,AI 安全工具必须跟上步伐。
关于项目
- 开源 – MIT 许可证
- 早期阶段 – 非常欢迎贡献,尤其是来自安全或 AI 工具领域的朋友
代码仓库
在一个星期六使用仅 CPU 的 VPS、一个特意设计可被攻击的 Web 应用以及大量咖啡构建并测试。