使用 Claude 进行大规模软件形式化验证

第 01 章:引言。任务:Frontier Red Team 与 Theorem 合作,使用 Claude 对开源软件进行形式化验证。他们将现有的模糊测试转换为形式化规范,并将代码编译为 RISC-V 汇编。Claude 自主生成证明,识别漏洞并修补代码以满足内存安全等安全属性。人类专家定义范围并审查最终的可信组件,而 AI 负责大规模证明生成。;工具:Claude。人工角色:原始帖子没有说明人如何参与。;局限:形式化验证证明可能消耗数亿个 token,成本是主要障碍。当前方法假设单线程、静态 RISC-V 二进制文件,这与典型的动态 x86/ARM 部署不同。“形式化验证”并不意味着无漏洞;它只保证符合特定模型和规范,如果模型与真实硬件或操作系统行为存在差异,则会有遗漏。。

工具

Claude

Agent Work Atlas 发布日期:

概述

第 01 章:引言

工作流程

Frontier Red Team 与 Theorem 合作,使用 Claude 对开源软件进行形式化验证。他们将现有的模糊测试转换为形式化规范,并将代码编译为 RISC-V 汇编。Claude 自主生成证明,识别漏洞并修补代码以满足内存安全等安全属性。人类专家定义范围并审查最终的可信组件,而 AI 负责大规模证明生成。

原文报告的结果

Claude 证明了 123 个库中 239 个入口点的无崩溃属性,发现了数百个漏洞,包括长期存在的缺陷。在另一项实验中,AI 编写的 Python 解释器在 170 万次测试中与 CPython 行为一致的比例达到 99.95%。Opus 5.5 等新模型比 Opus 5 少用 40% 的 token,共享工作区比单独尝试少用 17% 的 token。

人工角色

原始帖子没有说明人如何参与。

局限

形式化验证证明可能消耗数亿个 token,成本是主要障碍。当前方法假设单线程、静态 RISC-V 二进制文件,这与典型的动态 x86/ARM 部署不同。“形式化验证”并不意味着无漏洞;它只保证符合特定模型和规范,如果模型与真实硬件或操作系统行为存在差异,则会有遗漏。

试一试

我想为一个小型开源 C 库复制形式化验证工作流。首先,选择一个具有现有模糊测试的库,并使用静态 musl libc 链接将其编译为 RISC-V 汇编。使用 Claude 将模糊测试入口点转换为形式化规范,断言对于小于 64 MB 的输入不会崩溃。指示 Claude 为这些规范生成 Rocq 证明。如果证明失败,让 Claude 识别漏洞,修补源代码并重新生成规范。在一个入口点上运行干检查,以验证证明检查器接受输出,然后再扩展到更多函数。在接受任何安全保证之前,确保我审查可信组件(RISC-V 语义和证明检查器)。

原始来源

来源报告未经独立核验。发布日期为本站案例发布日期,并非原始文章日期。

更多同类案例 · 安全与运维