Software Package Data Exchange®(SPDX®)规范作为ISO/IEC 5962:2021发布,被认定为安全性、许可合规和其他软件供应链构件领域的国际开放标准。ISO/IEC JTC 1是一个独立的非政府标准机构。
包括英特尔、微软、西门子、索尼、新思科技、VMware和WindRiver在内的众多公司已经使用SPDX在政策或工具中传达软件材料清单(SBOM)信息,以确保在全球软件供应链中实现合规和安全开发。
微软近日将其用于公司内部的 SBOM(Software Bill of Materials,软件物料清单)生成工具开源,以帮助技术行业和 IT 决策者更好地了解其工具的安全性以及软件供应链的依赖关系。
SBOM 的核心是建立一个软件所使用的组件之间在供应链关系上的明确记录,它是一个机器可读的文件,列出了产品中的所有组件,其中也包括所有的开源项目,这就有点像是食品包装上的成分表。通过这个 “成分表” 可以清楚的了解产品上下游之间的关系。
近些年网络安全问题频频发生,最近一起备受关注的漏洞事件应该就是去年年底 Log4j 中的远程代码执行漏洞,让依赖该项目的全球开发者加班加点修复这个问题。不过即便这件事情影响范围极广,在圈子里闹得沸沸扬扬,也依然有企业对此事不太了解的情况发生。因此,SBOM 对于一家企业的重要性自然不言而喻。
微软开发的这个工具名为 Salus,可在 Windows、Linux 和 Mac 平台上使用,并能根据 SPDX 规范生成 SBOM。微软将 Salus 定位为「通用的、经过企业验证的 SBOM 生成器」,可以轻松集成到软件构建的工作流程中。
Salus 创建的文档包含四个主要部分,包括文档创建信息(其中包含软件名称、SPDX 许可证、SPDX 版本、文档创建者和创建时间)、组成软件的文件列表、构建软件时使用的软件包列表,以及 SBOM 不同元素之间的关系列表。
在功能上,Salus 能够自动检测 NPM、NuGet、PyPI、CocoaPods、Maven、Golang、Rust Crates、RubyGems、容器内的 Linux 软件包、Gradle、Ivy 和 GitHub 公共仓库。除此之外,Salus 还可以参考其他 SBOM 文件,以获取更加完整的依赖关系。
微软表示:
开放 Salus 的源代码是促进我们社区内合作和创新的重要一步,我们相信这将使更多的组织能够生成 SBOM,并为其发展作出贡献。
项目已托管至 GitHub 平台,地址如下:https://github.com/microsoft/sbom-tool