現行SBOM(軟體用料清單)僅針對每個軟體的組成、個別軟體之間的依存性/聯動關係、開源許可證等議題,進行透明化標示,但要將這些軟體組成要素,對應到開發生命週期上的哪個階段與環節,並未加以交代;因此,SBOM在實務上勢必跟軟體開發生命週期各階段,產生對應和連結,讓SBOM軟體組成要素,在生命週期上的各個階段發揮作用。
【技術發展背景】
美國網路暨基礎設施安全局(CISA)依據SBOM在軟體生命週期(SDLC)不同階段的成熟度需求,推出了SBOM六大種類定義表,可讓軟體開發團隊了解SDLC不同階段,需要準備何種SBOM要素,來滿足不同階段成熟度需求。SBOM的六大階段如下:
- 設計Design:為最初始的階段,來決定整體SBOM的藍圖;組成要素包含RFP、設計規格、設計概念。
- 來源Source:在決定藍圖和規格之後,接下來就是SBOM原物料進場;組成要素包含開發環境、原始檔、軟體相依性關聯圖
- 建置Build:整體的軟體系統在開立藍圖、規格,以及原物料進場後,就要開始實際動工,建構出完整形體;組成要素包含模組化SBOM元件。
- 解析Analyzed:建置完畢後還要進行驗收程序,確保部署上線前安全無虞;組成要素包含元件和成品的第三方報告。
- 部署Deployed:解析完畢後,進行最終調校修正後,即可上線部署到實際運作版本(Live、Production);組成要素包含最終調校修正所用到的元件。
- 執行階段Runtime:部署上線之後,主要蒐集即時運作的數據,並分析弱點和異常狀況,作為下次修正的參考;組成要素包含各元件的即時運作紀錄。
藉由了解軟體生命週期不同階段、不同成熟度所需的SBOM,可以讓軟體開發團隊的SBOM所需元件,在不同階段逐步到位、循序漸進,進而減少開發過程的錯誤,加速交付並提升品質。
【技術介紹與應用現況】
坊間有各式各樣的SBOM解析工具,來解析不同格式的SBOM組成元件,並在元件彼此串聯整合之前,發掘並解決漏洞和痛點,有助於讓SBOM組成原件,安全順暢運作。
資料來源: (Diglio, 2023)
圖 1:微軟SBOM解析工具(左)、GitHub SBOM依存關係解析工具﹙右﹚
另外,在物聯網系統中,由於物聯網串接不同用途和廠牌的軟硬體,SBOM的角色也至關重要,可以結合持續監控的儀表板系統(Dashboard),來及時預防和補救已知的漏洞,降低能被駭客利用的突破口。
資料來源: (Diglio, 2023)
圖 2:Azure IoT Dashboard,可搭配SBOM解析
【未來展望/挑戰】
SDLC各階段的SBOM需求,除了讓開發團隊能一目了然得知每個所需的SBOM要素,逐步建構出完整軟體成品,並進行最終驗收與調校,提升品質並減少風險,進而減少後續維護補救的時間和資源成本,讓SBOM每個元件均能各司其職、發揮關鍵功效、讓系統整體運作安全順暢。
封面圖片來源: 123RF
參考資料
- (2023, April 21). Types of Software Bill of Materials (SBOM). Retrieved from CISA: https://www.cisa.gov/resources-tools/resources/types-software-bill-materials-sbom
- Diglio, A. (2023, May 31). SBOM Lifecycle. Retrieved from Microsoft: https://csrc.nist.gov/csrc/media/Presentations/2023/sbom-lifecycle/images-media/ADiglio-ssca-forum-053123.pdf