使用Rust后,谷歌表示Android内存安全漏洞明显减少了

admin 2022年12月13日11:21:36评论48 views字数 1873阅读6分14秒阅读模式

谷歌决定将 Rust 用于 Android 中的新代码以减少与内存相关的缺陷,这似乎正在取得回报。Android 中的内存安全漏洞已经减少了一半以上——这一里程碑恰逢谷歌从 C 和 C++ 转向内存安全编程语言 Rust 一年之时。

今年是内存安全漏洞不是最大类别的第一年,也是在谷歌将 Rust 作为 Android 开源项目(AOSP)中新代码的默认代码的第一年。

谷歌用于 Android 的其他内存安全语言包括 Java 和与 Java 兼容的 Kotlin。虽然 C 和 C++ 仍然是 AOSP 中的主导语言,但 Android 13 是第一个大部分新代码来自内存安全语言的版本。在谷歌于 2021 年 4 月将 Rust 用于 AOSP 之后,其现在约占新代码的 21%。今年的 Linux 内核项目也采用 Rust 作为 C 之外的新官方第二语言。

2019 年发布的 Android 10 版本已经发现了 223 个内存安全漏洞,而 Android 13 已知才有 85 个内存安全问题。

Android 安全软件工程师 Jeffrey Vander Stoep 指出,在此期间,内存安全漏洞占 Android 总漏洞的比例从 76% 下降到了 35%。随着内存安全漏洞数量的减少,谷歌也发现关键和可远程利用的漏洞数量有所减少。

Vander Stoep 同时指出,这种变化并不是由“英雄主义”驱动的——只是开发人员使用最好的工具来完成工作。Android 团队计划加强对 Rust 的使用,尽管没有计划在其系统编程中放弃 C 和 C++。

“如果我必须确定一个使这成为可能的特征,我会说‘谦逊’。Android 团队的各个级别都愿意说‘我们如何才能做得更好?’以及坚持到底和做出改变的毅力,包括系统性的改变,”他在一条推文中指出。

“当然,谦逊需要双向看待。Rust 并不能解决所有问题,在某些领域,C/C++ 将继续成为最实用的开发选择,至少在一段时间内是这样。这毫无疑问。

“随着时间的推移,我们将努力减少这种情况,同时继续扩大 Rust 的使用,并继续投资和部署对 C/C++ 的改进。”

相关性并不等同于因果关系,Vander Stoep 也指出,但内存安全漏洞的百分比(在高严重性漏洞中占主导地位)确实与用于新代码的语言比例非常匹配。

谷歌表示,诸如模糊测试之类的安全工具也对内存安全漏洞产生了重大影响。

我们继续投资于工具以提高我们的 C/C++ 的安全性。在过去的几个版本中,我们在生产 Android 设备上引入了 Scudo 强化分配器、HWASAN、GWP-ASAN 和 KFENCE。我们还增加了对现有代码库的模糊测试覆盖范围。使用这些工具发现的漏洞既有助于预防新代码中的漏洞,也有助于防止上述评估中包含的旧代码中发现的漏洞。这些都是重要的工具,对我们的 C/C++ 代码至关重要。然而,仅凭这些并不能解释我们所看到的漏洞的巨大变化,使用这些技术的其他项目的漏洞构成也没有发生重大变化。我们认为 Android 从内存不安全语言到内存安全语言的持续转变是一个主要因素,”Vander Stoep 写道。

他继续指出,在 Android 13 中,Rust 代码总数为 150 万行,约占所有新代码的 21%。迄今为止,谷歌在 Android 的 Rust 代码中没有发现任何内存安全漏洞。

“它表明 Rust 正在实现其防止 Android 最常见漏洞来源的预期目的。在许多 Android 的 C/C++ 组件(例如媒体、蓝牙 、NFC 等)中,历史漏洞密度大于 1/kLOC(每千行代码 1 个漏洞)。基于这种历史漏洞密度,使用 Rust 很可能已经阻止了数百个漏洞进入生产环境,”Vander Stoep 指出。

谷歌认为放弃 C/C++ 具有挑战性,但正在 Android 项目中推进此事。但是,它不会将 Chrome 迁移到 Rust。

不过,对于 Android,谷歌正在 Rust 中实现用户空间硬件抽象层(HAL),并在可信应用程序中添加对 Rust 的支持。它还将 Android 虚拟化框架中的虚拟机固件迁移到了 Rust。通过在 Linux 内核 6.1 版中支持 Rust,谷歌从内核驱动程序开始为内核带来内存安全。


推荐阅读:


分布式实验室策划的《Go实战集训营》正式上线了。这门课程通过5天线上集训,4个练习项目,40天课后辅导,和学员一起一步一步基于Go常用框架搭建起一个可以访问MySQL、Redis和第三方服务的Go服务,并进行线上调试,排查问题。培训重实战、重项目、更贴近工作,边学边练,1月7日正式开课。

使用Rust后,谷歌表示Android内存安全漏洞明显减少了

原文始发于微信公众号(分布式实验室):使用Rust后,谷歌表示Android内存安全漏洞明显减少了

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月13日11:21:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用Rust后,谷歌表示Android内存安全漏洞明显减少了http://cn-sec.com/archives/1458454.html

发表评论

匿名网友 填写信息