軟件供應鏈(英語:software supply chain)是將製造業供應鏈概念用在軟件開發上,是指在軟件製品(software artifact)開發過程中,所需要的元件(component)、函式庫、工具和流程[1]

軟件供應商在開發軟件時,會整合開源軟件商業軟件的元件。軟件材料表(software bill of material,SBOM)[2]中列出軟件工件開發時需要的元件[3]。軟件材料表類似食品中的成份英語Ingredient標籤,成份標籤說明食品的成份,因此在選擇食品時,可以避開過敏物質。在選擇軟件時可以利用軟件材料表,避開會造成損害的軟件。

材料表(物料清單,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)」。也強制美國國家電信暨資訊管理局英語National Telecommunications and Information Administration(NTIA)在60天內發佈「軟件材料表中的基本元素」。

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

相關條目

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.