2018年6月,美国商务部下属的国家电信和信息管理局(NTIA)低调启动了一项旨在提升软件供应链透明度的项目,其核心是建立并推广“软件物料清单(Software Bill of Materials,SBoM)”体系,通过在软件产品中嵌入一个技术文档,来体现该产品在开发过程中所采用的所有物料、来源及供应商关系。美国“太阳风”网络攻击事件曝光后,部分业内人士将目光重新投向SBoM,认为它将有效提升软件供应链透明度,从而减少软件供应链漏洞和风险。

SBoM的概念

“物料清单(Bill of Materials, BoM)”这一概念其实并不陌生,它是描述企业产品组成的技术文件,用以说明组成一件产品的零部件、原材料以及相应的数量关系。

“软件物料清单(SBoM)”指一个软件产品的物料清单,即该软件在开发过程中所采用的所有“原材料”相关信息及其供应链上下游依赖关系的集合。

基线SBoM指一个SBoM所应涵盖的最小信息集,它既包含构成该软件的所有组件的基本信息,如供应商名称、组件名称、唯一标识符、版本号、组件哈希值以及SBoM作者姓名等,也包括这些组件之间的关系。

项目推进情况

第一阶段

2018年7月19日,NTIA组织召开了第一次利益相关方大会,会议决定成立4个专项工作组,分别负责框架研究、用例与实践现状、标准与格式以及医疗领域概念验证。2019年11月,4个专项工作组分别发布了研究成果报告,具体情况如下。

(1)《软件成分透明度框架:建立通用的SBoM》

该报告提供了SBoM概念和相关术语的定义,提出了基线SBoM应包含的内容,并讨论了SBoM创建的过程,可以说是对SBoM的一个较为详细的介绍。

根据该报告,NTIA项目的范围“应考虑所有使用或生产软件的行业,包括汽车、金融、医疗保健、运营技术(OT)和传统 IT。尽管该项目的重点是软件而非硬件,但软件本身是不会运行的。一个软件系统不仅需要传统的计算硬件(如CPU、内存、磁盘、网络等),也可能包括使设备实际运作的功能硬件,如执行器和传感器”。

(2)《SBoM在整个供应链中的角色和益处》

该报告从软件生产者、软件选择/采购者和软件运行者3个视角总结了SBoM的益处,并将这些益处归结为安全性、质量、效率及对组织机构的其他好处。

(3)《现有SBoM格式和标准调研》

该报告总结了可用于为构建SBoM而识别软件产品开发过程中的外部组件和共享库的现有标准、格式和项目,并重点介绍了SPDX、CycloneDX和SWID3种主要格式。经过对现有格式进行对比分析并研究其他专项工作组已形成的成果,标准与格式专项工作组在该报告中指出了下一步工作的难点。

软件标识符。为了在多个工具、系统或数据库之间能够自动且准确地关联其关于某一组件的信息,需要唯一地标识软件组件身份的“基础密钥”。这一身份密钥应不随时间变化而变化,且不需要由一个主管部门集中发放。同时,当没有其他信息可用时,需要能够根据软件组件本身来确定此身份密钥。目前存在的一些广泛使用的方法,如CPE,不能满足以上所有要求。而已经在研发过程中的更完整的标识符,如Package URL或软件遗留ID,尚未被广泛使用。中期解决方案可考虑一个联邦模型,由不同社群定义自己的规则,通过联合数据库在具体使用中实现协调一致。

工具。大范围应用SBoM需要自动化,而自动化需要工具。因此,有必要对现有的工具及其能力开展广泛调研,来示范并推动SBoM数据的产生、分发和使用。这就需要维护一个SBoM工具目录,同时需要研究对软件开发栈、封装工具和软件库固有的软件包信息进行梳理,并将它们标准化。

SBoM数据的分发。若要帮助客户在选择供应商、采购产品前能够比较SBoM数据,则需要提供免费、公开可获取的SBoM数据。可以通过标准化将消费者获取SBoM信息的方式进行统一规范,例如通过发送邮件至sbom-request@example.com或登录http://example.org/sbom等统一联络点实现。

软件组件修改。一些供应商可能会对某个软件组件进行特定修改,可能是为了定制化、向后移植、进一步编辑、管理或改良代码。从技术上讲,这是代码库中的分支,但SBoM数据的使用者可能仍希望了解整个代码库。这种变更和修补的归档也应通过标准的方式进行规范。

更高信任度和使用度的SBoM。高安全保障的系统不能建立在假定信任之上。信任来源于能够确认SBoM所提供的软件组件相关信息是真实的。这样的确认需要追溯到软件组件产销监管链或历史的源头。如何对这些信息进行标准化,仍需要进一步研究和理解。

(4)《医疗健康领域概念验证》

该报告记录了由医疗设备制造商和医疗服务提供组织牵头实施的概念验证过程和成功经验。其主要做法是由医疗设备制造商生成SBoM,交由医疗服务提供组织用作其医院医疗设备的操作和风险管理方法的一部分,从而验证SBoM的可行性。

此次概念验证得出3点结论。首先,医疗设备制造商使用各行业通用的标准格式成功生成了SBoM,这些SBoM被医疗服务提供组织成功接收并使用。其次,医疗服务提供组织能够利用从医疗设备制造商处获得的SBoM去发现软件漏洞,包括需要处理的处于寿命末期的组件。第三,此次概念验证还发现了SBoM格式可以改进的方面,以及医疗设备制造商未来生成SBoM可能面临的挑战。

第二阶段

2019年11月第一阶段成果发布后,考虑到用例与实践现状专项工作组任务已完成,以及第一阶段成果明确了下一步的工作难点,NTIA将4个专项工作组的工作方向进行了调整。

(1)框架专项工作组:负责进一步明确并细化SBoM相关规范,重点关注阻碍SBoM更大范围应用的障碍,如组件身份和命名、如何分享SBoM、针对云/SaaS的SBoM等。

(2)意识提升与应用推广专项工作组:负责推广SBoM理念和实践,包括针对特定对象开展外联活动,针对行业、机构角色等制定推广用的短文档,协调与SBoM相关的工作,为SBoM应用进行商业论证。

(3)格式与工具专项工作组:负责研究如何将SBoM的生成和使用自动化。初期目标是将现有不同格式的SBoM工具进行归档,并开发不同格式之间的翻译器。远期工作包括SBoM工具的差距分析,并探索SBoM流程和指南的编写工作。

(4)医疗领域概念验证专项工作组:负责计划并实行第二次概念验证,扩大医疗领域的参与者范围,并让IT和安全行业的合作伙伴参与进来。

2021年2月到3月,各专项工作组陆续发布了4项中期成果文件。

(1)《SBoM选项和决策点》提出了SBoM生成和分发的维度框架,明确了基线组件信息、格式和可机读性、深度、生成频率、分发与互操作性、脆弱性声明6个需要进一步作出决策的方面。

(2)《软件身份:挑战和指引》梳理了软件组件身份确认方面的挑战,并对下一步工作提出了指导原则:①优先考虑利用现有权威的组件身份工具;②如果权威身份工具不可用,尽可能选择现有的、与自身软件开发生态系统相匹配的、广泛使用的开放工具。

(3)《SBoM工具分类方法》对不同的SBoM工具进行了分类,帮助工具开发者和厂商对其产品进行分类,同时帮助需要SBoM的人了解可选范围。

(4)《SBoM分享和交换》描述了SBoM数据如何在供应链中流动,并提供了一小部分发现和获取SBoM的选项,以增加实际操作过程中的灵活性,减少负担。

最新进展

根据NTIA官方网站公布的近期会议安排来看,SBoM项目拟尝试在能源和汽车行业开展概念验证。此外,项目参与专家透露,下一步SBoM项目将首先形成标准,通过标准推广实践。

分析

从项目推进力度来看,近来美国内部推进SBoM项目的动力有所增强。SBoM项目自2018年启动,2020年3月国会网络空间日光浴委员会曾提议增加对SBoM项目的资源投入,但并未被采纳进入《2021年度国防预算授权法案》,可见当时对SBoM的重视程度并不高。2021年以来,随着“太阳风”攻击事件曝光,软件供应链渗透和安全问题成为美国政府和产业界关注的重中之重,SBoM作为有助于大幅提升软件供应链透明度的一个技术解决方案被寄予厚望。

从项目推动进程来看,SBoM项目已进入攻坚期。对比项目推进两个阶段的成果发现,第一阶段成果报告内容详实、目标远大并明确指出了下一步推进的难点所在,而第二阶段成果报告字数寥寥且避重就轻,并未为第一阶段指出的难点提出可行的技术解决方案。究其原因,一是该项目本身涉及的技术因素复杂,二是在推动相关企业改变其既有实践方面遇阻。该项目下一步是否能突破难关,很大程度上取决于美国政府的决心与资源投入。

从项目作用和影响来看,SBoM应用一旦全面推开,将成为软件供应链精准监管的有力抓手。软件供应链复杂、开源软件使用增加、软件升级补丁的保障措施不够完善等,都是造成软件供应链安全风险上升、监管难度较大的主要原因。SBoM的推广应用,将有效提升软件供应链透明度,极大地便利软件组件溯源、软件产品依赖关系梳理、已知漏洞的影响范围判断、及时发现恶意软件渗透等,从而有力支撑软件供应链相关监管政策规则的落地实施。(上官晓丽,刘畅)

声明:本文来自保密科学技术,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。