← 返回信息流
AI 资讯Hacker News·3 小时前

Anthropic发布开源框架助力AI漏洞发现

原标题:Anthropic's open-source framework for AI-powered vulnerability discovery

速览

Anthropic近日发布了一款开源框架,旨在利用人工智能技术自动化地发现和识别软件系统中的安全漏洞。该工具通过集成大模型能力,能够更高效地扫描代码库,帮助开发者提前定位潜在风险。此举有望显著提升软件供应链的安全性,降低人工审计成本。

AI 深度解读

Anthropic 开源 AI 漏洞发现框架深度解读

背景

Anthropic 在推出 Claude Mythos Preview 并与多家组织的安全团队进行合作后,总结出了一套利用 Claude 进行自主漏洞发现与修复的最佳实践。基于这些实战经验,Anthropic 开源了一个名为 defending-code-reference-harness 的参考实现框架。

该框架旨在展示如何利用 Claude 构建一个完整的“侦察(Recon)→ 发现(Find)→ 验证(Triage)→ 报告(Report)→ 补丁(Patch)”的自动化漏洞处理闭环。需要注意的是,Anthropic 明确表示该仓库目前不再维护且不接受外部贡献。它仅作为一个参考实现,帮助用户理解如何构建自己的漏洞发现流水线。

对于寻求托管解决方案的企业,Anthropic 提供了 Claude Security 产品。这是一个托管服务,能够跨多个项目扫描源代码中的漏洞,通过多阶段验证管道降低误报率,并支持漏洞生命周期的管理(包括初步筛选、修复验证和快速修复生成)。

核心内容

该开源框架的核心价值在于提供了一个可定制、可复用的自动化漏洞挖掘流水线原型。它允许开发者利用 Claude API(包括 Bedrock、Vertex 或 Azure 版本)来构建自定义的安全测试流程。

1. 架构与组件

框架主要包含两个部分:交互式技能(Skills)和自主参考流水线(Reference Pipeline)。

  • Claude Code Skills(交互式技能): 这是一组用于交互式操作的命令,适合手动控制和快速上手:

    • /quickstart:快速入门指南。
    • /threat-model:构建威胁模型。
    • /vuln-scan:执行静态扫描。
    • /triage:对发现的结果进行分类和去重。
    • /patch:生成候选修复补丁。
    • /customize:自定义流水线逻辑。 这些技能主要对文件进行读写操作,安全性较高,无需沙箱环境即可运行,但建议在 Claude Code 中交互式地批准每一次工具调用。
  • Harness(自主参考流水线): 这是一个自动化的参考流水线,专门配置用于通过 Docker 和 ASAN(AddressSanitizer)发现 C/C++ 内存漏洞。

    • 定位:它不是最终产品,而是一个参考实现。其通用结构、提示词(Prompts)和沙箱机制是可复用的,但无法直接适用于所有代码库。
    • 安全性:由于流水线会执行目标代码,因此必须在 gVisor 沙箱中运行,除非显式覆盖。
    • 工作流程recon → find → verify → report → patch

2. 实施路径:从交互式到自动化

Anthropic 建议安全团队采取“小步快跑”的策略,第一天专注于端到端的闭环体验,第二天过渡到自动化运行。

Day 1:交互式闭环体验 目标是通过交互式技能建立威胁模型、运行静态扫描、分类结果并起草修复方案。

  • 步骤 1:构建威胁模型(/threat-model),明确攻击目标。
  • 步骤 2:基于威胁模型运行静态扫描(/vuln-scan)。注意:此阶段仅进行源码静态审查,不涉及编译或运行,因此非演示代码可能会产生较多误报。
  • 步骤 3:验证、去重和排序发现的结果(/triage)。
  • 步骤 4:为已验证的发现生成候选修复补丁(/patch)。
  • 输出:生成 THREAT_MODEL.mdVULN-FINDINGSTRIAGEPATCHES 目录。

Day 2:自动化流水线运行 目标是在已知存在漏洞的开源库上运行完整的自主流水线。

  • 环境准备
    • 安装 Python 虚拟环境及依赖。
    • 运行 scripts/setup_sandbox.sh 安装 gVisor 并构建代理镜像(需要 Docker)。
    • 配置 ANTHROPIC_API_KEY 或 OAuth Token。
  • 执行流水线
    bin/vp-sandboxed run drlibs --model <model-id> --runs 3 --parallel --stream --auto-focus
    
  • 生成补丁
    bin/vp-sandboxed patch results/drlibs/<timestamp>/ --model <model-id>
    
  • 结果:流水线会在 results/ 目录下生成可复现的崩溃记录、可利用性报告和候选补丁。使用 --stream 标志可以在几分钟内看到初步报告。

3. 流水线底层机制详解

自主流水线内部包含七个关键阶段,专门针对 C/C++ 内存安全漏洞设计:

  1. Build(构建): 利用目标项目的 Dockerfile 自动构建包含 ASAN(内存错误检测器)的 Docker 镜像。

  2. Recon(侦察): 一个轻量级代理在网络隔离的容器中读取源代码,并提出“分区”建议。例如,识别出 N 个独立的输入解析子系统,以便后续的发现代理可以并行探索不同区域,避免收敛于同一个漏洞。若未启用 --auto-focus,则使用 config.yaml 中的 focus_areas

  3. Find(发现): N 个代理并行运行,每个代理在独立的隔离容器中工作。代理读取源码,构造畸形输入,并运行 ASAN 二进制文件,直到某个输入连续 3 次导致崩溃。

  4. Verify(验证): 一个独立的“评分代理”(Grader Agent)在未被“发现代理”触碰过的全新容器中复现每个崩溃。只有概念验证(PoC)从发现代理传递到评分代理,确保验证的独立性。

  5. Report(报告): 将验证后的漏洞整理成报告。

  6. Patch(补丁): 为已验证的崩溃生成和验证修复代码。

  7. Sandboxing(沙箱隔离): 所有自主代理均在 gVisor 容器中运行,出站流量严格限制为仅允许访问 Claude API,以防止潜在的安全风险。

关键要点

  • 非维护状态:该开源仓库目前处于“参考实现”状态,Anthropic 不再维护代码,也不接受社区贡献。企业若需生产级服务,应使用 Anthropic 的 Claude Security 托管产品。
  • 安全优先
    • 交互式技能(Skills)仅涉及文件读写,风险较低,无需沙箱。
    • 自主流水线(Harness)涉及代码执行,必须在 gVisor 沙箱中运行,默认拒绝在沙箱外执行。
    • 所有代理的出站网络被严格限制,仅允许与 Claude API 通信。
  • 适用范围
    • 参考流水线默认针对 C/C++ 内存漏洞(通过 ASAN 检测)。
    • 框架结构、提示词和沙箱逻辑是可复用的,但需要用户自行调整以适配其他语言或漏洞类型(通过 /customize 命令)。
  • 误报处理
    • 静态扫描(Day 1)可能产生较多误报,特别是在非演示代码上。
    • 自动化流水线(Day 2)通过执行验证(Execution-verified findings)来减少误报,但 triage 技能可能会将测试代码或故意暴露的漏洞(如 canary target)标记为误报,需用户仔细审查。
  • 最佳实践建议
    • 不要花费数月时间设计完美的流水线,建议从 Day 1 的小规模交互式测试开始,随着经验积累逐步构建。
    • 利用 --parallel--auto-focus 等参数优化并行发现和聚焦扫描效率。
    • 始终审查并批准工具调用,特别是在非沙箱环境中。

意义与影响

Anthropic 开源此框架具有多重行业意义:

  1. 降低 AI 安全工具的使用门槛:通过提供
查看原文 →github.com