如何启用SBOM来加强您的软件安全度

Software Bill of Materials(SBOM),又称「软件物料清单」或「软件账单」,是包含构建软件中所使用各种组件的详细信息和供应链关系的正式记录。
SBOM为端对端软件供应链管理和安全性的基础。了解软件内容是保护软件的首步。试想想,在进餐时,你们当然想知道食物的成份,食物本身是否含有有毒化学物质,不是吗?
现今,除了由零开始开发一套软件,我们更大机会是使用开源软件。对于开源软件的环境来说,SBOM更能发挥其作用,因为软件开发人员和供应商经常透过组装现有的开源及商业软件组件来创建产品。简单来说,SBOM的作用是确保软件供应链安全。
究竟SBOM应具哪些重要资料,来充分发挥其应有作用?
- 供应商名称:创建、定义和标识组件的实体的名称。
- 组件名称:分配给由原始供应商定义的软件单元的名称。
- 组件版本:供应商使用的标识符,用于指定软件中对先前标识版本所作的更改。
- 唯一标识符:用于标识组件或用作相关数据库查找键的其他标识符。
- 组件与组件的依赖关系:描述上游组件X包含在软件Y中的关系。
- SBOM数据的作者:为此组件创建SBOM数据的实体的名称。
- 时间记录:SBOM数据程序集的日期和时间记录。
看到这里,我们可能会有疑问, SBOM好像是一个幻想,因为追踪所有资料是一件烦琐耗时的工作。 但透过软件成分分析工具( Software Composition Analysis Tool, SCA),在大多数情况下,资料记录就能自动生成及更新。 而且,SCA工具普遍于DevSecOps管道中使用,常于SBOM创建之外发挥作用。
整体而言,SBOM的实际用途如下:
- 软件生产者使用SBOM来协助构建和维护他们生产的软件(building and management)。
- 软件采购商使用SBOM来了解购买前保证、协商折扣和规划的实施策略。
- 软件运营商使用SBOM来了解漏洞管理(vulnerability management)、资产管理(asset management)、许可管理(license management)和合规性控制(compliance control),并快速识别软件与组件的依赖关系(dependencies identification)以及供应链风险管理(risk management)。
以往在系统创建的过程中,会蓍重基础设施和网络架构,例如在基础设施进行系统强化(Systems hardening),及在网络架构图上针对网络设备与基础设施作关联分析(Network analysis)。软件开发方面,我们会针对常用应用程序安全标准,如OWASP Top 10来把公司内的软件开发文化转变为生成更安全代码的文化,以确保其Web应用程序最小化风险的过程。
但是,当有了SBOM的思维,我们就能把安全工作变得更系统和全面。在构建分布式软件时,把SBOM集成到开发实践中变得日趋重要。SBOM的最终目标就是共享资讯,连接不同机构,使软件开发的规格更标准,资讯更透明,节奏更有效。与时俱进,只要我们善用新思维新技术, 网络世界方能安全发展。
网络安全在很多方面还需要注意,如有任何疑问欢迎加入我们的 Cybersec Infohub 计划,让行业里的网络安全专家为您解决,如果您怀疑自己或公司的电脑被骇或有可疑的行为,亦请尽快联络网络安全专家求助。


















