论文 了解即可 重点 10月24日 周六 #research#safety#coding

Anthropic:Claude 为 123 个开源库生成机器检查的安全证明

Anthropic 前沿红队与 Theorem 合作,把开源库现有的 fuzz 测试转成形式化规格(任何小于 64 MB 的输入都不会让 fuzz 入口崩溃),由 Claude 在 RISC-V 汇编层面编写证明,再由 Rocq 证明检查器验证。几周内完成了 123 个库的 239 个入口,过程中发现并修补了数百个 bug。

从 fuzz 测试到机器检查的证明
  1. 1Fuzz test → spec把现有 fuzz 入口转成「任何输入都不崩溃」的规格
  2. 2Claude proofClaude 在 RISC-V 汇编层面编写证明
  3. 3Rocq check由 Rocq 证明检查器验证证明
  4. 4Patch发现 bug 时打补丁、重新生成规格并审计补丁
补丁后重新生成规格,再次证明
可信组件Theorem 的 RISC-V 指令语义与 Linux 进程语义

流程据 Anthropic 研究博客整理

要点

  • 证明总计约 1.8 亿行 Rocq,典型证明约 60 万行,对应中位数 18,000 条 RISC-V 指令的二进制
  • 发现的问题包括只在约 20 MB 罕见输入下触发的越界写,并重新发现了 libexpat 的 CVE-2026-56132
  • 为防止「改程序让定理变好证」,团队对补丁扣分、记录并审计所有补丁;36 个小任务中 Opus 5.5 证完一半所用 token 比 Opus 5 少约 40%
  • 局限:证明假设单线程、静态链接 musl 的 RISC-V 程序,而多数实际部署是 x86/ARM 加 glibc 动态链接;「形式化验证」不等于没有 bug
为什么值得关注

形式化验证一直因人工成本过高难以推广,这项工作说明 LLM 可以把它扩展到大量真实代码上;证明仍需数亿 token,但部分证明、语义模型和登记工具已经开源。

来源

Esc
↑ ↓ 选择Enter 打开

分享图

1080 × 1350,适合发到群聊或朋友圈
分享图预览

键盘快捷键

j / k
下一条 / 上一条
o
展开或收起当前条目
Enter
打开当前条目详情
c
复制当前条目链接
s
收藏 / 取消收藏当前条目
/ 或 ⌘K
搜索
1 2 3
切换密度:标题 / 摘要 / 完整
t
切换主题
?
显示本帮助