軟體供應鏈(英語:software supply chain)是將製造業的供應鏈概念用在軟體開發上,是指在軟體制品(software artifact)開發過程中,所需要的元件(component)、函式庫、工具和流程[1]。
軟體供應商在開發軟體時,會整合开源软件及商业软件的元件。軟體材料表(software bill of material,SBOM)[2]中列出軟體工件開發時需要的元件[3]。軟體材料表類似食品中的成份標籤,成份標籤說明食品的成份,因此在選擇食品時,可以避開過敏物質。在選擇軟體時可以利用軟體材料表,避開會造成損害的軟體。
材料表(物料清單,bill of material,BOM)是在製造業就已形成的概念,也是供应链管理的一部份[4]。製造業利用材料表來追蹤製造時所需要的各種部件。若某部件有缺陷,透過材料表可以找出受影響的產品。
用途
軟體材料表對於軟體供應商以及軟體使用者都有幫助。軟體供應商會在開源軟體元件以及商業軟體元件中挑選適合的元件,整合成軟體。軟體材料表可以讓軟體供應商確認各個元件都是最新的,出現新的漏洞時,可以快速反應[5]。軟體使用者,可以用軟體材料表進行漏洞以及授權的分析,以評估此一產品的風險。
一些公司會用Excel來管理軟體材料表,不過用Excel呈現的軟體材料表有其風險以及問題。若軟體材料表集合起來放在存儲庫中,成為其他自動化系統中的一部份,其他的應用程式可以查詢其中的資料,其助益會更大。在軟體包資料交換規範(SPDX)開放標準中,有提到自動化軟體材料表流程的需求。
軟體材料表的格式有三種,軟體包資料交換規範(SPDX)是ISO/IEC 5962:2021指定的格式,此外還有NIST提出的SWID,以及OWASP提出的CycloneDX[6]。
瞭解軟體供應鏈,產出軟體材料表,以及來分析漏洞,這些都是風險管理中重要的成份[7][8][9]。
立法
美國曾經提出Cyber Supply Chain Management and Transparency Act of 2014[10],要求政府機關在購買新產品時,需要取得產品的軟體材料表,其中也針對「所有美國政府會使用的軟體、韌體及產品」,都要有軟體材料表。此法案後來沒有通過,不過也讓政府單位注意此一議題,也帶動之後的相關法案,例如Internet of Things Cybersecurity Improvement Act of 2017[11][12]。
美國在2021年5月12日發佈有關提昇美國網路安全的行政命令(Executive Order on Improving the Nation’s Cybersecurity)[13],要求國家標準技術研究所在90天內訂定指引,其中包括有許多主題的標準、程序或是準則,目的是「強化軟體供應鏈的安全性」,其中也包括了「提供採購者所有產品的軟體材料表(SBOM)」。也強制美國國家電信暨資訊管理局(NTIA)在60天內發佈「軟體材料表中的基本元素」。
NTIA在2021年7月12日發佈軟體材料表中的基本元素[14],其中也「說明讓軟體供應鏈更加透明的軟體材料表使用案例,並且列出後續演進的選項。」基本元素包括以下三類:資料欄位(每一個軟體元件的基線資訊)、是否支援自動化(是否可以用機器可讀以及人工可讀的格式產出軟體材料表),實務及流程(組織產生軟體材料表的時機,以及產生方式)。其中的「支援自動化」也有列出需要「自動生成」,可以使用軟體成份分析(software composition analysis,SCA)的方案來達成[15]。
相關條目
參考資料