:::
產業技術評析
軟體物料清單SBOM發展趨勢
發表日期:2024-02-07
作者:楊淳安(資策會MIC)
摘要:
根據維基百科定義,物料清單是指為了製造最終產品所使用的文件,內容記載著原物料、加工流程、半成品與成品數量等資訊,通常作為生產雙方聯繫或公司內部溝通的文件。軟體物料清單則記載著軟體成分組成、版本、供應鏈關係等相關資訊,透過資訊揭露,讓軟體品質檢核能更加透明化,保障採購方的權益。
全文:
一、SBOM發展背景
過去常聽到的物料清單(Bill of Materials, BOM)多用於生產製造業領域,根據維基百科定義,物料清單是指為了製造最終產品所使用的文件,內容記載著原物料、加工流程、半成品與成品數量等資訊,通常作為生產雙方聯繫或公司內部溝通的文件。軟體物料清單(Software Bill of Materials, SBOM)則記載著軟體成分組成、版本、供應鏈關係等相關資訊,透過資訊揭露,讓軟體品質檢核能更加透明化,保障採購方的權益。
SBOM的發展背景主要源自於兩大關鍵,(1)國際大規模資安攻擊事件頻傳,如:2020年12月美國Solarwinds軟體供應鏈資安攻擊事件、2021年5月美國燃油管道系統Colonial Pipeline勒索事件、2021年12月Log4j資安漏洞攻擊事件等;(2)軟體開發習慣改變所帶來的資安風險:根據國際研究機構Gartner《軟體結構分析市場指南》公開資料顯示,90%企業仰賴開源軟體作為程式開發的套件,然而使用開源軟體將大幅提升企業遭受資安攻擊風險,有心人士可能透過軟體漏洞竊取企業機敏資料,造成嚴重損失。
為了回應前述重大資安事件,2021年5月12日美國總統拜登發布《改善國家網路安全》行政命令(14028號),目的是促進美國政府與私部門在網路安全議題的資訊共享,加強美國對資安事件的應變能力,共提出8項政策舉措,包括強化情資共享、建構零信任聯邦政府網路安全、強化軟體供應鏈安全、建立資安審查委員會、聯邦政府應對資安事件之標準化教戰手冊、精進聯邦政府對網路資安弱點及資安事件之偵測、提升聯邦政府調查與整治能力,以及建置國家安全系統。其中,「強化軟體供應鏈安全」,即建議所有向聯邦政府出售的軟體都必須提供SBOM,確保軟體透明度與安全。
二、SBOM基本定義與技術概要
美國國家電信暨資訊管理局(National Telecommunications and Information Administration, NTIA)根據美國總統拜登發布之《改善國家網路安全》行政命令,建立最低標準SBOM基本規範,總共涵蓋七大規範內容:供應商名稱、軟體套件名稱、套件版本、其他可識別套件之ID、軟體供應鏈關係、SBOM產表作者以及SBOM產表時間。為了建立機器可讀的資料格式,NTIA進一步要求SBOM必須符合SPDX、SWID或CycloneDX任一格式,透過標準化格式及自動化比對功能,可避免各軟體廠商使用不同的SBOM而無法互相檢驗,以下將分別說明之:
1. SPDX:軟體資料交換格式(Software Package Data Exchange, SPDX)是Linux基金會的技術項目之一,不論文件格式為.xlsx、.spdx、.xml、.json 或 .yaml,都能藉由SPDX進行資料格式的轉換,於2021年9月獲得國際標準化組織ISO∕IEC 5962認證。
2. SWID:軟體識別標籤(Software Identification, SWID)由美國國家標準暨技術研究院(National Institute of Standards and Technology, NIST)所開發,主要用於呈現軟體的結構化資料格式,於2015年獲得ISO∕IEC 19770-2認證。
3. CycloneDX:旋風資料交換格式(Cyclone Data Exchange, CycloneDX)是OWASP基金會(Open Web Application Security Project, OWASP)所建構的資料格式,其獨特之處在於CycloneDX建立之初便是專門為SBOM所量身設計的格式,雖然尚未獲得ISO認證,但已成為NTIA官方認可並推薦的SBOM格式之一。
SBOM在技術實踐方面,目前市場上共有4種主要的方案選擇:
1. 雲端大廠:微軟提供SBOM檢測工具,以SPDX格式協助企業檢視軟體成分;Google則提供SBOM輔助工具「軟體物件供應鏈層級」(Supply Chain Levels For Software Artifacts Framework, SLSA),制定4個層級的檢驗標準,包括自動化產生出處、驗證軟體出處、檢視出處完整與可稽核性,以及所有軟體變更需經過2人審查,詳細檢查軟體成分來源,與SBOM相輔相成。
2. 資服業者:部分資服廠商結合資安專長,除SBOM檢核服務外,還能提供軟體漏洞掃描、惡意程式攻擊檢測、軟體修復建議等加值服務,代表業者如:anchore、adolus、Mend(前身為WhiteSource)、Tauruseer、Rezilion、VigilantOps等。目前臺灣已有資服業者代理Mend的SBOM檢測服務,結合弱點分析報告、漏洞修補建議、資安即時預警等,提供完整解決方案。
3. 第三方組織:西班牙馬德里的軟體透明基金會(Software Transparency Foundation),提供免費的SBOM檢測工具,讓任何人都能使用並檢視軟體品質。其特色是運用區塊鏈技術建構去中心化的SBOM檢驗帳本,藉此實現軟體供應鏈的可追溯性。Linxu基金會亦提供免費的SBOM檢測工具,至GitHub可使用SPDX格式檢視軟體成分。
4. 其他開源工具:Syft、Grype、Tern都是GitHub上免費提供的SBOM自動生成工具,程式開發者可自行使用並檢驗軟體品質。其中,Syft和Grype是資服業者anchore提供的開源工具,能結合DevOps的自動整合、自動交付流程產出SBOM,兩項工具搭配使用可加速整體掃描時間。
綜上所述,SBOM的概念如同食品成分標示,在選擇食品時可避開過敏物質,同樣在選擇軟體時可透過SBOM避開會造成損害的軟體。SBOM的主要功用在於記載軟體組成成分和軟體供應鏈關係,雖然無法立即消除所有資安風險,但能增加軟體透明度,讓需求方在採購時做出更安全的選擇。
資料來源:資策會MIC ITIS研究團隊(2024/2)
圖1、SBOM七項檢核要素
三、SBOM發展趨勢
(一)趨勢一、SBOM將促使被動更新逐步走向主動檢驗
根據雲原生基金會調查顯示,2022年全球約88%企業在開發部署過程中會使用容器,其中,又有過半數以上企業會使用K8s管理容器的調度。然而,容器與K8s是開源軟體,程式碼易藏有漏洞,導致近五成企業擔心使用容器與K8s帶來的資安風險。因此,開源社群Docker於2022年推出容器映像檔自動附帶SBOM功能,藉由檢驗容器成分與漏洞掃描,降低軟體供應鏈威脅。K8s開源專案亦致力於推動安全機制,依循Docker作法自動產出SBOM。
由於軟體種類包含商用軟體、開源軟體與內部軟體,隨著開源軟體使用率提升,企業應重視資安風險並導入SBOM。廣泛被使用的容器與K8s已提供自動附帶SBOM功能,未來企業在開發商用或內部軟體時,將逐漸從被動更新逐步走向主動檢驗,全面提升軟體供應鏈安全。
(二)趨勢二、軟體定義萬物下,SBOM可能成為具產業共識資安標準
所謂軟體定義(Software-Defined)是指運用軟體賦能硬體,實現軟體高度整合,例如:軟體定義汽車(Software-Defined Vehicle)指運用軟體升級汽車功能和滿足個人化需求、軟體定義萬物(Software-Defined Everything)指軟體控制各產業、各類型的硬體裝置。當產業領域結合SBOM時,可用於檢視汽車軟體漏洞,協助業者自動化管理資安風險,實現自動化基礎設施安全,帶來產業的創新應用。
美國國防部資訊長曾提及,開源軟體是現今軟體定義世界的重要基礎,未來不論國防產業、政府機構或其他產業,都將走向軟體定義萬物的時代,而SBOM將有機會成為具有產業共識的資安標準,透過一致性的格式釐清軟體成分,提升各領域的資訊安全。
四、結論與建議
在SBOM發展背景與技術方面,美國政府為了回應國際頻傳的重大資安事件,發布《改善國家網路安全》行政命令,NTIA也根據行政命令制定最低標準的SBOM,以及SPDX、SWID和CycloneDX等三種標準且機器可讀的格式,希望藉此有系統地推動SBOM。
在SBOM發展趨勢方面,由於軟體開發習慣改變,容器與K8s等開源工具逐漸興起,卻也帶來資安風險。因此,導入SBOM有助於實現主動檢驗,提升軟體供應鏈安全。SBOM價值的發揮除借助國家政策力量,還需企業本身採取轉型措施,將軟體開發的安全意識融入開發的每一項環節,唯有擁抱DevSecOps文化,才能真正享有SBOM的安全防護。隨著軟體開發的快速更迭,軟體供應鏈安全檢測絕非一次性任務,每一次的軟體發布都透過自動化SBOM產出工具即時檢驗,方能確保軟體的組成成分是否安全可靠,提供具有品質保證的軟體服務。
在臺灣業者發展方向上,目前已有資服業者代理國際廠商SBOM檢測服務,未來在發展上可參考國際資服業者的作法,進一步結合自身專長與產業領域知識,除基本SBOM檢測外,還能提供資安加值服務,如:弱點分析報告、漏洞修補建議、資安即時預警等,以完整解決方案協助客戶導入品質受到認證的軟體套件。
(本文作者為資策會MIC執行產業技術基磐研究與知識服務計畫產業分析師)
點閱數:
3904