安全圈有个老笑话:你们的SDL(安全开发生命周期)其实是”一年只做一次”。

这话扎心,但确实是现实。代码天天发版,渗透测试却还是季度甚至年度做一次。这中间的安全缺口,靠人工根本无法填补。

Shannon 就是来解决这个问题的——一个开源的 autonomous AI pentester,可以对你的 Web 应用和 API 进行持续、自动化的渗透测试。

shannon-cover


它到底能做什么?

Shannon 是 Keygraph 公司开源的项目(AGPL-3.0 许可证),核心思路很清晰:白盒代码分析 + 黑盒动态利用,两者结合,只报告”能实际攻破”的漏洞。

具体来说,它的工作流程分五个阶段:

  1. 预侦察:用 nmap、subfinder、whatweb 指纹识别目标技术栈,同时扫描源码识别攻击入口
  2. 侦察:浏览器自动化探索 live 应用,绘制完整的攻击面地图
  3. 漏洞分析:5 个并发 Agent 并行分析Injection、XSS、Auth、Authz、SSRF 等攻击面
  4. 漏洞利用:真正执行攻击,验证漏洞是否可利用(No Exploit, No Report)
  5. 报告生成:输出带 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-banner


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)原创撰写。


关于作者:开源派,关注开源技术与独立开发。