大家好,我是何三,独立开发者

shannon_cover

你有没有过这种体验:CI/CD流水线跑得飞快,代码天天在上线,但渗透测试?一年一次,等报告等到花儿都谢了。

剩下的364天里,你的代码可能带着漏洞裸奔在生产环境。不是团队不重视安全,而是渗透测试实在太贵、太慢、太依赖人。

最近GitHub上一个叫Shannon的项目火了,37.8k Stars,4000+ Fork。它做的事说起来很简单——用AI帮你做渗透测试,但做到的效果,可能让不少安全工程师坐不住。

一条命令,全自动,白盒分析+真实攻击验证,最后只报告"真的能利用"的漏洞。零误报。

shannon_02

Shannon到底是个什么东西

Shannon是Keygraph团队开发的一个自主式白盒AI渗透测试工具。它不是那种跑一遍规则、给你甩一堆"可能存在风险"报告的传统扫描器。

它的逻辑很粗暴:读你的源码 → 找到攻击路径 → 真的去打一遍 → 能打穿的才写进报告。

换句话说,它不是"怀疑你有病",而是"真把刀扎进去,出血了才算病"。

有个Hacker News上的开发者说得好:"suspicious without a proof-of-concept is astrology with YAML"(没有PoC的漏洞报告,不过是加了YAML的占星术)。Shannon正是冲着这句话去的。

核心架构:五个阶段,多Agent并行

Shannon的架构设计挺有意思,整个渗透过程分五个阶段,由多个AI Agent协作完成:

shannon_01

Phase 1 — 预侦察: 先用nmap、subfinder、whatweb这些老牌工具对目标做基础设施指纹识别,同时读源码,分析应用框架、入口点和潜在攻击面。

Phase 2 — 侦察: 基于预侦察的结果,构建完整的攻击面地图。Shannon会用浏览器自动化去实际探索你的应用,把代码层面的发现和真实行为关联起来,画出所有入口、API端点和认证机制。

Phase 3 — 漏洞分析(并行): 这是最硬核的部分。5个Agent同时开工,分别负责Injection、XSS、Auth、Authz、SSRF这五大OWASP漏洞类别。对Injection和SSRF这类漏洞,Agent会做结构化的数据流分析——从用户输入追踪到危险函数调用。产出的是"假设可利用路径"。

Phase 4 — 漏洞利用(并行): 拿着Phase 3的假设路径,开始真实攻击。浏览器自动化、命令行工具、自定义脚本,能用上的都用上。铁律:"No Exploit, No Report"——打不穿就不算漏洞,直接丢弃。

Phase 5 — 报告生成: 只有验证通过的漏洞才会出现在最终报告里,附带可复现的、复制粘贴就能用的PoC。

整条链路跑下来,一个完整测试大约需要1到1.5小时,用Claude模型大概花费50美元

实力如何?拿数据说话

Shannon在XBOW安全基准测试上拿了96.15%(104题对了100题)。这个成绩不是靠猜的,是在无提示、有源码的条件下,每个挑战都跑了一遍完整的渗透流程。

官方还拿了三个业界标准靶场做了演示:

  • OWASP Juice Shop:一次自动运行发现20+漏洞,包括认证绕过、数据库拖库、IDOR越权访问、SSRF内网探测
  • c{api}tal API:发现约15个高危漏洞,包括隐藏调试接口的命令注入、v1遗留接口的认证绕过
  • OWASP crAPI:发现15+高危漏洞,包括JWT算法混淆攻击、PostgreSQL注入脱裤、SSRF转发内部认证Token

更有意思的是,在XSS检测上它表现出了零误报——正确识别了靶场中实际上防御良好的XSS保护机制。这种"说有就有、说没有就没有"的判断力,比大多数传统工具强不少。

怎么用?两行代码搞定

Shannon提供了两种使用方式,推荐用npx一键启动:

# 1. 配置凭证(交互式向导,只需一次)
npx @keygraph/shannon setup

# 2. 开始渗透测试
npx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repo

或者clone到本地:

git clone https://github.com/KeygraphHQ/shannon.git
cd shannon

# 配置环境变量
export ANTHROPIC_API_KEY="your-api-key"

# 安装依赖并构建
pnpm install && pnpm build

# 启动测试
./shannon start -u https://your-app.com -r /path/to/your-repo

需要的东西也不多:DockerNode.js 18+、一个Anthropic API Key(推荐)。

如果你想测试带登录的应用,可以写一个配置文件:

authentication:
  login_type: form
  login_url: "https://your-app.com/login"
  credentials:
    username: "test@example.com"
    password: "yourpassword"
    totp_secret: "LB2E2RX7XFHSTGCK"  # 支持2FA

  login_flow:
    - "Type $username into the email field"
    - "Type $password into the password field"
    - "Click the 'Sign In' button"

  success_condition:
    type: url_contains
    value: "/dashboard"

甚至支持TOTP动态码SSO单点登录。AI会自己处理这些认证流程,你不用操心。

shannon_03

Lite和Pro的区别

Shannon分两个版本:

Shannon Lite(免费,AGPL-3.0):就是我们上面说的,白盒渗透测试,分析源码+真实攻击验证。适合个人和小团队。

Shannon Pro(商业版):在Lite的基础上,加了完整的静态分析引擎(SAST、SCA、密钥检测、业务逻辑安全测试),然后把静态发现和动态渗透关联起来。简单说就是——静态分析发现一个可疑的数据流,立刻让攻击Agent去真打,确认了才报告,报告里既有PoC又有精确的源码位置。

Pro还支持CI/CD原生集成、GitHub PR扫描、自建Runner部署。源码不离开你的网络,用你自己的API Key。

对于大多数开发者和中小团队来说,Lite版本已经够用了。如果你在一家需要合规审计的公司,Pro版可能更合适。

需要注意的几个坑

说完优点,也得聊聊现实问题。

第一,别往生产环境跑。 Shannon是会真刀真枪攻击你的应用的。它可能会创建用户、修改数据、删东西。官方反复强调:只在沙箱、staging或本地开发环境使用。

第二,它依赖Claude模型。 Shannon底层用的是Anthropic的Claude Agent SDK,这也是它效果好的原因之一。虽然有个实验性的Router模式可以接OpenAI或Gemini,但官方自己都说不稳定。如果你没有Anthropic的API预算,这个工具用起来会有门槛。

第三,白盒测试意味着需要源码。 Shannon Lite是白盒工具,必须有源码才能工作。如果你只有URL没有源码,Lite版搞不定。(不过有个社区fork叫"Shannon Uncontained"做了黑盒适配,有兴趣可以自己找找。)

第四,LLM的幻觉问题依然存在。 虽然Shannon用"打不穿就不报"的策略大幅降低了误报,但报告内容本身仍可能出现LLM生成的噪声。官方的建议是:必须有人工审核

谁适合用?

如果你是: - 独立开发者,想在上线前快速检查自己项目的安全性 - 小团队没有预算请安全公司做渗透测试 - 公司内部DevSecOps工程师,需要把安全测试融入CI/CD - 安全研究员,想看看AI能做到什么程度

Shannon值得你花一个下午试试。37.8k Stars不是白来的。

最后聊聊

AI做安全测试这件事,争议一直不少。有人说AI只会找表面问题,有人说取代不了人类渗透测试。但Shannon至少证明了一件事:AI可以做到传统自动化扫描器做不到的事——它真的能"理解"你的代码,然后有策略地去攻击。

96.15%的benchmark成绩,OWASP靶场上的碾压表现,这些数字摆在那里。当然,它还远不够完美,但方向是对的。

而且开源免费。AGPL-3.0协议,你可以自由使用,甚至自己改。

对开发者来说,多一个工具,多一道防线。至于那些"安全扫描流于形式"的日子——也许真的快结束了。


GitHub地址:https://github.com/KeygraphHQ/shannon 安装命令npx @keygraph/shannon setup Star数:37.8k ⭐


本文使用 MGO 编辑并发布

关注"何三笔记",回复"mgo" 免费下载使用