CISA如何提升开源软件安全:内存安全、供应链与漏洞治理

本文针对美国政府关于开源软件安全的RFI提出解决方案,包括采用Rust等内存安全语言重写遗留代码、强化软件供应链防护、大规模漏洞治理以及开发者教育,旨在系统性提升OSS安全性。

CISA如何提升开源软件安全

美国政府近期发布了关于开源软件(OSS)安全的信息请求(RFI)。本文总结了我们的回应和解决方案,包括使用内存安全语言(如Rust)重写广泛使用的遗留代码、资助OSS解决方案以提高合规性、赞助漏洞跟踪和分析工具的研发,以及教育开发者如何减少攻击面和管理复杂功能。

背景详情

负责RFI的政府机构包括国家网络总监办公室(ONCD)、网络安全和基础设施安全局(CISA)、国家科学基金会(NSF)、国防高级研究计划局(DARPA)和管理与预算办公室(OMB)。RFI的具体目标是收集关于OSS安全未来优先事项和长期重点领域的公众意见。这是这些组织识别OSS系统性风险并促进OSS社区长期可持续性的关键部分。

RFI包括五个潜在的长期重点和优先领域。我们优先关注“保护OSS基础”领域及其四个子领域:促进内存安全编程语言的采用、加强软件供应链、大规模减少整类漏洞,以及推进开发者教育。下面我们将为这四个子领域提供建议解决方案。

促进内存安全编程语言的采用

内存损坏漏洞仍然是OSS安全的严重威胁。例如,最近libwebp中的堆缓冲区溢出漏洞在我们起草RFI回应时被积极利用。这类漏洞表明需要超越运行时缓解的解决方案,而像Rust这样提供内存和类型安全的语言是最有前途的。

除了显著减少漏洞外,Rust还能很好地与遗留代码库融合,提供高性能,并且相对易于使用。因此,我们提出的解决方案集中在赞助重要遗留代码库的战略重写。由于重写成本很高,我们特别建议进行全面的系统分析,以确定最适合过渡到内存安全语言(如Rust)的OSS候选。我们建议重点关注广泛使用、测试覆盖不足且容易发生内存安全漏洞的软件组件。

加强软件供应链

如2020年SolarWinds黑客攻击所示,供应链攻击是OSS安全的另一个重大风险。供应链安全是一个复杂且多方面的问題。因此,我们建议改进整个软件供应链的保护——从个体开发者到包索引,再到下游用户。

我们建议的策略包括发布CISA可以发布的“强链接”指南。这些指南将为每个关键OSS组件提供指导:OSS开发者、仓库托管者、包索引和消费者。除了这些指导,我们还建议资助OSS解决方案以更好地实现合规,例如通过与构建系统集成来提高软件物料清单(SBOM)的保真度。

大规模减少整类漏洞

另一个重点领域应该是大规模减少OSS生态系统中的漏洞。像OSS-Fuzz这样的努力已经成功缓解了数千个潜在安全问题,我们建议以之为模型资助类似项目。此外,漏洞跟踪工具(如cargo-audit和pip-audit)在快速修复影响大量用户的漏洞方面取得了成功。有效维护这些工具的关键部分是妥善维护漏洞数据库,并避免过度报告不重要的安全问题,这可能导致安全疲劳,即开发者因警报过多而忽略它们。

因此,我们提出的解决方案是赞助漏洞跟踪工具的开发和维护、分析工具(如Semgrep和CodeQL),以及其他可以大规模工作的新技术。我们还建议赞助与新工具和技术相关的研究,以帮助解决特定的高价值问题,例如安全的HTTP解析。

推进开发者教育

最后,我们认为改进开发者教育是OSS安全的重要长期重点领域。与当前主要关注常见漏洞的教育努力相比,我们建议扩展开发者教育,涵盖减少攻击面、管理复杂功能和“左移”等领域。如果有效实施,为这些领域创建文档和培训材料可以对OSS安全产生显著的长期积极影响。

展望未来

解决OSS安全可能是一个复杂的挑战,但通过在这四个领域进行有针对性的干预,我们可以取得显著改进。我们相信美国政府可以通过三种策略的组合最大化影响:提供全面指导、通过DARPA和ONR等机构分配资金,以及促进与OSTIF、OTF和OpenSSF等OSS基金会的合作。这种组合方法将为推动我们提出的解决方案中的研究和工程任务提供必要的赞助和资金支持。

这些行动共同可以为开源软件构建更安全的未来。我们欢迎ONCD、CISA、NSF、DARPA和OMB发起这样的开放讨论,并给我们贡献的机会。

欢迎阅读我们的完整回应。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News


页面内容 背景详情 促进内存安全编程语言的采用 加强软件供应链 大规模减少整类漏洞 推进开发者教育 展望未来 近期文章 Trail of Bits的Buttercup在AIxCC挑战赛中获第二名 Buttercup现已开源! AIxCC决赛:对决记录 攻击者的提示注入工程:利用GitHub Copilot 作为新员工发现NVIDIA Triton中的内存损坏 © 2025 Trail of Bits。 使用Hugo和Mainroad主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计