SBOM:組件信息、格式與版本維護

Sytance · 更新於

軟件物料清單(SBOM)記錄應用或系統由哪些軟件組件構成,以及組件之間的關係。它為組件盤點、許可證檢查和漏洞調查提供基礎。清單是否有用,取決於它能否準確描述實際交付的軟件。

SBOM 描述的產品與版本

一份 SBOM 對應具體的產品版本、構建或交付文件,例如固件鏡像或安裝包。組件條目記錄這個範圍內包含的軟件。結合版本、生產方、標識符和依賴關係,才能判斷條目描述的是哪個組件。

以虛構工業網關為例,清單描述的是一個固件發佈版本,管理應用和嵌入的庫是組件。遠程遙測服務屬於外部依賴;記錄該服務不代表它的服務端軟件包被包含在網關固件中。

公開示例使用虛構組件解釋數據結構,並非 Sytance 或某款已發佈網關的實際組件清單。

組件標識符

名稱相似的軟件包可能來自不同的軟件包生態。Package URL(purl)通過類型、命名空間、名稱和版本等字段標識軟件包。文件哈希則用於識別具體文件內容,使用時需要同時明確哈希算法和計算對象。

組件標識需要根據軟件包元數據或供應商資料填寫。猜測供應商名稱後拼成的 purl,可能指向錯誤的軟件包。原始版本號也需要保留,因為下游構建可能帶有獨立的補丁修訂號。

SPDX 和 CycloneDX 都能表達組件信息及關係,具體字段和含義取決於格式版本。應選擇生成工具和接收工具均能正確處理的版本。

清單的準確性與覆蓋範圍

文件即使符合 JSON 語法,也可能描述了錯誤版本。應將 SBOM 與構建輸入和交付製品核對,調查不一致之處。源碼依賴列表可能包含未交付的開發工具,也可能漏掉直接複製進鏡像的庫。

  • 目標一致:產品、版本和製品與本次發佈相符。
  • 標識準確:組件版本和標識符能夠找到來源依據。
  • 關係:已記錄依賴路徑,並且這些路徑表達的關係合理。
  • 覆蓋範圍清楚:註明供應商尚未提供的資料和仍未分析的部分。
  • 信息可用:接收工具能夠保留本次用途需要的字段。

2026 年 SBOM 最小元素

CISA 與合作機構聯合發佈的 2026 年 SBOM 最小元素指導,對 NTIA 2021 年文件進行了更新。內容涉及文檔元數據、組件數據,以及維護和共享方式。該文件屬於指導材料,明確説明其不增加新的要求。

實際交付時,應約定規範、格式版本和客户追加要求。文件通過格式校驗,並不能證明客户要求的信息已全部提供。

漏洞匹配與產品影響

漏洞匹配根據組件標識和版本,找出可能影響該組件的已報告漏洞。下一步需要判斷受影響代碼是否存在,以及能否在該產品中被利用,並檢查構建選項、修改內容、執行路徑和公告中的利用條件。

漏洞可利用性交換信息(VEX)用於傳達某個漏洞對特定產品版本的影響判斷,並關聯分析依據。沒有匹配到漏洞時,也需要考慮數據覆蓋不足或組件標識不完整的可能性。

受支持版本的清單記錄

將原始清單與產品版本歸檔。軟件未變、清單信息需要更正時,發佈可追溯的文檔修訂;軟件發生變化時,為新版本建立對應記錄。

新公告指出組件漏洞時,應檢查所有受支持版本的清單。客户可能仍在運行舊版本,其中的組件與當前產品不同。

延伸閲讀