
shannon v2.3.0
Shannon 是一款面向 Web 应用程序和 API 的自主白盒 AI 渗透测试工具。它会分析你的源代码,识别攻击向量,并执行真实的漏洞利用,从而在漏洞进入生产环境之前证明其存在。
[!NOTE] Shannon 2.0 现已正式发布
Shannon 是一款用于 Web 应用和 API 的自主 AI 渗透测试工具。
它会分析你的源代码,识别攻击路径,并执行真实的漏洞利用,在漏洞进入生产环境之前证明其存在。
本仓库为 Shannon 开源版:完整的智能体,可在你的命令行中本地运行。
[!TIP] AI 智能体与 LLM: 请从 llms.txt 开始,获取本仓库的简明地图;或使用 llms-full.txt 获取合并为一个文件的 README 与文档。
目录
什么是 Shannon?
Shannon 是由 Keygraph 开发的自主 AI 渗透测试工具。它通过将源代码分析与实时漏洞利用相结合,对 Web 应用及其底层 API 执行安全测试。
Shannon 会分析你的 Web 应用源代码以识别潜在攻击向量,然后使用浏览器自动化和命令行工具,对运行中的应用及其 API 执行真实的漏洞利用。只有具备可用概念验证(PoC)的漏洞才会被纳入最终报告。
Shannon 是智能体本身。本仓库为 Shannon 开源版,即由你自己运行的独立渗透测试工具。同样的 Shannon 也为 Keygraph 平台(Keygraph 的商业渗透测试产品)提供支持。两者的对比请参阅版本。
Shannon 为何存在
得益于 Claude Code 和 Cursor 等工具,你的团队可以全天候持续交付代码。但你的渗透测试呢?一年才进行一次。这造成了巨大的安全缺口。在其余 364 天里,你可能在不知情的情况下将漏洞发布到生产环境。
Shannon 通过提供按需、自动化的渗透测试来填补这一缺口,可针对每次构建或发布运行。
Shannon 实战演示
以下为 Shannon 开源版针对故意存在漏洞的应用生成的示例渗透测试报告:
| 目标 | 摘要 | 报告 |
|---|---|---|
| OWASP Juice Shop | 20+ 个漏洞,包括身份验证绕过、SQL 注入、IDOR 和 SSRF。 | 查看报告 |
| c{api}tal API | 约 15 个严重和高危 API 发现,包括命令注入、身份验证绕过和批量赋值。 | 查看报告 |
| OWASP crAPI | 15+ 个严重和高危发现,涵盖 JWT、注入、SSRF 和 API 授权路径。 | 查看报告 |
快速开始
前提条件
- Docker:工作容器所需。
- Node.js 18+:推荐的
npx工作流所需。 - AI 提供商凭据:Shannon 可运行于 Anthropic、OpenAI、xAI、AWS Bedrock、工具目录中的任何其他提供商,以及任何支持 Anthropic Messages API 或 OpenAI Chat Completions/Responses API 的端点(通过自定义基础 URL)。你自带密钥,Keygraph 绝不会代理你的模型流量。Shannon 与提供商无关。建议的模型 ID 请参阅 AI 提供商。
- 已与你的提供商完成网络安全防护审核:Anthropic 和 OpenAI 会对网络安全工作负载应用实时防护,这可能会中断扫描过程。在首次运行前,请完成其针对合法安全测试人员的指引——请参阅 AI 提供商。
运行 Shannon
[!WARNING] Shannon 会主动执行漏洞利用。请仅针对你拥有或已获得明确书面授权测试的应用和环境运行。切勿对生产系统运行 Shannon。```bash
Configure credentials with the interactive wizard.
npx @keygraph/shannon setup
Run a pentest against a source-available target.
npx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repo
Shannon 从 Docker Hub 拉取 worker 镜像,启动所需的本地基础设施,将目标仓库以只读方式挂载到临时 worker 容器中,并将结果写入本地工作区。
有关源码构建、认证扫描、特定于提供商的设置以及平台说明,请参阅[文档](#documentation)。
> [!TIP]
> **更倾向于使用订阅而不是 API 额度?**
>
> - **OpenAI Codex:** 最新版 Shannon 支持 ChatGPT Plus 和 Pro 订阅。请按照 [OpenAI Codex 订阅设置指南](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#openai-codex-chatgpt-pluspro-subscription) 开始使用。
> - **xAI (Grok):** 最新版 Shannon 支持 xAI 订阅。请按照 [xAI 订阅设置指南](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#xai-grok-subscription) 开始使用。
> - **Claude Code:** 最新版 Shannon 不支持 Claude Code 订阅。请按照 [Claude Code 订阅设置指南](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#claude-code-subscription) 使用版本 `1.9.0`,该版本是基于 Claude Agent SDK 构建的最终版本。
## 关键能力
- **基于利用验证的报告**:Shannon 报告经过验证的发现,并附带可复现的概念验证步骤,而非推测性警告。
- **白盒攻击规划**:Shannon 使用源代码分析来指导动态测试,并聚焦于现实可行的攻击路径。
- **自主执行**:Shannon 通过单条命令即可启动侦察、漏洞分析、利用和报告生成。
- **认证测试**:配置文件可以描述登录流程、测试凭据、TOTP、基于电子邮件的登录流程、重点领域以及交战规则。
- **OWASP 重点覆盖**:Shannon 针对可利用的注入、XSS、SSRF、失效的身份认证和失效的访问控制问题。
- **可恢复的工作区**:Shannon 可以恢复中断的运行,而无需重新运行已完成的代理。
- **机器可读输出**:Shannon 以结构化 JSON 形式输出发现结果,并在利用模式扫描中默认输出 SARIF 2.1.0(可通过 `report.sarif: "false"` 选择退出)。SARIF 是用于静态分析结果的 OASIS 标准,因此发现结果可以流入任何读取它的代码扫描服务、漏洞管理平台、安全仪表板或 CI/CD 流水线。
- **自带密钥,与提供商无关**:Shannon 可在 Anthropic、OpenAI、xAI、AWS Bedrock 以及任何支持 Anthropic Messages API 或 OpenAI Chat Completions 或 Responses API 的端点上运行,包括通过 Ollama、vLLM 或 LM Studio 提供的自托管模型,以及 OpenRouter 和 LiteLLM 等网关。您提供凭据,因此源代码和模型流量都保留在您的基础设施内。本地和自托管模型在技术上受支持,但不推荐使用:它们可能无法像前沿模型那样可靠地遵循 Shannon 的指令或工具使用约束,因此只有在您了解所选模型行为的情况下才应选择该路径。
## 版本
Shannon 以两种方式提供:**Shannon Open Source**,即您自行运行的渗透测试工具,以及 **Keygraph 平台**,即商业渗透测试产品,它持续运行 Shannon 并围绕其闭环整个 AppSec 生命周期。
**Shannon Open Source**(本仓库)是独立的渗透测试工具:一个 CLI 代理,用于对您拥有或获授权测试的 Web 应用程序和 API 进行白盒、基于利用验证的测试。它读取您的源代码,规划攻击,执行真实利用,并且只报告它能够证明的内容。它按需运行,在该领域内功能完备。您将其指向目标,它进行渗透测试,然后生成报告。
**Keygraph 平台**是由 Shannon 驱动的企业级、持续渗透测试产品。在 Keygraph 平台中,Shannon 的增强版本在由 Keygraph 完整代码分析栈提供支持的加固、编排环境中持续运行。在该引擎周围,平台闭环了整个漏洞生命周期,从分析到经过验证的修复:
- **分析**:Code Property Graph SAST、带可达性的 SCA、密钥、IaC 和容器扫描。这些检测本身即为一流能力,同时也为 Shannon 的攻击提供上下文以增强其精准度。
- **证明**:自主黑盒和源码感知的白盒渗透测试将候选发现转化为已证明、可利用的漏洞,而非推测性警报。
- **管理**:每个仓库中每个漏洞对应一条规范记录,跨所有来源去重,并包含所有权、状态、SLA 跟踪、仪表板以及双向 Jira 同步。
- **修复与验证**:自动编写补丁,并在交付前针对修补后的代码重新测试,进入您现有的审查工作流而非自动应用。
- **部署**:自托管和隔离环境、严格的自带密钥模型访问以及客户控制的 LLM 网关模式,确保源代码、结果和模型流量保留在您的边界内。
Shannon 是 Keygraph 平台核心的证明引擎。Shannon Open Source 让您可以自行运行该引擎。Keygraph 平台则围绕 Shannon 提供持续分析、发现管理、修复、验证和企业部署。
| AppSec 生命周期阶段 | Shannon Open Source | Keygraph 平台 |
| --- | --- | --- |
| 分析 | 对源代码进行基本的 LLM 直通以规划攻击 | 实际代码库解析,外加 Code Property Graph、SAST、带可达性的 SCA、密钥、IaC 和容器 |
| 渗透测试与证明 | 仅白盒,基于利用验证 | 增强白盒,外加黑盒和灰盒模式,持续运行 |
| 管理发现 | 本地 Markdown 报告 | 规范发现系统:跨来源去重、所有权、SLA、仪表板、Jira 同步以及专业渗透测试级 PDF 报告 |
| 修复与验证 | 根据报告手动修复,然后重新运行完整扫描以验证 | 自动化修复:打开包含修复的 PR,通过点对点重新测试验证,无需重新运行完整扫描 |
| 部署与运维 | 本地 CLI 和 Docker worker | 自托管、隔离、BYOK、持续运行、企业集成 |
| 许可证与支持 | AGPL-3.0,社区 | 商业,受支持 |
在 [Keygraph 网站](https://keygraph.io) 上了解更多信息,阅读 [Keygraph 平台技术概述](https://github.com/keygraphhq/shannon/blob/main/docs/keygraph-platform.md),开始免费试用或预约[演示](https://cal.com/team/keygraph/shannon-pro),或联系 [[email protected]](mailto:[email protected])。
## 架构
Shannon 使用多代理工作流,将源代码分析与实时利用相结合:```text
┌──────────────────────┐
│ Pre-Reconnaissance │
│ (source code scan) │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Reconnaissance │
│ (attack surface │
│ mapping) │
└──────────┬───────────┘
│
▼
┌──────────┴───────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Vuln │ │ Vuln │ │ ... │
│(Injection)│ │ (XSS) │ │ │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Exploit │ │ Exploit │ │ ... │
│(Injection)│ │ (XSS) │ │ │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
└──────┬───────┴─────────────┘
│
▼
┌──────────────────────┐
│ Reporting │
└──────────────────────┘
在高层次上:
- 侦察前阶段从仓库中识别框架、入口点、数据流以及可能的攻击面。
- 侦察阶段探索实时应用程序,并将运行时行为与代码级上下文相关联。
- 漏洞分析阶段运行针对注入、XSS、SSRF、身份验证和授权的专用代理。
- 利用阶段尝试真实的验证概念攻击,并丢弃无法证明的假设。
- 报告阶段将已验证的发现、证据和修复指导汇编成最终的 Markdown 报告。
每次扫描都在一个临时的 Docker 容器中运行,该容器具有隔离的工作空间和每次调用的编排。
文档
使用以下指南获取操作细节:
| 指南 | 用途 |
|---|---|
| 源码构建和 CLI 命令 | 克隆、构建、常用命令、输出路径和本地开发。 |
| 配置 | 认证测试、登录流程、参与规则和报告过滤器。 |
| AI 提供商 | 选择模型、支持的提供商(Anthropic、OpenAI、xAI、AWS Bedrock 以及任何其他 Pi 支持的提供商)和自定义网关。 |
| 平台和网络 | Windows/WSL2、Linux、macOS、Docker 网络、本地应用程序和自定义主机名。 |
| 工作空间和恢复 | 命名工作空间、恢复中断的扫描以及工作空间存储。 |
| 安全性和限制 | 授权使用要求、非生产环境指导、变更影响、成本和模型注意事项。 |
| 覆盖范围和路线图 | 当前的漏洞覆盖范围和计划中的工作。 |
| Keygraph 平台 | 持续、代理驱动的渗透测试平台:代码分析、黑盒和白盒测试、发现管理、修复、验证和企业部署。 |
安全性、范围和限制
Shannon 不是被动扫描器。其利用代理可以创建用户、提交表单、变更应用程序状态、触发出站请求,并以其他方式影响目标系统。请使用带有一次性数据的沙盒、暂存或本地开发环境。
您有责任合法且合乎道德地使用 Shannon。请勿将 Shannon 指向您不拥有或未经明确授权测试的系统、仓库或应用程序。
重要限制:
- Shannon 开源版专注于可主动利用的问题,如注入、XSS、SSRF、身份验证失效和授权失效。更广泛的静态分析覆盖范围,包括易受攻击的依赖项和不安全的配置,通过 Keygraph 平台提供。
- 发现结果仍需人工审查。LLM 生成的报告可能包含证据不足或不正确的细节。
- Anthropic、OpenAI、xAI 和 AWS Bedrock 是内置提供商,任何 Anthropic Messages API 或 OpenAI Chat Completions 或 Responses API 端点都可以通过自定义基础 URL 访问。模型能力各不相同,无法可靠遵循 Shannon 指令或工具使用约束的模型将产生较弱的结果。
- 一次完整运行大约需要 1 到 1.5 小时,并且根据模型定价和应用程序复杂性,可能会产生 LLM API 成本。
- 请勿扫描不受信任或对抗性的代码库。能够读取源代码的 AI 驱动工具可能面临提示注入的风险。
在新环境中运行 Shannon 之前,请阅读完整的安全性和限制指南。
许可证
Shannon 开源版根据 GNU Affero 通用公共许可证 v3.0 授权。
对于需要不同许可条款、商业支持、私有再分发、托管服务使用或更广泛部署选项(包括 Keygraph 平台)的组织,可提供商业和企业许可。
如需商业许可,请联系 [email protected]。
关于 Keygraph
Keygraph 是 Shannon 背后的公司。它还构建了 Keygraph 平台,这是一个商业化的代理驱动渗透测试产品,闭环了完整的 AppSec 生命周期,并以 Shannon 的增强版本作为其渗透测试引擎。
社区和支持
社区办公时间可用于获取有关错误、部署和配置问题的实操帮助。
- 美国/欧洲:周四,太平洋时间上午 10:00
- 亚洲:周四,印度标准时间下午 2:00
- 预约时段
加入 Discord 以提问、分享反馈并与其他 Shannon 用户联系。
目前,Keygraph 不接受外部代码贡献。欢迎提交问题以报告错误和功能请求:
保持联系:
常见问题
我可以自行托管 Shannon 吗?
可以。Shannon 开源版完全在您自己的基础设施上的临时 Docker 容器中运行。您的源代码以只读方式挂载,绝不会离开您的环境。
Shannon 是否支持自带密钥(BYOK)?
支持,始终支持。您提供 Shannon 用于运行渗透测试的 LLM 凭据,在所有部署中(无论是开源版还是商业版)都是如此。Keygraph 绝不会代理您的模型流量。
Shannon 是否输出 SARIF?
是的。Shannon 会生成 SARIF 2.1.0(OASIS 标准的静态分析结果格式)以及结构化 JSON。任何 SARIF 消费者都可以读取它:代码扫描服务、漏洞管理平台、安全仪表板和 CI/CD 流水线。在利用模式扫描中默认写入该文件;在配置文件中将 report.sarif 设置为 "false" 可选择退出。
Shannon 支持哪些 AI 提供商?
Anthropic、OpenAI、xAI 和 AWS Bedrock 是内置的,并直接通过提供商 ID 配置。除此之外,Shannon 可以在任何实现 Anthropic Messages API 或 OpenAI Chat Completions 或 Responses API 的端点上运行,通过自定义基础 URL 访问。规则是 API 格式,而不是供应商。Shannon 在整个渗透测试过程中使用单一的统一模型设置。
我可以在本地或自托管模型上运行 Shannon 吗?
技术上可以,但不推荐。Shannon 可与通过 Ollama、vLLM 或 LM Studio 提供的本地模型配合使用,这些模型暴露了兼容 OpenAI 的端点,也可与 OpenRouter 等路由器和 LiteLLM 等网关配合使用。通过自定义基础 URL 将 Shannon 指向该端点。能力各不相同,无法可靠遵循 Shannon 指令或工具使用约束的模型将产生比前沿模型更弱的渗透测试结果,因此只有在您了解所选模型行为的情况下才走这条路。请参阅 AI 提供商。
Shannon 是实际利用漏洞,还是仅进行扫描?
Shannon 会执行真实的利用。只有在生成有效的验证概念后,它才会报告发现,并丢弃无法证明的假设。它是一个渗透测试器,而不是扫描器。
由 Keygraph 构建

