根据消费者报告的一项研究,政府和行业的开发人员应致力于在新产品和工具中使用内存安全语言,并确定转向内存安全语言的最关键库和包。
这家以测试消费产品而闻名的美国非营利组织询问可以采取哪些步骤来帮助引入“内存安全”语言,如Rust,而不是C和C++等选项。《消费者报告》表示,它希望解决“无法通过用户行为甚至消费者选择解决的全行业威胁”,并将“内存不安全”确定为此类问题之一。
这份名为《内存安全的未来》的报告着眼于一系列问题,包括在大学内建立内存安全语言采用的挑战,对内存安全语言的不信任程度,将内存安全语言引入用其他语言编写的代码库,以及激励措施和公共问责制。
在过去的两年中,越来越多的项目开始逐渐采用Rust作为用C和C++编写的代码库,以使代码更加内存安全。其中包括来自Meta,Google的Android开源项目,C++主导的Chromium项目(某种程度上)和Linux内核的举措。
2019年,微软透露,在过去70年中修复的安全漏洞中有12%是内存安全问题。这个数字很高,因为Windows主要是用C和C++编写的。从那以后,美国国家安全局(NSA)建议开发人员从C++转向C#,Java,Ruby,Rust和Swift。
向内存安全语言的转变——最值得注意的是,但不仅限于Rust——甚至促使C++的创造者BjarneStroustrup和他的同行们制定了一个“C++安全”计划。开发人员喜欢C++的性能,它仍然主导着嵌入式系统。C++仍然比Rust使用更广泛,但两者都是系统编程的流行语言。
消费者报告的研究包括来自信息安全领域的几位知名人士的意见,以及来自网络安全和基础设施安全局(CISA),互联网安全研究小组,谷歌,国家网络总监办公室等的代表。
该报告强调,计算机科学教授有一个“解释危险的黄金机会”,例如,在评估成绩时,可能会增加记忆安全错误的权重。但它补充说,用Rust教授某些课程的部分内容可能会增加“不必要的复杂性”,并且有一种观点认为Rust更难学习,而C似乎是许多学生未来就业能力的安全选择。