谷歌的DeepMind部门揭示了其最新研究项目的发现:一个名为CodeMender的系统,能够独立发现和修复软件漏洞。与仅仅标记问题的工具不同,这个AI代理生成补丁。目前,该项目仍然是一个研究倡议,但已经带来了实际成果。CodeMender为开源项目提供了超过70个修复,其中一些补丁解决了超过450万行的代码库。
开发者指出,该系统的目标不仅仅是对已识别的缺陷做出反应,而是以一种防止未来出现整个类别漏洞的方式重写代码。一个被引用的例子是它在libwebp库上的工作,该库在2023年涉及了一次重大iOS攻击。CodeMender自动在其代码中添加了特定的注释,研究人员表示这些注释可以永久阻止缓冲区溢出漏洞的利用。
修复过程并不是简单地交换几行代码。该系统使用了一套工具,包括静态分析和模糊测试,并且一个专门的“评审”模块验证所应用的修复不会破坏程序的原始逻辑。
重要的是,AI生成的所有更改在提交给原始代码作者之前,必须由人类开发者进行抽查。这一过程最小化了风险,并为神经网络本身提供了额外的训练。
如果该项目超越研究阶段,它可能会从根本上改变软件安全的处理方式。传统方法发现安全“漏洞”,但修补它们仍然需要大量的人力。CodeMender为自动化这一过程提供了一条道路,随着现代代码的数量和复杂性不断增长,这变得至关重要。