美国政府最近发布了一份网络安全报告,建议开发人员停止使用容易出现内存安全漏洞的编程语言,如C和C++,转而使用内存安全的编程语言进行开发。
这份报告由美国网络空间总监办公室 (ONCD) 发布,目的是落实美国总统拜登的网络安全战略,目标是“保护网络空间的基石”。内存安全是指程序在访问内存时能够避免出现错误和漏洞,例如缓冲区溢出和悬空指针。C和C++允许直接操作内存地址,并且缺乏边界检查,容易出现内存安全问题。
报告援引微软和谷歌的研究数据,指出超过 70% 的安全漏洞都与内存安全问题有关。报告还引用了美国网络安全和基础设施安全局 (CISA) 的开源软件安全路线图,建议开发人员从一开始就使用内存安全的编程语言,进行“安全设计”式的开发1。
报告没有推荐特定的编程语言替代 C 和 C++,而是强调有多种内存安全的编程语言可供选择。报告还呼吁企业和工程师采用最佳软件开发实践,并使用内存安全的硬件,以减少恶意攻击的可能性1。
美国国家安全局 (NSA) 在去年 11 月发布的网络安全信息文件中,列出了他们认为安全的编程语言,其中包括:Rust、Go、C#、Java、Swift、JavaScript、Ruby。
这一建议可能会对软件开发行业产生重大影响,因为它可能推动更多的开发人员转向内存安全的编程语言,从而提高软件的整体安全性。然而,需要注意的是,虽然某些编程语言可能在某些方面具有更高的安全性,但没有一种编程语言是绝对安全的,最终的安全性取决于开发者的编程实践和经验。