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