軟體供應鏈

軟體供應鏈（）是將製造業的供應鏈概念用在軟體開發上，是指在軟體制品（software artifact）開發過程中，所需要的元件（component）、函式庫、工具和流程。

軟體供應商在開發軟體時，會整合开源软件及商业软件的元件。軟體材料表（software bill of material，SBOM）中列出軟體工件開發時需要的元件。軟體材料表類似食品中的成份標籤，成份標籤說明食品的成份，因此在選擇食品時，可以避開過敏物質。在選擇軟體時可以利用軟體材料表，避開會造成損害的軟體。

材料表（物料清單，bill of material，BOM）是在製造業就已形成的概念，也是供应链管理的一部份。製造業利用材料表來追蹤製造時所需要的各種部件。若某部件有缺陷，透過材料表可以找出受影響的產品。

用途
軟體材料表對於軟體供應商以及軟體使用者都有幫助。軟體供應商會在開源軟體元件以及商業軟體元件中挑選適合的元件，整合成軟體。軟體材料表可以讓軟體供應商確認各個元件都是最新的，出現新的漏洞時，可以快速反應。軟體使用者，可以用軟體材料表進行漏洞以及授權的分析，以評估此一產品的風險。

一些公司會用Excel來管理軟體材料表，不過用Excel呈現的軟體材料表有其風險以及問題。若軟體材料表集合起來放在存儲庫中，成為其他自動化系統中的一部份，其他的應用程式可以查詢其中的資料，其助益會更大。在軟體包資料交換規範（SPDX）開放標準中，有提到自動化軟體材料表流程的需求。

軟體材料表的格式有三種，軟體包資料交換規範（SPDX）是ISO/IEC 5962:2021指定的格式，此外還有NIST提出的SWID，以及OWASP提出的CycloneDX。

瞭解軟體供應鏈，產出軟體材料表，以及來分析漏洞，這些都是風險管理中重要的成份。

立法
美國曾經提出Cyber Supply Chain Management and Transparency Act of 2014，要求政府機關在購買新產品時，需要取得產品的軟體材料表，其中也針對「所有美國政府會使用的軟體、韌體及產品」，都要有軟體材料表。此法案後來沒有通過，不過也讓政府單位注意此一議題，也帶動之後的相關法案，例如Internet of Things Cybersecurity Improvement Act of 2017。

美國在2021年5月12日發佈有關提昇美國網路安全的行政命令（Executive Order on Improving the Nation's Cybersecurity），要求國家標準技術研究所在90天內訂定指引，其中包括有許多主題的標準、程序或是準則，目的是「強化軟體供應鏈的安全性」，其中也包括了「提供採購者所有產品的軟體材料表（SBOM）」。也強制（NTIA）在60天內發佈「軟體材料表中的基本元素」。

NTIA在2021年7月12日發佈軟體材料表中的基本元素，其中也「說明讓軟體供應鏈更加透明的軟體材料表使用案例，並且列出後續演進的選項。」基本元素包括以下三類：資料欄位（每一個軟體元件的基線資訊）、是否支援自動化（是否可以用機器可讀以及人工可讀的格式產出軟體材料表），實務及流程（組織產生軟體材料表的時機，以及產生方式）。其中的「支援自動化」也有列出需要「自動生成」，可以使用軟體成份分析（software composition analysis，SCA）的方案來達成。

相關條目
 可重现构建
 軟體包資料交換規範
 工具鏈
 供应链攻击
 代码签名
 清单文件
 相依性地狱
 數位供應鏈安全

參考資料

Category:供應鏈管理
Category:軟體專案管理