软件物料清单(SBOM)发展洞察报告 (2023年) 云计算开源产业联盟 OpenSourceCloudAllianceforindustry,OSCAR 2023年8月 版权声明 本报告版权属于云计算开源产业联盟,并受法律保护。转载、摘编或利用其它方式使用本报告文字或者观点的,应注明“来源:云计算开源产业联盟”。违反上述声明者,本联盟将追究其相关法律责任。 编制人员:王媛媛、吴江伟、郭雪、刘帅、张锐刚、郑志强、郑杭杰,钟志军,成涛、曾林青、高晟,傅逍螣,陶天一,孙肖仪,杨威、董国伟、张淼、严雪伦、子芽、王雪松、陈曙光、王玮琪,刘军、杨剑、徐锋,朱雅汶,刘永瑞、张达、但吉兵,王媛媛,魏弋钧、滕召智,梁尧、高尉峰,白婧婧,李博、胡晓娜,闫小涛,冯飞,王佳敏、陈曦、周杰明、沈凯文,王书辉,夏营、胡向亮、王盛昱 报告在编写过程中,历经概念策划、提纲设计、内容起草、征求意见等阶段,得到了诸多单位的大力支持,包括:中国信息通信研究院云计算与大数据研究所、华为云计算技术有限公司、建信金融科技有限责任公司、阿里云计算有限公司、蚂蚁科技集团股份有限公司、奇安信网神信息技术(北京)股份有限公司、华为技术有限公司、悬镜安全、深圳开源互联网安全技术有限公 司、联通软件研究院、北京神州绿盟科技有限公司、北京天融信网络安全技术有限公司、杭州孝道科技有限公司、中电金信软件有限公司、苏州棱镜七彩信息科技有限公司、OpenSDV汽车软件开源联盟、中移系统集成有限公司、三六零数字安全科技集团有限公司、北京奇虎科技有限公司、深圳奥思网络科技有限公司(开源中国)、北京云起无垠科技有限公司、杭州安恒信息技术股份有限公司,在此一并致谢。 引言 软件物料清单(SBOM)指软件成分列表,列出了软件组件、有关这些组件的信息以及它们之间的依赖关系。近年来软件供应链安全事件频发,提高软件供应链透明度,规避软件供应链安全问题成为业界关注热点与共同诉求。软件物料清单通过明确识别和详细记录软件组件及其相互关系以提升软件透明度,成为软件供应链安全治理的重要抓手。目前,越来越多的企业意识到维护软件供应链安全的重要性,并在软件物料清单技术、工具和实践等多方面进行探索。在此背景下,搭建软件物料清单理论体系,构建可信软件物料清单理念,为企业落地软件物料清单体系提供行之有效的建设路径刻不容缓。 本报告首先明确软件物料清单基本概念,系统梳理国内外软件物料清单发展现状。其次,围绕供需双方视角剖析企业落地建设软件物料清单体系面临的挑战并提出对策建议。此外,针对现阶段企业面临缺乏统一规范的标准指导其落地建设软件物料清单的难题,本报告从构建者视角出发,搭建可信软件物料清单建设模型,涵盖管理层、数据层、生成层、交付层四大维度,为企业落地建设软件物料清单体系提供参考,并分析落地成效。最后,结合当前现状初步研判软件物料清单未来的发展趋势和方向。 一、软件物料清单明确软件组成及依赖关系,助力降低软件供应链安全风险1 (一)软件物料清单明确软件组成及依赖关系1 (二)软件物料清单旨在加强软件供应链安全管理2 二、各国积极探索软件物料清单理论应用研究3 (一)全球重点国家和企业组织积极推进软件物料清单理论研究3 (二)国际标准及相关组织逐步建立软件物料清单标准格式共识7 (三)美国及欧盟陆续推动软件物料清单应用实践11 (四)我国初步探索软件物料清单相关研究13 三、落地软件物料清单建设面临的挑战和对策建议14 (一)企业落地建设软件物料清单体系面临多重挑战14 (二)促进企业落地建设软件物料清单体系的对策建议17 四、搭建可信软件物料清单建设模型,助力企业安全管控21 (一)可信软件物料清单建设模型23 (二)软件物料清单多角度助力企业安全管控27 五、软件物料清单发展趋势展望30 附录软件物料清单企业落地实践32 (一)建信金科:基于IED插件的软件物料清单(SBOM)管理实践32 (二)联通软研院:软件物料清单(SBOM)建设实践35 图1软件物料清单树状概念图20 图2软件物料清单实践使用率22 图3可信软件物料清单建设模型23 图4软件物料清单最小数据要素124 图5软件物料清单最小数据要素225 表目录 表1软件物料清单数据字段及说明2 表2软件物料清单最小元素6 表3CycloneDX数据类型10 表4软件物料清单表状概念图19 一、软件物料清单明确软件组成及依赖关系,助力降低软件供应链安全风险 (一)软件物料清单明确软件组成及依赖关系 软件物料清单(SBOM,SoftwareBillofMaterials)概念最早是由美国国会众议院在2014年引入的一份名为《网络供应链管理与透明度法案》的提案中正式提出。2018年,美国商务部国家电信和信息管理局(NTIA)针对提高软件组件透明度发起了一个网络安全计划,目标是培育一个软件组件透明度更高的市场,建立并推广软件物料清单体系,“软件物料清单”这一概念正式问世。软件供应链攻击事件爆发,软件物料清单成为关注重点。SolarWinds攻击事件和Log4j2漏洞曝光后,软件供应链渗透和安全问题成为美国政府和产业界关注的重中之重,软件物料清单作为有助于大幅提升软件供应链透明度的一个解决方案被寄予厚望。 软件物料清单指软件成分列表,识别并列出了软件组件、相关组件的信息以及它们之间的供应链关系。软件物料清单的概念由传统物料的概念衍生而来,指一个软件产品的物料清单,列出了软件组件、组件信息以及它们之间的供应链关系,能够为软件生产人员、购买者和运营者提供软件开发过程中所采用的所有“原材料”相关信息及其供应链上下游依赖关系。软件物料清单包含每个组件的基准信息。软件物料清单字段信息至少应包括供应商名称、组件名称、组件版本、其他唯一标识符、依赖关系、SBOM数据作者和时间戳,详见表1。由于软件供应链的透明度随时间、技术进步等因素发生变化,上述最 数据字段 DataFields 描述 供应商名称 SupplierName 创建、定义和识别组件的实体名称 组件名称 ComponentName 原供应商定义的软件名称 组件版本 VersionoftheComponent 供应商用于指定软件版本变化的标识符 其它唯一标识符 OtherUniqueIdentifiers 其它用于识别组件标识符,或作为相关数据库的查询键 依赖关系 DependencyRelationship 表征一个上游组件X包含在软件Y中的关系 SBOM数据作者 AuthorofSBOMData 为该组件创建SBOM数据的实体名称 时间戳 Timestamp 记录SBOM数据的日期和时间 小字段只是软件物料清单文件的基本构成,组织机构可根据业务需求增加更多的字段来描述软件物料清单。由于软件的命名复杂且缺少统一的命名规范,为了更加方便地识别组件,可以将组件名称命名为具备可读性的字符串,或使用符合相关标准的组件识别名称。 数据来源:NTIA,TheMinimumElementsForaSoftwareBillofMaterials(SBOM), 表1软件物料清单数据字段及说明 2021年7月 (二)软件物料清单旨在加强软件供应链安全管理 软件供应链是由多个上游与下游组织相互连接形成的网链结构。新技术飞速发展导致软件供应链复杂性增加。容器、中间件、微服务等技术的演进推动软件行业快速发展,同时带来软件设计开发复杂度不断提升,软件供应链愈发复杂,全链路安全防护难度不断加大等问题。在具体场景中,当软件设计复杂度增加时,其供应链的复杂性也 会随之提升,具体构成关系、供应链上下游的依赖关系也随之模糊,从而进一步降低软件供应链整体透明度。软件供应链安全成为关注焦点,降低软件供应链安全风险成为业界共识。随着用户安全意识及内外部安全需求的不断提升,对软件及其供应链精准管控,保障软件供应链安全成为业界关注焦点和企业共同诉求。 软件物料清单旨在提升软件供应链透明度。软件物料清单自诞生之初便有明确目标,即提高软件组件及供应链透明度。软件物料清单提供了一组附加信息,把软件的组成成分和依赖关系等信息可视化,并统一记录管理,大大提升了软件供应链整体透明度,对于降低软件使用和维护成本,保障软件供应链安全具有重要意义。 二、各国积极探索软件物料清单理论应用研究 (一)全球重点国家和企业组织积极推进软件物料清单理论研究 1.美国率先探索软件物料清单理论研究 NTIA首次推广软件物料清单体系用于提升软件供应透明度。2018年6月,NTIA启动了一项旨在提升软件供应链透明度的项目,其核心是建立并推广软件物料清单体系,通过在软件产品中嵌入一个技术文档,来体现该产品在开发过程中所采用的所有物料、来源及供应商关系。美国成立专项工作组分模块研究软件物料清单并发布研究成果报告。2018年7月,NTIA组织召开了第一次利益相关方大会,会议决定成立4个专项工作组,分别负责框架研究、用例与实践现状、标准与格式以及医疗领域概念验证。2019年11月,4个专项工作组 分别发布了研究成果报告,分别为《软件成分透明度框架:建立通用的SBOM》、《SBOM在整个供应链中的角色和益处》、《现有SBOM格式和标准调研》、《医疗健康领域概念验证》。此后,考虑到用例与实践现状专项工作组任务已完成,以及研究成果报告明确了下一步的工作难点,NTIA将4个专项工作组的工作方向进行了调整。2021年2月到3月,各专项工作组陆续发布了4项中期成果文件,分别为 《SBOM选项和决策点》、《软件身份:挑战和指引》、《SBOM工具分类方法》、《SBOM分享和交换》。美国软件物料清单专项工作组较早展开软件物料清单相关研究,分两个阶段输出大量成果文件,为后续其他国家及组织研究软件物料清单奠定了坚实的理论基础。从项目推动进程来看,软件物料清单项目进入攻坚阶段。2019年发布的研究成果报告内容详实,目标远大并明确指出了下一步推进的难点所在,而2021年发布的中期成果文件字数寥寥且避重就轻,并未为第一阶段指出的难点提出可行的技术解决方案。究其原因,一是该项目本身涉及的技术因素复杂,二是在推动相关企业改变其既有实践方面遇阻。 SolarWinds安全事件爆发成为软件物料清单关注转折。软件物料清单项目自2018年启动后,政府及行业机构对软件物料清单的重视程度并不高。2020年3月国会网络空间日光浴委员会(CSC)曾提议增加对软件物料清单项目的资源投入,但并未被采纳进入2021年度国防预算授权法案。2021年,随着美国SolarWinds网络攻击事件曝光后,部分业内人士将目光重新投向软件物料清单,认为它将有效提 升软件供应链透明度,从而减少软件供应链漏洞和风险。美国发布系列政策及制度文件大力推动软件物料清单发展。2021年5月12日,美国总统拜登签署发布《改善国家网络安全行政令》,明确提出改善软件供应链安全,要求为出售给政府的软件开发建立基线安全标准,不仅提供应用程序,而且还必须提供软件物料清单,提升组成该应用程序组件的透明度,构建更有弹性且安全的软件供应链环境,确保美国国家安全。同年7月,NTIA发布了《软件物料清单的最小元素》,定义如何考虑最小元素的范围,描述了软件物料清单用例以提高软件供应链的透明度,并为未来的发展提供了方向,具体见表2。2022年2月,美国国家标准与技术研究院(NIST)发布《安全软件开发框架》,主要涉及标识和管理第三方组件、软件物料清单生成、维护和共享相关内容,并建议要求供应商提供软件物料清单以及在购买和部署软件时使用软件物料清单等。美国拜登政府签署的行政令大力推进了软件物料清单发展,多方发布的成果报告使软件物料清单理论研究框架逐步完善。 最小元素 描述 数据字段 应当予以追踪的每个组件的文档基准信息:供应商、组件名称、组件版本、其它唯一标识符、依赖关系、软件物料清单数据作者以及时间戳 自动化支持 支持自动化,包括通过自动生成和机器可读性扩展至软件生态系统。生成并使用软件物料清单的数据格式包括 SPDX、CycloneDX和SWID标