现代软件都是组装的而非纯自研。随着开源组件在数字化应用中的使用比例越来越高,混源开发已成为当前业内主流开发方式。开源组件的引入虽然加快了软件开发效率,但同时将开源安全问题引入了整个软件供应链。软件组成成分的透明性成为软件供应链安全保障的基础,SBOM(Software Bill of Materials,软件物料清单)作为软件供应链安全治理的重要抓手,其在行业的应用实践速度明显加快。
2. 软件供应链安全治理
SBOM(Software Bill of Materials) 是软件成分的结构化清单,详细记录应用程序中包含的所有组件、库及其依赖关系,包括组件名称、版本、许可证、供应商信息和依赖层级。类比于制造业的“物料清单”,SBOM旨在提升软件供应链透明度,解决开源与第三方组件引发的安全与合规风险。 核心价值体现:
美国国家电信和信息管理局(National Telecommunications and Information Administration)发布SBOM最小集的定义: 数据字段是关于必须捕获和维护每个组件的基础数据,以便在整个软件供应链中跟踪组件,并基于此扩展License和漏洞库等其他数据字段。
数据字段描述供应商名称创建、定义和标识组件的实体的名称。组件名称分配给原始供应商定义的软件单元的名称。组件的版本组件版本号、供应商用来指定软件从先前标识的版本发生变化的标识符。其它唯一标识符用于标识组件或用作相关数据库的查找键的其他标识符。依赖关系软件依赖关系、表征上游组件 X 包含在软件 Y 中的关系SBOM数据的作者为此组件创建SBOM数据的实体的名称。时间戳记录SBOM数据组装的日期和时间。推荐的数据 组件的哈希组件的唯一哈希,以帮助允许列表或拒绝列表。生命周期阶段SDLC 中捕获 SBOM 数据的获取的阶段。5. SBOM的格式