中国信通院:软件物料清单实践指南(2023)_65页_2mb
报告摘要
软件物料清单实践指南总结
核心内容
软件物料清单(SBOM)是一种正式、规范、机器可读的软件组件清单,包含组件的依赖关系、层次结构及相关信息。SBOM的诞生背景可追溯至上世纪,其理论和实践在2013年后逐渐应用于现代软件开发,并在近年来取得显著进展。SBOM的主要目的是提高软件透明度,使软件的使用、管理和维护更加安全和高效。
主要观点
- 提高透明度与信任:SBOM有助于识别易受攻击的组件,减少因复杂依赖关系带来的低效率工作,并提升对软件的信任度。
- 降低安全、许可与合规风险:SBOM能够帮助组织进行漏洞管理、许可管理与合规性审查,从而降低软件开发和维护成本。
- 自动化与标准化:自动化生成SBOM和使用通用、标准化格式是提高SBOM采用率与可扩展性的关键。
- 多方协作与行业实践:多个行业(如医疗、汽车、能源)已开始探索和应用SBOM,并在实践中不断丰富其内涵。
关键信息
SBOM的定义
SBOM是一份软件组件清单,包含组件的依赖关系、版本信息、唯一标识符等。它既可以是权威来源(如供应商生成),也可以是非权威来源(如第三方或作者生成)。
组成要素
- 基线属性:包括组件名称、供应商名称、版本字符串、唯一标识符、哈希值、时间戳等。
- 关系断言属性:包括“已知”、“未知”、“无”、“部分”等,用于描述组件之间的依赖关系。
- 附加元素:包括组件的生命周期信息、许可证信息、漏洞状态等。
格式与工具
目前主流的SBOM格式有三种:SPDX、CycloneDX 和 SWID。每种格式有其适用场景和优势:
- SPDX:支持丰富的许可证表达和机器可读性,适用于知识产权和许可管理。
- CycloneDX:轻量级格式,侧重于漏洞管理和网络安全,支持与VEX结合使用。
- SWID:用于标识软件产品的版本信息,支持硬件和软件的集成,适用于物联网和容器化场景。
生命周期
SBOM的生命周期包括四个阶段:
- 生成:在软件开发的不同阶段(构建前、构建时、构建后)生成SBOM。
- 交付:通过点对点方式或共享存储库传递SBOM。
- 使用:集成到安全生命周期中,用于漏洞监控、合规检查和风险评估。
- 验证:通过签名和完整性检查确保SBOM的准确性和真实性。
常见问答
- SBOM是否增加许可风险? 不会,SBOM暴露潜在的许可问题,有助于减少违规行为。
- SBOM是否公开源代码? 不需要,SBOM只包含组件引用,不包括实际代码。
- SBOM是否暴露知识产权? 不会,它仅作为组件清单,不涉及源代码或专利。
- SBOM能否体现组件的层次结构? 可以,通过组合多个SBOM来实现多级清单。
知识产权与保密
SBOM作为软件的一部分,可能涉及知识产权和保密问题。因此,需要通过合同、协议等方式明确其使用和分发规则,确保不违反相关法律和规定。
选择与决策
SBOM的选择和决策应基于以下三个维度:
- 基本组件信息:包括组件名称、供应商、版本等核心信息。
- 格式与机器可读性:支持SPDX、CycloneDX、SWID等格式。
- 深度与频率:根据用例需求决定SBOM的深度和生成频率。
行业实践
- 医疗行业:2018年提出SBOM使用需求,2021年FDA建议使用SBOM来管理医疗设备的网络安全。
- 汽车行业:通过SBOM跟踪软件组件,提升漏洞定位能力。
- 能源行业:探索SBOM在能源系统中的应用,提高软件安全。
发展趋势
- 标准化:SBOM正逐步被纳入国际标准,如ISO/IEC 5962:2021。
- 自动化支持:随着工具和流程的完善,SBOM的自动化生成和使用将更加广泛。
- 与硬件集成:SBOM与硬件数据结合,提升端到端安全保证。
- 政策推动:各国政府和标准组织正在推动SBOM的强制使用,以提升软件安全性和透明度。
总结
SBOM作为提升软件透明度的重要工具,正在成为软件开发、采购、维护和安全合规的关键实践。其格式多样,支持自动化和机器可读性,适用于多种行业场景。随着SBOM在各行业的深入应用,其理论体系和实践流程不断完善,为软件安全提供了新的解决方案。未来,SBOM的发展将更加依赖标准化、自动化和跨行业协作,以实现更广泛的采用和更深层次的安全保障。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载