几乎四分之一的 Android 13 是用 Rust 编写的

生锈的机器人 13

Android 13 是 Android 的第一个版本,其中添加到该版本的大部分新代码均采用内存安全语言。

通过博客文章,谷歌工程师 发布了第一批结果的摘要 介绍的 Android 上的 Rust 开发支持。

安卓 13, 编译了大约 21% 的新代码 该集合是用 Rust 编写的,79% 是用 C/C++ 编写的,是 AOSP(Android 开源项目)存储库,它为 Android 平台开发源代码,该平台有大约 1,5 万行 Rust 代码。

编码 由 AOSP 提供 它与新组件有关,例如 Keystore2 加密密钥库、UWB(超宽带)芯片堆栈、基于 HTTP3 的 DNS 协议实现、AVF 虚拟化框架(Android 虚拟化框架)、蓝牙和 Wi-Fi 实验堆栈。

排队 通过上面采用的策略来降低内存错误漏洞的风险, 到目前为止,Rust 主要用于新代码的开发,并逐渐加强最脆弱和最重要的软件组件的安全性。

随着进入 Android 的新内存不安全代码数量的减少,内存安全漏洞的数量也随之减少。 从 2019 年到 2022 年,它占 Android 漏洞总数的比例从 76% 下降到 35%。 2022 年是内存安全漏洞不再占 Android 漏洞大部分的第一年。

没有设定将整个平台转移到 Rust 的总体目标,旧代码仍保留在 C/C++ 中,通过使用模糊测试、静态分析和类似技术来对抗其中的错误。使用 MiraclePtr 类型(绑定原始指针,对访问释放的内存区域执行额外检查)、Scudo 内存分配系统(malloc/free 的安全替代品)和使用 HWAsan(硬件辅助地址消毒器)内存时的错误检测机制、GWP-ASAN 和 KFENCE。

关于性质的统计 漏洞 在 Android 平台上,观察到作为 减少以不安全方式使用内存的新代码数量,它还减少了使用内存时因错误导致的漏洞数量。

例如,由内存问题引起的漏洞比例从 76 年的 2019% 下降到 35 年的 2022%。从绝对数量上看,223 年发现了 2019 个与内存相关的漏洞,150 年为 2020 个,100 年为 2021 个,85 年为 2022 个。没有找到)。 2022 年是与内存相关的漏洞不再占主导地位的第一年。

迄今为止,尚未在 Android Rust 代码中发现任何内存安全漏洞。

我们不希望这个数字永远保持为零,但考虑到两个版本的 Android 中新 Rust 代码的数量以及使用它的安全敏感组件,这是一个重要的结果。 它表明 Rust 正在实现其预期目的,即防止最常见的 Android 漏洞来源。

考虑到 与内存相关的漏洞通常是最危险的,总体统计数据还显示,关键问题和可远程利用的问题数量有所减少。 与此同时,与内存无关的漏洞检测动态在过去 4 年中一直处于大致相同的水平——每月 20 个漏洞。

内存错误导致的危险问题与漏洞的比率也是相同的(但随着漏洞数量的减少,危险问题的数量也会减少)。

统计数据还跟踪以不安全方式使用内存的新代码数量与内存相关漏洞数量(缓冲区溢出、访问已释放内存等)之间的相关性。

这个观察 确认假设 主要关注的是 安全编程技术的实施 它应该提供给新代码而不是重写现有代码,因为大多数已识别的漏洞都在新代码中。

数据来源: https://security.googleblog.com/


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。