跳到正文
IFAI

AI工具

Google DeepMind 推出 CodeMender:用 AI 自动定位并修复代码漏洞

首次发布 传播指数 52

Google DeepMind 公布代码安全智能体 CodeMender 的早期成果。它基于 Gemini Deep Think 模型,能定位漏洞根因、重写代码并自动验证。过去 6 个月内,它已向开源项目提交了 72 个安全补丁,目前生成的补丁仍由人工审核后提交。

Google DeepMind 推出 CodeMender:用 AI 自动定位并修复代码漏洞
图:blog.google

以前黑客和安全专家比的是谁眼力好,后来变成了比谁手里的自动化工具跑得快。在 Google 搬出 Big Sleep 和 OSS-Fuzz 这类 AI 挖洞工具后,找到零日漏洞的速度连人类维护者自己都快接不住了。

既然找漏洞的矛换成了 AI,修漏洞的盾也只能交给 AI。Google DeepMind 近日公布了他们正在研发的安全智能体 CodeMender,专门用来自动化修复关键软件漏洞。

在过去半年的测试里,CodeMender 已经给各类开源项目提交并合入了 72 个安全补丁,其中有些项目本身的规模就超过 450 万行代码。

先当侦探查根因,再拉个「AI 评审员」反复挑刺

修过 Bug 的人都知道,很多时候报错位置和真正出错的代码根本不在一个地方。比如崩溃报告写的是堆缓冲区溢出,根源却可能是 XML 解析时栈管理出了纰漏。

CodeMender 底层调用了 Gemini Deep Think 模型的推理能力,不仅能翻看崩溃日志,还会自己调用调试器、静态分析和模糊测试工具去顺藤摸瓜,定位代码深处的逻辑漏洞。

更关键的是它不会乱改一气。Google 给它配了一套多智能体评审机制,专门由一个 Critique 审查智能体负责对比修改前后的差异,反复确认新代码有没有破坏原有功能、有没有引入新的编译错误。

一旦测试挂了或者编译报错,CodeMender 还会根据审查反馈自己调整代码,直到完全符合要求,再交由人类研究员复核后提交合并。

不只被动打补丁,还能顺手把老代码重写了

除了出了漏洞赶紧堵上,CodeMender 还干了一件更激进的事:主动重写陈旧代码,直接从根源上消灭整类漏洞。

比如在著名的图像压缩库 libwebp 里,几年前曾爆出过一个严重的堆缓冲区溢出漏洞 CVE-2023-4863,当时甚至被黑客用来做 iOS 的零点击利用攻击。

CodeMender 会主动扫描这类老项目,自动给代码加上 bounds-safety 安全边界注解。这样编译器在打包时就会强制加入边界检查,直接让整类缓冲区溢出攻击彻底失效。

目前 Google 还是采取了比较克制的做法,所有生成的补丁在提交给开源社区前,都会经过内部人类专家严格把关。Google 表示接下来会逐步扩大合作范围,未来计划把它开放给所有开发者使用。

为什么重要

维护开源项目是件苦差事。很多支撑全球数字基础设施的核心基础库,日常往往只有两三个志愿者在靠爱发电,面对堆积如山的安全警报根本修不过来。如果 CodeMender 这样能自己查因、自己写补丁、自己跑回归测试的工具普及开来,开源维护者的精力就能从打地鼠般的补漏洞中解放出来。

我们认为 Google 这一步走得相当清醒。AI 挖漏洞的门槛正在被急剧拉低,如果不把修复和防御的效率同步拉上去,整个软件生态的安全天平很快就会失衡。比起让 AI 写点增删改查的前端组件,让它在底层系统里排查深层内存泄漏和边界检查,更能体现大模型复杂推理的真正价值。

不过隐患也不是没有。代码安全容不得哪怕一次侥幸,一旦自动生成的补丁引入了极其隐蔽的逻辑后门,后果可能比原先的漏洞更严重。Google 现在坚持让人类专家最后点一下头是明智的,但未来如果要完全放开跑自动化,各家团队对自动合入补丁的信任门槛依然非常高。

来源 (2)

  1. [1]
    deepmind.google(在新标签页打开)原文deepmind.google
  2. [2]
    blog.google(在新标签页打开)报道blog.google

每日 AI 内容精选