CISA、FBI、NSA敦促软件行业:采用内存安全语言来大幅削减漏洞

阅读量9024

发布时间 : 2025-06-27 14:24:06

x
译文声明

本文是翻译文章,文章原作者 Ddos,文章来源:securityonline

原文地址:https://securityonline.info/cisa-fbi-nsa-urge-software-industry-adopt-memory-safe-languages-to-drastically-cut-vulnerabilities/

译文仅供参考,具体内容表达以及含义原文为准。

 

网络安全和基础设施安全局 (CISA) 与 FBI、NSA 和主要国际网络安全合作伙伴一起发布了一份新指南,呼吁软件行业过渡到内存安全编程语言 (MSL),作为减少软件漏洞的关键步骤。

该指南的标题为“内存安全语言:减少现代软件开发中的软件漏洞”,强调当今可利用的安全漏洞的很大一部分源于使用非内存安全语言(如 C 和 C++)编写的软件中的内存安全问题。

几十年来,内存安全漏洞(如缓冲区溢出、释放后使用错误和数据争用)一直困扰着软件系统。这些错误主要来自 C 和 C++ 等语言,这些语言授予低级内存控制,但提供有限的安全保证。风险是关键的。正如指南所强调的:

“Heartbleed 影响了超过 800,000 个访问量最大的网站……BadAlloc 影响了嵌入式设备、工业控制系统和超过 1.95 亿辆汽车,展示了内存漏洞如何威胁国家安全和关键基础设施。”

Google 的 Project Zero 发现,2021 年,67% 的在野零日漏洞是内存安全漏洞,这一统计数据生动地说明了系统性变革的迫切需求。

Rust、Go、Java 和 Swift 等内存安全语言旨在默认强制实施严格的内存安全,从而大大降低此类漏洞的可能性。与依赖开发人员规则的传统语言不同,MSL 将安全机制直接嵌入到语言中:

“MSL 提供内置的保护措施,将安全负担从开发人员转移到语言和开发环境。”

这些保护措施包括边界检查、严格的所有权和借用规则(如 Rust)、垃圾回收(在 Go 和 Java 等语言中)和运行时安全检查等功能。这些措施可以防止缓冲区溢出和释放后使用访问等常见错误,这些错误通常是漏洞利用的入口点。

该指南最引人注目的示例之一来自 Android。2019 年,其 76% 的漏洞源于内存安全问题。认识到这一点后,Google 做出了战略转变:

“Android 团队做出了一项战略决策,在所有新开发中优先考虑 MSL,特别是 Rust 和 Java……到 2024 年,内存安全漏洞已骤降至总数的 24%。”

该指南中的一个关键信息是实用性。虽然对现有代码库进行全面改造可能不可行,但将 MSL 集成到新项目和高风险组件中既可以实现又有影响力。该指南鼓励:

  • 使用 MSL 进行新开发。
  • 优先考虑高风险组件,例如面向网络的服务和文件解析器。
  • 采用模块化设计,通过定义明确的 API 将 MSL 与遗留代码集成。

正如指南所解释的:

“目前,在所有情况或解决方案领域,开始采用 MSL 并非都可行;可能需要额外的投资来减少内存安全错误。”

MSL 不仅可以提高安全性,还可以提高系统可靠性和开发人员的工作效率。通过消除整类错误并通过运行时检查支持更好的调试,它们可以减少停机时间并加快创新周期。

“在编译或运行时测试期间及早检测到错误可以加快调试速度,缩短故障排除时间,并最大限度地降低代价高昂的事件风险。”

CISA 和 NSA 建议组织发布内存安全采用路线图,并与 NIST 安全软件开发框架 (SSDF) 等框架保持一致。他们还强调了行业、政府和学术界在培养 MSL 意识和技能方面的重要性。

归根结底,本指南是一个号召性用语:

“战略性采用 MSL 是对安全软件未来的投资。通过定义内存安全路线图并引领采用最佳实践,组织可以显著提高软件弹性,并帮助确保更安全的数字环境。

本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66