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

JFrog支持
2021-10-03 15:09

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

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

什么是软件材料清单?

软件材料清单(Software Bill of Materials)是构成软件的组件列表,以及关于这些组件的相关元数据(如许可信息)。

常见的元素SBOM包括:

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

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

SBOM为什么重要?

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

此外,soms中包含的许可信息可以帮助企业确保在使用软件时符合许可要求。例如,软件供应商将一个开源库合并到其销售的应用程序中,它可能包含许可条款,要求在与该库相关的文档中接收该库的原始作者的归属。对于SBOM,使用该库的组织将知道在其文档中包含属性信息。

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

与此同时,与软件来源有关的安全风险最近已经成为企业的一个主要关注点,这在很大程度上是由于软件供应链攻击有巨大的影响,比如SolarWinds违反这是在2020年首次报道的。此次攻击涉及攻击者将恶意代码插入政府机构和其他组织广泛使用的商业监控软件,突显出攻击者可以通过获取目标使用的软件而危及目标的方式。白宫2021年的行政命令在一定程度上就是为了应对这一风险。


观看sbom在线研讨会

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

同样,尽管行政命令正式地只适用于向美国联邦政府销售的软件供应商,但从安全和遵从性的角度来看,为所分发的软件正确地创建和管理soms是一个好主意,而不管它是否是官方要求。SBOM也是越来越多的企业可能需要从他们的供应商那里得到的东西,这意味着SBOM管理将帮助软件公司在市场上保持竞争力。

以下最佳实践可以帮助开发人员高效地创建和管理sbm。

请使用一致的SBOM格式

一个基本的最佳实践是确保在构造SBOM数据时遵循标准格式。

一些受欢迎的SBOM格式包括SPDX、SWID和CycloneDX。使用哪一个取决于您;2021年的SBOM行政命令并没有规定特定的SBOM格式,到目前为止,也没有出现任何行业标准。

但无论你做什么,重要的是始终如一。如果您遵循相同的格式约定,并在每个SBOM中包含相同类型的信息,您的客户将从SBOM中获得更大的价值。

自动化SBOM创造

作为软件交付管道的一部分,自动生成soms提供了两个关键好处。首先,它使开发人员不必手动构建每个SBOM,这反过来使实现国家电信和信息管理局所称的“机器速度“SBOM的一代。如果soms要成为软件交付周期的一个常见部分,那么soms的即时生成是至关重要的。

第二个也是最重要的一点是,可以对CI/CD过程中生成的自动化sbm进行加密签名和验证。这允许您向您的用户证明,您在SBOM中列出的内容实际上就是您交付的软件中的内容。没有管道组件的自动签名(这是JFrog Artifactory支持的一个特性Pipeinfo), SBOM的真实性将很难验证,这将削弱SBOM的价值在第一个地方。

在每个版本中更新您的SBOM

毫无疑问,SBOM需要特定于每个应用程序版本,开发人员应该在每次更新应用程序时更新SBOM。但是,由于手动创建SBOM的开发人员可能很难在每个版本中更新他们的SBOM,因此很容易陷入只创建一次SBOM并只定期更新的陷阱。

但是,如果您自动生成作为软件发布周期的一部分进入SBOM的数据,那么每次添加或删除依赖项或更改组件版本时,您都可以轻松地更新SBOM。这样做可以确保您的sobm是准确的,并且您的客户将确切地知道他们是否受到与产品特定版本相关的漏洞或许可要求的影响。

在SBOM中包含完整的元数据

由于缺乏SBOM格式的通用标准,一些SBOM比其他SBOM包含更多的元数据(意味着许可和补丁状态等信息),因为一些SBOM格式比其他SBOM格式需要更多的元数据。

然而,作为一名开发人员,您应该努力在每个SBOM中包含尽可能多的元数据。将有关许可证和补丁的数据直接包含在SBOM中,使您的客户不必手动查找这些信息。它还使您能够在发布的组件中发现安全缺陷的情况下,更快地更新产品中有漏洞的组件。

为SaaS提供sobm

到目前为止,围绕soms的大多数讨论都集中在组织自己安装的应用程序上,要么在本地安装,要么在云中安装。但是,为SaaS应用程序提供soms也是一种最佳实践。

这似乎有悖常理。在SaaS架构下,客户不需要在自己的基础设施上安装应用程序。他们通常也不负责管理与软件相关的许可证或补丁。因此,似乎没有理由为SaaS平台创建sobm。

尽管如此,为SaaS应用程序提供sobm可以提醒客户SaaS平台可能因漏洞而受到损害的情况。即使客户不需要自己修复漏洞,了解它也可以帮助他们实现自己的安全目标。

jfrog如何提供帮助
Xray的SBOM最新功能支持SPDX和CycloneDX标准格式。Xray安全工具使用机器可读的软件组件和依赖项清单创建soms,允许您以这两种标准格式导出soms。


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