
你的团队用AI编程工具每天部署代码,但渗透测试一年做一次——中间364天的安全空白谁来填?传统扫描器报一堆"可能存在"的漏洞,安全工程师还要逐条验证;请一次人工渗透测试,周期数周、成本数万美元。
Shannon给出的回答是:一个能读源代码、能自己操作浏览器发起攻击、打不进去就不报告的全自主渗透测试Agent。在清理版XBOW基准的白盒测试中,它以96.15%的漏洞利用成功率(100/104)拿到了目前公开的最高分之一。本文将从它的"不报假阳性"设计哲学、五阶段多Agent架构、基准成绩的适用条件,到实际使用成本,完整拆解这个项目。
项目信息
项目 | 信息 |
|---|---|
GitHub | KeygraphHQ/shannon |
Stars | 34,858 |
许可证 | AGPL-3.0 |
组织 | KeygraphHQ |
理解Shannon的第一步,是明确它不是什么。
传统的DAST(动态应用安全测试)工具和SAST(静态应用安全测试)工具,本质上是模式匹配——扫描代码或HTTP响应中的已知危险模式,输出一份"疑似漏洞"清单。安全团队拿到这份清单后,往往要花大量时间逐条验证,其中大量是假阳性。
Shannon的核心设计原则用一句话概括*"POC or it didn't happen"(没有PoC就等于没发生)。具体来说:
这意味着安全团队拿到的每一条发现都是已验证的、可复现的。在官方提供的OWASP Juice Shop测试报告中,Shannon发现了20+个漏洞,涵盖SQL注入认证绕过(Critical)、UNION注入数据提取(Critical)、SSRF、XSS、多种授权绕过等类别。值得注意的是,在另外两个测试目标(c{api}tal API、OWASP crAPI)上,Shannon的XSS检测零假阳性——它正确识别出这些应用具备健壮的XSS防御,没有误报。
当然,"打不进去就不报"也意味着Shannon不覆盖无法主动利用的问题,如脆弱的第三方库依赖、弱加密算法配置等静态分析类发现。Help Net Security在2026年2月的评测中也指出:Shannon"擅长它所做的事,但忽略业务逻辑缺陷或不在其攻击列表中的配置问题"。这是"proof-by-exploitation"方法论的固有边界。
Shannon的技术架构有两个关键词:五阶段管线和多Agent并行。底层推理引擎基于Anthropic Claude Agent SDK,采用三层模型配置:Claude Haiku 4.5负责摘要、Claude Sonnet 4.6负责安全分析、Claude Opus 4.6负责深度推理。
整个渗透测试流程分为五个阶段:
阶段1:Pre-Recon(预侦察)
这一阶段同时进行外部扫描和源代码分析。外部扫描使用Nmap(端口发现)、Subfinder(子域名枚举)、WhatWeb(技术栈识别)等工具;源代码分析则映射应用架构、安全相关组件和完整攻击面。Shannon是白盒工具(white-box),需要访问应用源代码——这是它区别于黑盒扫描器的核心前提。
阶段2:Recon(侦察)
桥接静态分析和动态分析。Shannon通过Playwright浏览器自动化验证端点是否真实存在、映射认证流程、清点所有输入向量。它还支持自动处理2FA/TOTP登录(包括SSO),无需人工干预。
阶段3:Vulnerability Analysis(漏洞分析)——5个并行Agent
这是架构的核心。Shannon同时启动5个独立的分析Agent,各负责一个漏洞类别:
Agent | 分析方法 | 覆盖范围 |
|---|---|---|
Injection | Source→Sink污点追踪 | SQL/命令/文件/模板/反序列化注入 |
XSS | Sink→Source污点追踪 | HTML渲染上下文中的跨站脚本 |
SSRF | Sink→Source污点追踪 | HTTP客户端、原始socket、URL打开器 |
Auth | Guard验证 | 缺失的安全控制(限速、会话管理等) |
Authz | Guard验证 | 缺失的授权检查(水平/垂直/上下文) |
5个Agent并发运行,互不阻塞。
阶段4:Exploitation(漏洞利用)——5个并行Agent
每个分析Agent完成后,对应的利用Agent立即启动(流水线式并行)。利用Agent通过Playwright浏览器自动化执行真实攻击,将每个发现分类为三种状态:EXPLOITED(已利用)、POTENTIAL(潜在)、FALSE POSITIVE(假阳性)。只有EXPLOITED进入最终报告。
阶段5:Reporting(报告)
综合所有证据,生成渗透测试级别的执行报告,包括去重、严重性评估和修复建议。
在工程层面,Shannon使用Temporal做持久化工作流编排,具备崩溃恢复能力——如果中途中断,可以通过命名工作空间恢复运行,不重复已完成的Agent。每个Agent的进度通过git commit检查点保存,自动重试最多3次。整个工作负载运行在Docker隔离容器中,每次扫描一个独立容器,互不干扰。
Shannon在XBOW基准上取得了96.15%的漏洞利用成功率(100/104)。这是一个值得拆解的数字——不仅因为成绩本身,更因为理解它的适用条件很重要。
测试条件说明:
各漏洞类型的成绩如下:
漏洞类型 | 总数 | 成功 | 成功率 |
|---|---|---|---|
Broken Authorization | 25 | 25 | 100% |
SQL Injection | 7 | 7 | 100% |
Blind SQL Injection | 3 | 3 | 100% |
SSRF / Misconfiguration | 22 | 21 | 95.45% |
XSS | 23 | 22 | 95.65% |
Server-Side Template Injection | 13 | 12 | 92.31% |
Command Injection | 11 | 10 | 90.91% |
总计 | 104 | 100 | 96.15% |
Authorization和SQL Injection达到100%,是Shannon的强项。成功率相对较低的是命令注入(90.91%)和SSTI(92.31%)。
4个失败案例也值得关注:
这4个失败案例的共同特征是:Shannon找到了漏洞但在利用阶段犯了判断错误,而非完全遗漏。
关于与商业DAST工具的对比:部分媒体报道提及"大多数商业DAST工具在可比评估中难以达到30-40%成功率",但这一说法未引用具体的原始测试数据来源。更重要的是,Shannon的96.15%是在白盒模式+源代码访问的条件下取得的,商业DAST通常是黑盒测试,二者的测试前提不同,不宜直接对比。作为参考,同类AI安全工具在XBOW基准上的公开成绩包括:KinoSec 92.3%(黑盒模式)、Xfenser AI 88.5%、XBOW自身商业平台约85%(黑盒)。
成本方面,Shannon官方README给出的数据:单次完整扫描耗时1-1.5小时,API成本约$50 USD(README中基于Claude Sonnet 4.5的测试数据,当前架构默认使用Claude Sonnet 4.6),范围在$40-55之间,取决于模型定价和应用复杂度。Help Net Security的评测中提到中等规模应用约$8-10 API成本,可能对应更小规模或部分测试的场景。
对比传统人工渗透测试一次数万美元、耗时数周的成本,$50/次、1小时出报告的门槛确实低了几个数量级。但需要注意的是,Shannon官方也在免责声明中提醒:LLM仍可能产生幻觉,需人工验证所有发现的合法性和严重性。
上手方式有两种:
npx模式(推荐,零安装):
npx @keygraph/shannon setup # 一次性配置
npx @keygraph/shannon start -u https://your-app.com -r /path/to/repo本地模式(完整构建):
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon
echo "ANTHROPIC_API_KEY=your-key" > .env
pnpm install && pnpm build
./shannon start -u https://your-app.com -r /path/to/repo前置条件包括Docker、Node.js 18+、Anthropic API Key(推荐)。Shannon也支持AWS Bedrock、Google Vertex AI和Router模式(可选OpenAI/OpenRouter)。配置选项支持YAML文件指定认证方式(表单登录、SSO、API认证、Basic Auth),也支持2FA/TOTP和自定义登录流程。
几个使用注意事项:
产品线方面,Shannon分为两个版本:开源的Shannon Lite(AGPL-3.0,即本文介绍的版本)和商业的Shannon Pro。Pro版本增加了Code Property Graph静态分析引擎、业务逻辑安全测试、SCA可达性分析、秘密检测、以及"静态-动态关联"能力(静态分析发现的漏洞自动喂给动态渗透管线去利用)。Shannon Lite不接受外部代码贡献(Pull Request),只接受Issue。
Shannon代表了一种正在成型的安全工具范式:不是报告"可能存在的风险",而是用Agent自主完成从源代码分析到实际攻击的完整链条,只报告打得进去的漏洞。基于Claude Agent SDK的多Agent架构、Temporal持久化工作流、Docker隔离执行,构成了一个工程完成度较高的Agent系统。96.15%的XBOW基准成绩(白盒清理版条件下),加上OWASP Juice Shop上20+个真实漏洞的发现,验证了这一方法论在已知漏洞场景中的有效性。
在此基础上,有几点值得进一步思考。Shannon Lite当前只覆盖5类可主动利用的漏洞(注入、XSS、SSRF、认证、授权),不涉及业务逻辑缺陷、配置错误、第三方依赖等静态分析类问题——这些恰恰是传统SAST/SCA工具的覆盖范围。因此,Shannon更适合定位为安全工具链中的动态验证层,而非替代全部安全测试流程。另外,$50/次的API成本虽然远低于人工渗透测试,但对于需要频繁扫描的CI/CD场景,累积成本仍需评估。LLM判断错误导致的4个失败案例也说明,当前Agent在多步推理链条中的可靠性仍有提升空间——但从96.15%的整体成功率看,这个方向的可行性已经得到初步验证。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。