allsmog/vuln-scout
GitHub: allsmog/vuln-scout
AI 驱动的白盒渗透测试插件,为 Claude Code 赋能,覆盖多语言代码的自动审计与威胁建模。
Stars: 14 | Forks: 1
VulnScout
AI 驱动的白盒渗透测试,适用于 Claude Code
一条命令。完整审计。任何代码库。 ``` /whitebox-pentest:full-audit /path/to/code ``` VulnScout 是一个 Claude Code 插件,能够将 Claude 转变为自主安全审查员。它将经过实战考验的渗透测试方法论(HTB 学院、OffSec AWAE/OSWE)带入终端,支持 STRIDE 威胁建模、以证据为导向的发现结果,并兼容包括 Solidity 智能合约在内的 9 种语言。 **已在 OWASP Juice Shop v17.1.1 上完成端到端测试** — 涵盖 SQL 注入、XSS、路径遍历、SSTI、SSRF、硬编码密钥等,发现 62 个问题。 ## 为何选择 VulnScout? 传统的 SAST 工具只识别模式,而 VulnScout **理解你的应用程序**。 - **自动化扫描流水线** — 单条命令集成 Semgrep + Joern CPG + 密钥扫描,输出 SARIF 与 Markdown - **先威胁建模,再进行探测** — STRIDE 分析优先识别关键问题 - **追踪数据流,而非仅匹配模式** — 跨文件与服务跟踪用户输入从源头到汇点 - **15 个 CPG 验证脚本** — 通过代码属性图(CPG)分析验证可利用性,而非仅做模式匹配 - **CVSS 3.1 自动评分** — 每个发现项附带 CVSS 向量与数值评分 - **支持超大规模代码库** — 语言感知压缩(Go 减少 97%,Python 减少 90%),可审计百万级 Token 的单体仓库 - **漏洞链关联** — 发现 SSRF 到 SSTI 到 RCE 的攻击链,绕过单模式扫描器的局限 - **多语言原生支持** — 同时审计 Go、Python、TypeScript 微服务,作为一个互联系统 ## 快速开始 ### 作为 Claude Code 插件 ``` # 选项 1:将符号链接指向项目的插件目录 mkdir -p .claude/plugins ln -s /path/to/vuln-scout/whitebox-pentest .claude/plugins/whitebox-pentest # 选项 2:复制到您的项目 cp -r /path/to/vuln-scout/whitebox-pentest .claude/plugins/whitebox-pentest # 运行完整审计 /whitebox-pentest:full-audit . # 或从威胁建模开始 /whitebox-pentest:threats ``` ### 作为 Kuzushi 任务 VulnScout 可作为 [Kuzushi](https://github.com/allsmog/Kuzushi) 中的原生任务使用。安装后,Kuzushi 会将 vuln-scout 插件加载到其任务 DAG 中, alongside Semgrep、CodeQL 以及其他 15+ 检测任务。 ``` # 在 Kuzushi 扫描中运行 vuln-scout npx kuzushi /path/to/repo --tasks vuln-scout # 与其他任务结合 npx kuzushi /path/to/repo --tasks semgrep,vuln-scout,threat-hunt # 为 vuln-scout 使用特定模型 npx kuzushi /path/to/repo --tasks vuln-scout --task-model vuln-scout=anthropic:claude-opus-4-6 # 通过 .kuzushi/config.json 配置 # { "tasks": ["semgrep", "vuln-scout"], "taskConfig": { "vuln-scout": { "model": "anthropic:claude-opus-4-6", "maxFindings": 30 } } } ``` Kuzushi 在 vuln-scout 之上提供分类、验证、PoC 生成与报告功能。 ## 独立扫描流水线 VulnScout 包含可独立于 Claude Code 运行的 Python 脚本: ``` # 使用 Semgrep 和秘密扫描进行扫描 python3 scripts/scan_orchestrator.py /path/to/code --tools semgrep --secrets --format sarif # 创建 Joern CPG(按内容哈希缓存) python3 scripts/create_cpg.py /path/to/code # 使用 Joern CPG 分析批量验证发现结果 python3 scripts/batch_verify.py --findings .claude/findings.json --cpg .joern/*.cpg # 从现有的发现工件渲染 HTML 或 Markdown python3 scripts/report.py .claude/findings.json --format html --output security-report.html # CI 网关:发现高严重性问题时失败 python3 scripts/scan_orchestrator.py . --tools semgrep --fail-on high --format sarif --output findings.sarif # 验证并运行提示/技能评估套件 python3 whitebox-pentest/scripts/validate_evals.py python3 whitebox-pentest/scripts/run_prompt_evals.py ``` ## 你得到什么 ### 13 条命令 | 命令 | 功能 | |------|------| | `/whitebox-pentest:full-audit` | **一条命令完成全部** — 范围界定、威胁建模、审计、报告 | | `/whitebox-pentest:threats` | 带有数据流图的 STRIDE 威胁建模 | | `/whitebox-pentest:sinks` | 在 9 种语言中查找危险函数 | | `/whitebox-pentest:trace` | 跟踪数据从源头到汇点 | | `/whitebox-pentest:scan` | 运行 Semgrep、CodeQL 与 Joern,合并为一个发现工件 | | `/whitebox-pentest:scope` | 通过智能压缩处理大型代码库 | | `/whitebox-pentest:propagate` | 发现一个漏洞后,查找所有同类模式实例 | | `/whitebox-pentest:verify` | 基于 CPG 的误报消除 | | `/whitebox-pentest:report` | 从共享发现工件渲染 Markdown、JSON、SARIF 或 HTML | | `/whitebox-pentest:diff` | 比较 git 引用之间的安全姿态并高亮回归 | | `/whitebox-pentest:auto-fix` | 对已验证的发现项自动生成补丁并修复 | | `/whitebox-pentest:create-rule` | 从确认的攻击模式生成自定义 Semgrep 规则 | | `/whitebox-pentest:mutate` | 对安全控制进行变异测试以发现检测盲区 | ### 8 个自主代理 代理独立运行并返回详细分析: - **app-mapper** — 映射架构与信任边界 - **threat-modeler** — STRIDE 分析与数据流图(依赖 app-mapper 输出) - **code-reviewer** — 主动识别漏洞 - **local-tester** — 动态测试指导(交由 poc-developer) - **poc-developer** — 构建 PoC 验证 - **patch-advisor** — 提供具体修复与代码补丁 - **false-positive-verifier** — 证据驱动验证,支持 NEEDS_REVIEW 路径 - **attack-researcher** — 探索超越模式匹配的自主攻击向量 ### 15 个 Joern CPG 验证脚本 每个脚本通过代码属性图数据流分析来证明或否定漏洞: | 脚本 | 验证内容 | |------|----------| | verify-sqli | SQL 注入(参数化、绑定 API) | | verify-cmdi | 命令注入(shell 与数组执行) | | verify-xss | 跨站脚本(编码、Content-Type) | | verify-path | 路径遍历(强标准化与弱标准化) | | verify-ssrf | 服务器端请求伪造(URL 校验、允许列表) | | verify-xxe | XML 外部实体注入(实体禁用) | | verify-ssti | 服务器端模板注入(文件系统与用户模板) | | verify-deser | 不安全的反序列化(SafeLoader、ObjectInputFilter) | | verify-ldap | LDAP 注入(过滤转义) | | verify-randomness | 不安全的随机性(加密替代方案) | | verify-reentrancy | Solidity 重入攻击(CEI 模式) | | verify-overflow | Solidity 整数溢出(SafeMath、Solidity >=0.8) | | verify-access-control | Solidity 缺失访问控制(onlyOwner、tx.origin) | | verify-delegatecall | Solidity 委托调用风险(代理模式、EIP-1967) | | verify-generic | 为没有专用脚本的类型提供回退检测 | ### 27 个自动激活技能 技能在相关场景下自动激活,无需配置: **核心分析**:dangerous-functions、vuln-patterns、data-flow-tracing、cpg-analysis、exploit-techniques **OWASP 映射**:security-misconfiguration、cryptographic-failures、logging-failures、exception-handling、sensitive-data-leakage、business-logic **高级功能**:threat-modeling、vulnerability-chains、cross-component、cache-poisoning、postmessage-xss、sandbox-escapes、framework-patterns、nextjs-react **基础设施**:workspace-discovery、mixed-language-monorepos、owasp-2025、secret-scanning **扩展覆盖**:ai-ml-attacks、owasp-api-top10、cloud-native、compliance-mapping ### 框架安全模式 针对以下框架提供专用检测模式: - **Django** — ORM 绕过、模板注入、CSRF 豁免、设置泄露 - **Rails** — 批量赋值、SQL 插值、ERB 注入、Marshal.load - **Spring Security** — SpEL 注入、CORS/CSRF 误配置、actuator 暴露 - **GraphQL** — 内省、深度/复杂度限制、批处理、嵌套认证绕过 - **Next.js/React** — Server Actions SSRF、中间件绕过、Server Component 数据泄露 - **Flask/Twig/Blade** — SSTI、过滤器回调、沙箱逃逸 ## 支持的语言 | 语言 | Token 压缩率 | 静态分析 | CPG 验证 | |------|--------------|----------|----------| | Go | 95-97% 更少 Token | Semgrep、Joern | 是 | | TypeScript/JS | ~80% 更少 Token | Semgrep、CodeQL | 是 | | Python | 85-90% 更少 Token | Semgrep、Joern | 是 | | Java | 80-85% 更少 Token | Semgrep、CodeQL | 是 | | PHP | 80-85% 更少 Token | Semgrep | 是 | | Ruby | 85-90% 更少 Token | Semgrep | | | Rust | 85-90% 更少 Token | Semgrep | — | | C#/.NET | 80-85% 更少 Token | Semgrep、CodeQL | — | | Solidity | 70-80% 更少 Token | Semgrep、Slither | 是(4 个脚本) | ## OWASP Top 10 映射 | # | OWASP Top 10 | 覆盖范围 | 主要技能 | |---|---------------|----------|----------| | A01 | 失效的访问控制 | 已覆盖 | `business-logic`、`owasp-api-top10` | | A02 | 加密缺陷 | 已覆盖 | `cryptographic-failures` | | A03 | 注入 | 已覆盖 | `vuln-patterns`、`dangerous-functions` | | A04 | 不安全的设计 | 已覆盖 | `business-logic`、`threat-modeling` | | A05 | 安全配置错误 | 已覆盖 | `security-misconfiguration`、`cloud-native` | | A06 | 易受攻击或过时的组件 | 暂不覆盖 | — | | A07 | 身份识别与认证失败 | 已覆盖 | `vuln-patterns` | | A08 | 软件与数据完整性缺陷 | 已覆盖 | `vuln-patterns`、`ai-ml-attacks` | | A09 | 安全日志与监控失败 | 已覆盖 | `logging-failures`、`sensitive-data-leakage` | | A10 | 服务器端请求伪造 | 已覆盖 | `vuln-patterns`、`framework-patterns`、`cloud-native` | **覆盖 9/10 类。A06 故意不覆盖 — VulnScout 专注于源代码审查与可利用性,而非依赖项清单。** ## 扫描结果工件与 CI 工作流 `/scan`、`/verify` 与 `/full-audit` 共享同一约定:`.claude/findings.json`。 - `schema_version` 标识工件版本 - `kind` 区分可报告的 `finding` 与审计枢纽 `hotspot` - `stable_key` 为每项提供免抑制标识符 - `source_tool` 与 `evidence` 为必填字段 - `cvss_vector` 与 `cvss_score` 提供 CVSS 3.1 评分 - 仅统计 `kind == "finding"` 且未抑制的条目作为严重性汇总 提示优先编排会生成两个持久化伴随工件: - `.claude/audit-plan.md` — 记录模块优先级、攻击面与验证策略 - `.claude/review-ledger.json` — 记录审计计划、威胁模型与发现验证的对抗评审轮次 CI 相关标志: ``` --since-commit标签:AI安全测试, Claude插件, Code Property Graph, CVSS 3.1评分, Go, IPv6支持, Markdown报告, OWASP 2025, Python, Ruby工具, SARIF输出, SAST, Solidity智能合约, SSRF, SSTI, STRIDE威胁建模, TypeScript, XSS, 单体仓库, 多语言支持, 安全审查, 安全插件, 安全测试框架, 数据流追踪, 无后门, 日志审计, 漏洞情报, 漏洞链分析, 白盒渗透测试, 百万Token审计, 盲注攻击, 硬编码密钥, 自动化渗透, 自动扫描管道, 语言压缩, 路径遍历, 逆向工具