文章来源:
https://reurl.cc/aZr7ql
美国政府呼吁弃用 C/C++,软件开发界将迎来巨变?
近日,美国网络安全和基础设施安全局 (CISA) 和联邦调查局 (FBI) 再次
发出呼吁,敦促软件开发商放弃使用 C 和 C++ 等“内存不安全”的程式
语言,转而采用更安全的替代方案,以降低国家安全、经济安全和公共健康
的风险。
这一呼吁并非空穴来风。CISA 早在 2024 年初就与五眼联盟的其他成员
(包括 FBI、澳洲网络安全中心和加拿大网络安全中心)联合发表了一份报告,
分析了 172 个关键开源专案。报告指出,超过一半的专案使用了内存不安全
的语言编写程式码,占总程式码量的 55%。
内存安全漏洞:挥之不去的梦魇
CISA 强调,内存安全漏洞占所有安全漏洞的 70%。由于 C 和 C++ 等语言
要求开发人员手动管理内存的使用和分配,任何疏忽都可能导致缓冲区溢位、
释放后使用等严重漏洞,让攻击者有机可乘,控制软件、系统甚至窃取资料。
为了解决这个问题,CISA 建议开发人员改用 Rust、Java、C#、Go、Python
和 Swift 等内存安全的程式语言。这些语言内建了内存保护机制,可以
有效防止常见的内存相关错误,从程式码层面提升安全性。
理想很丰满,现实很骨感
尽管 CISA 的建议立意良善,但要让开发者放弃 C/C++ 并非易事。
首先,将现有的大型程式码库转换为新的程式语言需要耗费大量时间和资源,
而且必须仔细规划才能确保功能不受影响。对于许多企业来说,这无疑是一项
巨大的挑战。
其次,内存安全的语言在效能方面可能不如 C/C++。C/C++ 之所以经久不衰
,正是因为它们能够编写出执行速度最快的程式。在速度和安全之间,许多开发
者和企业仍然会优先考虑速度。
此外,企业还需要额外投资,更换现有的开发工具、除错器和测试框架,
以支援新的程式语言,并将新程式与旧程式码和程式库整合。
CISA 的最后通牒:2026 年前提交迁移路线图
尽管困难重重,CISA 仍然坚持要求企业在 2026 年 1 月 1 日前提交迁移
现有程式码库的路线图,并强调从长远来看,减少漏洞和提高安全性所带来
的收益将超过初始投资。
然而,在追求短期利润最大化的现代商业环境下,企业是否愿意买单,
仍是一个未知数。
Linux 之父 Linus Torvalds 的态度:谨慎支持
就连 Linux 的创造者 Linus Torvalds 也对此持保留态度。虽然他
支持在 Linux 核心程式码中引入 Rust 语言,但也坦言 Rust 和 C
之间的争论已经演变成“宗教战争”,许多经验丰富的 C 语言开发者
抵触学习 Rust。
未来展望:内存安全语言的崛起之路
尽管面临重重阻力,但内存安全语言的发展是大势所趋。随着技术的
进步和安全意识的提高,相信会有越来越多的开发者和企业选择更安全
的程式语言。
然而,这个转变过程注定是漫长而痛苦的。在 2020 年代,C/C++ 仍然
会是软件开发的主力军。或许在 2030 年代,我们才能真正见证内存
安全语言的全面崛起。