type
status
date
slug
summary
tags
category
icon
password
Google DeepMind 推出了一款名为 CodeMender 的 AI 代理,专门用于自动发现并修复软件代码中的安全漏洞。在过去的六个月中,该系统已为多个成熟的开源项目提交了 72 个安全补丁。
修复漏洞向来是开发流程中最棘手的部分之一。即便借助模糊测试等自动化手段,找出并修补潜在问题依然需要大量人力和时间。DeepMind 此前通过 Big Sleep 和 OSS-Fuzz 等项目,已经展示了利用 AI 发现新零日漏洞的能力。但问题也随之而来:随着漏洞发现速度加快,开发者面临更大的修复压力。
为缓解这一压力,CodeMender 应运而生。它不仅能对新发现的漏洞即时打补丁(被动模式),还能通过重构代码来预防同类问题再次出现(主动模式)。这种双模式策略大大减少了人工干预的频率,使开发者得以集中精力提升软件的功能性与稳定性。
该系统依托 Google 最新的 Gemini Deep Think 模型,具备强大的推理与决策能力。借助这套模型,CodeMender 能够在不依赖频繁人类指导的情况下,独立进行代码调试和修复工作。此外,系统还配备了专门的分析工具,确保补丁在应用前已进行充分验证,避免引入新的错误。
为确保补丁质量,每项修改必须满足以下标准:
- 确保解决了漏洞的根本原因
- 保证功能逻辑正确
- 不影响已有的测试用例
- 遵守目标项目的编码风格
只有符合上述所有条件的修复才会提交给开发者进行最终审核。
为增强代码修复的准确性和深度,DeepMind 开发了整合多种分析方法的技术。CodeMender 综合运用静态分析、动态分析、差分测试、模糊测试以及SMT 求解器等工具,深入分析程序结构、控制流和数据流,定位问题的根源。
该系统采用多代理协作机制,由多个专用代理分别处理特定环节。例如,专门用于代码审查的代理可以比较原始代码与修改后版本的差异,确保补丁不会带来副作用,并在发现问题时进行自我修正。
在实际应用中,CodeMender 曾处理一起由堆缓冲区溢出导致的系统崩溃。虽然修复本身仅需几行代码,但问题的根源却隐藏在 XML 元素解析逻辑中,位置分散且不易察觉。借助调试器与代码追踪工具,代理成功识别并修复了核心缺陷。在另一案例中,它还解决了复杂对象生命周期管理导致的安全隐患,甚至改进了代码生成系统本身。
除了解决现有缺陷,CodeMender 还具备前瞻式加固能力。它能为常用库如 libwebp 添加编译器边界检查注解(-fbounds-safety),以增强代码安全性,防止未来攻击者利用缓冲区溢出漏洞执行恶意操作。
这在现实中具有重要意义。几年前,libwebp 中的一个堆溢出漏洞(CVE‑2023‑4863)被用于一次针对 iOS 的零点击攻击。DeepMind 表示,如果当时启用此类注解,该漏洞及大部分类似缓冲区问题将无法被利用。
在进行主动修复时,代理需做出复杂判断。当加入注解引发编译错误或测试失败,系统能自动调整并重新生成方案;若检测到功能受损,它也能根据验证反馈,自行优化修复策略。
尽管初期成果相当积极,DeepMind 强调其部署过程十分谨慎,重在确保稳定性和可靠性。目前,CodeMender 提交的所有补丁都会由研究人员审阅后才合并进开源项目。团队正逐步扩大提交规模,同时收集社区意见,不断优化修复质量。
未来的计划包括将生成的补丁直接推送给重点开源项目的核心维护者。借助社区持续反馈,DeepMind 希望最终将 CodeMender 打造为开发者广泛使用的公开工具。
研究团队还将在未来几个月发布相关技术文章与报告,分享系统的技术细节和实战成果。这项工作代表了 AI 在提升代码安全性方向迈出的重要一步,也为构建智能化软件维护体系提供了新路径。
- 作者:数字Baby
- 链接:myaigc.top/article/284b7c2d-0e98-81cc-bc27-f42e708dfef1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。








