Chrome 探索使用 Rust 解决内存安全问题

来源: OSCHINA
编辑: 局长
2021-09-24

Chrome 安全团队发表文章称,谷歌正在探索使用内存安全语言 Rust 重写或开发 Chrome 的部分模块。

去年谷歌曾指出,Chrome 70% 的安全漏洞是内存安全问题,主要由 C/C++ 中的指针错误导致。针对此问题,谷歌表示 Chrome 探索通过以下三个方向来解决:

  1. 在编译时检查指针是否正确,使 C++ 更安全
  2. 在运行时检查指针是否正确,使 C++ 更安全
  3. 调查代码库中内存安全语言的使用情况

“编译时检查”意味着在 Chrome 构建过程中保证安全,“运行时”意味着在设备上运行 Chrome 时进行检查。理想情况下,通常会选择选项 1 —— 在编译时使 C++ 更安全。不过语言的设计理念并非如此,因此 Chrome 没有选择此方法,而是试验了 2 和 3。

Chrome 安全团队介绍了他们对 C++ 安全解决方案的重大投入 —— 例如 MiraclePtr 和 ABSL/STL 强化模式。他们希望消除相当一部分可利用的安全漏洞,同时也预计会出现部分性能损失的情况。

此外,他们还在探索未来是否可以使用内存安全语言 Rust 重写或开发 Chrome 的部分模块。Rust 是由 Mozilla 开发的编程语言,能在编译时发现指针错误,因此不会造成性能损失。但要让 Rust 和 C++ 一起良好地搭配使用仍存在不少问题

Chrome 安全团队表示,即使从明天开始使用 Rust 编写新的大型组件,他们也不太可能在几年内消除大部分安全漏洞。能否让语言边界足够干净,以便可以使用 Rust 编写部分现有组件?Chrome 安全团队也无法回答这个问题。不过他们已经开始在 Chromium 源代码树中进行有限的、非面向用户的 Rust 实验,暂时没有在 Chrome 的生产版本中使用 Rust,这些进行中的方案仍处于实验阶段。

展开阅读全文
3 收藏
分享
加载中
精彩评论
rz
回想起我上次学Rust还是在上次
2021-09-24 12:16
4
举报
别学了,搞底层或者区块链有点市场,现阶段没有不可替代的场景。
2021-09-24 09:54
3
举报
你搁着搁着呢?
2021-09-24 13:53
2
举报
学着玩,哈哈
2021-09-24 13:55
1
举报
我要学习rust了
2021-09-24 09:52
1
举报
最新评论 (15)
只编写新的组件,怎么消除旧的漏洞呢。
2021-09-25 22:07
0
回复
举报
先试水研究套路,成熟后再逐步用 rust 写的新组建替换老的
2021-09-27 09:02
0
回复
举报
rust NB,firefox 的人是不是可以优先改造
2021-09-25 11:34
0
回复
举报
firefox 早就用上rust啦
2021-09-24 19:25
0
回复
举报
用rust重写吧
2021-09-24 16:06
0
回复
举报
重写?开源的 chromium 就有2500多万行代码
2021-09-26 09:05
0
回复
举报
google不都是用go吗?
2021-09-24 13:59
0
回复
举报
rz
回想起我上次学Rust还是在上次
2021-09-24 12:16
4
回复
举报
你搁着搁着呢?
2021-09-24 13:53
2
回复
举报
我要学习rust了
2021-09-24 09:52
1
回复
举报
您好,请问用其他语言编译怎么和原来的C代码整合在一起?可以混合编译吗?
2021-09-24 09:32
0
回复
举报
是时候学习rust了……
2021-09-24 09:21
1
回复
举报
别学了,搞底层或者区块链有点市场,现阶段没有不可替代的场景。
2021-09-24 09:54
3
回复
举报
学着玩,哈哈
2021-09-24 13:55
1
回复
举报
学起来
2021-09-24 10:05
0
回复
举报
更多评论
15 评论
3 收藏
分享
返回顶部
顶部