CISA 与联邦调查局、澳大利亚信号局的澳大利亚网络安全中心和加拿大网络安全中心合作,制作了一份联合指南,为企业提供有关选定开源软件 (OSS) 中内存安全风险规模的调查结果。
“本指南以内存安全路线图为基础,为软件制造商提供了一个创建内存安全路线图的起点,包括解决外部依赖项(通常包括 OSS)中的内存安全问题的计划。探索关键开源项目中的内存安全也符合 2023 年国家网络安全战略和相应的实施计划,该计划讨论了对内存安全的投资以及与开源社区的合作,包括建立跨机构开源软件安全倡议 (OS3I) 和对内存安全编程语言的投资。”
该指南发现,在所分析的关键开源项目中,有 52% 的项目包含用内存不安全语言编写的代码,占这些项目总代码行数的 55%。在最大和最受欢迎的项目中,内存不安全代码的情况更为明显;按代码行数计算,前 10 个最大的项目使用内存不安全语言编写的代码中位数为 62.5%,其中有 4 个项目使用内存不安全语言的比例超过 94%。
依赖性分析结果显示,用内存安全语言编写的项目往往依赖于用内存不安全语言编写的组件,凸显了内存安全漏洞的普遍性。例如,对一些项目进行的依赖性分析表明,看似安全的项目往往包含了用不安全语言编写的模块,用于实现密码学和系统接口等功能,从而导致这些项目继承了潜在的漏洞。
该指南认为,开发者亟需转向 Rust 等内存安全编程语言,以大大减少人为错误的机会。并建议企业和其他接触内存不安全代码的开源代码用户,应使用内存安全语言过渡现有项目并启动新项目,以增强软件安全性。
CISA 鼓励所有组织和软件制造商审查指南中的方法和结果,以便:减少内存安全漏洞、做出安全和明智的选择、了解OSS内存不安全风险、评估降低这种风险的方法、以及继续努力推动软件制造商采取降低风险的行动。
完整内容可查看:https://www.ic3.gov/Media/News/2024/240626.pdf