DevamShah/vedha

GitHub: DevamShah/vedha

一个基于 AI 自治代理的白盒 Web 安全渗透测试工具,旨在自动化发现并验证应用与 API 的可利用漏洞。

Stars: 0 | Forks: 0

Shannon — AI Pentester for Web Applications and APIs # Shannon — AI Pentester by Keygraph KeygraphHQ%2Fshannon | Trendshift Shannon 是一个用于 Web 应用和 API 的自治白盒 AI 渗透测试工具。
它分析你的源代码,识别攻击向量,并执行实际漏洞利用,以在漏洞进入生产环境前证明其存在。 加入 Discord 访问 Keygraph.io
## 什么是 Shannon? Shannon 是由 [Keygraph](https://keygraph.io) 开发的 AI 渗透测试工具。它通过结合源代码分析与实时漏洞利用,对 Web 应用及其底层 API 进行白盒安全测试。 Shannon 分析你的 Web 应用源代码以识别潜在攻击向量,然后使用浏览器自动化和命令行工具执行真实漏洞利用(注入攻击、认证绕过、SSRF、XSS 等)。只有具备可用概念验证(PoC)的漏洞才会被纳入最终报告。 **Shannon 存在的原因** 得益于 Claude Code 和 Cursor 等工具,你的团队可以持续交付代码。但你的渗透测试?每年才进行一次。这会形成一个 *巨大的* 安全缺口。在另外 364 天里,你可能在不知不觉中把漏洞推向生产环境。 Shannon 通过提供按需、自动化的渗透测试来填补这一缺口,可针对每次构建或发布运行。 ## Shannon 在行动 Shannon 在 OWASP Juice Shop 上发现了 20 多个漏洞,包括认证绕过和数据库数据泄露。[完整报告 →](sample-reports/shannon-report-juice-shop.md) ![Demo](https://raw.githubusercontent.com/DevamShah/vedha/main/assets/shannon-action.gif) ## 功能特性 - **完全自治操作**:一条命令即可启动完整渗透测试。Shannon 处理 2FA/TOTP 登录(包括 SSO)、浏览器导航、漏洞利用和报告生成,无需人工干预。 - **可复用的概念验证漏洞利用**:最终报告仅包含已验证、可利用的发现。无法利用的漏洞不会被报告。 - **OWASP 漏洞覆盖**:识别并验证注入、XSS、SSRF 以及认证/授权绕过,附带额外类别的开发中支持。 - **代码感知的动态测试**:分析源代码以指导攻击策略,然后在运行中的应用上通过实时浏览器和基于 CLI 的漏洞利用进行验证。 - **集成安全工具**:在侦察和发现阶段利用 Nmap、Subfinder、WhatWeb 和 Schemathesis。 - **并行处理**:漏洞分析和利用阶段在所有攻击类别中并发运行。 ## 产品线 Shannon 由 [Keygraph](https://keygraph.io) 开发,提供两个版本: | 版本 | 许可证 | 适用场景 | |---------|---------|----------| | **Shannon Lite** | AGPL-3.0 | 对你自己应用进行本地测试。 | | **Shannon Pro** | 商业 | 需要单一 AppSec 平台的组织(SAST、SCA、密钥管理、业务逻辑测试、自治渗透测试),支持 CI/CD 集成与自托管部署。 | ### Shannon Pro:架构概览 Shannon Pro 是一个一体化应用安全平台,替代了将独立 SAST、SCA、密钥扫描和渗透测试工具拼接在一起的方案。它采用两阶段流水线:代理式静态代码分析,随后是自治 AI 渗透测试。两个阶段的结果相互交叉引用和关联,确保每个报告的漏洞都具备可行的概念验证漏洞利用和精确的源代码位置。 **阶段 1:代理式静态分析** Shannon Pro 将代码库转换为代码属性图(CPG),结合 AST、控制流图和程序依赖图。随后运行五项分析能力: - **数据流分析(SAST)**:识别来源(用户输入、API 请求)和汇点(SQL 查询、命令执行),并追踪它们之间的路径。在每个节点,LLM 评估所应用的特定净化措施是否足以应对上下文中的特定漏洞,而非依赖安全函数的硬编码允许列表。 - **单点问题检测(SAST)**:基于 LLM 的单点漏洞检测:弱加密、硬编码凭证、不安全配置、缺失安全头、弱随机数、禁用证书验证以及过于宽松的 CORS。 - **业务逻辑安全测试(SAST)**:LLM 代理分析代码库以发现应用特定的不变量(例如“文档访问必须验证组织所有权”),生成针对这些不变量的模糊器,并合成完整概念验证漏洞利用。这可以捕获基于模式的扫描器无法检测到的授权失败和领域特定逻辑错误。 - **SCA 与可达性分析**:超越简单的 CVE 标记,通过追踪漏洞函数是否可通过应用入口点经由 CPG 实际到达来评估可达性。不可达的漏洞被降优先级。 - **密钥检测**:结合正则表达式匹配与基于 LLM 的检测(针对动态构造的凭证、自定义格式、混淆令牌),并对相应服务执行活跃度验证,使用只读 API 调用。 **阶段 2:自治动态渗透测试** 与 Shannon Lite 相同的多代理渗透测试流水线(侦察、并行漏洞分析、并行利用、报告),并增强了静态分析结果注入到利用队列的功能。静态结果被映射到 Shannon 的五个攻击领域(注入、XSS、SSRF、认证、授权),漏洞利用代理会针对每个发现尝试真实概念验证攻击。 **静态-动态关联** 这是核心差异化点。静态分析中识别的数据流漏洞(例如未净化输入到达 SQL 查询)不会作为理论风险报告。它会被传递给对应的漏洞利用代理,以对运行中的应用进行实际攻击尝试。确认的漏洞利用会被追溯至确切的源代码位置,为开发者提供漏洞可利用性证明及需要修复的代码行。 **部署模式** Shannon Pro 支持自托管运行器模式(类似 GitHub Actions 的自托管运行器)。处理代码访问和所有 LLM API 调用的数据平面完全在客户基础设施内运行,使用客户自己的 API 密钥。源代码永远不会离开客户网络。Keygraph 控制平面负责作业编排、扫描调度和报告 UI,仅接收聚合结果。 | 能力 | Shannon Lite | Shannon Pro(一体化 AppSec) | | --- | --- | --- | | **许可证** | AGPL-3.0 | 商业 | | **静态分析** | 代码审查提示 | 完整的代理式 SAST、SCA、密钥管理、业务逻辑测试 | | **动态测试** | 自治 AI 渗透测试 | 自治 AI 渗透测试(含静态-动态关联) | | **分析引擎** | 代码审查提示 | 基于 CPG 的数据流分析,每个节点结合 LLM 推理 | | **业务逻辑** | 无 | 自动不变量发现、模糊器生成、漏洞利用合成 | | **CI/CD 集成** | 手动 / CLI | 原生 CI/CD,GitHub PR 扫描 | | **部署** | CLI | 管理云或自托管运行器 | | **边界分析** | 无 | 自动服务边界检测与团队路由 | [完整技术细节 →](./SHANNON-PRO.md) ## 目录 - [什么是 Shannon?](#what-is-shannon) - [Shannon 在行动](#shannon-in-action) - [功能特性](#features) - [产品系列](#product-line) - [安装与使用说明](#setup--usage-instructions) - [先决条件](#prerequisites) - [快速启动(推荐:npx)](#quick-start-recommended-npx) - [克隆与构建](#clone-and-build) - [准备你的仓库](#prepare-your-repository) - [常用命令](#common-commands) - [工作空间与恢复](#workspaces-and-resuming) - [凭证与配置](#credentials-and-configuration) - [AWS Bedrock](#aws-bedrock) - [Google Vertex AI](#google-vertex-ai) - [自定义基础 URL](#custom-base-url) - [路由模式](#experimental---unsupported-router-mode-alternative-providers) - [平台特定说明](#platform-specific-instructions) - [输出与结果]( .env << 'EOF' ANTHROPIC_API_KEY=your-api-key CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 EOF # 选项 B:导出环境变量 export ANTHROPIC_API_KEY="your-api-key" # or CLAUDE_CODE_OAUTH_TOKEN export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 # recommended # 3. 安装依赖并构建 pnpm install pnpm build # 4. 运行渗透测试 ./shannon start -u https://your-app.com -r /path/to/your-repo ``` Shannon 将在本地构建工作镜像,启动基础设施,并启动一个临时工作容器以执行扫描。 ### 准备你的仓库 Shannon 可以扫描机器上的任意仓库。通过 `-r` 参数传入绝对或相对路径。 示例: ``` npx @keygraph/shannon start -u https://example.com -r /path/to/repo ```
克隆与构建命令等效项 ``` ./shannon start -u https://example.com -r ./relative/path ```
### 常用命令 #### 监控进度 ``` npx @keygraph/shannon logs npx @keygraph/shannon status ``` 打开 Temporal Web UI 以进行详细监控: ``` open http://localhost:8233 ```
克隆与构建命令等效项 ``` ./shannon logs ./shannon status ```
#### 停止 Shannon ``` npx @keygraph/shannon stop npx @keygraph/shannon stop --clean npx @keygraph/shannon uninstall ```
克隆与构建命令等效项 ``` ./shannon stop ./shannon stop --clean ```
#### 使用示例 ``` # 基础渗透测试 npx @keygraph/shannon start -u https://example.com -r /path/to/repo # 使用配置文件 npx @keygraph/shannon start -u https://example.com -r /path/to/repo -c /path/to/my-config.yaml # 自定义输出目录 npx @keygraph/shannon start -u https://example.com -r /path/to/repo -o ./my-reports # 命名工作区 npx @keygraph/shannon start -u https://example.com -r /path/to/repo -w q1-audit # 列出所有工作区 npx @keygraph/shannon workspaces ```
克隆与构建命令等效项 ``` # 基础渗透测试 ./shannon start -u https://example.com -r /path/to/repo # 使用配置文件 ./shannon start -u https://example.com -r /path/to/repo -c /path/to/my-config.yaml # 自定义输出目录 ./shannon start -u https://example.com -r /path/to/repo -o ./my-reports # 命名工作区 ./shannon start -u https://example.com -r /path/to/repo -w q1-audit # 列出所有工作区 ./shannon workspaces # 重建工作器镜像 ./shannon build --no-cache ```
### 工作空间与恢复 Shannon 支持 **工作空间**,允许你在中断或失败后恢复运行,而无需重新执行已完成的代理。 **工作原理:** - 每次运行都会创建一个工作空间(默认自动命名,例如 `example-com_shannon-1771007534808`) - 工作空间存储在 `./workspaces/`(本地模式)或 `~/.shannon/workspaces/`(npx 模式) - 使用 `-w <名称>` 为运行指定自定义名称以便引用 - 恢复任何运行时,只需通过 `-w` 传入工作空间名称,Shannon 会检测哪些代理已成功完成并从中断处继续 - 每个代理的进度会通过 git 提交进行快照,恢复的运行会从已验证的状态开始 ``` # 从命名工作区开始 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 # 从之前的运行恢复自动命名工作区 npx @keygraph/shannon start -u https://example.com -r /path/to/repo -w example-com_shannon-1771007534808 # 列出所有工作区及其状态 npx @keygraph/shannon workspaces ```
克隆与构建命令等效项 ``` ./shannon start -u https://example.com -r /path/to/repo -w my-audit ./shannon start -u https://example.com -r /path/to/repo -w my-audit ./shannon start -u https://example.com -r /path/to/repo -w example-com_shannon-1771007534808 ./shannon workspaces ```
### 凭证与配置 #### 凭证优先级 **本地模式** 从以下位置解析凭证: 1. **环境变量** - `export ANTHROPIC_API_KEY=...` 2. **`.env` 文件** - `./.env` **npx 模式** 使用 TOML 而非 `.env`: 1. **环境变量** - `export ANTHROPIC_API_KEY=...` 2. **`~/.shannon/config.toml`** - 通过 `npx @keygraph/shannon setup` 创建 环境变量始终优先,因此你可以为单次会话覆盖已保存的配置而无需编辑文件。 #### 配置(可选) 虽然无需配置文件即可运行,但创建配置文件可启用认证测试并自定义分析。传递任意配置文件路径以 `-c` 参数运行。 ##### 创建配置文件 复制并修改示例配置: ``` cp configs/example-config.yaml ./my-app-config.yaml ``` ##### 基础配置结构 ``` # 可选:描述您的目标环境(最多 500 个字符) description: "Next.js e-commerce app on PostgreSQL. Local dev environment — .env files contain local-only credentials, not deployed to production." authentication: login_type: form login_url: "https://your-app.com/login" credentials: username: "test@example.com" password: "yourpassword" totp_secret: "LB2E2RX7XFHSTGCK" # Optional for 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" rules: avoid: - description: "AI should avoid testing logout functionality" type: path url_path: "/logout" focus: - description: "AI should emphasize testing API endpoints" type: path url_path: "/api" ``` 运行命令: ``` npx @keygraph/shannon start -u https://example.com -r /path/to/repo -c ./my-app-config.yaml ```
克隆与构建命令等效项 ``` ./shannon start -u https://example.com -r /path/to/repo -c ./my-app-config.yaml ```
#### TOTP 2FA 设置 如果你的应用使用双因素认证,只需将 TOTP 密钥添加到配置文件中。AI 将自动在测试期间生成所需的验证码。 #### 订阅计划速率限制 Anthropic 订阅计划按 **滚动 5 小时窗口** 重置用量。默认重试策略(30 分钟最大退避)可能在窗口重置前耗尽重试。请添加以下配置: ``` pipeline: retry_preset: subscription # Extends max backoff to 6h, 100 retries max_concurrent_pipelines: 2 # Run 2 of 5 pipelines at a time (reduces burst API usage) ``` `max_concurrent_pipelines` 控制同时运行的漏洞管道数量(1-5,默认 5)。降低该值可减少触发速率限制的概率,但会增加总耗时。 ### AWS Bedrock Shannon 也支持 [Amazon Bedrock](https://aws.amazon.com/bedrock/),而无需使用 Anthropic API 密钥。 #### 快速设置 运行 `npx @keygraph/shannon setup` 并选择 **AWS Bedrock**。向导会提示你输入区域、承载令牌和模型 ID。 或直接导出环境变量: ``` export CLAUDE_CODE_USE_BEDROCK=1 export AWS_REGION=us-east-1 export AWS_BEARER_TOKEN_BEDROCK=your-bearer-token export ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 export ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 export ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-6 ```
克隆与构建:改用 .env ``` CLAUDE_CODE_USE_BEDROCK=1 AWS_REGION=us-east-1 AWS_BEARER_TOKEN_BEDROCK=your-bearer-token ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-6 ```
Shannon 使用三个模型层级:**small**(`claude-haiku-4-5-20251001`)用于摘要,**medium**(`claude-sonnet-4-6`)用于安全分析,**large**(`claude-opus-4-6`)用于深度推理。设置 `ANTHROPIC_SMALL_MODEL`、`ANTHROPIC_MEDIUM_MODEL` 和 `ANTHROPIC_LARGE_MODEL` 为对应区域内的 Bedrock 模型 ID。 ### Google Vertex AI Shannon 也支持 [Google Vertex AI](https://cloud.google.com/vertex-ai),而无需使用 Anthropic API 密钥。 创建具有 `roles/aiplatform.user` 角色的服务账户,下载 JSON 密钥文件。 #### 快速设置 运行 `npx @keygraph/shannon setup` 并选择 **Google Vertex AI**。向导会提示你输入区域、项目 ID 和服务账户密钥文件路径。密钥文件会被安全复制到 `~/.shannon/google-sa-key.json`。 或直接导出环境变量: ``` 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/your-sa-key.json export ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 export ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 export ANTHROPIC_LARGE_MODEL=claude-opus-4-6 ```
克隆与构建:改用 .env ``` CLAUDE_CODE_USE_VERTEX=1 CLOUD_ML_REGION=us-east5 ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id GOOGLE_APPLICATION_CREDENTIALS=./credentials/google-sa-key.json ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 ANTHROPIC_LARGE_MODEL=claude-opus-4-6 ```
设置 `CLOUD_ML_REGION=global` 用于全局端点,或指定特定区域(如 `us-east5`)。某些模型可能不在全局端点提供——请参考 [Vertex AI 模型花园](https://console.cloud.google.com/vertex-ai/model-garden) 查看区域可用性。 ### 自定义基础 URL Shannon 支持通过 `ANTHROPIC_BASE_URL` 指向任何与 Anthropic 兼容的端点(代理、网关等)。 运行 `npx @keygraph/shannon setup` 并选择 **自定义基础 URL**。向导会提示你输入端点 URL、承载令牌,并可选择覆盖默认模型层级。 或直接导出环境变量: ``` export ANTHROPIC_BASE_URL=https://your-proxy.example.com export ANTHROPIC_AUTH_TOKEN=your-auth-token # 可选地覆盖模型层级(如果未设置则使用默认值) export ANTHROPIC_SMALL_MODEL=claude-haiku-4-5-20251001 export ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 export ANTHROPIC_LARGE_MODEL=claude-opus-4-6 ```
克隆与构建:改用 .env ``` ANTHROPIC_BASE_URL=https://your-proxy.example.com ANTHROPIC_AUTH_TOKEN=your-auth-token ANTHROPIC_SMALL_MODEL=claude-haiku-4-5-20251001 ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 ANTHROPIC_LARGE_MODEL=claude-opus-4-6 ```
### [实验性 -支持] 路由模式(替代提供程序) Shannon 可通过 claude-code-router 实验性路由请求到替代 AI 提供程序。此模式未正式支持,主要用于: - **模型实验** — 尝试使用 GPT-5.2 或 Gemini 3 系列模型 #### 快速设置 运行 `npx @keygraph/shannon setup` 并选择 **路由**。选择提供程序(OpenAI 或 OpenRouter)、输入 API 密钥并选择默认模型。 或直接导出环境变量: ``` export OPENAI_API_KEY=sk-... # or OPENROUTER_API_KEY=sk-or-... export ROUTER_DEFAULT=openai,gpt-5.2 # provider,model format ``` ``` npx @keygraph/shannon start -u https://example.com -r /path/to/repo --router ```
克隆与构建:添加 .env 并运行 --router ``` OPENAI_API_KEY=sk-... # 或 OPENROUTER_API_KEY=sk-or-... ROUTER_DEFAULT=openai,gpt-5.2 ``` ``` ./shannon start -u https://example.com -r /path/to/repo --router ```
#### 实验模型 | 提供程序 | 模型 | |----------|------| | OpenAI | gpt-5.2, gpt-5-mini | | OpenRouter | google/gemini-3-flash-preview | #### 免责声明 此功能为实验性且不受支持。输出质量严重依赖模型。Shannon 基于 Anthropic Agent SDK 构建,主要针对 Anthropic Claude 模型优化和测试。替代提供程序可能导致结果不一致(包括早期阶段如侦察失败),取决于模型和路由配置。 ### 平台特定说明 **Windows:** *原生(Git Bash):* 安装 [Git for Windows](https://git-scm.com/install/windows) 并在 **Git Bash** 中运行 Shannon(需安装 Docker Desktop)。支持 `npx @keygraph/shannon` 和本地克隆模式。 *WSL2(推荐):* **步骤 1:确保 WSL 2** ``` wsl --install wsl --set-default-version 2 # 检查已安装的发行版 wsl --list --verbose # 如果您没有发行版,请安装一个(推荐使用 Ubuntu 24.04) wsl --list --online wsl --install Ubuntu-24.04 # 如果您的发行版显示 VERSION 1,请转换为 WSL 2: wsl --set-version 2 ``` 参考 [WSL 基础命令](https://learn.microsoft.com/en-us/windows/wsl/basic-commands)。 **步骤 2:在 Windows 上安装 Docker Desktop** 并启用 **WSL2 后端**(设置 > 常规 > 使用基于 WSL 2 的引擎)。 **步骤 3:在 WSL 中运行 Shannon**,使用任一流程。 **npx 方式:** ``` npx @keygraph/shannon setup npx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repo ```
克隆与构建命令等效项 ``` git clone https://github.com/KeygraphHQ/shannon.git cd shannon cp .env.example .env # Edit with your API key ./shannon start -u https://your-app.com -r /path/to/your-repo ```
要访问 Temporal Web UI,请在 WSL 中运行 `ip addr` 获取 IP 地址,然后在 Windows 浏览器中访问 `http://:8233`。 Windows Defender 可能将报告中的漏洞利用代码误报为恶意软件;这是误报。请为 Shannon 目录添加排除项,或使用 Docker/WSL2。 **Linux(原生 Docker):** 根据 Docker 设置可能需要使用 `sudo`。若遇到权限问题,请确保用户有权访问 Docker 套接字。 **macOS:** 安装 Docker Desktop 后开箱即用。 **测试本地应用:** Docker 容器无法访问主机的 `localhost`。请改用 `host.docker.internal`: ``` npx @keygraph/shannon start -u http://host.docker.internal:3000 -r /path/to/repo ```
克隆与构建命令等效项 ``` ./shannon start -u http://host.docker.internal:3000 -r /path/to/repo ```
### 输出与结果 所有结果保存在工作空间目录:`./workspaces/`(本地模式)或 `~/.shannon/workspaces/`(npx 模式)。使用 `-o <路径>` 在运行结束后将交付物复制到自定义输出目录。 输出结构: ``` workspaces/{hostname}_{sessionId}/ ├── session.json # Metrics and session data ├── workflow.log # Human-readable workflow log ├── agents/ # Per-agent execution logs ├── prompts/ # Prompt snapshots for reproducibility └── deliverables/ └── comprehensive_security_assessment_report.md # Final comprehensive security report ``` ## 示例报告 来自行业标准漏洞应用的渗透测试示例报告: #### **OWASP Juice Shop** • [GitHub](https://github.com/juice-shop/juice-shop) *一个由 OWASP 维护的 notorious 不安全 Web 应用,旨在测试工具发现广泛现代漏洞的能力。* **结果**:在一次自动化运行中识别出 20 多个漏洞,覆盖目标 OWASP 类别。 **显著发现**: - 通过 SQL 注入实现认证绕过并完整导出用户数据库 - 通过注册流程绕过实现权限提升为管理员 - IDOR 漏洞,允许访问其他用户的数据和购物车 - SSRF 实现内网侦察 [查看完整报告 →](sample-reports/shannon-report-juice-shop.md) #### **c{api}tal API** • [GitHub](https://github.com/Checkmarx/capital) *一个来自 Checkmarx 的故意易受攻击的 API,旨在测试工具发现 OWASP API 安全 Top 10 的能力。* **结果**:识别出约 15 个关键和高严重性漏洞。 **显著发现**: - 通过隐藏调试端点的拒绝名单绕过实现根级命令注入 - 通过未修补的 v1 API 端点实现认证绕过 - 用户资料更新函数中的 Mass Assignment 导致权限提升 - 正确确认 XSS 防御,无误报 [查看完整报告 →](sample-reports/shannon-report-capital-api.md) #### **OWASP crAPI** • [GitHub](https://github.com/OWASP/crAPI) *一个来自 OWASP 的现代故意易受攻击的 API,旨在对标工具在 OWASP API 安全 Top 10 上的有效性。* **结果**:识别出 15 个以上关键和高严重性漏洞。 **显著发现**: - 通过 JWT 攻击(算法混淆、alg:none、弱密钥注入)实现认证绕过 - 通过注入实现完整 PostgreSQL 数据库泄露,导出用户凭证 - SSRF 攻击将内部认证令牌转发到外部服务 - 正确确认 XSS 防御,无误报 [查看完整报告 →](sample-reports/shannon-report-crapi.md) ## 基准测试 Shannon Lite 在无提示、基于源码的 XBOW 安全基准测试中得分 **96.15% (100/104 漏洞利用)**。 **[完整结果及详细代理日志、每个挑战的渗透测试报告 →](https://github.com/KeygraphHQ/xbow-validation-benchmarks/blob/main/xben-benchmark-results/)** ## 架构 Shannon 使用多代理架构,将白盒源代码分析与跨五个阶段的动态漏洞利用相结合: ``` ┌──────────────────────┐ │ Pre-Reconnaissance │ │ (nmap, subfinder, │ │ whatweb, code scan) │ └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ Reconnaissance │ │ (attack surface │ │ mapping) │ └──────────┬───────────┘ │ ▼ ┌──────────┴───────────┐ │ │ │ ▼ ▼ ▼ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ Vuln │ │ Vuln │ │ ... │ │(Injection)│ │ (XSS) │ │ │ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │ │ │ ▼ ▼ ▼ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ Exploit │ │ Exploit │ │ ... │ │(Injection)│ │ (XSS) │ │ │ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │ │ │ └──────┬───────┴─────────────┘ │ ▼ ┌──────────────────────┐ │ Reporting │ └──────────────────────┘ ``` ### 架构概述 Shannon 使用 Anthropic 的 Claude Agent SDK 作为其推理引擎,采用多代理架构。系统结合白盒源代码分析与黑盒动态漏洞利用,由编排器跨五个阶段管理。通过“无可利用则不报告”策略,最小化误报。 每个扫描在独立的临时 Docker 容器(`docker run --rm`)中运行,并带有每次调用的 Temporal 任务队列,支持使用不同目标仓库并发扫描。 #### **阶段 1:预侦察** 使用 nmap、subfinder 和 whatweb 进行外部扫描,以指纹化目标基础设施和技术栈。同时执行源代码分析以识别应用框架、入口点和潜在攻击面。 #### **阶段 2:侦察** 基于预侦察结果构建全面攻击面地图。Shannon 通过浏览器自动化执行实时应用探索,将代码级洞察与实际行为相关联,生成所有入口点、API 端点和认证机制的详细映射。 #### **阶段 3:漏洞分析** 为最大化效率,此阶段与 5 个并发代理并行运行。针对每个 OWASP 类别(注入、XSS、认证、授权、SSRF)的专用代理并行搜索潜在缺陷。对于注入和 SSRF 等漏洞,代理执行结构化的数据流分析,追踪用户输入至危险汇点。此阶段产出一个关键交付物:**假设的可利用路径**列表,传递至验证阶段。 #### **阶段 4:漏洞利用** 延续并行流程以保持速度。此阶段完全致力于将假设转化为证明。专用漏洞利用代理接收假设路径,并尝试使用浏览器自动化、命令行工具和自定义脚本执行真实攻击。此阶段严格执行 **“无可利用则不报告”** 策略:若假设无法成功利用以证明影响,则丢弃为误报。 #### **阶段 5:报告** 最终阶段将所有已验证发现整合为专业、可操作报告。代理汇总侦察数据与成功漏洞利用证据,清理噪声或幻觉产物。仅包含已验证漏洞,并附带**可复制、粘贴式的概念验证**,交付一份专注于已证明风险的渗透测试报告。 ## 覆盖范围与路线图 有关 Shannon 安全测试覆盖范围和开发路线图的详细信息,请参阅我们的 [覆盖范围与路线图](./COVERAGE.md) 文档。 ## 免责声明 ### 重要使用指南与免责声明 在使用 Shannon(Lite)前,请仔细阅读以下指南。作为用户,你需对自己的行为承担全部责任。 #### **1. 潜在的变异影响与环境选择** 这不是一个被动扫描器。漏洞利用代理旨在**主动执行攻击**以确认漏洞。此过程可能对目标及其数据产生变异影响。 #### **2. 合法与道德使用** Shannon 仅设计用于合法的安全审计用途。 #### **3. LLM 与自动化注意事项** - **需要人工验证**:尽管我们在“证明式漏洞利用”方法上投入大量工程以消除误报,但底层 LLM 仍可能在最终报告中生成幻觉或弱支撑内容。**人工验证至关重要**,以确认所有发现的有效性和严重性。 - **全面性**:由于 LLM 上下文窗口的固有限制,Shannon Lite 的分析可能不够全面。对于更全面的、基于图谱的整个代码库分析,**Shannon Pro** 利用其先进的数据流分析引擎确保更深、更彻底的覆盖。 #### **4. 分析范围** - **针对性漏洞**:当前版本的 Shannon Lite 专门针对以下类别的*可利用*漏洞: - 认证/授权绕过 - 注入 - 跨站脚本(XSS) - 服务器端请求伪造(SSRF) - **Shannon Lite 未覆盖范围**:此列表并非所有潜在安全风险的完整清单。Shannon Lite 的“证明式漏洞利用”模型意味着它不会报告无法主动利用的问题,例如第三方库漏洞或不安全配置。这些深度静态分析发现是 **Shannon Pro** 高级分析引擎的核心重点。 #### **5. 成本与性能** - **时间**:截至当前版本,一次完整测试通常耗时 **1 至 1.5 小时**。 - **成本**:使用 Anthropic 的 Claude 4.5 Sonnet 模型运行完整测试可能产生约 **50 美元 USD** 的成本。成本因模型定价和应用复杂度而异。 #### **6. Windows 防病毒误报** Windows Defender 可能将 `xben-benchmark-results/` 或 `deliverables/` 中的文件误报为恶意软件。这是由于报告中的漏洞利用代码导致的误报。请为 Shannon 目录添加排除项,或使用 Docker/WSL2。 #### **7. 安全注意事项** Shannon Lite 仅应用于扫描你拥有或明确获授权测试的仓库和应用。不要将其指向不受信任或对抗性的代码库。与任何读取源代码的 AI 工具一样,Shannon Lite 可能受到扫描仓库中内容的提示注入攻击。 ## 许可证 Shannon Lite 在 [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE) 下发布。 Shannon 是开源的(AGPL v3)。该许可证允许你: - 自由用于所有内部安全测试。 - 私下修改代码用于内部使用,无需共享修改。 AGPL 的共享要求主要适用于将 Shannon 作为公共或托管服务(SaaS 平台)提供的组织。在这些特定情况下,核心软件的修改必须开源。 ## 社区与支持 ### 社区资源 **1:1 办公室时间** — 周四,两个时区 预订一次免费的 15 分钟会话,获取关于错误、部署或配置问题的实操帮助。 → 美国/欧洲:上午 10:00 PT | 亚洲:下午 2:00 IST → [预订时段](https://cal.com/george-flores-keygraph/shannon-community-office-hours) [加入我们的 Discord](https://discord.gg/cmctpMBXwE) 提问、分享反馈并与其他 Shannon 用户联系。 **贡献**:目前我们不接受外部代码贡献(PR)。 欢迎提交 [GitHub Issues](https://github.com/KeygraphHQ/shannon/issues) 报告错误和请求功能。 - **报告错误**:[GitHub Issues](https://github.com/KeygraphHQ/shannon/issues) - **建议功能**:[讨论区](https://github.com/KeygraphHQ/shannon/discussions) ### 保持联系 - **Twitter**: [@KeygraphHQ](https://twitter.com/KeygraphHQ) - **LinkedIn**: [Keygraph](https://linkedin.com/company/keygraph) - **网站**: [keygraph.io](https://keygraph.io) ## 联系我们 ### Shannon Pro Shannon Pro 是 Keygraph 的全栈应用安全平台。对于需要统一 SAST、SCA、密钥管理、业务逻辑测试、自治渗透测试以及支持 CI/CD 集成或自托管部署的组织,请参阅 [Shannon Pro 技术概览](./SHANNON-PRO.md)。

Shannon Pro Inquiry

**邮箱**: [shannon@keygraph.io](mailto:shannon@keygraph.io)

Keygraph 构建

标签:AI Pentester, AI 安全测试, API 安全, CISA项目, DevSecOps, Keygraph, LNA, MITM代理, Mr. Robot, On-demand 安全测试, PoC 验证, Shannon, SSRF, Vedha, Web 应用安全, XSS, 上游代理, 持续安全, 攻击向量识别, 注入攻击, 浏览器自动化, 源代码分析, 漏洞情报, 白盒测试, 自动化攻击, 自动化渗透测试, 认证绕过, 请求拦截, 逆向工具