项目简介

Shannon 是由 Keygraph 开发的自主化 AI 白盒渗透测试工具,专为 Web 应用程序和 API 设计。它通过分析源代码、执行真实漏洞利用、生成可复现 PoC 报告的方式,实现端到端的自动化安全测试。

“Thanks to tools like Claude Code and Cursor, your team ships code non-stop. But your penetration test? That happens once a year. This creates a massive security gap.”

项目数据:

核心特性

1. 完全自主运行

单条命令即可启动完整渗透测试流程。Shannon 自动处理 2FA/TOTP 登录(包括 SSO)、浏览器导航、漏洞利用和报告生成,全程无需人工干预。

2. 白盒代码分析

与传统的黑盒扫描器不同,Shannon 结合源代码分析指导攻击策略,理解应用框架、入口点和潜在攻击面,让动态测试更有针对性。

3. 可复现的 PoC 漏洞利用

最终报告仅包含已验证、可利用的发现,附带可复制粘贴的 PoC(概念验证),确保每个漏洞都是真实可利用的。

4. OWASP 漏洞覆盖

漏洞类别 支持状态
认证失效
授权失效
注入攻击
跨站脚本(XSS)
服务端请求伪造(SSRF)

5. 多代理并行架构

5 个并发代理分别负责不同漏洞类别(注入、XSS、认证、授权、SSRF),并行执行分析和漏洞利用,大幅提升测试效率。

工作原理

Shannon 采用五阶段多代理架构,结合白盒源代码分析与动态漏洞利用:

┌──────────────────────┐
│ 阶段1:预侦察 │ ← 源代码扫描,识别框架和攻击面
└──────────┬───────────┘

┌──────────────────────┐
│ 阶段2:侦察 │ ← 浏览器自动化,构建攻击面地图
└──────────┬───────────┘

┌──────────┴───────────┐
│ 阶段3 │ ← 5个代理并行分析
│ ┌─────┐ ┌─────┐ │
│ │注入 │ │XSS │ │
│ └──┬──┘ └──┬──┘ │
│ ┌─────┐ ┌─────┐ │
│ │认证 │ │授权 │ │
│ └──┬──┘ └──┬──┘ │
│ ┌─────┐ │
│ │SSRF │ │
│ └──┬──┘ │
└──────┼──────────────┘

┌──────────────────────┐
│ 阶段4:漏洞利用 │ ← 执行真实攻击,验证漏洞
└──────────┬───────────┘

┌──────────────────────┐
│ 阶段5:报告生成 │ ← 编译已验证发现
└──────────────────────┘

每个阶段都有独立的 AI 代理负责,无法利用的假设作为误报丢弃,确保”无漏洞利用,无报告”。

产品版本对比

Shannon 有两个版本,满足不同需求:

特性 Shannon Lite(免费开源) Shannon Pro(商业版)
静态分析 代码审查提示 完整的代理式 SAST、SCA、密钥检测
动态测试 自主 AI 渗透测试 带静态-动态关联的渗透测试
分析引擎 代码审查 基于 CPG 的数据流分析 + LLM 推理
业务逻辑测试 自动不变量发现、模糊测试
CI/CD 集成 手动/CLI 原生 CI/CD、GitHub PR 扫描
部署方式 CLI 托管云或自托管 Runner

环境准备

系统要求

依赖 说明
Docker 容器运行时(必须安装)
Node.js 18+ npx 命令所需
pnpm 仅 Clone Build 模式需要
AI 提供商凭证 Anthropic API Key(推荐)

AI 模型配置

Shannon 使用 Claude 模型的三级架构:

层级 默认模型 用途
Small Claude Haiku 4.5 摘要生成
Medium Claude Sonnet 4.6 安全分析
Large Claude Opus 4.7 深度推理

⚠️ Shannon 仅官方支持 Claude 模型。完整测试约 1-1.5 小时,使用 Claude 4.5 Sonnet 约花费 $50 USD。

平台支持

平台 支持状态
macOS ✅ 完全支持
Linux ✅ 支持
Windows ⚠️ 仅 WSL2

安装与使用

方式一:npx 快速启动(推荐)

# 1. 交互式配置凭证(首次使用)
npx @keygraph/shannon setup

# 或直接导出环境变量
export ANTHROPIC_API_KEY=your-api-key

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

CLI 底层会自动从 Docker Hub 拉取预构建镜像(约 1GB),以只读方式挂载目标仓库。

方式二:Clone 本地构建

# 克隆仓库
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon

# 配置凭证
cat > .env << 'EOF'
ANTHROPIC_API_KEY=your-api-key
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
EOF

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

# 运行测试
./shannon start -u https://example.com -r /path/to/repo

高级用法

# 使用配置文件(含登录信息、规则等)
npx @keygraph/shannon start -u https://example.com -r /path/to/repo -c config.yaml

# 自定义输出目录
npx @keygraph/shannon start -u https://example.com -r /path/to/repo -o ./reports

# 命名工作空间(方便恢复)
npx @keygraph/shannon start -u https://example.com -r /path/to/repo -w q1-audit

# 查看实时日志
npx @keygraph/shannon logs <workspace>

# 查看 Temporal 工作流 UI
# 浏览器打开 http://localhost:8233

# 列出所有工作空间
npx @keygraph/shannon workspaces

测试本地应用

Docker 容器无法直接访问宿主机的 localhost,需使用特殊地址:

npx @keygraph/shannon start -u http://host.docker.internal:3000 -r /path/to/repo

配置详解

完整的配置文件支持认证信息、测试规则、报告过滤等高级功能:

# 目标环境描述(可选,帮助 AI 更好理解应用)
description: "Next.js 电商平台,PostgreSQL 数据库,本地开发环境"

# 限制测试的漏洞类别(可选)
# vuln_classes: [injection, xss, auth, authz, ssrf]

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

# 用自然语言描述登录流程
login_flow:
- "在邮箱输入框中输入 $username"
- "在密码输入框中输入 $password"
- "点击 '登录' 按钮"

success_condition:
type: url_contains
value: "/dashboard"

rules:
avoid:
- description: "避免测试登出功能"
type: url_path
value: "/logout"
focus:
- description: "重点测试 API 端点"
type: url_path
value: "/api"

report:
min_severity: low # low | medium | high | critical
min_confidence: low # low | medium | high

AI 提供商配置

除了 Anthropic API(推荐),Shannon 还支持多种 AI 提供商:

Anthropic API(推荐)

export ANTHROPIC_API_KEY=your-api-key
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000

AWS Bedrock

export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
export AWS_BEARER_TOKEN_BEDROCK=your-bearer-token

Google Vertex AI

export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/sa-key.json

自定义代理

可通过设置 ANTHROPIC_BASE_URL 使用 LiteLLM 等代理转发请求,适合需要自定义路由的场景。

实测效果

Shannon 在多个知名安全测试靶场上表现优异:

XBOW 安全基准测试

无提示、源码感知变体中得分 **96.15%**(104 个漏洞利用中成功 100 个)。

OWASP Juice Shop

  • 单次运行发现 20+ 个漏洞
  • 包括 SQL 注入认证绕过、管理员权限提升、IDOR 漏洞、SSRF 内网侦察等

crAPI

  • 发现 15+ 个严重和高危漏洞
  • 包括多种 JWT 攻击(Algorithm Confusion、alg:none)、PostgreSQL 完全接管、XSS 零误报等

输出报告

每次扫描完成后,Shannon 在工作空间目录生成完整报告:

workspaces/{hostname}_{sessionId}/
├── session.json # 会话指标数据
├── workflow.log # 工作流日志
├── agents/ # 各代理执行日志
├── prompts/ # 提示快照(可复现性)
└── deliverables/
└── comprehensive_security_assessment_report.md

工作空间与断点续扫

每次扫描自动创建工作空间,支持中断恢复:

# 启动命名工作空间
npx @keygraph/shannon start -u https://example.com -r /path/to/repo -w my-audit

# 恢复运行(跳过已完成的代理,从中断处继续)
npx @keygraph/shannon start -u https://example.com -r /path/to/repo -w my-audit

⚠️ 恢复时 URL 必须与原始工作空间匹配,防止跨目标污染。每个代理的进度通过 git commits 检查点保存。

安全警告

Shannon 是主动渗透测试工具,不是被动扫描器,使用时务必注意:

  • ⚠️ 不要在生产环境运行 — 仅限沙箱、预发布或本地开发环境
  • 建议在虚拟机中运行以最大化隔离
  • 需要明确书面授权,未授权扫描和利用是非法的
  • LLM 仍可能产生幻觉,需人工验证所有报告发现
  • Windows Defender 可能将报告中的漏洞利用代码标记为恶意软件

总结

Shannon 代表了 AI 驱动安全测试的前沿方向。通过结合源代码分析与动态漏洞利用,它能在 1-2 小时内完成传统渗透测试需要数天的工作,且生成的 PoC 都是经过验证的真实漏洞。

适用场景:

  • 开发团队的持续安全测试
  • 安全团队的效率倍增工具
  • 开源项目的安全审计
  • CI/CD 管道中的自动化安全门禁

不足之处:

  • 完整测试成本较高(约 $50/次)
  • 仅支持 Claude 模型
  • Windows 需通过 WSL2 使用
  • 目前不支持外部 PR 贡献

对于需要在开发流程中嵌入安全测试的团队来说,Shannon Lite 的开源免费版本已经是一个非常强大的起点。

GitHub 仓库:https://github.com/KeygraphHQ/shannon