Claude Opus 4.6:通过大语言模型发现的零日漏洞

Claude Opus 4.6 可大规模识别高严重性漏洞

Anthropic 宣布,Claude Opus 4.6 能够在经过充分测试的开源代码库中发现高严重性零日漏洞,常常找出那些已存在数十年仍未被发现的漏洞。与依赖随机输入的传统模糊测试工具不同,Opus 4.6 采用类人的推理能力分析代码、识别模式并理解逻辑,无需特定任务的工具或定制化框架即可发现漏洞。

漏洞发现方法

为了测试模型的“开箱即用”能力,Anthropic 将 Claude 置于配备标准工具(如 Python 和 coreutils)以及调试器和模糊测试工具等漏洞分析工具的模拟虚拟机中。模型未获得针对这些工具的特殊指令或定制化测试框架。

为防止报告虚构漏洞,Anthropic 实施了严格的验证流程:

  • 聚焦内存破坏漏洞: 团队优先关注内存破坏类漏洞,因为它们可通过程序崩溃和地址消毒器轻松验证。
  • 模型主导的优化: 使用 Claude 对崩溃进行批判性分析、去重并重新排序优先级。
  • 人工验证: 初步发现由 Anthropic 的安全研究人员手动验证并修复,随着发现数量增加,还引入了外部研究人员参与验证。

Anthropic 已验证超过 500 个开源软件中的高严重性漏洞,目前正在与维护者合作报告并修复这些漏洞。

大语言模型驱动发现的案例研究

Claude Opus 4.6 在三个具体场景中展现出相较于传统工具的独特优势:

GhostScript:通过 Git 历史进行推理

在初始模糊测试和人工分析失败后,Claude 分析了 Git 提交历史。它识别出一个与“MM 混合值的栈边界检查”相关的安全相关提交,并推理出:如果某处已修复问题,其他未修补的代码路径中也可能存在类似漏洞。这一推理引导 Claude 在 gdevpsfx.c 中发现了一个缺失的边界检查,并构造出一个概念验证崩溃。

OpenSC:识别不安全函数模式

Claude 在代码库中搜索与漏洞频繁相关的函数,特别是 strrchrstrcat。它发现 OpenSC 中存在一系列 strcat 操作,其输出缓冲区长度未被正确验证,导致缓冲区溢出。Anthropic 指出,传统模糊测试器因需要特定前提条件,极少触及该代码行,而 Claude 能够推理出哪些代码片段最具研究价值。

CGIF:对算法的深层理解

Claude 通过识别出一个关键假设的缺陷,即压缩数据始终小于原始数据大小,发现了 CGIF 库中的缓冲区溢出漏洞。这需要对 LZW 压缩算法及其如何处理符号表重置有概念性理解。由于该漏洞需要特定的操作序列,即使传统模糊测试器达到 100% 的行覆盖率和分支覆盖率,也可能长期无法发现。

网络安全防护与滥用检测

为应对这些能力的双重用途风险,Anthropic 正引入一种新的检测层,使用“探测器”来测量模型在生成响应过程中的内部激活状态。这些专用于网络安全的探测器使 Safeguards 团队能够大规模检测潜在的滥用行为。

执行措施包括:

  • 更新工作流程: 将基于探测器的检测集成到网络安全执行管道中。
  • 扩大应对措施: 实施实时干预,包括可能阻止被识别为恶意的流量。

对安全行业的启示

Anthropic 认为,大语言模型以超越人类研究人员的速度和规模发现新型漏洞的能力,要求行业规范发生演变。特别是,考虑到 LLM 发现漏洞的数量和速度,传统的 90 天披露窗口可能已不再可持续。

Sources

相关