2026年7月17日 2 分钟阅读

VulnHunter 实战:用 Capital One 开源的 Agentic 安全工具给你的代码库做渗透测试

tinyash 0 条评论

传统 SAST 工具每天都在给你报假阳性:一个 eval() 标记为高风险,一个 SQL 拼接被标为 SQL 注入风险,但工程师花 20 分钟验证后发现根本不可利用。安全团队和开发团队的信任就在这种”狼来了”的循环中被慢慢消磨。

Capital One 最近开源了 VulnHunter,一个 Agentic AI 安全工具,用 Claude Code 做黑客思维模拟——不从危险函数向后追溯,而是从攻击入口点向前推理,还要用”证伪引擎”主动推翻自己的结论。这正是 AI Agent 时代安全工具该有的样子。

为什么 VulnHunter 和传统 SAST 不一样

传统 SAST 工具的痛点很明确:它们基于”危险模式匹配”,找的是已知的代码模式(比如 strcpyeval、SQL 拼接),然后逆向追溯这些模式是否可以被攻击者利用。这种”从危险点向后找”的路径天然会产生大量假阳性——匹配到了模式不代表该模式在上下文中可被利用。

VulnHunter 的做法完全相反:

维度传统 SASTVulnHunter
分析方向从危险函数(Sink)向后追溯从攻击入口(API、文件上传)向前推理
误报处理规则调优(被动)证伪引擎主动推翻自己的发现
输出漏洞列表(含大量误报)已验证的、可利用的漏洞 + 修复方案
修复方式手动修复,重新扫描三阶段闭环:Hunt → Fix → Verify

它的工作流分为三个阶段,对应三个独立的 Claude Code Skill:

Hunt(/vulnhunt

从代码的攻击入口点(网络 API、文件上传、消息队列接收器)出发,向前分析每一段数据流,推理攻击者能否实际突破安全控制。发现潜在漏洞后,进入证伪引擎——一个专门设计来推翻自己结论的推理流程——它在代码中寻找假设缺陷、逻辑漏洞或能阻止攻击的安全控制。只有通过证伪的漏洞才会输出。

输出格式:被确认可利用的漏洞,附带明确的攻击路径映射和修复建议。

Fix(/vulnhunter-fix

开发者主导的修复环节。VulnHunter 会先写一个利用演示(PoC),创建一个会失败的安全测试(RED 阶段),然后实施代码修复(GREEN 阶段),验证 PoC 被成功拦截且无回归后,生成可审查的 Pull Request。

Verify(/vulnhunt-fix-verify

一个完全独立的只读 Agent(无 Bash 执行权限、无网络访问权限),独立验证修复是否真正生效。它接收修复前后的代码、原始漏洞报告,给出每项修复的通过/不通过判定。因为是完全隔离的验证者,可以避免”修复自己验证自己”的认知偏差。

快速上手指南

VulnHunter 是为 Claude Code 设计的,需要 Claude Opus 级别的模型来支撑其多步推理能力。

安装

git clone https://github.com/capitalone/vulnhunter.git
cd vulnhunter
./install.sh

安装脚本将三个 Skill(vulnhunt/vulnhunter-fix/vulnhunt-fix-verify/)复制到 ~/.claude/skills/ 目录下。注意是复制而非符号链接——因为符号链接可能破坏 subagent 内部的 find/glob 功能。

运行扫描器

claude --model opus --add-dir ~/.claude/skills/vulnhunt --add-dir ~/.claude/skills/vulnhunt/phases

在 Claude Code 会话中,输入:

/vulnhunt

VulnHunter 会扫描当前代码库,从每一个外部入口点开始向前推理,定位可被实际利用的安全缺陷。

运行修复

修复环节需要 Git、GitHub CLI(gh)认证,以及 Python helper 包:

cd vulnhunter-fix
pip install -e ".[dev]"
cd ..

claude --model opus --add-dir ~/.claude/skills/vulnhunter-fix

在 Claude Code 会话中,输入:

/vulnhunter-fix

运行验证

验证者是一个严格只读的 Agent,调用前需要创建输出目录:

mkdir -p /tmp/vulnhunt-verify-out

claude --model opus --add-dir ~/.claude/skills/vulnhunt-fix-verify \
       --add-dir ~/.claude/skills/vulnhunt-fix-verify/phases

在 Claude Code 会话中,输入:

/vulnhunt-fix-verify repo=/path/to/repo report=/path/to/report.json fixed=VULN-001 out=/tmp/vulnhunt-verify-out

自动化和规模化

VulnHunter 不只是交互式工具——它还提供了两种规模化运行方式:

Headless Agentvulnhunter-agent/):一个无头运行时封装器,可以克隆目标仓库、执行 /vulnhunt、发布结果并在 GitHub 上创建 Issue。适合 CI/CD 管道或定时扫描。

Local Harnessharness/):工作站级别的批量扫描和基准测试工具:

cd harness && pip install -e ".[dev]"

python -m local_harness.batch.run scan
python -m local_harness.batch.run status
python -m local_harness.batch.run collect

python -m local_harness.benchmark.run

自带一个基准测试套件,包含 OWASP NodeGoat、Juice Shop 和 WebGoat 等已知漏洞目标,可以用来评估 VulnHunter 的检测精度和误报率。

使用注意事项

VulnHunter 执行的是双用途网络安全工作(漏洞发现和利用验证),有几个限制需要注意:

  1. 模型要求:必须使用 Claude Opus 级别的模型,模型推理深度是低误报率的核心保障
  2. 安全审核:如果使用 Anthropic 第一方平台(Claude API / Claude Code),需要先注册 Anthropic 的 Cyber Verification Program,否则实时网络保障可能拦截请求
  3. 授权前提:只扫描你有明确授权分析的代码库
  4. 扫描对象:VulnHunter 分析源代码而非运行时——它不依赖网络流量或运行时行为,而是在你提交的代码中寻找安全缺陷

总结

VulnHunter 代表了 AI 安全工具的一个新方向——不是用更多的规则去覆盖更多的模式,而是用 Agent 的推理能力去理解代码的语义上下文,模拟攻击者的思维方式。它的”证伪引擎”设计是降低安全工具误报率的关键创新:发现漏洞之前先推翻自己。

对于使用 Claude Code 的团队来说,VulnHunter 的三个 Skill 可以直接集成到日常开发流程中。扫描、修复、验证的闭环设计也让安全修复不再是”修完就算”——独立的验证 Agent 确保了每项修复都是经过验证的。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。