一个参考实现,而且它说到做到
多数安全仓库想当你的扫描器。这一个想当你的蓝图。Anthropic 把 Defending Code Reference Harness 作为「如何用 Claude 找并修漏洞」的范例发布,提炼自自 Claude Mythos 预览以来与安全团队的合作。README 对边界异常直白:这个仓库不维护、不接受贡献,自主管线是「一个参考,而非产品」,「开箱即用不会在每个代码库上工作」。这样去读它,是用得好、还是失望的分水岭。
你从中拿走的是形态:一个可复用的 recon→find→verify→report→patch(侦察→发现→验证→报告→修补)闭环,加上让这个闭环能安全运行的 prompt 和沙箱。它期待你去适配它,而不是原样部署。
盒子里的两样东西
仓库干净地分成交互的一半和自主的一半:
- Claude Code 技能:
/quickstart、/threat-model、/vuln-scan、/triage、/patch、/customize。你在 Claude Code 里打开这个仓库、跑/quickstart上手,再用其余几个做交互式的圈定、扫描、分诊和修补。 harness/管线:一个自主的参考实现,配置为用 Docker 和 AddressSanitizer 找 C/C++ 内存漏洞。它在每一步无需人介入地跑完整的 recon→find→verify→report→patch 闭环。
自主 harness 在开箱目标上是刻意收窄的(用 ASAN 找 C/C++ 内存 bug)。把它移植到你的语言、检测器或漏洞类别,正是 /customize 的用途,而那份定制就是项目期待你去做的活。
安全模型是该读两遍的部分
运行不可信代码的安全工具本身就是个风险,而 harness 对哪个动作碰什么很明确:
- 只读技能
/quickstart、/threat-model、/vuln-scan、/triage只读写文件。对静态发现(TRIAGE.json或VULN-FINDINGS.json)跑/patch也是只读写。只要你在 Claude Code 里逐个动作批准,这些可不沙箱运行。 /customize会编辑 harness 代码并运行验证命令。- 自主管线(含对管线结果跑
/patch)执行目标代码,所以除非你显式覆盖,它拒绝在 gVisor 沙箱之外运行。你跑一次scripts/setup_sandbox.sh完成配置。
这种「默认拒绝」的姿态,对一个将要运行它刚标记为可能恶意的代码的工具,是对的直觉,也值得抄进你基于它构建的任何东西里。
怎么运行
克隆仓库、在 Claude Code 里打开,然后跑 /quickstart。这些技能能用你拥有的任何 Claude API 访问,含 Bedrock、Vertex 或 Azure,所以你不被一种部署绑定。对自主 harness,先用提供的脚本配好 gVisor 沙箱。如果你想要概念而非完整 harness,Anthropic 的配套 cookbook 里还有一份更轻的、仅用 SDK 的同一闭环走查。
它适合什么,不适合什么
当你想构建自己的找漏洞管线、又想要一个可信的起点来抄 prompt、闭环结构和沙箱、而不是自己发明这些时,上它。作为教学物件和脚手架,它确实有用。
别指望它是个开箱即用的扫描器。它按设计不维护、默认目标收窄、且明说需要移植。要托管选项,Anthropic 指向 Claude Security,一个托管产品:扫描仓库、跑多阶段验证管线削减误报、并在生命周期里管理发现。这个参考 harness 是它的那个开源、自己动手搭的对照物。
关于许可的一点说明:GitHub 没在这个仓库上检测到标准许可,所以在把代码复用进你自己的项目前,先去仓库里核对实际条款,别假设一个宽松的默认值。
相关
要 LLM 驱动分析的代码评审口味,见 alibaba/open-code-review,它把模型裹进确定性管线做评审、而非安全扫描。想看生态里还有什么在往上爬,见 LLM 工具、每日速报和周报。
FAQ
这是个我能直接跑的安全扫描器吗? 不是。它是个参考实现、按设计不维护,你去适配它。自主 harness 开箱瞄准 C/C++ 内存 bug,其它情况需要 /customize。
运行它安全吗? 只读技能可在逐动作批准下不沙箱运行。自主管线执行目标代码,除非覆盖、否则拒绝在 gVisor 沙箱外运行。
我需要哪种 Claude 访问? 任意,含 Bedrock、Vertex 或 Azure。技能不绑一种部署。
托管的替代是什么? Anthropic 的 Claude Security,一个用验证管线找并修漏洞、并做发现管理的托管产品。