白宫表示,一些开发人员最喜欢的编程语言给需要最高安全性的系统带来了最大的安全风险。
政府批准的国家网络主任办公室 (ONCD) 最近发布了一份报告,详细介绍了建议开发人员使用各种“内存安全编程语言”。此列表恰好排除了流行语言,例如 C 和 C++,这些语言被认为在内存安全方面存在缺陷,从而存在安全风险。
正如Tom's Hardware指出的那样,内存安全是内存访问中根深蒂固的保护,可防止错误和漏洞。此类示例包括 Java 中的运行时错误检测检查,Java 被认为是内存安全语言。然而,C 和 C++ 没有安全检查并允许直接访问内存。
包括微软和谷歌在内的几家公司已将安全漏洞与其系统的内存安全问题联系起来。 2019年,微软发现大约70%的安全漏洞是由内存安全问题引起的。 谷歌在 2020 年就其 Chromium 浏览器中的错误报告了相同的数字。值得注意的是,微软最近才扩展了自己的应用商店的兼容性,以包括开发人员使用 C++ 等语言。
由于 C 和 C++ 属于没有内置安全检查的编程语言,ONCD 建议不要在大型组织、科技公司和政府实体中使用它们。该建议与乔·拜登总统“保护网络空间的基石”的网络安全战略不谋而合。
即便如此,ONCD 并没有经过批准的编程语言列表,只是要求公司在其软件中使用识别能力,同时选择内存安全硬件以最大程度地减少安全问题。最接近制裁名单的是美国国家安全局 (NSA) 在 2022 年制定的一份名单。内存安全语言包括:
- 锈
- 去
- C#
- 爪哇
- 迅速
- JavaScript
- 红宝石
Tom's Hardware 指出,虽然这些语言可能通过了安全性测试,但其中许多语言并不是开发人员的最爱。该出版物补充说,这些语言都位列前 20 名,但其中只有 C#、Java、Python 和 JavaScript 四种语言一直受到开发人员的欢迎。
本报告是一项建议,而不是一项规则。随着时间的推移,看看公司和开发人员如何使用它将会很有趣。