Shannon:让AI成为你的私人渗透测试工程师
安全圈有个老笑话:你们的SDL(安全开发生命周期)其实是”一年只做一次”。
这话扎心,但确实是现实。代码天天发版,渗透测试却还是季度甚至年度做一次。这中间的安全缺口,靠人工根本无法填补。
Shannon 就是来解决这个问题的——一个开源的 autonomous AI pentester,可以对你的 Web 应用和 API 进行持续、自动化的渗透测试。

它到底能做什么?
Shannon 是 Keygraph 公司开源的项目(AGPL-3.0 许可证),核心思路很清晰:白盒代码分析 + 黑盒动态利用,两者结合,只报告”能实际攻破”的漏洞。
具体来说,它的工作流程分五个阶段:
- 预侦察:用 nmap、subfinder、whatweb 指纹识别目标技术栈,同时扫描源码识别攻击入口
- 侦察:浏览器自动化探索 live 应用,绘制完整的攻击面地图
- 漏洞分析:5 个并发 Agent 并行分析Injection、XSS、Auth、Authz、SSRF 等攻击面
- 漏洞利用:真正执行攻击,验证漏洞是否可利用(No Exploit, No Report)
- 报告生成:输出带 PoC 的专业渗透测试报告
关键设计哲学:只报告能被攻破的漏洞。如果一个漏洞在动态测试中无法被实际利用,就不会出现在报告中。这直接过滤掉了大量误报。
在 OWASP Juice Shop 的测试中,Shannon 发现了 20+ 个漏洞,包括认证绕过和数据库拖库。在 XBOW 基准测试中得分 96.15%(100/104 个攻击场景)。
技术亮点:多智能体架构
Shannon 底层使用 Anthropic 的 Claude Agent SDK,架构设计上颇有意思:
- 并发扫描:每次扫描运行在独立的 Ephemeral Docker 容器中,配合 Temporal 任务队列,实现多目标并发
- 并行漏洞分析:5 个专门的 Agent 同时分析不同的攻击类别,互不阻塞
- 白盒 + 黑盒联动:先从源码里找攻击路径,再在 live 环境里验证,静态分析给出方向,动态测试验证结果
预侦察 → 侦察 → [并行漏洞分析] → [并行漏洞利用] → 报告
↓
Injection / XSS / SSRF / Auth / Authz
这个架构的优势在于:不像传统 SAST 那样狂报误报(”这里有个 SQL 注入风险”),也不像黑盒扫描那样盲扫低效(”试试 ‘ OR 1=1–“)。
它知道你在用什么框架、哪些接口是入口、哪些函数处理数据,然后针对性地构造攻击。

Shannon Lite vs Shannon Pro:怎么选?
| Shannon Lite(开源) | Shannon Pro(商业) | |
|---|---|---|
| 许可证 | AGPL-3.0 | 商业 |
| 静态分析 | 代码审查提示词 | 完整 SAST(含 CPG 数据流分析、SCA、密钥扫描、业务逻辑安全) |
| 动态测试 | 自主 AI 渗透测试 | 自主 AI 渗透测试(结合静态分析结果) |
| 业务逻辑安全 | ❌ | ✅ 自动发现应用不变量,生成定向 Fuzzer |
| 静态-动态关联 | ❌ | ✅ 静态漏洞直接喂给动态测试引擎做 PoC 验证 |
| CI/CD 集成 | 手动/CLI | 原生集成,GitHub PR 扫描 |
| 部署方式 | CLI | 托管云或自托管 Runner |
Shannon Pro 的业务逻辑安全测试是个有意思的方向。传统扫描器无法发现”跨租户数据访问”(IDOR)这类业务逻辑漏洞,因为这些漏洞没有固定模式,完全取决于业务规则。Shannon Pro 的做法是让 AI Agent 理解业务语义,自动发现”不变量”(invariant),生成 Fuzzer 来违反这些不变量,然后合成完整 PoC。
快速上手
# 方式一:npx 快速启动(推荐)
npx @keygraph/shannon setup # 配置 API Key
npx @keygraph/shannon start -u https://your-app.com -r /path/to/repo
# 方式二:本地克隆
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon
pnpm install && pnpm build
./shannon start -u https://your-app.com -r /path/to/repo
前置要求:Docker + Node.js 18+,以及一个 AI Provider(Anthropic API Key 即可)。
一次完整扫描大约 1~1.5 小时,消耗约 $50 USD(用 Claude 4.5 Sonnet)。
⚠️ 警告:不要对生产环境运行!Shannon 会主动执行攻击(创建用户、修改数据、注入 payload),只在隔离的测试/预发布环境使用。
怎么看它?
Shannon 的定位很有意思。它不是要取代人工渗透测试,而是填补日常安全缺口——在两次人工渗透测试之间,自动化地发现那些”代码一顿改,漏洞悄悄来”的问题。
它的”No Exploit, No Report”哲学让报告质量有了保障,误报率大幅降低。对于安全团队来说,这意味着可以更频繁地做安全验证,而不用每次都安排一轮完整的渗透测试。
不过它也有局限:目前只覆盖 Injection、XSS、SSRF、Auth/Authz 四类漏洞,LLM 生成的内容仍需人工复核,而且 $50/次的成本对于小型项目来说不算便宜。
总体来说,如果你做的是持续集成/持续部署,Shannon 值得放入你的安全工具链——至少在人工渗透测试到来之前,它能帮你堵住明显的大窟窿。
相关链接:
– GitHub:https://github.com/KeygraphHQ/shannon
– 官网:https://keygraph.io
本文由「开源派」(osp.io)原创撰写。
关于作者:开源派,关注开源技术与独立开发。



发表回复