SBOM (Software Bill of Materials,軟體物料清單)是確保軟體元件完整性的基本要素,其起源可追溯至 1990 年代最早的軟體開發工作,當時是為了記錄開放原始碼的依賴關係。SBOM 可協助組織追蹤軟體應用程式堆疊中的元件,並維持符合業界規範。隨著軟體生態系統日漸複雜,採用標準化的 SBOM 格式對於改善安全性和互通性來說是不可或缺的。
定義 SBOM
Software Bill of Materials (SBOM)軟體物料清單,是軟體應用程式中所有元件的全面清單,包括專屬、開放源碼和第三方軟體元件。它提供詳細的元資料,例如軟體名稱、版本、供應商、授權資訊,以及用於驗證的加密哈希值。
SBOM 提供軟體依賴關係的完整可視性,可提高供應鏈的透明度、vulnerability detection,並支援法規遵循。它們可協助組織降低安全風險、簡化稽核程序,並透過辨識和處理軟體生態系統中的潛在威脅,改善事件回應。
什麼是 SBOM 標準?
SBOM (軟體物料清單) 標準透過提供統一的軟體元件檔案框架,確保不同產業與組織間的一致性與互通性。這些標準可協助企業簡化弱點管理、符合不斷演進的法規要求,並促進軟體製造商、供應商與終端使用者之間的無縫協作。
透過採用標準化的 SBOM 格式,組織可以改善軟體供應鏈的安全性、降低軟體篡改的風險,並提高整體軟體的透明度。
什麼是 SBOM 格式?
SBOM 格式是標準化、機器可讀的模式,用於結構化和共用 SBOM 中包含的資料。這些格式定義了系統之間如何表示和交換軟體元件細節。
最廣泛使用的 SBOM 格式包括SPDX和CycloneDX,這兩種格式都支援軟體生命週期的自動化、互通性和可追蹤性。這些格式可確保軟體元件檔案的一致性,從而改善vulnerability detection、法規遵循及供應鏈風險管理。
SBOM 的主要組成部分
SBOM 必須包含能提供軟體套件完整透明度的關鍵元素,才能發揮功效。美國國家電信與資訊管理局 (National Telecommunications and Information Administration,NTIA) 定義了SBOM 的七個最基本元件:
- 供應商詳細資訊:識別負責軟體的實體。
- 軟體與元件名稱:識別軟體元件。
- 版本資訊:指定元件的版本詳細資訊。
- 作者姓名:建立 SBOM 報告的個人或組織(但非工具)。
- 元件關係:描述軟體元件之間的依賴與互動關係。
- 時間戳記:SBOM 元資訊的一部分,指定報告產生的日期和時間。
- 其他唯一識別碼:提供其他資訊來定義軟體元件
其他重要元件包括
- SBOM 種類: 提供如何及為何需要 SBOM 報告的背景。
- 授權資訊:定義軟體的使用權。
- 加密哈希值:確保元件的完整性和真實性。
SPDX SBOM 格式
軟體套件資料交換(Software Package Data Exchange,SPDX)格式是由 Linux 基金會所開發,是一種廣泛使用的 SBOM 標準,其設計目的在於促進開放原始碼授權合規性與軟體元件追蹤。它提供了一種結構化的方式來記錄軟體元件及其相關的元資料,使其成為軟體透明度與安全性的重要工具。
此外,SPDX 是獲得 ISO(國際標準化組織)認證地位的格式,使其成為符合標準化和品質保證要求的格式。
SPDX 格式的檔案包含幾個關鍵元素:
包裝資訊
描述套件,它可以由一個或多個檔案組成 - 包括原始碼、二進位檔案、檔案等。其他類型的資訊包括有關原作者、來源、下載 URL、校驗和及授權概覽的詳細資訊。
檔案層級元資料
特定檔案的詳細資訊,例如授權、校驗和、檔案貢獻者等。
其他授權資訊
透過指定軟體授權,確保智慧財產管理。
軟體相依性清單
記錄軟體相依性的層級結構。
註解與關係
提供額外的元資料,並建立軟體工件之間的關係。
SPDX 格式支援多種格式,可根據使用情況和工具相容性靈活運用:
- Tag/Value (.spdx):簡單的文字格式
- JSON (.spdx.json):輕量、機器可讀的格式
- YAML (.spdx.yml): 人性化的資料序列化格式
- RDF/XML (.spdx.rdf): 語意資料表達的結構化格式
- 試算表 (.xls):有助於手動分析的表格格式
SPDX 已被各大科技公司、監管機構和開放源碼軟體社群廣泛採用。它常用於:
- 開放原始碼軟體授權管理:協助組織追蹤並遵守開放原始碼授權規定。
- 安全稽核: 提供對軟體元件的深入瞭解,以偵測弱點和管理風險。
- 法規遵循:確保遵守與軟體透明度相關的產業標準和法律要求。
- 軟體來源追蹤:建立軟體元件的明確脈絡,以改善咎責性。
利用 SPDX 格式,組織可加強供應鏈安全性、簡化合規工作,並提高軟體生態系統的能見度。
CycloneDX SBOM 格式
CycloneDX 格式由 OWASP 基金會開發,提供包括 SBOM 在內的全堆疊 BOM (Bill of Materials),其設計著重於安全性、弱點管理以及全面的軟體透明度。它提供了一個規範性的物件模型,可有效地描述軟體元件、服務和相依性之間的複雜關係。
CycloneDX 格式的主要功能包括
廣泛的元資料表示
捕捉供應商詳細資訊、授權資訊、作者、工具、製造流程等。
以安全為中心的設計
可進行精確的漏洞識別、可利用性分析,並支援 VEX 使用個案。
依賴與組合對應
代表軟體元件和服務之間的直接和轉換關係。
多種序列化格式
支援 JSON、XML 及通訊協定緩衝區 (protobuf),確保與安全工具的廣泛相容性。
合規性與標準化
與 OWASP ASVS、MASVS、SCVS 及 SAMM 等安全標準整合,提供機器可讀取的合規性追蹤框架。
CycloneDX 擁有強大的架構和安全驅動的方法,在以網路安全為重點的應用程式中被廣泛採用於弱點管理和安全監控。這使得 CycloneDX 格式成為軟體供應鏈風險管理的重要工具。
CycloneDX vs SPDX 格式
特點 | SPDX | CycloneDX |
重點 | 開放原始碼授權合規與智慧財產權 | 應用程式安全性與供應鏈分析 |
特點 | 軟體元件的全面元資料 | 輕量、使用者友善,專注於重要元件資料和安全評估 |
使用案例 | 開放源碼授權(原本)、合規性稽核和軟體來源 | 漏洞管理、軟體供應鏈分析和安全監控 |
領養 | 主要科技公司與法規遵循團隊 | 安全工具供應商及網路安全公司、DevSecOps 團隊 |
軟體物料清單(SBOM)的重要性
安全與合規的 SBOM
SBOM 是確保軟體安全性與法規遵循的重要工具。透過提供所有軟體元件的全面清單,SBOM 可讓組織更有效地追蹤與管理弱點。它們可讓安全團隊主動識別並降低風險,確保所有協力廠商及開放原始碼相關元件都是最新的,而且沒有已知的攻擊。隨著網路威脅變得更複雜、更普遍,這種可視性是非常重要的。
NIST、ISO、行政命令 14028 等法規框架和其他地區技術指南規定了更嚴格的軟體透明度和安全措施,使得 SBOM 成為符合法規的必要條件。利用 SBOM 的組織可以更輕鬆地證明符合這些標準,避免潛在的法律和財務後果。透過維護精確且最新的 SBOM,企業可以簡化稽核、減少合規開支,並確保軟體符合產業法規。
比較 SBOM 格式
優勢與弱點
每種 SBOM 格式都有不同的用途,因此必須根據特定需求選擇正確的 SBOM 格式。
特點 | 優勢 | 弱點 |
SPDX | 全面且廣泛使用。強調授權與合規性。 | 對於較小的專案而言可能較為複雜 |
CycloneDX | 針對安全性與弱點管理進行最佳化。 | 較少強調授權細節 |
SWID 標籤 | 整合到軟體中 | 跨產業的標準化程度有限 |
總結:關鍵OT系統受到保護 服務不間斷
了解並實作 SBOM 對於現代軟體安全至關重要。利用 SPDX、CycloneDX 和 SWID 標籤等格式,組織可以提高軟體供應鏈的透明度,並降低安全風險。
後續步驟
評估您組織目前的軟體供應鏈作法,並探索符合安全性與法規遵循需求的 SBOM 格式。
若要進一步瞭解如何利用強大的 SBOM 解決方案保護您的軟體供應鏈安全,請造訪OPSWAT的軟體供應鏈安全解決方案。