美国政府和一些大型开源基金会及软件包存储库已经宣布了一系列旨在提高软件供应链安全性的举措,同时也反复呼吁开发人员加大对此类努力的支持。政府举措方面,还包括由美国网络安全和基础设施安全局(CISA)牵头,在美国联邦政府与开源软件开发商和运营商之间开展的一项自愿性威胁情报共享计划。
CISA 总监 Jen Easterly 在日前该机构的开源软件安全峰会上发表主题演讲时解释道:
“我们希望帮助促进围绕安全事件的实时协作。我们正在专门为开源社区成员发起一项新的努力,以实现自愿协作并共享网络防御信息。我们认识到,与这个社区的合作与我们通常与公司的合作方式略有不同,特别是考虑到开源的全球性所带来的独特的国际复杂性。因此,您的参与和反馈对于确保这一举措的成功至关重要。”
除威胁共享倡议外,五大开源软件组织还承诺采取一系列措施,提高各自项目的安全性。Rust 基金会将为用于镜像和二进制签名的 crates.io 软件包仓库开发公钥基础设施,该组织还发布了 crates.io 的威胁模型和识别恶意软件包的工具。
此外,Python 软件基金会还将把 PyPI 的 "Trusted Publishing" 工作扩展到 GitHub 以外的其他供应商。Trusted Publishing 于在 2023 年 4 月推出,彼时仅支持 GitHub。在峰会上,Python 软件基金会透露,它将很快支持 GitLab、Google Cloud 和 ActiveState。此外,它还致力于提供 API 和相关工具来报告和缓解 PyPI 中的恶意软件,以及正在最终确定对数字证明的索引支持。
Packagist 和 Composer 最近添加了漏洞数据库扫描和其他措施,以防止攻击者未经授权接管软件包。该项目的维护人员今年还将完成现有代码库的安全审计。
由 Sonatype 维护的最大的 Java 和 JVM 语言开源软件库 Maven Central 今年将把发布者过渡到一个新的发布门户,以提高软件库的安全性。据悉,这包括计划中的多因素身份验证(MFA)支持。Sonatype 还致力于关键安全性,包括 Sigstore 实现,并且正在评估 Trusted Publishing 以及命名空间的访问控制。
虽然这并不是什么新鲜事,但在 2022 年,自称为世界上最大的软件注册中心的 NPM 开始要求高影响力项目的维护人员使用 MFA。去年,NPM 开发了一些工具,允许维护人员自动生成包来源和软件物料清单 (SBOM),从而允许任何使用开源包的人跟踪和验证代码依赖性。
Log4j 的经验教训
自 2021 年底发现基于 Java 的开源 Log4j 日志库存在严重漏洞以来,保护软件,特别是开源软件 (OSS) 的安全一直是拜登政府关注的重点。Easterly 在她的主题演讲中宣称:“我们 CISA 特别关注 OSS 安全,因为这里的每个人都知道,我们绝大多数关键基础设施都依赖于开源软件。”
“虽然 Log4Shell 漏洞可能给政府中的许多人敲响了警钟,但它证明了这个社区多年来所知道和警告的事情:由于其广泛部署,对 OSS 漏洞的利用变得更具影响力。”
除了追究软件开发商销售易受攻击产品的责任外,Easterly 还多次呼吁供应商支持开源软件安全 —— 通过资金或专门的开发人员来帮助维护和保护其商业项目中的开源代码。
软件制造商的角色
Easterly 在峰会上重申了这一行动呼吁,并引用了哈佛大学的一项研究报告,该报告估计开源软件已在全球创造了超过 8 万亿美元的价值。“我确实对所有软件制造商都提出了一个要求。”
“我们需要企业既是其所使用的开放软件的负责任的消费者,也是可持续的贡献者。这意味着要对其开源软件进行适当审查,并通过财政支持或贡献员工时间等方式回馈社会,以帮助确保每个依赖开放源码软件的人都能从质量和安全性的提高中受益。”
Synopsys 高级软件经理 Mike McGuire 告诉 The Register,虽然美国联邦政府对开源软件的支持很重要,但打补丁更重要。
McGuire 警告说:“无论因为这些活动而采取了什么措施,如果开发组织不在管理他们所利用的开源方面投入更多资金,任何商业应用程序都不会变得更加安全。”
Synopsys 最近发布了 2024 年开源安全报告,McGuire 指出了报告中的发现:“当超过 70% 的商业应用程序存在高风险开源漏洞,并且所有漏洞的平均年龄为 2.8 年时,很明显,最大的问题不在于开源社区,而在于那些未能跟上社区正在进行的不同安全修补工作的组织。”