美国政府呼吁开发者转向内存安全编程语言,放弃C/C++

发表时间: 2024-02-29 10:31

IT之家 2 月 29 日消息,美国政府近日发布了一份网络安全报告,呼吁开发人员停止使用容易出现内存安全漏洞的编程语言,例如 C 和 C++,转而使用内存安全的编程语言进行开发。这份报告由美国网络空间总监办公室 (ONCD) 发布,旨在落实美国总统拜登的网络安全战略,目标是“保护网络空间的基石”。

内存安全指的是程序在访问内存时能够避免出现错误和漏洞,例如缓冲区溢出和悬空指针。Java 由于其 runtime 错误检测功能,被认为是一种内存安全的语言。然而,C 和 C++ 允许直接操作内存地址,并且缺乏边界检查,容易出现内存安全问题。

报告援引微软和谷歌的研究数据,指出超过 70% 的安全漏洞都与内存安全问题有关。报告还引用了美国网络安全和基础设施安全局 (CISA) 的开源软件安全路线图,建议开发人员从一开始就使用内存安全的编程语言,进行“安全设计”式的开发。

这份报告长达 19 页,旨在强调网络安全不仅仅是个人的责任,更是大型组织、科技公司和政府的共同责任。报告没有推荐特定的编程语言替代 C 和 C++,而是强调有多种内存安全的编程语言可供选择。报告还呼吁企业和工程师采用最佳软件开发实践,并使用内存安全的硬件,以减少恶意攻击的可能性。

IT之家注意到,美国国家安全局 (NSA) 在去年 11 月发布的网络安全信息文件中,列出了他们认为安全的编程语言,其中包括:

  • Rust

  • Go

  • C#

  • Java

  • Swift

  • JavaScript

  • Ruby

但根据 TIOBE 指数 (衡量编程语言流行程度的指标),C# 位居排行榜第 5 位,Java 第 4 位,JavaScript 第 6 位,Go 第 8 位,Swift 第 16 位,Rust 第 18 位,Ruby 第 20 位。可见,NSA 推荐的语言中只有 4 种属于开发者最常用的语言。

该报告还强调了软件安全评估的重要性,并认为更好地评估标准能够帮助科技公司更好地规划、预测和缓解漏洞风险。报告还以阿波罗 13 号登月任务为例,强调了在太空探索等关键领域使用内存安全代码的重要性。

这份报告是美国政府一系列网络安全举措的一部分。2023 年 3 月,拜登总统签署了网络安全行政命令,旨在加强软件和硬件安全,并与科技行业建立合作关系。随着数字化的不断推进,更安全的编程语言和开发方式变得至关重要,这份报告正是呼吁业界重视这一问题的最新举措。