10.5 开源项目办公室

正如我们所讨论的,各种形状、规模和行业的组织都在拥抱开源软件(OSS)。金融、医疗和制造业,甚至国家安全,现在都使用OSS来支持其最关键的应用和活动。这包括软件供应商,他们通常使用OSS作为其产品和应用开发的一部分。

然而,这种广泛的采用带来了隐患:根据Sonatype的《软件供应链状态报告》,软件供应链攻击增加了近800%。随着OSS采用的快速增长,组织开始创建开源项目办公室(OSPO)来帮助规范OSS使用和贡献的策略,并促进与更广泛的OSS社区的合作。这些OSPO通常有关键责任,如培养OSS策略、领导其执行并促进整个企业使用OSS产品和服务(www.linuxfoundation.org/resources/open-source-guides/creating-an-open-source-program)。

随着组织继续采用和使用OSS,他们将从一开始实施OSPO中受益匪浅。OSPO可以帮助解决我们在前一部分讨论的一些问题,以及我们将要讨论的一些问题。

虽然供应商和企业消费者(他们通常进行自己的内部开发活动)都可以从OSPO中受益,但我们将从软件供应商的角度进行讨论,他们通常在其产品和软件中使用OSS(https://fossa.com/blog/building-open-source-program-office-ospo)。

OSPO在领导OSS管理和策略方面的独特地位使其成为组织在OSS安全和治理方法中的关键角色,越来越重要。研究表明,现代应用程序包括超过500个OSS组件。随着如此广泛的使用,有必要认识到一些关于OSS组件的令人担忧的统计数据。

根据2022年Synopsys的调查,81%的OSS组件至少包含一个漏洞,88%的组件在过去两年没有新的开发,且88%使用的组件不是最新版本。所有这些指标导致了一个令人震惊的现实:组织正在广泛使用过时和不安全的组件。这意味着我们在现代企业环境中拥有巨大的攻击面,这些环境治理不善,并且为恶意行为者提供了丰富的途径(www.synopsys.com/content/dam/synopsys/sig-assets/reports/rep-ossra-2022.pdf)。

现在,读者应该熟悉美国网络安全行政命令(EO),包括第4节“增强软件供应链安全”。由于EO的结果,NIST已经制定了全面的软件供应链指南,包括开源软件控制,我们将在这里讨论,以及OSPO如何倡导其实施(www.nist.gov/itl/executive-order-14028-improving-nations-cybersecurity/software-security-supply-chains-open)。

NIST将其OSS控制措施分为三个成熟度级别:基础能力、持续能力和增强能力。这些控制措施包括使用NIST安全软件开发框架(SSDF)的一些方面,并确保通过可信来源的安全渠道获取OSS组件。现代企业环境的现实是,大多数组织对其自身的OSS使用没有全面的可见性和治理,更不用说持续监控与之相关的漏洞了。这正是OSPO的优势所在:作为商业OSS产品和服务有效使用的倡导者,提倡对OSS相关漏洞的警惕,并确保这些安全实践被编入组织的政策和流程中。

NIST推荐的OSS安全控制措施还包括建立已知和经过审核的OSS组件的内部存储库,开发人员可以使用这些组件来降低组织风险。与其允许开发人员自由提取和使用所有OSS组件,而不了解其漏洞和风险,内部存储库创建了一个强大的OSS组件库,可以提高开发人员的速度,同时降低由于使用易受攻击的OSS组件而带来的组织风险。

NIST SSDF的另一个关键建议是实施支持工具链,包括指定必须包含在CI/CD管道中的工具以减轻风险。示例可以包括将软件组成分析(SCA)和SBOM工具集成到现代CI/CD工具链中,以确保企业能够全面了解通过工具链进入生产环境的易受攻击的OSS组件。这也促进了“左移安全”的推动,确保安全扫描在软件开发生命周期的早期进行,并在引入生产环境之前识别和修复漏洞,以防止它们被恶意行为者利用。OSPO可以在这一领域倡导和编纂的政策和流程不仅包括漏洞扫描和SBOM,还包括启用签名功能,帮助创建不可变的记录和日志,以支持软件开发活动的完整性和可审计性。

NIST提出的最成熟的层级是增强功能,包括使用安全编程语言,并最终将OSS组件的收集、存储和扫描自动化到前面提到的强化内部存储库中。这也许是帮助降低风险的最关键步骤,同时又不会阻碍开发团队的速度,如果受到阻碍,开发团队肯定会绕过组织策略和流程来完成他们的任务。

在OSPO中常见的角色包括开发者关系、倡导和布道。虽然这些小组通常在公司开发团队中建立热情和兴趣,但它们也通常致力于建立关键关系。这些关系可以用来鼓励采用新兴的OSS安全最佳实践,尽管许多组织在其应用程序、软件和产品中广泛使用OSS,但这些实践往往尚未实施。这带来了多重好处,例如确保组织最小化使用不安全的依赖项,并生产出更安全的应用程序,无论是用于内部还是外部目的。

研究(如Chinmayi Sharma的研究)还表明,软件供应商是OSS的主要受益者,因此最有能力帮助解决OSS供应链风险。这使得软件供应商处于一个有利的位置,可以更多地参与OSS社区,扫描漏洞,并为OSS项目做出贡献以减轻这些风险。这将是一个从目前OSS社区主要承担这一负担,而软件供应商社区缺乏平等参与和贡献的模式的转变。软件供应商从其产品和服务中使用OSS中受益匪浅,通过实施和成熟一个OSPO,他们可以更好地理解其OSS使用及其相关风险,并为他们高度依赖的社区做出贡献。

这使得OSPO处于一个完美的位置,可以引领范式转变,最终增强更广泛的OSS供应链的安全性。OSS在几乎每个行业都带来了创新和能力。OSPO现在有能力引领这些行业和相关组织更多地参与OSS社区,同时解决由于分散参与和投资导致的OSS当前系统风险。这将通过更好的治理和OSS组件的安全性,帮助降低供应商软件传递给下游消费者的一些风险。