Q1:《SBOM应用指南》是否具有法律效力,它的目的是什么?
该文件不具有法律效力也不具有强制性。因此,本文件不构成也无意构成合规或法律建议。该文件由NSA, ODNI, CISA等相关机构发布,提供对于SBOM生成、交付、使用以及实施等多个环节的相关指导性建议从而实现和保障软件供应链中各利益相关方的网络安全。这是上述相关机构的责任与义务。
原文出处:见P3 — Disclaimer部分、Purpose部分
Q2:什么是SBOM,它有些什么格式?
SBOM 是一个嵌套清单,是构成软件的所有组件(开源组件)列表。当下,SBOM主要有两种广泛使用的机器可读格式:SPDX格式和CycloneDX格式。同时还有一种使用率较低的SWID格式。
原文出处:见P7—第1.2.2、1.2.3小节
Q3:如何较好的使用SBOM?
SBOM需要与其他数据和相关的风险信息联系起来使用,只关注SBOM本身的内容并不是SBOM的最佳使用方法。企业往往需要很多SBOM,这些SBOM并不是通过一些技术工具或者服务马上就能生效的,比较建议的做法是通过SBOM对软件资产进行风险评分,这可能听起来有点抽象,即风险评分系统能够快速与外部数据源进行比较,然后判断优先级后在基于SBOM的内容采取对应的风险缓解措施。关于风险评分后续还将在第四大章进行讨论。
原文出处:见P7— 第1.2.4小节
Q4:在了解并知道了SBOM后,有什么需要额外注意的点吗?
在决定使用SBOM后,与之相关的一个概念叫做VEX(Vulnerability Exploitability eXchange),这是一种说法,即漏洞可利用性,SBOM文件中会提供相关漏洞信息,但这仅仅只是表明某组件中包含某漏洞,但是该漏洞是否容易被利用,是需要VEX文档进行说明的,即存在一种情况,某组件包含某漏洞,但是该漏洞并不会被调用,表明产品不受特定漏洞的影响。
原文出处:见P8—第1.2.5小节
Q5:什么样的角色需要来“消费”SBOM,为什么对于他们来说SBOM如此重要?
普遍情况而言,软件供应商是“消费”SBOM的主要群体,供应商提供高质量的SBOM对于用户来说有着巨大的价值,因为拥有SBOM代表着在面对软件供应链中的风险时供应商是有风险缓解能力的。SBOM的重要性主要体现在以下几点:
【1】开源软件的盛行,根据 Linux 基金会的统计,目前有 72% 的公司在内部使用开放源码软件,或将其作为商业产品的一部分。
【2】SBOM帮助企业确保其使用的(开源)软件所带来的风险是其能承受的。
【3】SBOM与其他来源的信息相结合,一旦在软件包或软件的列名组件中发现漏洞,就可以通过通知组织并允许更快地采用缓解控制和措施来降低风险有,从而帮助减少暴露窗口。
与此同时,SBOM 中获得的许可信息可以帮助企业确保在使用开源软件和第三方软件时遵守合规要求。同时也让企业能深入了解应用程序中组件的最新情况,以及当组件未及时更新时相应的技术债务风险。
原文出处:见P9—第2节
Q6:SBOM在业内被推广及大规模使用的必要因素有哪些?
具体可参考下图:
【1】提高SBOM的可实施性
企业应最大限度地实现 SBOM 的自动化处理分析和关联。这就需要在软件供应链中实现自动数据交换和互操作性,进而需要标准化的数据格式、实体解析以及SBOM 的自动解析和摄取。这是推广SBOM使用的基础。
【2】SBOM内的基本信息的确定及统一
SBOM 的主要目的是识别组件及其相互关系。为此,我们需要确定组件基准信息。第 4 节中确定的 SBOM 属性(如产品版本号、依赖关系标识符和 SBOM 作者)可以识别特定组件的基准属性。随着 SBOM 生态的成熟,对于基本信息的统一可能会很快到来。
【3】自动化共享和交换能力
整个供应链中的SBOM信息数量庞大,这需要建立对应的机制、技术能力、和相关的系统。当前阶段并没有一个适用所有企业的SBOM实践方案,但可以肯定的是SBOM的自动化共享交换能力应包括发现机制、任何可能的访问控制模型以及对应的传输机制,比如集成到现有的工具中直接发放,抑或是随着发布的二进制软件包一同发放,总而言之,至少我们应该知道某产品的SBOM的存在、位置、如何获取以及是否已更新。
原文出处:P8—第2.1小节
Q7:SBOM的生命周期是怎样的?
简单来说SBOM的生命周期包括:
【1】SBOM的交付
【2】SBOM的验证验收
【3】SBOM的入库
【4】SBOM的提取转换集成
【5】SBOM的应用和管理
其大致流程可参考下图:
原文出处:P11——第3节
Q8:SBOM的交付方式有哪些?
SBOM的交付方式并非是唯一固定的,恰恰相反会比较灵活多样,客户可以通过各种机制以各种方式接收 SBOM,包括但不限于:
作为商业产品合同采购的一部分
作为下载商业封闭源代码软件的一部分或同时下载
作为包括软件开发和交付能力在内的专业服务合同采购的一部分
作为获取开源软件应用程序或组件的一部分
在设备连接到网络的发现过程中
通过供应商/开发商直接交付给客户
通过客户门户网站或其他预先安排的机制
通过软件元数据的服务或存储库获取
需要注意的是,有些SBOM的使用是在购买相关软件之前或没有购买软件的情况下发生的,例如进行前置软件风险分析或提供数据验证以及扩展时。
原文出处:P12—第3.1节
Q9:SBOM的验收主要是验收哪些方面?
SBOM的验收主要是针对SBOM完整性以及真实性开展的,在这一环节中比较推荐的做法是生成哈希值的方式来进行。同时为了确保SBOM的完整有效和真实,推荐使用SCA(软件成分分析)工具来对SBOM的内容进行验证以确保该SBOM真实有效。不仅如此,好的SCA工具还可以将SBOM内容和VEX联系起来以方便企业做漏洞管理,以及可以了解软件内的依赖关系结构等等,在通过SCA工具对SBOM内容有了全面的了解并确认无误后便可以纳入到企业的SBOM使用流程中。
原文出处:P12—第3.1.1小节
Q10:SBOM输入到企业后企业应该如何进行管理?
SBOM 作为一个文件的作用往往小于作为一个可以解析、提取并加载到自动化流程或记录系统中的数据集合的作用。所以企业可以建立一个数据管理层来管理SBOM,将其映射到资产,并允许其他工具链接到 SBOM 数据并与之关联,企业后续对SBOM的提取、转换、加载等等都依赖于这样的映射,因为这样能将特定组件与一个或多个应用程序、系统或端点对应起来,这可以保持整个企业的软件库存和配置的准确性。与此同时,SBOM的储存方面也需要注意,因为出于监管原因或客户目前缺乏进一步处理 SBOM 的能力,客户可能希望在解析后存储原始SBOM。无论哪种情况,SBOM 的存储过程都采用内容管理方法:SBOM 接收时间、文件位置、文件内容、数据保留以及文件存储的生命周期政策。
原文出处:P14—第3.1.2、3.1.2.1小节
Q11:SBOM内容主要可以为什么企业流程(部门)带来巨大的价值?
SBOM数据导入资产管理库、工具或系统并且通过SCA工具验证并处理完毕以后,SBOM内容可以为企业内多个部门带来有效信息和价值:
配置管理数据库(CMDB)
软件资产管理 (SAM) 系统
安全运营中心 (SOC)
采购工作流程
软件供应链风险评估和管理功能
原文出处:P15—第3.1.3节
以上即为《SBOM应用指南》中23个Q&A的上半部分,共11个问题及对应的解答,下半部分将在明天发出,欢迎大家关注我们及时获取!英文原文下载链接如下:https://media.defense.gov/2023/Nov/09/2003338086/-1/-1/0/SECURING%2520THE%2520SOFTWARE%2520SUPPLY%2520CHAIN%2520RECOMMENDED%2520PRACTICES%2520FOR%2520SOFTWARE%2520BILL%2520OF%2520MATERIALS%2520CONSUMPTION.PDF附录: