软件物料清单管理的最佳实践
从安全性和遵从性的角度来看,适当地管理软件物料清单(SBOM)一直是最佳实践。然而,它在2021年5月变得特别紧迫,当时白宫发布了行政命令要求与联邦政府合作的软件供应商为他们的产品提供soms。hth华体会最新官方网站
无论您的企业是否向美国政府机构销售,现在都是将SBOM管理作为构建和交付软件过程的核心部分的好时机。本文定义了什么是SBOM,解释了为什么它很重要,并提供了SBOM管理的技巧。
什么是软件物料清单?
软件物料清单是组成一个软件的组件的列表,以及关于这些组件的相关元数据(如许可信息)。
常见的元素物料清单包括:
- 应用程序导入或依赖的开源库。
- 应用程序使用的插件、扩展或其他附加组件。
- 由开发人员内部编写的自定义源代码。
- 这些组件的版本、许可状态和补丁状态信息。
此外,SaaS应用程序的SBOM可能包括运行SaaS应用程序所需的api或第三方服务的信息。
为什么SBOM很重要?
从安全的角度来看,soms很重要,因为它们帮助组织确保他们使用的软件是最新的,并且针对已知的进行了修补安全漏洞。企业还可以使用SBOM来识别将它们置于风险中的应用程序,因为它们受制于尚未修复的已知安全漏洞。
此外,soms中包含的许可信息可以帮助企业确保在使用软件时遵守许可要求。例如,软件供应商在其销售的应用程序中集成的开源库可能包含授权条款,要求库的原始作者在与库相关的文档中接受归属。使用SBOM,使用库的组织将知道在其文档中包含归属信息。
soms的安全性和遵从性优势一直都很重要。然而,sbm在今天变得尤为重要,主要有两个原因。其一是开源软件的盛行72%的公司根据Linux基金会的说法,现在在内部使用或作为商业产品的一部分。hth华体会最新官方网站soms有助于确保企业以安全和合规的方式使用开源。
与此同时,与软件原产地相关的安全风险最近成为企业关注的主要问题,这在很大程度上是由于软件供应链攻击有巨大的影响,比如SolarWinds违反这是在2020年首次报道的。此次攻击涉及攻击者将恶意代码插入政府机构和其他组织广泛使用的商业监控软件中,突显了攻击者可以通过访问目标使用的软件来破坏目标的方式。白宫2021年的行政命令在一定程度上就是对这种风险的回应。
观看视频点播网络研讨会
软件物料清单管理的最佳实践
同样,尽管行政命令正式地只适用于向美国联邦政府销售的软件供应商,但从安全性和遵从性的角度来看,为您分发的软件适当地创建和管理soms是一个好主意,无论它是否是官方要求。SBOM也是越来越多的企业可能从他们的供应商那里要求的东西,这意味着SBOM管理将帮助软件公司在市场上保持竞争力。
以下最佳实践可以帮助开发人员高效地创建和管理soms。
使用一致的SBOM格式
一个基本的最佳实践是确保在构建SBOM数据时遵循标准格式。
一些受欢迎的SBOM格式包括SPDX、SWID和CycloneDX。用哪一种取决于你;2021年的SBOM行政命令并没有强制要求特定的SBOM格式,到目前为止,还没有出现任何行业标准。
但无论你做什么,重要的是要始终如一。如果您遵循相同的格式约定并在每个SBOM中包含相同类型的信息,那么您的客户将从SBOM中获得更大的价值。
自动创建bom
自动生成soms作为软件交付管道的一部分提供了两个关键的好处。首先,它使开发人员不必手动构建每个SBOM,这反过来又使实现国家电信和信息管理局所称的“机器速度“生成SBOM。如果soms要成为软件交付周期的公共部分,则soms的即时生成是至关重要的。
第二,也是最重要的,作为CI/CD过程的一部分生成的自动化soms可以加密签名和验证。这允许您向您的用户证明您在SBOM中列出的内容实际上是您交付的软件中的内容。没有管道组件的自动签名(这是JFrog Artifactory通过Pipeinfo),那么SBOM的真实性将很难验证,这将首先削弱拥有SBOM的价值。
在每次发布时更新您的SBOM
不用说,SBOM需要特定于每个应用程序版本,并且开发人员应该在每次更新应用程序时更新SBOM。然而,由于手动创建SBOM的开发人员可能很难在每次发布时更新SBOM,因此很容易陷入创建一次SBOM并仅定期更新的陷阱。
但是,如果您自动生成作为软件发布周期的一部分进入SBOM的数据,那么您可以在每次添加或删除依赖项或更改组件的版本时轻松地更新SBOM。这样做可以确保您的soms是准确的,并且您的客户将确切地知道他们是否受到与您的产品的特定版本相关的漏洞或许可规定的影响。
在您的SBOM中包含完整的元数据
SBOM格式缺乏通用标准意味着一些SBOM比其他SBOM包含更多的元数据(意味着诸如许可和补丁状态之类的信息),因为一些SBOM格式比其他SBOM格式需要更多的元数据。
但是,作为开发人员,您应该努力在每个SBOM中包含尽可能多的元数据。在SBOM中直接包含有关许可证和补丁的数据,使您的客户不必手动查找该信息。它还使您能够在发布的某个组件中发现安全缺陷时更快地更新产品的易受攻击组件。
为SaaS提供soms
到目前为止,围绕soms的大多数讨论都集中在组织自己安装的应用程序上,无论是在内部部署还是在云中。然而,为SaaS应用程序提供soms也是一种最佳实践。
这似乎有悖常理。在SaaS架构下,客户不需要在自己的基础设施上安装应用程序。他们通常也不负责管理与软件相关的许可证或补丁。因此,似乎没有什么理由为SaaS平台创建soms。
尽管如此,为SaaS应用程序提供soms可以提醒客户注意SaaS平台可能因漏洞而受到损害的情况。即使客户不必自己修复漏洞,了解它也可以帮助他们实现自己的安全目标。
jfrog能帮上什么忙
Xray的SBOM最新功能支持SPDX和CycloneDX标准格式。Xray安全工具创建带有机器可读的软件组件和依赖项清单的soms,允许您以这两种标准格式导出soms。
