9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

用 Rust 重构核心开源软件吧,谷歌愿意给你钱

  • 2021-02-19
  • 本文字数:2101 字

    阅读完需:约 7 分钟

用Rust重构核心开源软件吧,谷歌愿意给你钱

重构核心开源软件吧,谷歌愿意给你钱。


2 月 17 日,谷歌博客发布了一则公告,表示将提供资金让开发者一起重构各类核心开源软件。


开源项目是所有现代数字基础设施的根基,其重要性不言而喻。谷歌认为内存安全漏洞是困扰无数系统的实际威胁。最近一项研究发现,每年通过安全更新解决的漏洞中,约 70% 属于内存安全问题。另外一项针对 curl 命令行工具安全问题做出的分析则表明,使用内存安全语言能够彻底解决全部 95 种 bug 中的 53 种。以 curl 改造项目作为模板,谷歌希望能重构更多的由其他语言编写的核心开源软件。


事实上,由不安全语言编写的软件中往往包含难以察觉的 bug,极有可能导致严重的后续安全隐患。为此,谷歌公司扩大了与互联网安全研究小组(ISRG)的合作关系,希望共同使用内存安全语言重构各类核心开源软件。


去年 12 月份,谷歌启动了一个名叫“Criticality Score”的项目,目的是为每个开源项目生成一个关键评分,来评估现有开源项目的重要性。评估指标包括项目的年龄、个人贡献者和组织的数量、用户的参与度以及项目依赖性等。谷歌表示鉴定这些关键项目是改进开源项目安全性计划的第一步,谷歌的 OpenSSF 组织将会为这些项目维护者提供一些资源。



今年这次重构计划,谷歌更为直接地表示将提供给大家资金,以推进其他核心开源项目的改造。但是到底是由谁来改造,是否一定是原始维护者,谷歌并没有明确说明。有网友提出疑问,如果由原开源项目之外的人员进行重构,那么资金是否就是提供给这些新开发人员(看起来是新的就业机会呢)。


对此,ISRG 的执行董事解释说:“我们计划将开源软件迁移到内存安全语言上,ISRG 作为中间人协调资金。我们选择项目,并与开源维护人员 / 开发人员一起制定计划,我们会为其筹集资金。一旦有人(例如 Google)为项目提供资金,ISRG 就与项目开发人员 / 维护人员签订工作合同。在某些情况下,可能开源维护者会参与,但我们希望能找到承包商来完成实际的工作。”


并且他再次提到了两个以前的改进项目。其中,curl 的改进,ISRG 直接资助了 curl 的作者;httpd 的改进,谷歌(通过 ISRG)资助了 httpd 提交者。ISRG 执行董事预测,未来大多数情况下,这些资金将主要流向项目维护者 / 开发人员。


不过,谷歌花钱推动重写开源软件的行为,也被一些网友质疑为“以安全名义劫持开源项目”。最初的开源项目维护者是跟谷歌和 ISRG 无关的第三方,而改造项目却是由谷歌选择自己信任的开发人员进行。并且最后用户还得从谷歌改造版本和原始版本中进行选择,如果改造项目更成功,那么在道德上相当于窃取了原始作者的作品。



谷歌大力推广 Rust


谷歌认为当前正是使用内存安全编程语言预防此类 bug 的好时机。在此之前,他们也取得了一些成果:


迄今为止,我们的免费 OSS-Fuzz 服务已经在 375 个开源项目中发现 5500 个因内存安全错误引发的漏洞。我们还组织起相应的 Bug 赏金计划,希望通过经济奖励的方式鼓励更多人使用这项模糊测试服务。我们也发布了 Syzkaller 等项目以检测操作系统内核中的 bug,并通过 gVisor 等沙箱缓解 bug 检测期间造成的实际影响。


作为相关工作的重要起点,面向 curl 的 HTTP 与 TLS 后端正在接受 Rust 语言改造,Apache httpd 也即将迎来全新 TLS 库。作为互联网的重要网关,这些代码库的安全水平将直接决定全球数百万用户的数据安全性。


目前,Rust 被普遍认为是一种关注内存安全的系统编程语言,同时结合了对性能的低程度控制与现代语言特征。因此,谷歌一直希望能够扩展 Rust 在谷歌中的应用,并且已经开始在那些对内存安全和性能要求极高的设置中使用了 Rust,包括将其用在关键的 Android 系统中。


目前,谷歌正在使用 Rust 或对 Rust 生态系统有贡献的项目包括:


  • Android 中的操作系统模块,包括蓝牙和 Keystore 2.0

  • 低级别的项目,例如 ChromeOS 中使用的 crosvm 虚拟机监视器和驱动程序(QEMU 的替代方案)

  • 为使用 Rust 的开源项目做出的贡献,例如 Mercurial 源代码控制系统

  • 固件的 FIDO 安全密钥支持


此外,还有许多其他项目正在评估 Rust 在新的库或产品中的使用情况。一些例子包括:软件国际化项目,ICU4X 部分新实验操作系统 FuchsiaGPU 字体渲染的研究


其中也包括谷歌所支持的 Rust 项目及其维护者:


  • 在 curl 中添加 Rust 代码

  • 与 ISRG 合作,将 Rust TLS 模块添加到 Apache HTTP 服务器项目


在 Rust 的推广上,谷歌不遗余力,还在今年 2 月 8 日,联合 AWS、华为、微软和 Mozilla 五家企业,宣布成立 Rust 基金会,并承诺在两年的时间里,投入 100 万美元的预算,用于 Rust 项目的开发、维护和推广,致力于为那些管理和开发该项目的维护者提供支持。


谷歌表示,“基于谷歌在 C/C++、编译器和工具链方面的长期投资,我们很高兴成为 Rust 基金会的成员。我们期待更多地参与到 Rust 社区,尤其是在整个行业的关键问题上做出更多努力,包括与 C++ 的互操作性、协调安全审查和降低 crate 更新的成本,并继续增加我们对现有 Rust 项目的投资”。


无论如何,谷歌提供资金,让开发人员用内存安全语言重写开源软件,以提升目前互联网的整体安全度,看起来也不是一件坏事。


延伸阅读:


https://security.googleblog.com/2021/02/mitigating-memory-safety-issues-in-open.html


活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2021-02-19 14:505243

评论 2 条评论

发布
用户头像
rust绝对以后的霸主。c,c++,java,c#,go都摆脱不了内存安全问题。
2021-02-19 21:32
回复
java,C#,go是有VM的,哪来内存安全问题。
2021-02-28 00:11
回复
没有更多了
发现更多内容

[直播预告]行云管家堡垒机V7.0版本说明会

行云管家

行云管家

MySQL数据库和Redis缓存一致性的更新策略

做梦都在改BUG

Java MySQL 数据库 redis 缓存

软件测试/测试开发丨H5性能分析实战

测试人

软件测试 性能测试 自动化测试 H5 W3C

Gartner最新报告,分析超大规模边缘解决方案

阿里云视频云

云计算 边缘计算 边缘云

企业云管平台是什么?有什么用?

行云管家

云计算 云管理 云管

又搞事!阿里400页JDK并发源码指南,再次被GitHub置顶了!

做梦都在改BUG

Java jdk 多线程 高并发 源码剖析

大模型高效开发的秘密武器:大模型低参微调套件MindSpore PET

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟 企业号 4 月 PK 榜

一份深入解析Java虚拟机HotSpot手册,让我卷成美团架构师

程序知音

Java JVM java架构师 hotspot Java进阶

阿里P8架构师20年经验总结成微服务设计企业架构转型之道笔记

程序知音

Java 微服务 java架构 Java进阶 后端技术

Atlassian后Server时代 | Server版vs.数据中心版,二者的区别在哪里?

龙智—DevSecOps解决方案

Atlassian 数据中心版 server版

简化你的代码,提高生产力:这10个Lambda表达式必须掌握

做梦都在改BUG

Java Lambda

SpringBoot整合RocketMQ,老鸟们都是这么玩

做梦都在改BUG

Java RocketMQ Spring Boot

真下饭!字节技术官DDD(领域驱动设计)手册,拆解业务代码首选

做梦都在改BUG

Java 架构 领域驱动设计 DDD

🔥InfoQ写作社区三周年主题征文火热开启

InfoQ写作社区官方

热门活动 三周年征文

如何用 YonBuilder 构建线索管理应用?

YonBuilder低代码开发平台

面试官:说一说mysql的varchar字段最大长度?

程序员小毕

MySQL 数据库 程序员 面试 架构师

详解事务模式和Lua脚本,带你吃透Redis 事务

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

云原生:驱动企业数字化新模式

北京好雨科技有限公司

云原生 数字化 rainbond 企业号 4 月 PK 榜

探索网络世界的核心:TCPIP协议四层模型解析

做梦都在改BUG

Java 计算机网络 网络协议 TCP/IP

ZBC 荣登OKX涨幅榜前列,生态持续发力是关键

EOSdreamer111

【重磅发布】易观千帆用户体验分析产品领先版正式发布

易观分析

金融 银行 用户分析

雀氏牛,Alibaba分布式微服务成长手册,GitHub已开源

做梦都在改BUG

Java 分布式 微服务

玩转Github:三分钟教你如何用 Github 快速找到优秀的开源项目

程序知音

Java GitHub 编程语言 后端技术

文献管理软件:EndNote 20 v20.5激活版

真大的脸盆

Mac Mac 软件 文献管理 文献管理工具

构建系列之前端脚手架vite

江湖修行

Vue vite cli

华为云开源项目OpenTiny的TinyNG组件库的设计理念是什么?

英勇无比的消炎药

前端 开源项目 OpenTiny UI组件库

“字节”再次起跳!内部651页剖析HotSpot 源码手册,GitHub已开源

做梦都在改BUG

Java JVM 虚拟机 hotspot

什么是可信云?通过可信云评估意味着什么?

行云管家

可信云

LED显示屏十大应用领域值得你收藏

Dylan

LED显示屏 户外LED显示屏 户内led显示屏

成都开发者Meetup|聚焦云原生开源,点亮企业创新活力

阿里巴巴云原生

阿里云 容器 微服务 云原生

特斯拉和OpenAI的加持,马斯克简直人生赢家

这我可不懂

人工智能 低代码 马斯克 新能源

  • 扫码添加小助手
    领取最新资料包
用Rust重构核心开源软件吧,谷歌愿意给你钱_开源_Tina_InfoQ精选文章