软件物料清单(SBOM)管理最佳实践

JFrog支持
2021-10-03 15:09

从安全性和遵从性的角度来看,正确地管理软件材料清单(SBOM)一直是最佳实践。然而,在2021年5月,当白宫发布行政命令要求与联邦政府合作的软件供应商为其产品提供soms。hth华体会最新官方网站

无论您的企业是否向美国政府机构销售产品,现在都是将SBOM管理作为构建和交付软件过程的核心部分的好时机。本文定义了什么是SBOM,解释了它的重要性,并提供了SBOM管理的提示。

什么是软件材料清单?

软件材料清单是组成一个软件的组件的列表,以及有关这些组件的相关元数据(如许可信息)。

常见的元素SBOM包括:

  • 应用程序导入或依赖的开放源码库。
  • 应用程序使用的插件、扩展或其他附加组件。
  • 由开发人员内部编写的自定义源代码。
  • 这些组件的版本信息、license状态和补丁状态。

此外,SaaS应用程序的SBOM可能包括运行SaaS应用程序所需的api或第三方服务的信息。

为什么SBOM很重要?

从安全的角度来看,soms很重要,因为它们帮助组织确保所使用的软件是最新的,并针对已知的软件打了补丁安全漏洞.企业还可以使用SBOM来识别将其置于风险中的应用程序,因为它们受到尚未修复的已知安全缺陷的影响。

此外,soms中包含的许可信息可以帮助企业确保在使用软件时遵守许可要求。例如,软件供应商将开源库合并到其销售的应用程序中,可能包含授权条款,要求库的原始作者在与库相关的文档中获得属性。有了SBOM,使用该库的组织应该知道在文档中包含属性信息。

soms的安全性和遵从性优势一直都很重要。然而,由于两个主要原因,soms在今天变得尤为重要。一个是开源软件的流行72%的公司根据Linux基金会的说法,现在在内部或作为商业产品的一部分使用。hth华体会最新官方网站sbam帮助确保企业以安全和兼容的方式使用开源。

与此同时,与软件来源相关的安全风险最近已成为企业关注的主要问题,这在很大程度上是由于软件供应链攻击有巨大的影响,比如SolarWinds违反这是在2020年首次报道的。攻击者在政府机构和其他组织广泛使用的商业监控软件中插入恶意代码,突显了攻击者通过访问目标使用的软件来破坏目标的方式。白宫2021年的行政命令部分是对这种风险的回应。


观看按需网络研讨会

软件物料清单管理的最佳实践

同样,尽管行政命令正式只适用于向美国联邦政府销售软件的软件供应商,但从安全和遵从性的角度来看,为您分发的软件正确创建和管理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。


创建您自己的SBOM -观看按需网络研讨会!
看网络研讨会