美国政府鼓励开发者在2026年之前停止使用C和C++

美国政府鼓励开发者在2026年之前停止使用C和C++
近年来 , 内存安全问题引起了软件开发领域的广泛关注 。 美国网络安全与基础设施安全局(CISA)和联邦调查局(FBI)也加强了呼吁 , 敦促开发者逐步弃用C和C++等“内存不安全”语言 , 转向更安全的编程语言 。 这一建议主要面向那些涉及关键基础设施或国家安全的项目 , 旨在减少潜在的安全漏洞 , 提升整体网络安全水平 。 尽管此举存在显著的技术和成本挑战 , 但CISA和FBI认为长远来看 , 这种转变对安全的提升是值得的 。

内存安全的困境:C和C++为何面临淘汰风险?C和C++凭借高性能和灵活的内存管理能力 , 至今依然是众多大型项目中的首选语言 。 然而 , 正是这种灵活性使得C和C++在内存管理方面十分脆弱 。 由于开发者必须手动处理内存分配和释放 , 不可避免会产生诸如缓冲区溢出、释放后使用(use-after-free)等问题 。 数据显示 , 这类内存安全漏洞占据了大部分安全漏洞的比例 , 并为恶意攻击者提供了可乘之机 。
CISA指出 , 内存不安全语言对系统和数据安全构成严重威胁 , 并警示那些为关键基础设施开发服务的企业 , 如果继续依赖C或C++ , 将大大增加安全风险 。
C和C++的“替代方案”:推向Rust等内存安全语言CISA推荐开发者采用诸如Rust、Java、C#、Go、Python和Swift等内存安全语言 。 与C/C++不同 , 这些语言内建了内存安全检查机制 , 可以有效避免许多常见的内存漏洞 。 例如 , Rust引入了“借用检查”(borrow checker)机制 , 严格控制内存访问权限 , 减少内存泄漏和非法访问问题 。 虽然切换到这些语言有助于提高代码安全性 , 但迁移工作非常复杂 。
尤其是 , 对于Linux等大型代码库来说 , 迁移到Rust等新语言的步伐缓慢而艰难 。 尽管Linux之父Linus Torvalds已经表示对Rust的支持 , 但要将Linux内核从C转移到Rust绝非易事 。 正如Torvalds所言 , 迁移语言的过程充满争议 , 开发者往往对自己熟悉的工具和语言拥有强烈依赖 , 再加上Rust与C在编程方式上的巨大差异 , 使得老牌开发者对转换持抵触态度 。 此外 , 内存安全语言可能会在某些情况下导致性能下降 , 迫使开发者和企业在“安全”和“性能”之间权衡 。
内存安全路线图:企业的2026年任务为确保内存安全的落地 , CISA和FBI给出了明确的时间表 , 要求相关企业在2026年1月1日前实现以下目标:

  1. 制定内存安全路线图:针对已有C/C++代码 , 企业需制定清晰的路线图 , 逐步消除内存安全漏洞 , 优先改造关键代码 。
  2. 展示漏洞减少计划:企业需向客户展示如何通过内存安全措施减少内存相关漏洞 , 并证明遵循路线图的合理努力 。
  3. 优先使用内存安全语言:未来的新项目应尽量采用Rust、Java等内存安全语言 , 避免继续使用C/C++ 。
【美国政府鼓励开发者在2026年之前停止使用C和C++】尽管上述要求并非强制执行 , 但对关键基础设施的厂商而言 , 这些准则已经为未来的合规性和安全性设定了标准 。 CISA还强调 , 这些努力不仅可以减少风险 , 还能在“设计即安全”(Secure by Design)原则下向客户表明企业对安全的重视 。
结语虽然转向内存安全语言具有提升安全的长远优势 , 但企业面临着巨大的转换成本 。 除了重新编写代码的工作量外 , 企业还需更换原有的开发工具链、调试器和测试框架 , 以适配新语言 。 此外 , 新旧代码的整合也可能带来技术难题 。
不过 , 随着CISA和各国网络安全机构的持续推动 , 越来越多的组织可能会接受这项内存安全的倡导 , 尤其是那些需要符合高安全标准的关键基础设施厂商 。 总体来看 , 内存安全语言的推广不仅是对C和C++的替代 , 更是网络安全和软件行业适应新时代的必要进化 。

    推荐阅读