Google 转向 Rust 编程将 Android 内存漏洞减少了 52%

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

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

最终,这会导致内存安全漏洞的下降,因为新内存不安全开发在一段时间后会放缓,并且新内存安全开发接管,谷歌的 Jeff Vander Stoep 和 Alex Rebert 在与 The Hacker News 分享的一篇文章中说。

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

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

“问题主要在于新代码,因此需要从根本上改变我们开发代码的方式,”Vander Stoep 和 Rebert 指出。“随着时间的推移,代码会呈指数级增长,从而使重写等投资回报随着时间的推移而减少。”

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

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

不言而喻,此类缺陷的减少在很大程度上归功于为应对这些缺陷而设计的方法的进步,从被动修补转变为主动缓解,再到使用 Clang 清理器等工具主动发现漏洞。

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

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

这还不是全部。谷歌表示,它还专注于提供 Rust、C++ 和 Kotlin 之间的互操作性,而不是重写代码,作为采用内存安全语言并最终消除整个漏洞类别的“实用和增量方法”。

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

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

在这一发展之际,谷歌吹捧加强了与 Arm 的产品安全和图形处理单元 (GPU) 工程团队的合作,以标记多个缺点并提升整个 Android 生态系统中 GPU 软件/固件堆栈的整体安全性。

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

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

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐