软件开发效率
搜索文档
用了 Rust,谷歌实测安卓内存漏洞率比 C/C++ 低 1000 倍!
程序员的那些事· 2025-11-16 18:14
Rust在Android平台的安全性表现 - 内存安全漏洞占比首次降至所有漏洞数量的20%以下[2] - 与现有C/C++代码相比,Rust带来的内存安全漏洞密度降低了1000倍[4] - 保守估计Android平台约有500万行Rust代码,仅发现1个潜在内存漏洞,漏洞密度为0.2个/每百万行,而C/C++历史密度约为1000个/每百万行[32][33] Rust对开发效率的影响 - Rust相关变更的回滚率降低了4倍,代码审核所需时间减少了25%[4] - 从2023年起,Rust代码平均需要的修改次数比同规模C++少约20%[11] - Rust变更在代码审核中停留的时间比C++少25%,2023到2024年间提升显著[15] - 在中大型变更里,Rust的回滚率约为C++的四分之一,且持续下降[18] Rust在Android系统的应用扩展 - 自2021年起开始在Android系统中引入Rust作为C/C++安全替代方案[5] - 在系统语言整体使用中,Rust使用量快速攀升,新C++代码缓慢下降[6] - 在自研Android代码中,Rust新增代码量已与C++相提并论[9] - 应用案例包括:Nearby Presence协议用Rust重写、MLS的Rust实现纳入Google Messages、Chromium中多种解析器换成Rust实现[23] Rust在系统底层的部署进展 - Android基于Linux 6.12的内核首次默认启用Rust支持,并出现首个正式上线的Rust驱动[24] - 已在固件中使用Rust数年,与Arm合作Rusted Firmware-A项目[24] - 多款安全敏感的Google应用开始用Rust从底层保证内存安全[24] 安全事件处理与改进措施 - 成功避免了CrabbyAVIF中的一个线性缓冲区溢出问题,编号为CVE-2025-48530[25][26] - Android默认的Scudo加固分配器通过保护页机制使该漏洞不可利用[28] - 正在为Rust全面培训课程新增unsafe深度模块,提升开发者对unsafe代码的理解[29] Rust与unsafe代码的安全性分析 - unsafe Rust并不会关闭Rust的大部分安全检查,该观点是常见误解[41] - 封装让安全性更容易推理,unsafe代码块本身会得到更多审查[41] - 即便保守假设unsafe Rust的bug概率等于C/C++,其风险仍被高估[35]