软件供应链
软件供应链(英语:)是将制造业的供应链概念用在软件开发上,是指在软件制品(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]。
立法
美国曾经提出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]。
参考数据
- (PDF). USENIX ;login. [2022-07-04]. (原始内容存档 (PDF)于2022-12-17).
- . ntia.gov. [2021-01-25]. (原始内容存档于2022-11-30).
- . [2015-06-12]. (原始内容存档于2015-06-14).
- . [2015-06-12]. (原始内容存档于2014-12-30).
- . Embedded Computing Design. [2015-06-12]. (原始内容存档于2018-08-25).
- . iThome. 2022-10-20 [2023-11-02].
- (PDF). Docs.ismgcorp.com. [2015-06-12]. (原始内容存档 (PDF)于2023-01-19).
- . [2015-06-12]. (原始内容存档于2019-10-06).
- (PDF). Cert.gov.uk. [2020-07-28]. (原始内容存档于2023-06-06).
- . 4 December 2014 [2015-06-12]. (原始内容存档于2022-12-16).
- (PDF). [2020-02-26]. (原始内容存档 (PDF)于2023-01-19).
- . 17 August 2017 [2020-02-26]. (原始内容存档于2022-12-16).
- . The White House. 2021-05-12 [2021-06-12]. (原始内容存档于2021-05-15) (美国英语).
- . NTIA.gov. 2021-07-12 [2021-12-12]. (原始内容存档于2023-06-05) (美国英语).
- . NTIA.gov. 2021-07-12 [2022-03-22]. (原始内容存档于2022-11-22) (美国英语).
