谷歌已经完成了一个试点项目,使用 Gemini 重写 Rust 中广泛部署的 C 库——并且该实验以一种意想不到的方式获得了回报。在该公司将其生产系统迁移到人工智能生成的、内存安全的 GIF 处理库 giflib 重写后不久,原始 C 代码中披露了一个新的越界堆写入漏洞,编号为 CVE-2026-26740。谷歌的系统已经免疫了。

该公司通过架构而不是修补有效地消除了零日漏洞。正如谷歌的安全工程团队在其 Bug Hunters 博客上的一篇文章中所解释的那样,该团队在执行重写时并不知道待披露的信息 - 保护是消除内存不安全代码的结构性副作用。有关人工智能如何重塑 人工智能研究和工程 的更多信息,请关注 AI Buzz Wire。

为什么内存安全现在很重要

根据 Google 自己的研究,内存安全漏洞约占 C 和 C++ 代码库漏洞的 70%。第三方库是一个特别的弱点,因为它们经常解析不受信任的数据。与此同时,漏洞发现和武器化之间的间隔不断缩小——攻击者越来越多地得到人工智能本身的帮助,行动速度比传统的补丁周期更快。

谷歌长期以来一直倡导“安全编码”策略,优先考虑 Rust 等内存安全语言。未解决的问题是大量安装的 C 和 C++ 依赖项,无法简单删除。飞行员提出了一个直接的问题:法学硕士能否在不破坏任何东西的情况下快速将这些依赖项转换为 Rust?

目标:giflib

Google 选择了 giflib,这是一个广泛使用的 GIF 图像处理库,最初由 Eric S. Raymond 开发。该库为第一次尝试提供了理想的复杂性配置文件:大约 3,000 行代码,无 SIMD 或汇编优化,以及稳定的代码库。至关重要的是,giflib 经常在非沙盒环境中处理不受信任的数据——这正是安全团队最担心的攻击面。

我们的目标雄心勃勃:生产一个内存安全、与 ABI 兼容的直接替代品,可以部署在 Google 的生产基础设施上,并且对相关服务的干扰为零。在 LLM 的帮助下,该库逻辑的初步转换很快就完成了,但团队提出了两个被证明是决定性的要求:仔细管理 FFI 边界——指针生命周期和 Rust 在与现有 C 调用者接口上的所有权语义——以及 Google 所说的“安全的社会组成部分”,即将 AI 生成的重写部署到关键服务中所需的人类信任。

验证挑战

为了赢得生产信任,Rust 实现经过了详尽的测试:

  • 大规模回归测试: 针对超过 3000 万个真实 GIF 的数据集进行验证,确认输出与原始实现相同
  • 差异模糊测试: 原始模糊测试程序与 Rust 模糊测试程序连续运行超过六天,迭代超过 2 亿次,没有发现任何逻辑偏差
  • 对抗性人工智能审查: 专门的 LLM 提示用于寻找传统测试可能错过的两个代码库之间的细微行为差异

该管道在部署前就证明了其价值。它发现了 LZW 解码器中的一个边缘情况,更值得注意的是,发现了一个预先存在的越界写入漏洞,该漏洞是由 Google 内部遗留补丁引入到原始 C 源代码中的,团队在 Rust 重写中纠正了该漏洞。

性能并未受到影响

对内存安全语言的一个常见反对意见是运行时边界检查的成本。谷歌对其全球图像处理服务的监控表明,与 C 原始版本相比,Rust 实现的性能是中性的——该公司表示,它在 Rust 迁移中反复观察到了这一结果。

有意外的收获。由于 Rust 库在构造上是内存安全的,因此 Google 能够停用一些生产服务以前需要隔离 C 库的资源密集型沙箱。这种架构简化显着减少了图像解码任务的尾部延迟。

开源——有诚实的警告

Google 已在 github.com/google/giflib-rs 上发布了 Rust 重写版本,并将其发现回馈给社区。该公司还赞扬了人类主导的互补努力,例如 Trifecta Tech Foundation 将 zlib 手动重写为 Rust,作为更广泛的解决方案生态系统的一部分,获得了显着的性能提升。

这些警告值得注意。重写需要大量的真实数据或强大的现有测试套件来验证行为等效性,并且通过更改语言来偏离上游项目会产生真正的维护成本 - 特别是对于活跃开发下的依赖项。换句话说,人工智能辅助翻译可以加速但不会取代工程判断。

大局观

该试点项目是迄今为止最清晰的示范之一,表明法学硕士可以大规模提供结构性安全改进,而不仅仅是代码建议。谷歌认为,通过将 LLM 驱动的翻译速度与差异测试和安全边界的人类专家审查相结合,可以在任何人知道接下来会出现哪个特定 CVE 之前,从生产基础设施中淘汰整类漏洞。

资料来源:Google Bug Hunters 博客,“扩展内存安全:AI 辅助将 C/C++ 依赖项重写为 Rust”。

---

保持人工智能领先地位

获取最新的人工智能新闻、分析和突破——尽在一个地方。

阅读更多人工智能新闻 →