Android 内存安全漏洞大幅减少,Rust 成为关键因素

来源: OSCHINA
编辑: Alias_Travis
2022-12-05 08:58:00

从 Android 12 开始,Google 就在 Android 系统中带来了 Rust 语言的支持,作为 C/C++ 的替代方案,他们的目标并不是把现有的 C/C++ 代码都转换成为 Rust,而是在新编写的代码中使用 Rust 语言开发。

通过将越来越多的 Rust 代码集成到其 Android 操作系统中,Google 在减少漏洞方面的努力最终是获得了回报。

Google 在公告中表示,"在过去几年/几个 Android 系统版本中,内存安全漏洞的数量大幅下降"。

具体而言,2019 年至 2022 年期间,每年的内存安全漏洞数量从最初的 223 个下降到如今的 85 个。内存安全漏洞现在在 Android 系统总漏洞的占比也只有 35%,四年前的占比则是 76%,而且 2022 年也是内存安全漏洞首次不再是 Android 系统漏洞最大占比的一年。

在此期间,进入 Android 系统的新内存不安全代码的数量也已经减少。

Rust 占了 Android 13 所有新的原生代码的 21%,在 AOSP 中已经有大约 150 万行 Rust 代码,涵盖各种功能和元件,其中就包括超宽带(UWB)栈、DNS-over-HTTP3、Keystore2、Android 的虚拟化框架(AVF),以及各种其他组件及其开源依赖。

到目前为止,在整个 Android 12 和 13 系统中,Rust 代码中发现的内存安全漏洞为零,这是一个重要的发现,因为过去 Android 漏洞密度大于 1/kLOC,也就是说,每一千行代码至少会发现一个漏洞,基于 Rust 代码的行数来看,此举可能已经阻挡了成百上千个漏洞进入 Android 系统。

展开阅读全文
精彩评论
在整个 Android 12 和 13 系统中,Rust 代码中发现的内存安全漏洞为零,这么秀的
2022-12-05 14:24
7
举报
这太话术了。“每一千行代码至少会发现一个漏洞,基于 Rust 代码的行数来看,此举可能已经阻挡了成百上千个漏洞进入 Android 系统”--新代码是关键代码吗?写一千行调用代码,一个漏洞都不会有。
2022-12-05 13:36
3
举报
Historical vulnerability density is greater than 1/kLOC (1 vulnerability per thousand lines of code) in many of Android’s C/C++ components (e.g. media, Bluetooth, NFC, etc).
Based on this historical vulnerability density, it’s likely that using Rust has already prevented hundreds of vulnerabilities from reaching production.

这两句话不太容易翻译,我猜意思是,这些新增的rust代码,如果不是用rust而是依旧用c/c++写的话,那按照历史缺陷密度很核能会有几百个内存漏洞。
而现在这些rust代码一个内存漏洞都没有,所以说“此举可能已经阻挡了成百上千个漏洞进入 Android 系统”。
2022-12-06 09:34
2
举报
C/C++ 大型系统编程做到 1 vulnerability per thousand lines of code 已经很不错了
2022-12-12 09:56
1
举报
有没有可能,是以前写得太烂😅
2022-12-11 17:58
1
举报
6 收藏
分享
19 评论
6 收藏
分享
返回顶部
顶部