写点什么

谷歌:Android 内存安全漏洞比例下降与使用 Rust 相关

  • 2022-12-04
    北京
  • 本文字数:828 字

    阅读完需:约 3 分钟

谷歌:Android 内存安全漏洞比例下降与使用Rust相关

根据谷歌安全消息,十多年来,内存安全漏洞一直占整个产品和整个行业漏洞的 65% 以上。但近期在 Android 上,内存安全漏洞显着减少,并且相关的漏洞严重性也有所下降。

 

“从 2019 年到 2022 年,内存安全漏洞的年度数量从 223 个下降到 85 个,”Android 安全工程师 Jeffrey Vander Stoep 在博客文章中说道。Jeffrey 表示,这种下降与放弃内存不安全编程语言的努力相吻合,这里的“内存不安全编程语言”指的是 C/C++。



从去年的 Android 12 开始,Rust 成为了 Android 平台语言。Jeffrey 表示,现在在 Android 13 中,添加到该版本中的大部分新代码都是用内存安全语言——Rust、Java 或 Kotlin 编写的。

 

随着 Android 内存不安全代码越来越少,内存安全漏洞占 Android 漏洞的比例从 2019 年的 76% 下降到 2022 年的 35%。2022 年是内存安全漏洞不再是 Android 大部分漏洞代表的第一年。

 

“虽然有相关性并不一定意味着有因果关系,但值得注意的是,由内存安全问题引起的漏洞的百分比似乎与用于新代码的开发语言密切相关。”Jeffrey 说道。

 

据悉,在 Android 13 中,大约 21% 的新原生代码(C/C++/Rust)是 Rust。AOSP 中大约有 150 万行 Rust 代码,涵盖了各种新功能和组件,例如 Keystore2、新的超宽带 (UWB) 堆栈、DNS-over-HTTP3、Android 的虚拟化框架 (AVF) 以及各种其他组件及其开源依赖项。这些是需要系统语言的低级组件,否则这些组件将在 C++ 中实现。迄今为止,在 Android 的 Rust 代码中发现的内存安全漏洞为零。

 

不过,Jeffrey 也表示,谷歌的目标不是将现有的 C/C++ 转换为 Rust,而是随着时间的推移,将新代码的开发转移到内存安全语言。

 

谷歌并不是唯一一家认识到内存安全代码好处的大型科技公司。Meta 层表达过对 Rust 的赞赏。几个月前,微软 CTO Mark Russinovich 宣布不应再使用 C/C++ 来启动新项目,并表示应该在需要没有垃圾收集的语言的地方部署 Rust。

 

参考链接:

https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html

2022-12-04 22:085507

评论 1 条评论

发布
用户头像
微软 CTO Mark Russinovich X
微软Azure CTO Mark Russinovich √
2022-12-05 09:49 · 上海
回复
没有更多了
发现更多内容

单片机上常用-GB2312、GBK汉字取模与字库偏移地址的计算与汉字描点

DS小龙哥

5月月更

深入剖析 | snowflake算法

九叔(高翔龙)

算法 雪花算法 uuid 全局唯一ID snowflake

跨平台应用开发进阶(九) :uni-app 实现Android原生APP-本地打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app Andriod 极光推送 5月月更 本地打包

滑动窗口

工程师日月

算法 5月月更

【C 语言】指针 Five 之 ["⚔ 野指针,🗡 如何规避野指针,💣 指针的未初始化,💣指针越界访问"]

謓泽

C语言 5月月更

【Meetup 预告】OpenMLDB x DolphinScheduler 链接特征工程与调度环节,打造端到端 MLOps 工作流

第四范式开发者社区

人工智能 机器学习 数据库 调度 特征工程

【刷题第15天】剑指 Offer 09. 用两个栈实现队列

白日梦

5月月更

Linux环境编译多个C程序文件

Loken

音视频 5月月更

实现compact table command

Asha

python小知识-python 函数二三事

AIWeker

Python 5月月更

模块六作业 微服务拆分

库尔斯

架构实战营

【LeetCode】在长度 2N 的数组中找出重复 N 次的元素Java题解

Albert

LeetCode 5月月更

跨平台应用开发进阶(十) :uni-app 实现数据存储、获取和删除

No Silver Bullet

uni-app 数据存储 5月月更 全局

全链路压测(十三):高可用和性能优化

老张

性能测试 全链路压测 稳定性保障

【Go实现】实践GoF的23种设计模式:工厂方法模式

元闰子

Go 设计模式 工厂方法模式

SAP UI5 OData V4 模型的构造方式

汪子熙

JavaScript 前端 SAP ui5 5月月更

密码学系列之:在线证书状态协议OCSP详解

程序那些事

密码学 程序那些事 5月月更

VS Code配置markdown代码片段

空城机

前端 vscode 5月月更

Flutter 使用 Provider 实现嵌套状态管理

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

百尺竿头更进一步丨拓展 Amazon Aurora 的读写能力之 Gaea 篇

亚马逊云科技 (Amazon Web Services)

Amazon 环境搭建

后端开发【一大波干货知识】Redis中的IO多线程(线程池)

C++后台开发

redis 多线程 线程池 后端开发 C++后台开发

拆分电商系统为微服务

Dean.Zhang

谷歌三件套 - Bigtable

懒时小窝

bigtable 谷歌 谷歌三件套

模块六:作业

本人法海

「架构实战营」

Java Core「1」JUC-线程基础

Samson

学习笔记 5月月更 Java core

区块链技术已站上真正意义的风口,如何把握?

CECBC

程序员如何保证自己开发的正确性——测试开发有感

Bruce Talk

技术 敏捷 TDD Agile

Sentinel介绍与使用 收藏起来

牧小农

sentinel

小公司里面的 Python 后端,数据库(MySQL)到底要学习到什么程度?

梦想橡皮擦

5月月更

八、浅谈云原生监控

穿过生命散发芬芳

云原生 5月月更

模块6作业提交

KennyQ

谷歌:Android 内存安全漏洞比例下降与使用Rust相关_语言 & 开发_褚杏娟_InfoQ精选文章