«

谷歌转向 Rust 编程,Android 内存漏洞减少 52%

时间:2024-9-26 11:42     作者:之参博客     分类: 网络相关


谷歌透露,作为其安全设计方法的一部分,其向 Rust 等内存安全语言的过渡已导致 Android 中发现的内存安全漏洞百分比在六年内从 76% 下降到 24%。

该科技巨头表示,专注于新功能的安全编码不仅可以降低代码库的整体安全风险,而且还使转换更具“可扩展性和成本效益”。

谷歌的 Jeff Vander Stoep 和 Alex Rebert 在与 The Hacker News 分享的一篇文章中表示,最终,这会导致内存安全漏洞数量下降,因为新的内存不安全开发在一定时间后会放缓,而新的内存安全开发则会占据主导地位。

或许更有趣的是,尽管新的内存不安全代码的数量增加,但内存安全漏洞的数量也会下降。

这种悖论可以通过漏洞呈指数衰减的事实来解释,研究发现,大量漏洞通常存在于新的或最近修改的代码中。

“问题主要在于新代码,因此我们必须从根本上改变代码开发方式,”范德斯托普和雷伯特指出。“随着时间的推移,代码会逐渐成熟,变得更加安全,因此,随着代码变旧,重写等投资的回报也会逐渐减少。”

谷歌早在 2021 年 4 月就正式宣布了在 Android 中支持 Rust 编程语言的计划,并表示它从 2019 年左右开始优先将新开发过渡到内存安全语言。

因此,操作系统中发现的内存安全漏洞数量从2019 年的 223 个下降到 2024 年的不到 50 个。

不言而喻的是,此类缺陷的减少很大程度上归功于对抗这些缺陷的方法的进步,从被动修补到主动缓解,再到使用Clang sanitizers等工具主动发现漏洞。

该科技巨头进一步指出,内存安全策略应该进一步发展,通过纳入安全设计原则,将安全性融入基础,优先考虑“高保证预防”。

“安全编码让我们能够对代码的属性以及基于这些属性可能发生或不可能发生的情况做出强有力的断言,而不是专注于所应用的干预措施(缓解、模糊测试)或试图使用过去的表现来预测未来的安全性。”Vander Stoep 和 Rebert 说。

不仅如此。谷歌表示,它还专注于提供 Rust、C++ 和 Kotlin 之间的互操作性,而不是代码重写,作为一种“实用且渐进的方法”,以拥抱内存安全语言并最终消除整个漏洞类别。

报告称:“在新代码中采用安全编码提供了一种范式转变,使我们能够利用漏洞固有的衰减来发挥我们的优势,即使在现有的大型系统中也是如此。”

“这个概念很简单:一旦我们关闭了新的漏洞,它们就会成倍减少,使我们的所有代码更安全,提高安全设计的有效性,并减轻与现有内存安全策略相关的可扩展性挑战,以便可以更有效地有针对性地应用它们。”

目前,谷歌宣称正在加强与 Arm 产品安全和图形处理单元 (GPU) 工程团队的合作,以标记多个缺陷并提高整个 Android 生态系统中 GPU 软件/固件堆栈的整体安全性。

其中包括在 Pixel 自定义驱动程序代码中发现两个内存问题(CVE-2023-48409 和 CVE-2023-48421),以及在 Arm Valhall GPU 固件和第五代 GPU 架构固件中发现另一个内存问题(CVE-2024-0153)。

谷歌和 Arm表示:“主动测试是一种良好的卫生习惯,因为它可以在新漏洞被利用之前检测并解决它们。”

标签: Rust