50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

谷歌发布最新报告: Rust 可显著减少安全漏洞

  • 2024-10-16
    北京
  • 本文字数:1529 字

    阅读完需:约 5 分钟

大小:735.69K时长:04:11
谷歌发布最新报告: Rust 可显著减少安全漏洞

谷歌表示,过去六年来,其优先考虑内存安全软件开发的努力已大幅减少安卓操作系统中的内存安全漏洞数量。

 

在最近发布的报告中,谷歌透露,因内存安全问题导致的安卓漏洞比例已从 2019 年的 76%下降至预计 2024 年底的 24%,这显著低于行业标准的 70%。

 

这是安卓代码风险状况的显著改善,安卓安全团队成员 Jeff Vander Stoep 和谷歌高级软件工程师 Alex Rebert 将此归功于采用了安全编码(Safe Coding)。这是一套软件开发实践,旨在通过内存安全编程语言(包括 Rust)、静态分析和 API 设计来避免引入漏洞。

 

据安卓团队观察,Rust 变更的回滚率不到 C++ 的一半。

 

Vander Stoep 和 Rebert 说:“前几代人向安全编码所做的转变可以通过开发代码时所做断言的可量化性来体现。”

 

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

 

使用 C#、Go、Java、Python、Swift 和 Rust 等内存安全编程语言开发软件是安全编码的重要组成部分。在大型代码库中,大多数的严重安全漏洞都源于缓冲区溢出等内存安全缺陷。这一认识促使公共和私营部门广泛推动减少内存安全漏洞的发生。

 

为了实现这一目标,我们主要建议避免使用 C 和 C++,因为这两种语言需要手动进行内存管理,除非开发人员特别敬业,否则容易导致内存漏洞。(这一点在 C/C++ 社区中也得到了关注,内存安全已成为该社区的首要任务。)

 

对谷歌而言,国际内存安全运动意味着在安卓和其他项目中更多地采用 Rust 进行开发,这在大多数情况下能够提供内存安全保障而不影响性能。同时,这种做法还提高了工作效率。

 

Vander Stoep 和 Rebert 说到,“安全编码将缺陷查找工作进一步向左转移,甚至在代码提交之前,从而提高了代码的正确性和开发人员的工作效率”。

 

“我们看到这种转变体现在一些重要的指标上,比如回滚率(因意外错误导致的代码紧急回退)。安卓团队观察到,Rust 变更的回滚率不到 C++ 的一半。”

 

对于拥有大量不安全遗留代码的企业来说,好消息是可能不需要用新语言重写旧代码。正如 Vander Stoep 和 Rebert 所指出的,漏洞是有半衰期的——它们会随着时间的推移而衰减。他们说,“举例来说,根据平均漏洞寿命,5 年前的代码比新代码的漏洞密度低 3.4 倍(基于研究结果中的寿命)到 7.4 倍(基于在安卓和 Chromium 中观察到的寿命),”。

 

这并不是说旧漏洞会奇迹般地变得不可利用。相反,漏洞总体密度的降低,这是统计上的胜利,但并不意味着安全有了保障。

 

即便如此,通过使旧代码与内存安全代码实现互操作,以及使用内存安全语言编写新代码,现有漏洞的自然衰减率往往会使大型代码库随着时间的推移变得更加安全,而无需进行繁琐的代码修订。如果你停止制造新的内存安全漏洞,旧的漏洞至少在总体上就不会成为问题。

 

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

 

“这个概念很简单:一旦我们切断了新漏洞的源头,这些漏洞就会呈指数级减少,从而使我们所有的代码更加安全,提高安全设计的有效性,并缓解与现有内存安全策略相关的可扩展性挑战,使这些策略能够更加有效和更加有针对性地得到应用。”

 

作者简介:

Thomas Claburn,The Register 网络杂志的资深记者。他的专长在于政府信息技术、软件开发以及人工智能的伦理使用。Thomas 在技术出版领域拥有近 30 年的经验,曾担任过从杂志版块编辑到特约编辑的多种职务。

 

原文链接:

 

https://www.theregister.com/2024/09/25/google_rust_safe_code_android

 

声明:本文为 InfoQ 翻译整理,未经许可禁止转载。

2024-10-16 16:5011133

评论

发布
暂无评论
发现更多内容

HarmonyOS 5.0应用开发——抽屉布局SideBarContainer

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——全屏模态框

高心星

HarmonyOS arkui 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——半模态框展示

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——应用打包HAP、HAR、HSP

高心星

鸿蒙 HarmonyOS 应用开发 鸿蒙5.0 HarmonyOS NEXT

用 GreptimeDB 和 Metabase 解锁时序数据洞察的无限潜力

Greptime 格睿科技

数据分析 时序数据库 数据可视化

大模型退潮,奇点将至|StartDT Talk

奇点云

AI

WEB 3D CAD中绘制一个窗户模型

WEB CAD SDK

STP CAD 2023下载

HarmonyOS 5.0应用开发——@BuildParam自定义插槽

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

07.适配器模式设计思想

杨充

EMR Serverless Spark:一站式全托管湖仓分析利器

阿里云大数据AI技术

大数据 Serverless 数据分析 云原生 EMR

小间距LED显示屏前维护的意义

Dylan

产品 厂商 LED显示屏 屏幕

HarmonyOS 5.0应用开发——瀑布流WaterFlow

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——Navigation实现页面路由

高心星

鸿蒙 HarmonyOS 应用开发 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——下拉刷新和上拉加载更多组件

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——文件读写

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——多种方式实现图片解码

高心星

鸿蒙 HarmonyOS HarmonyOS框架 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——图像PixelMap变换

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

养护系统

深圳亥时科技

HarmonyOS 5.0应用开发——菜单的显示

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——RCP框架实现断点续传

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

浅谈TiKV集群运维问题排查与修复——磁盘空间占用问题

vivo互联网技术

运维 TiKV

HarmonyOS 5.0应用开发——@build构建函数的使用

高心星

HarmonyOS 鸿蒙 Ability arkui 鸿蒙5.0

HarmonyOS 5.0应用开发——LazyForEach数据懒加载

高心星

HarmonyOS arkui 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——图像PixelMap压缩保存

高心星

鸿蒙 HarmonyOS 应用开发 鸿蒙5.0

剧本杀平台(源码+文档+部署+讲解)

深圳亥时科技

CST电磁仿真教程:如何进行时域自适应网格设置

思茂信息

网络 仿真 cst

物联网监控数据采集,传输和存储方案:使用 GreptimeDB 和 YoMo

Greptime 格睿科技

数据库 物联网 集成 数据监控

双报到系统(源码+文档+部署+讲解)

深圳亥时科技

HarmonyOS 5.0应用开发——响应式布局之媒体查询

高心星

鸿蒙 arkui 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——RCP框架的使用

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

谷歌发布最新报告: Rust 可显著减少安全漏洞_编程语言_Thomas Claburn_InfoQ精选文章