前沿 | 建设软件物料清单体系的国际经验和自主路径
2024-8-23 18:10:39 Author: mp.weixin.qq.com(查看原文) 阅读量:7 收藏

 扫码订阅《中国信息安全》

邮发代号 2-786

征订热线:010-82341063

文 | 国家工业信息安全发展研究中心 潘妍 程薇宸 李郁佳
当前,软件供应链正呈现出全球化发展和复杂性上升的趋势,其依赖和制约关系不仅关乎企业的生存发展,还成为大国间竞争和博弈的重要手段。因此,开源软件和第三方软件的安全性与可追溯性愈发重要。软件物料清单(Software Bill of Materials,SBOM)作为记录软件各种组件来源和依赖关系等信息的手段,是提升软件成分透明度和管理软件供应链的重要工具。当前,美国正在加速建立 SBOM 体系,以抢占软件供应链规则制定的主导权,而我国的部分重点行业和企业已经具备了实践基础。因此,加快探索 SBOM 体系建设的自主路径,对于引导国内企业打造高质量的软件产品,在开源开放环境下保障软件供应链的韧性和安全具有重要意义。

一、软件物料清单的基本概念

SBOM 概念最早由美国在 2014 年的一份国会提案中提出。2021 年 4 月,美国国家电信和信息管理局(NITA)发布了《SBOM 概述》,指出 SBOM 是一份正式且机器可读的软件组件和依赖关系(依赖树)的清单,它详细记录了这些组件的信息及其层次关系。SBOM 有助于提升软件供应链的透明度和可追溯性,并在软件供应链治理过程中发挥着“纲举目张”的基础性作用。

(一)软件物料清单由实体物品的物料清单概念扩展发展而来
物料清单(Bill of Material,BOM)是描述企业产品组成的技术文件。对于实体产品,物料清单能够表明产品的总装件、分装件、组件、部件、零件和原材料之间的结构关系和所需数量。SBOM的概念由传统物料的概念衍生而来,它是描述构成软件程序或应用程序成分组成的技术文件,涵盖了多个软件构建组件的详细信息及供应链关系。SBOM 相当于一个软件产品的物料清单,它列出了软件组件、相关组件的信息及其依赖关系,能够为软件开发人员、购买者和运营者提供关于软件开发过程中所采用的所有“原材料”的相关信息及其供应链上下游的依赖关系。
(二)软件物料清单的本质是一种数据文件,它能够支持生成、交换以及使用 SBOM 数据
SBOM 文件至少包含以下关键内容:供应商名称、组件名称、组件版本、依赖关系、SBOM作者名称、唯一标识符和时间戳等。同时,SBOM必须具备机器可读性和人类可读性。通过与漏洞管理系统的联动,SBOM 增强了网络安全事件分析和响应的能力。当软件产品受到安全攻击时,利用 SBOM 的使用者可以迅速定位受影响的组件,并立即采取补救措施,从而提高安全事件的响应速度。
(三)标准化的数据格式是软件物料清单生成和应用的前提,SPDX、CycloneDX、SWID 已成为国际主流的标准格式
为了实现 SBOM 的自动化生成、广泛采用和跨组织共享,NITA 在 2021 年 7 月发布了《软件物料清单(SBOM)最小元素》,其中指定了三种 SBOM 交付共享的标准格式,也是目前全球主流的标准格式(详见下表),分别为软件包数据交换(SPDX)、CycloneDX、软件标识(SWID)。SPDX 格式源自 Linux 基金会的开源项目,于 2021 年 8 月正式成为国际公认的 ISO 标准,以 ISO/IEC5962:2021《信息技术 SPDX 规范 V2.2.1》形式发布。SPDX 是最大、最重量级的 SBOM 格式,特点在于支持详细展示许可证信息,适用于大型、复杂组织的软件供应链管理。目前,英特尔、微软、西门子、索尼、新思科技、威睿等众多国际领军企业均已采用 SPDX。CycloneDX 格式由开放式 Web 应用程序安全项目(Open Worldwide Application Security Project,OWASP)社区创建,是一种轻量级 SBOM 标准,侧重于网络安全风险管理和供应链组件分析,通常被中小型组织和大量使用开源组件的团队所青睐。SWID 格式由美国国家标准与技术研究所(NIST)创建,并于 2015 年成为国际标准 ISO/IEC 19770-2:2015。SWID 是一个标准化的 XML 格式,定义了四种标签来标识和描述软件开发生命周期中的不同状态和信息,可用于软件部署、配置管理、软件资产管理、安全漏洞评估等场景。

表 主要软件物料清单数据格式对比分析

二、美国前瞻部署软件物料清单体系建设的做法经验

在全球范围内,美国 SBOM 的研究布局较早,已由顶层规范、概念普及与技术验证步入规模化落地推广阶段。通过主导 SBOM 核心标准,美国在机制建设、技术生态和场景应用方面处于领先地位,成为全球 SBOM 体系建设的“风向标”,其发展历程如图所示。

图 美国软件物料清单体系建设脉络
(一)政府主导,构建统筹推进合力
美国率先将 SBOM 纳入顶层设计,并在总统行政命令的强力推动下,构建了自上而下的政策体系和跨部门工作机制,形成了较为成熟的管理制度体系。美国总统拜登于 2021 年 5 月 12 日签署了《关于加强国家网络安全的 14028 号行政命令》,首次要求软件供应商在向联邦政府销售产品时必须提供 SBOM。这一政策的目的在于利用政府采购需求作为牵引,推动美国软件业执行更高标准的供应链管理政策。该行政命令颁布后,美国联邦政府部门迅速采取多项举措予以落实。这些举措包括美商务部发布《软件物料清单(SBOM)最小元素》,美国食品药品监督管理局(FDA)更新规定要求设备制造商提交 SBOM,以及国家标准与技术研究院(NIST)发布的《安全软件开发框架》。此外,政府网络安全机构也发布了一系列关于 SBOM 的软件供应链安全实践指南等,这些都加速了“打基线、筑防线”的进程,使美国 SBOM 体系进入了全面建章立制的新阶段。
(二)标准先行,掌握规则制定主导权
美国将 SBOM 技术标准视为事关全局的战略问题,抢先“卡位”基础共性标准,并通过政府力量扶持本国标准,形成“锁定”效应,迫使后来者遵从和跟随,从而引领全球技术市场。例如,美国商务部《软件物料清单(SBOM)最小元素》针对 SBOM 数据格式设置了排他性条款,指定了三种标准格式用于 SBOM 的生成、交付和流通,分别是 Linux 基金会主推的 SPDX、NIST 主推的 SWID 以及欧洲开源组织发起的 CycloneDX。通过主导 SBOM 国际标准化组织,并开展标准化战略活动,美国推动其形成的 SPDX、SWID 上升为国际标准,从而奠定了其全球规则制定者的地位。
(三)强化服务,建立完整产业发展生态
美国 SBOM 的顶层设计、标准规范以及行动方案的出台背后,融合了政府部门、开源组织、科技企业、行业机构等多方利益相关者的需求,基本形成了各方紧密协同、共同构建的局面。在 2022 年 5 月白宫召开的第二次开源安全峰会上,开源安全基金会(OpenSSF)发起了为期两年的“SBOM 无处不在”投资计划,得到了谷歌、微软等科技巨头的积极响应和赞助支持。目前,该计划已经涵盖了全球云计算、互联网、金融、通信等领域的 30 多家开源领导者,并完成了对 140 余款开源工具和商业工具的技术验证,打造了对齐标准的支撑工具集。由此可见,在美国政府的主导下,开源基金会充当了“串链者”的角色,将相关产业主体吸纳与整合在一起,共同推动 SBOM 标准、工具、实践的衔接配套,从而打造了一个产业生态闭环。
(四)行业应用,加快规模化落地推广
美国的大型科技企业凭借先进的软件开发能力和供应链主导地位,率先具备了利用 SBOM 管理自身复杂软件供应链的动机,并积累了丰富的实践经验,成为推动 SBOM 全产业链应用的引领者。如谷歌、微软向业界发布了软件制品供应链安全级别(SLSA)、安全供应链消费框架(S2C2F)等指导框架,为 SBOM 融入软件开发生命周期提供了系统性的解决方案和工具链。据 OpenSSF 调查显示,SLSA 框架带动了近 75% 的开发者在软件开发过程中采用 SBOM。此外,美国的医疗、汽车、能源等重点行业均出台了管理规范,将 SBOM 作为软硬件设备安全的重要保证,并探索建立了医疗器械等关键设备的 SBOM 强制性认证制度,以加速跨行业意识普及和推广应用。

三、我国软件物料清单建设情况概述及面临的挑战

随着我国软件产业的发展历程从无到有、从小到大,国内企业经历了从软件使用者到集成商,再到自主研发的转变,软件工程能力和实践迈上了新的台阶,管理和优化软件供应链成为数字时代企业转型发展的核心需求,这为 SBOM 在我国的落地应用奠定了基础。以华为、京东、阿里等为代表的 ICT 企业在全球化软件供应链过程中积极探索SBOM 的应用实践,发挥了先行者作用。然而,总体而言,我国 SBOM 的发展仍处于初始探索期,相关政策标准研究刚刚起步,产业链上下游在应用 SBOM 时仍仅局限于单点或局部,大量中小企业对 SBOM 的应用价值、基础技术和实施路径缺乏统一认识,推广应用面临许多问题和挑战。

(一)标准规范由国外主导,加剧“规则锁定”风险
自 2021 年起,美国全面启动了 SBOM 体系建设,并通过掌控 SBOM 国际标准规则,形成了“先行者优势”,从源头上主导和控制了全球软件供应链的发展方向。欧盟在今年 3 月 12 日正式批准了《网络弹性法案》,要求所有出口至欧洲的数字产品必须提供 SBOM 等信息,使 SBOM 成为软件领域国际贸易的“通行证”。目前,国内企业对 SBOM 这一新兴概念普遍认识不足,缺乏统一的标准、指南和评估体系来指导实际应用。许多企业出于海外业务需要,被动地使用 SPDX、CycloneDX、SWID 等国外数据格式交付和传输 SBOM,这不仅与我国软件供应链管理的实际应用需求脱节,还可能带来数据安全风险,无法满足国内监管机构对开源软件供应链安全审查和代码合规性的要求。此外,不同行业企业之间缺乏共识,导致 SBOM 数据不兼容和碎片化,SBOM 跨组织共享、数据可信、安全流动、汇聚分析和价值实现等方面存在许多障碍。
(二)技术供给能力不足,支撑工具面临“生态挤压”
自动化的支撑工具是确保 SBOM 可用和易用的重要保障。目前,我国在 SBOM 的生成、转换和验证方面已有一定的工具产品,但以 SBOM 为核心的支撑工具生态圈尚未形成,缺乏标准化、通用化、便利化的配套产品和服务体系,这限制了 SBOM 的全面应用。在“底座”方面,我国的开源代码托管平台、开发测试和部署交付等软件研发基础设施受制于人,支持 SBOM 生成的软件构建系统和包管理器几乎全部依赖于国外,自主 SBOM 标准和工具推广应用缺乏“土壤”。在工具方面,国内 SBOM 生成分析工具大多基于国外开源工具进行简单包装,功能性能和知识库与国外工具相比存在明显差距,工具链不够完善。在社区方面,国内主要开源社区各自建立了不同的 SBOM 标准、工具和方案,开源供应链 SBOM 数据贯通和全链路追溯存在极大困难,难以充分发挥 SBOM 在开源供应链风险防范中的作用。在服务方面,SBOM 工具集成、联调联试、数据存储托管、可信认证、体系监测和软件供应链应急保障等公共服务能力建设滞后,企业 DevOps 平台和软件系统与 SBOM 的适配性不足,配套产品和应用不够丰富,难以有效降低中小企业应用门槛。
(三)行业应用水平参差不齐,“数据孤岛”难题待解
红帽公司的安全专家 Vincent Danen 曾对 Linux 基金会发布的《2022 软件材料清单和网络安全报告》发表评论称,SBOM 只有在实际使用时才有意义,单纯要求生成并不解决问题,SBOM的未来方向是集中数据,让 SBOM 数据发挥作用才能推动其使用。由于 SBOM 源于管理复杂软件供应链的需要,企业 SBOM 建设和应用水平受到其自身软件能力的限制。虽然国内大型软件企业和金融等少数重点行业在 SBOM 机制建设和应用探索方面已初具基础,但个别龙头企业对产业链整体的示范带动作用仍不明显。大多数行业企业对 SBOM 的应用积极性不高,对 SBOM 的认识仍停留在使用工具和满足采购要求的层面。在打通和利用 SBOM 数据、提高软件供应链管理水平和全流程风险追溯能力方面仍存在较大不足,缺少对 SBOM 深层次应用的系统性指导和解决方案。

四、思考和建议

近年来,“太阳风”(SolarWinds)、Log4j等全球软件供应链安全事件频发,对我国关键信息基础设施和重要信息系统造成了严重威胁。尤其是随着开源成为软件技术与产业创新的主导模式,软件供应链的风险挑战进一步加剧。结合国际国内的安全新形势,为了抢抓开源体系发展新机遇,需要借鉴国外 SBOM 建设的成熟经验,采用自上而下与自下而上相结合的政策,以标准规范为引领,以平台建设为依托,以开源社区为载体,以工具和服务能力建设为核心任务,合作共赢构建 SBOM 产业生态,提升服务支撑能力,促进 SBOM 规模化应用,增强软件供应链韧性和安全水平。

(一)以规范发展为纲领,加快标准研制和推广
加快推动我国 SBOM 的规范制定工作,逐步构建一个法规、政策和标准互相衔接且互为补充的 SBOM 规则体系。开展 SBOM 的基础共性标准和急需标准的制修订工作,包括最小元素、数据格式、共享交换、代码签名、检测评估以及软件能力成熟度模型等方面。在兼容 SPDX、CycloneDX 等国际主流格式的基础上,实现自主演进,逐步推动适合我国国情的标准向国际标准转化。加强政策机制建设,推动财政资金采购的软件项目、关键信息基础设施领域的网络产品和服务采购项目原则上应包含 SBOM,促进更多行业企业采纳。建立 SBOM 测试验证体系,探索建立自愿性产品认证、第三方评估认证等机制,通过政府采购、信息化创新工程等方式牵引企业通过认证。
(二)以开源社区为示范,强化产业生态支撑
借鉴 OpenSSF 的相关做法,充分发挥国家级开源基金会在组织协调和资源汇集方面的作用,健全协同推进工作机制,深入开展 SBOM 标准的贯彻应用、合作研发、成果共享以及宣传培训等工作。依托旗下的开源项目和代码托管平台,加快 SBOM 工具平台的集成应用和示范推广。同时,支持欧拉(openEuler)、鸿蒙(OpenHarmony)、龙蜥(OpenAnolis)、开放麒麟(openKylin)等开源社区开展 SBOM 应用试点示范,指导社区实现标准互认、数据互通、能力复用以及工具开源,推动开源社区将 SBOM 融入社区开发基础设施,打造标准化、通用化的开源工具链和解决方案,遴选一批成效显著的开源社区标杆案例。
(三)以赋能行业为驱动,抓好公共服务平台建设
针对金融、电信、能源、汽车、医疗器械等重点行业领域,开展 SBOM 典型应用案例的培育和推广工作。着重于市场需求和实际应用场景,采用分类别、分阶段、分批次的方式,引导企业试点开展“SBOM+”流程的适应性改造和应用验证,促进企业将 SBOM 与软件资产管理、漏洞风险追溯、安全代码签名、人工智能大模型等技术实践融合应用,共同构建行业专属解决方案。发挥第三方专业机构作用,建立覆盖国家、行业、地方的开源社区 SBOM 平台体系。推进关键工具研发、基础资源建设、标准试验验证、供应链监测分析等基础能力建设,为中小企业提供生成、托管、咨询、诊断等技术服务。推动 SBOM 生成解析、完整性保护、二进制及容器镜像成分分析、开源防投毒等关键技术攻关和产业化推广,打造一批成熟可用、安全可靠的支撑工具,加快面向金融、电信、能源等重点行业的应用部署和示范推广。

(本文刊登于《中国信息安全》杂志2024年第6期)

分享网络安全知识 强化网络安全意识

欢迎关注《中国信息安全》杂志官方抖音号

《中国信息安全》杂志倾力推荐

“企业成长计划”

点击下图 了解详情


文章来源: https://mp.weixin.qq.com/s?__biz=MzA5MzE5MDAzOA==&mid=2664223210&idx=2&sn=abda4d23eedc215f518364c8278f9b1e&chksm=8b59d313bc2e5a05131522ca6052a5705d8cd2492db304a3cb84a83c52890f91dc8f4b0ead93&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh