(资料图片)
IT之家 12 月 4 日消息,去年,谷歌将 Rust 作为安卓开源项目(AOSP)中新代码的默认代码,这一举措似乎正在得到回报,谷歌称安卓系统中的内存安全漏洞已经减少了一半以上。
图源 Pexels
谷歌表示,“在过去几年 / 版本中,内存安全漏洞的数量大幅下降”。具体而言,2019 年至 2022 年期间,每年的内存安全漏洞数量从 223 个下降到 85 个。内存安全漏洞现在是安卓系统总漏洞的 35%,而四年前是 76%。事实上,“2022 年是内存安全漏洞不占安卓系统漏洞的大多数的第一年”。
安卓 13 是第一个在其中加入的大部分新代码都是使用内存安全语言的安卓版本,在这个版本中,Rust 语言占了所有新的本地代码的 21%,包括超宽带(UWB)堆栈、DNS-over-HTTP3、Keystore2、安卓的虚拟化框架(AVF),以及“各种其它组件及其开源依赖”。
IT之家了解到,除了 Rust,谷歌用于安卓的其它内存安全语言包括 Java 和与 Java 兼容的 Kotlin。C 和 C++ 仍然是 AOSP 中的主流语言,但安卓 13 是第一个大部分新代码来自内存安全语言的版本。
安卓安全软件工程师 Jeffrey Vander Stoep 指出,安卓团队计划加强对 Rust 的使用,尽管没有计划在系统编程中彻底弃用 C 和 C++。他在一条推文中指出:“Rust 并不能解决所有问题,在某些领域,C / C++ 将继续是最实用的开发选择,至少在一段时间内是这样。”他还称,“我们将努力随着时间的推移减少这种情况,同时继续扩大我们的 Rust 使用规模,并继续投资和部署对 C / C++ 的改进。”
Vander Stoep 指出,相关性并不等同于因果关系,但内存安全漏洞的百分比确实与新代码使用的语言密切相关。
他继续指出,在安卓 13 中,共有 150 万行 Rust 代码,约占所有新代码的 21%。到目前为止,谷歌还没有在安卓的 Rust 代码中发现任何内存安全漏洞。Vander Stoep 指出,“这表明,Rust 正在实现其预期的目的,即防止出现 Android 最常见的漏洞。在安卓的许多 C / C++ 组件(如媒体、蓝牙、NFC 等)中,历史漏洞密度大于 1 / kLOC(每千行代码有一个漏洞)。根据这一历史漏洞密度,使用 Rust 很可能已经放置了数百个漏洞的产生。”
谷歌认为摆脱 C / C++ 是一个挑战,但正在为安卓系统推进该项目。然而,其并没有在 Chrome 上使用 Rust 语言。