发布时间 : 2025-06-27 14:24:06
网络安全和基础设施安全局 (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 是对安全软件未来的投资。通过定义内存安全路线图并引领采用最佳实践,组织可以显著提高软件弹性,并帮助确保更安全的数字环境。
商务合作,文章发布请联系 anquanke@360.cn
