在谷歌最新发布的安全博客中,Rust 在 Android 上的采用已显示出良好的效果据悉。 2025年的数据证实,与内存安全相关的漏洞首次低于总数的20%,开发效率也有所提高。
在本文中,我们将根据官方公告总结 Rust 实现的效果和扩展情况。
内容
2025 年数据显示内存安全性得到改善
根据2025年Android数据,与内存安全相关的漏洞比例首次降至20%以下。一个显着的特点是,引入 Rust 后,漏洞密度持续下降,主要集中在代码区域。
谷歌显示,Rust 代码的漏洞密度明显低于 C Plus Plus。特别是,在 500 万行 Rust 代码中,在发布前仅发现并修复了一个潜在问题。
同时,内存安全修复的数量也减少了,减轻了代码库的整体质量控制负担。这导致据称,正在形成一种能够有效确保开发阶段安全的结构。。
| 比较项目 | 锈 | C/C++ |
|---|---|---|
| 脆弱性密度 | 约0.2件/MLOC | 约1000件/MLOC |
| 内存安全问题的百分比 | 低于20% | 历史高标准 |
据说这些指标会给Android的整体代码管理带来变化,并且基于确保内存安全的改进过程仍在继续。
采用 Rust 可视化审核效率和稳定性
实施 Rust 后,事实证明,与 C Plus Plus 相比,相同大小的代码更改的审核时间变得更短。 2023 年以来的数据显示,Rust 变更的审核积压量持续呈低趋势。
谷歌的数据显示,Rust 需要较少的审查返工。具有相同数量功能的更改需要更少的修订,并且开发人员重新发布的负担仍然很轻。
此外,据说 Rust 的变更回滚率较低。中到大的变化大约比C-plus+低四倍,并且这一趋势在2024年之后仍然保持不变。
| 项目 | 铁锈变化 | C++ 的变化 |
|---|---|---|
| 审核时间 | 大约缩短 25% | 基准比 |
| 修改请求数量 | 减少约 20% | 基准比 |
| 回滚率 | 相当低 | 大约高出4倍 |
审核效率和高稳定性的并行提升正在直接改变开发系统。这导致事实证明,可以同时提高安全性和开发速度。据说
Rust 使用扩展的最新趋势
Android 内核中 Rust 采用的进展
Android 6.12 Linux 内核启用了 Rust 支持并实现了第一个 Rust 驱动程序。这是一个转折点,Rust 作为平台核心的使用将开始认真扩展。
Google 正在与 Arm 和 Collabora 合作开发基于 Rust 的 GPU 驱动程序。与传统C++不同,一个主要特点是可以将安全机制纳入语言规范中。
由于内核是一个以高权限运行的层,因此确保内存安全极其重要。据评估,采用 Rust 可以更轻松地降低核心层的漏洞风险。
- Linux 6.12 上启用 Rust 支持
- Rust 内核驱动程序现已可用
- 继续与Arm/Collabora进行GPU相关联合开发
这些趋势与加强 Android 平台的安全性直接相关,并被定位为未来扩展政策的指示。
Rust 在固件领域的采用和扩展
由于其高权限和强限制,固件是一个高度脆弱的区域。谷歌解释说,它已经在多个固件中引入了 Rust,并且其采用仍在继续取得进展。
特别是与Arm联合开发的Rusted Firmware A已经发布,并准备了学习材料和培训。 Rust 正在成为提高高权限操作安全性的标准实现方法。
固件漏洞影响广泛且难以应对。因此,确保 Rust 安全性的努力正在多个开发线上推广。其显着特点是,Rust 被选为高层的防御基础。据说
| 领域 | Rust 应用状态 |
|---|---|
| 启动相关FW | 已部署 Rust 实现 |
| Arm相关FW | 联合开发持续进行 |
| 通用固件 | 提供培训材料 |
这些活动是我们安全计划的一部分,并针对提高 Android 内存安全性进行了解释。
扩大 Rust 在关键应用领域的采用
Rust 也被 Android 外围应用程序采用,Rust 实现被用于 Google Play Services 的“Nearby Presence”和 Google Messages 的 MLS 支持。
在 Chromium 中,PNG 和 JSON 等解析处理已被基于 Rust 的处理取代。来自网络的输入处理具有很高的漏洞风险,并且利用了 Rust 的安全性。
这些应用是安全性非常重要的领域,而 Rustization 被解释为可以提高加工安全性。尤其它展示了 Rust 如何有效地处理外部输入。其特点是点。
- 附近存在:现在可在 Rust 实现中使用
- Google Messages:Rust 中的 MLS 实现
- Chromium:正在进行分析处理的 Rust 替代品
Rust也开始在应用领域得到广泛应用,并且正在多个层面上开展提高安全性的努力。
Android上的Rust安全验证示例
CrabbyAVIF 未发布阶段发现的潜在错误
在Android上,已确认在CrabbyAVIF的不安全区域中可能发生线性缓冲区溢出的情况。它在公开发布之前已修复,并以不影响生产版本的方式进行处理。
这个潜在的错误被视为即使在 Rust 中也可能发生在不安全部分的问题的一个例子。 Google 在检测后立即分配 CVE 标识符,并将其作为整个开发线的可追踪状态进行管理。
除了开发阶段的检测系统正在发挥作用之外,漏洞在发布前已被识别被描述为表明该过程的有效性。由于该修复是在未发布状态下进行的,因此影响仅限于内部用户。
使用 Scudo 强化验证防御行为
Android 的 Scudo 分配器旨在放置保护页面并将溢出转换为静态崩溃。这个潜在的错误也被检测到,但没有攻击的可能性。
该机制使用保护页来暴露异常,其独特之处在于内存损坏可以被视为静态异常。该结构使得开发过程中易于识别原因并确保再现性。
| 元素 | Scudo 的工作原理 |
|---|---|
| 保护页 | 溢出时立即崩溃 |
| 检测方向 | 视为静态异常 |
| 影响 | 减少潜在攻击并提高可检测性 |
通过该示例,提高了崩溃日志的分类准确率。保护页面旨在防止漏洞的一点是防御层实际上有助于降低风险的案例被视为。
加强教育改善Rust不安全操作
Android 开发使用不安全的 Rust 来进行硬件访问等特权操作。谷歌正在其教育课程中添加专门针对不安全代码的深入内容,以供开发人员提高他们的理解。
该课程的结构涵盖了未定义的行为、组织安全边界以及添加评论以分享意图。有一个流程可以分离和理解 Rust 对安全抽象和不安全区域的处理。
- 明确安全边界
- 通过抽象的不安全遏制方法
- 添加评论以分享意图
进行这种培训强化的目的是减少不安全操作期间的错误。减少人为错误以确保安全被组织为开发阶段的重要元素。
关于我
