Rust 语言应用推动 Android 内存安全漏洞占比首次降至 20% 以下
HackerNews 编译,转载请注明出处: 谷歌披露,随着 Android 系统持续采用 Rust 编程语言,内存安全漏洞数量占总漏洞的比例首次降至 20% 以下。 “我们采用 Rust 是看中其安全性,相比 Android 中的 C 和 C++ 代码,Rust 代码的内存安全漏洞密度降低了 1000 倍。但最令人意外的是 Rust 对软件交付的影响,” 谷歌的杰夫・范德・斯托普表示,“Rust 代码修改的回滚率降低了 4 倍,代码审查时间缩短了 25%,如今更安全的开发方式同时也是更高效的方式。” 此前一年多,这家科技巨头曾披露,向 Rust 语言转型已促使内存安全漏洞数量从 2019 年的 223 个降至 2024 年的不足 50 个。 谷歌指出,Rust 代码所需的修订次数更少,相比 C++ 代码减少约 20%,且回滚率降低,从而提升了整体开发吞吐量。 谷歌还表示,计划将 Rust 的 “安全性和生产力优势” 扩展到 Android 生态系统的其他部分,包括内核、固件以及核心第一方应用(如 Nearby Presence、消息层安全协议 MLS 和 Chromium 浏览器)。目前 Chromium 中 PNG、JSON 和网页字体的解析器已替换为 Rust 编写的内存安全实现版本。 此外,谷歌强调需采取深度防御策略,称 Rust 语言内置的内存安全特性只是全面内存安全战略的一部分。 作为例证,谷歌提到其在 CrabbyAVIF 中发现了一个内存安全漏洞(CVE-2025-48530,CVSS 评分 8.1)。CrabbyAVIF 是一个用不安全 Rust 编写的 AVIF(AV1 图像文件)解析器 / 解码器,该漏洞可能导致远程代码执行。尽管这一线性缓冲区溢出漏洞从未进入公开版本,但谷歌已在 2025 年 8 月的 Android 安全更新中修复了该问题。 对这一 “险些泄露” 的漏洞进一步分析发现,Android 中的动态用户态内存分配器 Scudo 使其无法被利用。Scudo 旨在对抗堆相关漏洞(如缓冲区溢出、释放后使用和双重释放),且不影响性能。 谷歌强调,不安全 Rust “本身已相当安全”,其漏洞密度远低于 C 和 C++,且 Rust 中的 “不安全” 代码块并不会自动禁用该语言的安全检查。 “尽管 C 和 C++ 仍将继续存在,软件和硬件安全机制对于分层防御也至关重要,但向 Rust 转型是一种不同的方式 —— 事实证明,更安全的开发路径同时也是更高效的路径。” 谷歌表示。 消息来源:thehackernews; 本文由 HackerNews.cc 翻译整理,封面来源于网络; 转载请注明“转自 HackerNews.cc”并附上原文