VulnHunter Security Scanner 是一款面向源代码的智能体式 AI 安全工具,其核心思路是“攻击者优先”的前向分析与基于证伪的推理,目标是减少传统 SAST 扫描器常见的误报。
用途与定位
VulnHunter 不满足于标记危险模式,而是像攻击者一样推理:判断哪些缺陷真正可被利用,映射攻击路径,并给出有证据支撑的修复建议。它从攻击者可访问的入口点(API、文件上传、网络消息)出发向前推理,评估攻击者是否真的能突破;这与从危险汇聚点反向回溯的传统做法不同。发现潜在漏洞后,它会运行结构化工作流来推翻自己的结论,寻找错误假设、逻辑缺口或阻断攻击的安全控制,从而筛掉误报。
主要能力与工作流
工具围绕三个技能形成闭环:
- /vulnhunt:猎取漏洞。流程包括:侦察阶段映射入口点与危险汇聚点;并行追踪从入口到汇聚点的路径;对抗式证伪以消除误报;能力过滤以验证真实可利用性;最终只输出经确认的问题,附攻击路径与建议修复。
- /vulnhunter-fix:以测试驱动方式修复已验证问题,采用 RED-GREEN-REFACTOR 流程:编写漏洞利用演示、创建失败的安全测试(RED)、实现代码修复(GREEN)、验证漏洞被阻断且无回归,最后提交可评审的 PR。
- /vulnhunt-fix-verify:对修复进行只读验证,可接收仓库路径、VulnHunt 报告、待验证漏洞 ID 列表、输出目录,以及可选的 PR 评审评论 JSON 和依赖仓库路径。
安装与使用方式
安装:克隆 https://github.com/capitalone/vulnhunter.git,执行 ./install.sh 将技能安装到 ~/.claude/skills/(可选 ./uninstall.sh 卸载)。注意 install.sh 复制文件而非符号链接,因为符号链接可能破坏子代理功能;拉取更新后需重新运行。
运行扫描器:使用 claude --model opus --add-dir ~/.claude/skills/vulnhunt --add-dir ~/.claude/skills/vulnhunt/phases 启动,然后在会话内执行 /vulnhunt。
运行修复器:先在 vulnhunter-fix 目录执行 pip install -e ".[dev]",再用 claude --model opus --add-dir ~/.claude/skills/vulnhunter-fix 启动,会话内执行 /vulnhunter-fix。
运行验证器:先 mkdir -p /tmp/verify-output,再用 claude --model opus --add-dir ~/.claude/skills/vulnhunt-fix-verify --add-dir ~/.claude/skills/vulnhunt-fix-verify/phases 启动,会话内执行 /vulnhunt-fix-verify,并传入 repo、report、fixed、out 等参数,comments 与 additional_repos 为可选项。
自动化与批处理
无头运行时代理适用于 CI/CD 或非交互式流水线:在 vulnhunter-agent 目录执行 pip install -e ".[dev]",复制 config.example.yaml 为 config.yaml 并配置 anthropic_api_key、github_token、model、targets、output_dir、max_concurrent 等字段,随后运行 python -m vulnhunter_agent.main --config config.yaml。代理会克隆目标仓库、执行 /vulnhunt 技能、解析发现结果,并为已验证漏洞创建 GitHub issue。
批量扫描通过 harness 实现:安装后在 local_harness/batch/REPO_LIST.txt 中填写目标仓库(以 # 开头的行会被忽略),运行 python -m local_harness.batch.run scan;支持 --resume 恢复中断扫描、status 查看进度、collect 收集全部发现结果,结果存放在 harness/local_harness/batch/workdir/。
基准测试模式可对照已知漏洞评估扫描器准确度:运行 python -m local_harness.benchmark.run,可用 --repos 指定仓库,或用 --tally-only 仅重新生成指标。基准真值定义在 harness/local_harness/benchmark/ground_truth/<repo>.json 中,包含仓库名称、URL 及漏洞列表(id、type、file、line、severity、description、exploit_vector);基准引擎配置在 harness/local_harness/config.py 的 BENCHMARK_CONFIG 中。
配置
扫描器为提示词驱动,可通过编辑 vulnhunt/SKILL.md 及 vulnhunt/phases/ 下的 recon.md(入口点发现)、hunt.md(路径追踪逻辑)、disprove.md(证伪规则)、capability.md(可利用性验证)定制行为。修复器可编辑 vulnhunter-fix/vulnhunter_fix/config.py 中的 DEFAULT_CONFIG(test_framework、create_pr、pr_base_branch、require_tests、max_fix_attempts),也可在项目根目录创建 .vulnhunter-fix.yaml 覆盖。
常用模式包括:一次性快速安全审计、完整猎取-修复-验证工作流脚本、CI/CD 集成(如 GitHub Actions 定时与手动触发扫描并上传结果产物)、以及扩展证伪引擎的自定义证伪规则(例如针对 Django ORM 自动参数化、Express.js Helmet 的 CSP、Python 类型提示、Rust 所有权等框架/语言特定保护)。
前提条件与限制
前提条件包括:已认证且可访问 Claude Opus 的 Claude Code CLI(必需)、Python 3.12+(代理运行时与 harness 工具)、Git 与已认证的 GitHub CLI(用于修复工作流);建议加入 Anthropic Cyber Verification Program 以避免网络安全防护拦截。
常见问题与限制:可能触发网络安全防护拦截(需加入 Cyber Verification Program,可用 curl 查询注册状态);误报率偏高时可加强证伪阶段(审查 disprove.md、添加领域特定清洗模式、增加证伪迭代次数);漏报时可扩展侦察阶段入口点类型(如 FastAPI、Spring Boot、GraphQL);验证器可能拒绝有效修复,可查看验证日志定位原因(测试未覆盖确切利用路径、修复不完整、引入回归);无头代理崩溃时可启用 DEBUG 日志排查 GitHub token、API 限流或磁盘空间问题;技能未找到时检查 ~/.claude/skills/vulnhunt 并重装。
环境变量包括 ANTHROPIC_API_KEY(Anthropic API 必需)、GITHUB_TOKEN(GitHub 集成必需),以及可选的 CLAUDE_SKILLS_DIR、VULNHUNT_MAX_WORKERS、VULNHUNT_VERIFY_TIMEOUT。各组件均有独立测试套件,可用 pytest 运行。官方文档、Claude Code 文档、Cyber Verification 门户及贡献与安全报告说明见仓库内相关文件。