发布时间:2021-02-21 17:57:52来源:CSDN
作者|Carol
出品|CSDN(ID:CSDNnews)头图|CSDN下载自东方IC
近日,Google宣布其目前正在致力于用Rust来缓解开源软件中的内存安全问题。Google方面表示,内存安全漏洞多年来一直是安全领域的主要问题,通常会导致一些问题被利用来接管整个系统,这对于安全领域来说十分不利。
根据微软最近的一项研究发现,每年通过安全更新来修复的漏洞有约70%都是内存安全问题。而对“curl”命令行工具的安全问题分析中显示,95个bug中的53个可以通过使用内存安全语言来避免。
Google称,用不安全语言编写的软件通常包括难以发现的bug,这些bug可能会导致严重的漏洞,Google非常重视这些问题,此前也已经与ISRG(InternetSecurityResearchGroup)合作免费提供TLS证书,目前进一步动作则是与ISRG合作用Rust语言重新实现安全组件,包括用Rust为curl开发HTTP和TLS后端,为Apachehttpd项目开发TLS库。
Google在大力推广Rust
在Google看来,要预防非安全语言编写软件的bug,现在是内存安全编程语言切入的好时机。而Google在此前也有了一些工作成果:
迄今为止,Google的免费OSS-Fuzz服务在375个开源项目中,发现了由内存安全错误引起的5500多个漏洞。对此Google还组织起了相应的Bug赏金计划,希望通过经济奖励的方式鼓励更多人使用这项模糊测试服务。
不仅如此,Google还发布了Syzkaller来监测操作系统内核中的bug,并通过gVisor等沙箱来减少Bug检测期间造成的实际影响。
而curl的HTTP和TLS后端、以及Apachehttpd新的TLS库,这些代码库位于Internet的网关,需要保护全球数百万用户的数据,它们的安全性机器重要。所以这些作为相关工作重要起点的代码库,均已开始接受Rust语言改造。
Rust作为一种面向内存安全的系统编程语言,Google的目标似乎还不止于此,他们希望能扩展Rust在Google中的应用,并且已经开始在内存安全和性能要求极高的设置中使用Rust,包括Android系统。
比如在使用Rust方面,Google用Rust将Android中的操作系统模块包括蓝牙和Keystore2.0进行了优化;在低级别的项目中使用Rust,如ChromeOS中的crosvm虚拟机监视器和驱动程序;还有许多其他项目在评估Rust在其产品中的使用情况,比如软件国际化项目、ICU4X的部分新实验操作系统FuchsiaGPU字体渲染的研究;以及curl代码库优化、Apachehttpd服务器项目中添加Rust代码等等。
科技巨头纷纷使用Rust
近年来,包括Amazon、微软、华为、Facebook在内的科技巨头们纷纷将目光投向Rust,CSDN也持续关注Rust的发展趋势,重磅推出,其中包含联合Rust中文社区联合发布的Rust初阶-中阶-高阶发展路线图及免费学习资源,方便读者根据自身情况,对照参考学习,共同开源完善路线图。
查看完整路线图,请移步官网:
https://dev-roadmap.gitcode.host/
凭借着出色的内存效率、速度与安全性、Rust语言近年来的优势地位愈发明显。
根据微软的说法,Rust是从根本上考虑安全性的编程语言。各大企业使用Rust语言的场景也在逐渐扩大,从网站到开发者工具、再到电子游戏等等。Amazon使用Rust为其无服务器平台Lambda等产品编写代码、Facebook使用Rust语言构建Diem币(原Libra币)、AWS甚至直接聘请Rust编译器联合创始人等。Rust逐渐开始在游戏开发、嵌入式设备、Web编程、网络、开发者工具以及其他软件领域发挥重要作用。
Rust提出了“没有数据竞争的并发性”、“没有垃圾收集的内存安全”以及最终的“无恐惧的黑客”等概念,反映了Rust独特的学术研究和工业实用性结合价值。根据微软GitHub上的数据,Rust采用率在2019年增长了235%。这一系列举动证明了科技界对安全性愈发重视。
Rust历年使用趋势图
值得一提的是,Google在今年2月初联合AWS、华为、微软和Mozilla五家企业成立Rust基金会,Rust基金会是一个新的独立非营利组织,负责管理Rust编程语言和生态系统。并承诺在两年时间里投入100万美元的预算,用于Rust项目的开发、维护和推广。
建立Rust基金会是该语言的一个重要里程碑,也是Rust语言发展道路上的重要转折点。Rust基金会提供资金让开发人员用内存安全语言重写开源软件,提高目前互联网的整体安全度,这无疑为Rust的发展和后续的广泛应用打下了坚实的基础。
你怎么看待Rust语言的进展?你认为2021年会是“Rust年”吗?
☞☞