圖片來源: 

攝影/余至浩

近兩年,軟體供應鏈安全越來越受重視,除了持續強化軟體安全外,也有臺灣企業開始結合軟體物料清單(Software Bill of Materials,SBOM)增強軟體供應鏈的安全性,國泰金控就是其中一家,他們在國泰中臺微服務應用中,開始運用SBOM表追蹤和記錄軟體元件的組成,及時發現和修補漏洞,並在攻擊事件後進行還原,進而提升軟體供應鏈的安全。

負責打造這個安全防禦圈的是國泰金控數位數據暨科技發展中心的開源創新發展小組。該小組成員之一的DevOps工程師趙振勝近日在iThome臺灣雲端大會上分享了他們在軟體供應鏈安全防護中應用SBOM的經驗。

軟體供應鏈的威脅在近幾年日益增加,例如近年來爆出的Log4j零日漏洞,曾引發大規模零日的RAC漏洞被駭客利用,導致企業只要引用這個元件就容易受到攻擊。今年還出現了另一個針對軟體供應鏈的攻擊,名為XZ Utils的後門供應鏈漏洞,再再顯示出企業軟體供應鏈安全的重要性和迫切性。

 SBOM軟體物料清單的組成基本要素

為了加強軟體供應鏈的安全,國泰金控嘗試在軟體供應鏈安全防護中結合SBOM軟體物料清單,使用SBOM表追蹤和記錄軟體元件的組成,提高軟體元件的可見性和透明性,並先從國泰自己的中臺微服務供應鏈開始導入。

根據美國商務部和國家電信與資訊管理局(NTIA)對於 SBOM的組成基本要素有7項,包含供應商名稱、元件名稱、各元件名稱的獨立ID或Hash值、版本資訊、元件彼此間的關聯關係、元件作者資訊等。

趙振勝指出,SBOM是提高軟體供應鏈安全的關鍵工具。在SBOM軟體物料清單中提供了軟體的版本、依賴關係、組件以及許可證資訊,當軟體供應鏈受到攻擊時,安全團隊可以利用這些資訊確認影響並快速找出有問題的軟體元件,將損害降到最低。

尤其,過去開發人員經常使用開源元件或第三方元件時,隨著對這些軟體元件依賴的增加,開發人員對軟體夠掌控的部分就越少,因而增加了軟體供應鏈的安全風險,他認為,透過SBOM能夠有效解決這個問題。

軟體供應鏈安全防護結合SBOM表有四大好處

趙振勝指出,在軟體供應鏈安全防護中結合SBOM表有四大好處。首先,SBOM 表可以提供軟體元件的可見性和透明度,增強軟體供應鏈的安全性;其次,透過詳細的元件列表,可用於漏洞管理,並能在攻擊發生後協助進行事件還原。

此外,由於SBOM可以列出每個應用程式中的元件及其版本,一旦遇到特定漏洞時,就可以快速知道公司是否使用這些元件,並可用於風險評估以決定修補程式的優先順序。最後,SBOM還可以提供許可證資訊,確保符合合規及監管要求,像是金融業。

國泰中臺由複雜的微服務架構組成,分為閘道層(Gateway)、複合層(Composite)、以及基底層(Base)三層式架構,因此,趙振勝表示,每個微服務架構間的元件與SBOM中的關聯性建立非常重要,甚至需要將SBOM的工作流程結合軟體開發生命周期(SDLC),導入到每個工作環節和步驟中。

國泰中臺微服務導入SBOM遇到的挑戰

他指出,國泰金控一開始先在微服務中臺中,利用SBOM表,加強軟體供應鏈的安全性,但在導入過程中也遇到不少挑戰,包括如何選擇SBOM表導入時機、SBOM表解析和管理、SBOM表視覺化以及如何確保SBOM表資訊的完整性和不被篡改。為了克服這些挑戰,他們導入不少開源工具,來逐一加以解決。

例如,為了產生微服務供應鏈SBOM表,國泰團隊採用了CycloneDX和Syft兩款開源工具,來進行SBOM表的生成,接著將SBOM表整合到工作流程(Pipeline)各階段,包括原始碼(Source Code)、 建置Jar檔以及映像檔分別導入這兩個工具。

由於SBOM所採用的資料形式是JSON格式,為了方便解析及管理,他們還使用另一款開源工具Dependency Track,利用SBOM即時分析依賴元件並識別漏洞,來視覺化和管理第三方元件及相似性。

趙振勝表示,Dependency Track本身提供了多種串接功能,可以支持CycloneDX 格式的SBOM 作為輸入,並可以與Slack以及Jenkins串接作為輸出,還可以使用常見的統整軟體來管理漏洞。

匯入SBOM表後,從Dependency Track介面中,不僅看到元件名稱以及版本資訊及使用許可資訊,開發人員還能檢視所匯入的應用程式,包含弱點,不同弱點會以不同顏色區分,並且可以點擊查看更詳細的資訊。此外,該介面還提供審核功能,允許開發人員對每個弱點進行修復回覆和提出審核建議。

國泰金控還使用了Google的GUAC建立可視化的SBOM表,來提供依賴管理和對軟體供應鏈安全的全面視圖。從視覺化的SBOM 表中可以用樹狀圖的方式呈現應用程式中不同元件之間的關聯。

趙振勝表示,團隊建立了簽核和授權機制,以確保 SBOM不被篡改。例如,導入了Cosign工具,用於 SBOM簽核,確保SBOM表的異動歷程都有完整的記錄。此外,在SBOM匯入後,進一步將應用程式整合到DevOps敏捷的CICD流程中,通過驗證方式來確認 SBOM資訊的完整性和防止異動。

不僅如此,他們還導入VEX文件來收斂開發團隊及資安團隊發現的漏洞,來了解已知的漏洞的元件在其使用的產品環境中的可用性,以及駭客是否可以利用該漏洞造成威脅。

趙振勝強調建立左移(Shift Left)觀念的重要性。他表示,企業必須將SBOM納入開發流程,以便在軟體開發生命周期的早期階段展開評估和解決漏洞。此外,已上線服務的SBOM管理也是必須追蹤和納入考量的重點項目。他提到說,SBOM文件包含軟體組件的關鍵資訊,因此必須確保這些資料的機密和安全性。

熱門新聞

Advertisement