谷歌近日公开其最新研究成果——CodeMender,一款专注于提升软件安全性的AI驱动智能体。它不仅能自动发现并修复漏洞,还能主动重写存在风险的代码,从根源上消除整类安全隐患。

随着软件系统日益复杂,传统人工排查和自动化工具(如模糊测试)在应对新型漏洞时已显乏力。尽管AI在漏洞发现方面取得进展(如谷歌此前的Big Sleep和OSS-Fuzz项目),但修复环节仍高度依赖开发者手动干预。CodeMender的目标正是填补这一空白:让AI不仅“发现问题”,更能“解决问题”。
自动化补丁生成,已提交72个上游修复
在过去六个月中,CodeMender 已协助向开源社区提交了 72 个安全补丁,涉及包括大型图像库 libwebp 在内的多个关键项目,部分项目代码量高达450万行。
这些补丁并非简单替换变量或添加边界检查,而是基于对漏洞根源的深入分析所生成的高质量修改方案。所有补丁在提交前均由人工研究人员审核,确保功能正确、无回归问题,并符合项目编码规范。

如何工作?多工具协同 + 多智能体推理
CodeMender 不是一个简单的代码生成模型,而是一个具备自主决策能力的AI智能体系统。它结合了近期 Gemini “Deep Think” 模型的推理能力与多种程序分析工具,实现闭环式安全修复流程:
- 定位问题:使用调试器、静态分析、动态分析、差分测试等工具,识别崩溃源头;
- 生成补丁:基于上下文理解,提出针对性修复方案;
- 自我验证:通过模糊测试、SMT求解器、等价性判断模型等方式验证更改是否有效且安全;
- 自动修正:若验证失败,智能体会根据反馈自行调整方案,直至通过。
这种“思考—行动—验证—修正”的循环机制,显著提升了补丁的可靠性。
实战案例一:找出隐藏的XML解析漏洞
在一个真实案例中,崩溃日志显示存在堆缓冲区溢出,但直接查看代码难以定位根本原因。CodeMender 通过分析调试输出和调用栈,最终发现是 XML 元素处理过程中对堆栈管理不当所致。虽然最终补丁仅修改几行代码,但其推理过程覆盖了复杂的控制流与数据流关系。
实战案例二:解决对象生命周期问题
另一个案例中,CodeMender 成功修复了一个涉及复杂对象生命周期管理的问题,并修改了项目中自定义的 C 代码生成系统。这表明该智能体不仅能处理常规漏洞,也能应对架构级缺陷。
主动防御:用更安全的API替代高危代码
除了响应式修复,CodeMender 还具备主动性加固能力——即重写现有代码,采用更安全的数据结构或接口。
例如,在 libwebp 项目中,CodeMender 被用于批量添加 -fbounds-safety 编译注解。启用该注解后,编译器会自动插入数组边界检查,从根本上防止缓冲区溢出类漏洞被利用。
此举意义重大:2023年,libwebp 曾因一个堆溢出漏洞(CVE-2023-4863)被用于 iOS 零点击攻击。如今,这类漏洞在加注后的代码区域已无法生效。
智能体如何确保改动安全?
- 差异审查:使用基于大模型的“批判智能体”对比原代码与修改版本,检测是否引入意外行为;
- 等价性验证:调用专门训练的功能一致性判断模型,确认修改不改变正常逻辑;
- 自动纠错:当新增注解导致编译错误或测试失败时,智能体会自动调整实现方式,直到通过验证。
目标:成为开发者可用的安全助手
目前,所有由 CodeMender 生成的补丁仍需人工审核后再提交。谷歌表示,正逐步加快这一流程,并计划与关键开源项目的维护者建立合作,收集反馈以优化系统表现。
未来,谷歌希望将 CodeMender 发展为一个开放工具,供更多开发者用于维护代码库安全。
团队还计划在未来几个月内发布相关技术论文和详细报告,分享其在程序分析、多智能体协作和自动化验证方面的创新成果。
“我们才刚刚开始探索 AI 在软件安全领域的潜力。”谷歌在博文中写道。















