HeadlinesBriefing HeadlinesBriefing.com

LLM 让大规模形式化软件验证成为可能

Hacker News •
×

大多数软件都充斥着漏洞,而人工智能如今可以轻松地发现并利用这些漏洞。传统的网络攻击防御手段已不再足够,因此开发人员需要一种方法来证明代码没有漏洞。形式化软件验证可以提供这种保证,但历来需要多年的专家投入,使其在大多数实际项目中难以实施。

在与 Theorem 的合作中,研究人员表明这一局面正在改变。LLM 现在能够大规模生成形式化证明,从而催生包含可证明安全保证的新开发工作流程。研究团队使用 Claude,在 100 多个真实的开源软件库中,于汇编代码层面(RISC-V)证明了安全属性。据他们所知,这是首次在这一层面上利用 AI 将形式化验证应用于生产软件的大规模尝试。在编写证明的过程中,Claude 还发现了一些尽管经过数万亿次测试运行仍长期未被察觉的漏洞。

该方法基于一种由来已久的技术:开发人员将代码转换为数学模型,并尝试证明其始终遵循既定的安全规则。失败的证明会指向可能存在的漏洞。传统上,证明的规模可能是原始代码的许多倍,并且需要罕见的专业技能。构建 seL4 内核耗时两人年,而对其进行验证则耗时 20 人年。

为检验该方法,Claude 证明了 123 个开源程序在任何小于 64 MB 的输入下,在既定的运行环境假设条件下,都将始终正常退出,不会出现内存安全错误或断言失败。研究人员承认,这远不能修复所有可能的漏洞,但他们认为这提供了一条路线图。部分证明已公开发布,以便其他人能够验证并复用。

来源: Hacker News · 由HeadlinesBriefing整理摘要