AI 见闻
精选· 重要性 4/5

Anthropic 开源基于 Claude 的自主漏洞发现与修复框架

Hacker News (AI)··binyu·约 7 分钟阅读
Hacker News 523
中文导读

Anthropic 发布了一个开源参考实现,利用 Claude 模型自动执行从侦察、发现、验证到修复的漏洞管理全流程,旨在帮助安全团队高效发现和修复代码中的安全缺陷。

这是一个用于自主漏洞发现和修复的参考实现,基于我们自推出 Claude Mythos Preview 以来与多个组织的安全团队合作的经验。关于这些经验总结和最佳实践,请参阅随附的博客文章(也提供 blog-post.md 格式)。

如需了解同一侦察→发现→分类→报告→修复流程的轻量级 SDK 专属演练,请参阅配套的 cookbook。此仓库不再维护,也不接受贡献。🔒 想要托管选项?Anthropic 提供 Claude Security,这是一款托管产品,可在多个项目中查找并修复源代码中的漏洞。

Claude Security 扫描您的仓库以发现漏洞,应用多阶段验证管道以减少误报,并让您管理发现结果的整个生命周期:分类、修复验证和快速修复生成。该仓库是一个基于使用 Claude 查找漏洞的通用最佳实践的开源参考实现。

您可以用它来构建自己的漏洞查找管道、自定义逻辑,并且可以与您对 Claude API(包括 Bedrock、Vertex 或 Azure)的任何访问权限一起使用。

- Claude Code 技能:/quickstart、/threat-model、/vuln-scan、/triage、/patch、/customize:交互式范围界定、扫描、分类和修补。

在 Claude Code 中打开此仓库并运行 /quickstart 以了解方向。

harness/:自主参考管道(侦察→发现→验证→报告→修补),配置用于使用 Docker 和 ASAN 查找 C/C++ 内存漏洞。此 harness 是参考实现,而非产品。通用形状、提示和沙箱是可复用的,但该 harness 并非开箱即用于所有代码库。

运行 /customize 可将其移植到您的语言、检测器或漏洞类别。⚠️ 安全性:/quickstart、/threat-model、/vuln-scan 和 /triage 仅读写文件。

对静态发现结果(TRIAGE.json 或 VULN-FINDINGS.json)运行 /patch 同样仅读写。/customize 编辑 harness 代码并运行验证命令。

只要您在 Claude Code 中审查并批准每个工具的使用,这些技能都可以安全地在无沙箱环境下运行。自主参考管道(包括对管道结果运行 /patch)会执行目标代码,因此除非显式覆盖,否则它拒绝在 gVisor 沙箱之外运行。

要进行设置,请先运行 scripts/setup_sandbox.sh,然后通过 bin/vp-sandboxed 调用管道。更多详情请参阅 docs/security.md 和 docs/agent-sandbox.md。

git clone https:

//github.com/anthropics/defending-code-reference-harnesscd defending-code-reference-harnessclaude# 30 秒介绍 + 在 canary 目标上引导首次运行> /quickst

art> /quickstart how do I port the pipeline to Java?> /quickstart how do I triage all these bugs?

- 博客文章:附带的博客文章,包含经验教训和最佳实践- 管道:工作原理:图表、阶段、CLI 标志- 安全性:沙箱,哪些不应挂载- 代理沙箱:gVisor 隔离 + 每个代理的出站允许列表- 自定义:移植到我的技术栈;

哪些文件更改及原因- 修补:生成并验证已验证崩溃的修复- 故障排除:重复、速率限制、子代理模型固定- 保障措施:阻止危险网络工作我们合作过的最成功的安全团队是那些最快上手的团队。尽管花几个月设计完美管道很诱人,但我们建议从第一天开始小规模做起,并在学习过程中逐步构建。

以下步骤遵循这一模式,并根据我们的经验设定了雄心勃勃但合理的节奏。第一天的重点是端到端地看到整个循环。仅使用交互式技能,您将构建威胁模型、运行以该模型为范围的静态扫描、对返回结果进行分类,并起草候选修复。

您将以威胁模型、静态发现的排名列表和候选补丁结束这一天。相关技能仅读写您仓库中的文件。只要您交互式运行 Claude Code 并批准每次工具使用,就不需要沙箱。

# 将每个子代理固定到您想要的模型export CLAUDE_CODE_SUBAGENT_MODEL=<model-id>claude# 0. 介绍 + 引导首次运行> /quickstart# 1.

构建威胁模型(先瞄准再射击)> /threat-model bootstrap targets/canary# 2. 运行以该威胁模型为范围的静态扫描> /vuln-scan targets/canary# 3. 验证、

去重并对返回结果进行排序> /triage targets/canary/VULN-FINDINGS.json# 4. 为已验证的发现生成候选修复> /patch ./TRIAGE.json --repo targets/canary此流程生成 THREAT_MODEL.

md、VULN-FINDINGS.{json,md}、TRIAGE.{json,md} 和 PATCHES/。步骤 1 中生成的候选漏洞来自 Claude 对源代码的静态审查(未构建或运行任何内容),因此任何非 canary 目标都可能出现更多误报。

在步骤 2 中,您将生成经过执行验证的发现。注意:在 canary 目标上,/triage 可能会将扫描发现视为误报。entry.c 自称是故意易受攻击的演示代码,/triage 会正确排除测试/固定代码中的错误。

要查看完整的确认/去重/误报流程,请在策划的固定装置上运行它(/triage .claude/skills/triage/fixtures/canary-findings.json --repo targets/canary)或将步骤 1 的技能指向您自己的代码。

在第 2 天,您将从交互式技能过渡到使用参考管道的首次自主运行。您将在您的环境中对已知易受攻击的开源库运行完整的侦察→发现→验证→报告循环,然后为其发现的内容生成候选补丁。

最后,您将获得一组可重现的崩溃、可利用性报告和候选补丁,以及对管道工作方式的感觉。

运行管道很简单:# 一次性设置python3 -m venv .venv && .venv/bin/pip install -e ../scripts/setup_sandbox.sh # 安装 gVisor、构建代理镜像并验证隔离;

注意:需要 Dockerexport ANTHROPIC_API_KEY=sk-ant-... # 或 CLAUDE_CODE_OAUTH_TOKEN;

管道需要在环境中设置# 运行侦察→发现→验证→报告循环bin/vp-sandboxed run drlibs --model <model-id> --runs 3 --parallel --stream --auto-focus# 为每个发现生成候选补丁bin/vp-s

andboxed patch results/drlibs/<timestamp>/ --model <model-id># 或者,

让 Claude Code 启动管道并为您监控运行claude> run the pipeline on drlibs and explain findings as they come循环的结果存放在 results/drlibs/<timestamp>/ 目录中。

使用 --stream 标志,第一份报告将在几分钟内出现在 reports/bug_NN/ 下。⚠️ run 会生成自主代理。管道在 gVisor 容器内运行每个代理,出站流量仅限于 Claude API。

除非显式覆盖,否则生成代理的子命令拒绝在其外部启动。更多信息请参阅 docs/security.md 和 docs/agent-sandbox.md。在底层,管道经历七个阶段:- 构建:使用 ASAN(C 和 C++ 的内存错误检测器)将目标编译为 Docker 镜像。

管道在首次运行时使用目标的 Dockerfile 自动构建此镜像。- 侦察:一个轻量级代理在网络隔离的容器内读取源代码并提出分区,例如“这里有 N 个不同的输入解析子系统值得单独攻击”,以便并行发现代理探索不同区域,而不是集中在同一个漏洞上。

如果没有 --auto-focus 标志,管道使用目标 config.yaml 中的 focus_areas 列表。- 发现:N 个代理并行运行,每个代理在自己的隔离容器中。

每个代理读取源代码,构造格式错误的输入,并运行 ASAN 二进制文件,直到给定输入连续 3 次产生崩溃。- 验证:一个单独的分级代理在一个发现代理未接触过的新容器中重现每次崩溃。从发现代理传递到分级代理的唯一内容是概念验证。

原文出处
Anthropic's open-source framework for AI-powered vulnerability discovery

本文为机器翻译辅以 AI 润色,仅供参考。原始事实以原文为准。

相关阅读