软件物料清单(SBOM)管理最佳实践
从安全性和遵从性的角度来看,正确地管理软件物料清单(SBOM)一直是一种最佳实践。然而,它在2021年5月变得特别紧迫,当时白宫发布行政命令该法案要求与联邦政府合作的软件供应商为其产品提供soms。hth华体会最新官方网站
无论您的企业是否向美国政府机构销售,现在都是将SBOM管理作为构建和交付软件过程的核心部分的好时机。本文定义了什么是SBOM,解释了它的重要性,并提供了管理SBOM的技巧。
什么是软件材料清单?
软件材料清单是构成一个软件的组件的列表,以及关于这些组件的相关元数据(例如许可信息)。
常见的元素SBOM包括:
- 应用程序导入或依赖的开源库。
- 应用程序使用的插件、扩展或其他附加组件。
- 由开发人员内部编写的自定义源代码。
- 关于这些组件的版本、许可状态和补丁状态的信息。
此外,SaaS应用程序的SBOM可以包括有关运行SaaS应用程序所需的api或第三方服务的信息。
为什么SBOM很重要?
从安全的角度来看,soms很重要,因为它们帮助组织确保他们使用的软件是最新的,并针对已知的软件打了补丁安全漏洞.企业还可以使用SBOM来识别将其置于风险中的应用程序,因为它们受到已知的尚未修复的安全缺陷的影响。
此外,soms中包含的许可信息可以帮助企业确保在使用软件时遵守许可要求。例如,软件供应商将一个开源库合并到其销售的应用程序中,可能包含授权条款,要求库的原始作者在与库相关的文档中接受归属。使用SBOM,使用库的组织将知道在其文档中包含属性信息。
soms的安全性和遵从性优势一直很重要。然而,soms在今天变得尤为重要,主要有两个原因。一个是开源软件的流行72%的公司根据Linux基金会的说法,现在在内部使用或作为商业产品的一部分。hth华体会最新官方网站soms有助于确保企业以安全和合规的方式使用开源。
与此同时,与软件来源相关的安全风险最近已成为企业关注的主要问题,这在很大程度上是由于软件供应链攻击有巨大的影响,比如SolarWinds违反这是在2020年首次报道的。攻击者在政府机构和其他组织广泛使用的商业监控软件中插入恶意代码,突显出攻击者可以通过访问目标使用的软件来破坏目标。白宫2021年的行政命令在一定程度上是对这一风险的回应。
观看sbom点播网络研讨会
软件物料清单管理的最佳实践
同样,尽管行政命令正式只适用于向美国联邦政府销售软件的软件供应商,但从安全性和遵从性角度来看,为您分发的软件适当创建和管理soms是一个好主意,而不管它是否是官方要求。SBOM也是越来越多的企业可能从他们的供应商那里得到的东西,这意味着SBOM管理将帮助软件公司在市场上保持竞争力。
下面的最佳实践可以帮助开发人员高效地创建和管理soms。
使用一致的SBOM格式
一个基本的最佳实践是确保在构造SBOM数据时遵循标准格式。
一些受欢迎的SBOM格式包括SPDX, SWID和CycloneDX。使用哪一个取决于你;2021年的SBOM行政命令并没有强制要求特定的SBOM格式,到目前为止,还没有出现行业标准。
但无论你做什么,重要的是要始终如一。如果您遵循相同的格式约定并在每个SBOM中包含相同类型的信息,您的客户将从SBOM中获得更大的价值。
自动创建SBOM
自动生成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如何提供帮助
JFrog x光的SBOM最新功能支持SPDX和CycloneDX标准格式。Xray安全工具创建带有机器可读的软件组件和依赖项清单的soms,允许您以这两种标准格式导出soms。
