隨著容器、微服務等新技術日新月異,開源軟件成為業界主流形態,軟件行業快速發展。但同時,軟件供應鏈也越來越趨于復雜化和多樣化,軟件供應鏈安全風險不斷加劇。
軟件供應鏈安全主要包括軟件開發生命周期和軟件生存運營周期,且與軟件開發過程中的開發人員、環境、工具等因素密切相關。推進針對軟件生命周期進行全流程安全管控的落地實踐,有助于從軟件生命周期的源頭保障軟件供應鏈安全。
一、戰略抉擇驅動:始于對關鍵環節可見性的持續構建
軟件供應鏈安全始于對關鍵環節的可見性,企業需要為每個應用程序持續構建詳細的SBOM(軟件物料清單),從而全面洞察每個應用軟件的組件情況。SBOM是描述軟件包依賴樹的一系列元數據,包括供應商、版本號和組件名稱等多項關鍵信息,這些信息在分析軟件安全漏洞時發揮著重要作用。
表1是一份軟件物料清單示例,其中SPDX(軟件包數據交換)和SWID(軟件標識)是兩種國際通用的SBOM字段標準。
SPDX用于交流軟件物料清單信息,包括組件、許可證、版權等信息,通過為公司和社區共享重要數據提供通用格式來減少冗余工作,從而簡化流程并提高合規性。
SWID標簽旨在為組織提供一種透明的方式來跟蹤在他們的托管設備商安裝的軟件,該標簽文件包含有關軟件產品特定版本詳盡的描述性信息。除表格中的兩種應用最為廣泛的SBOM字段標準外,還有CycloneDX、CoSWID、CPE、Grafeas等其他較為常見的標準,各標準應用場景存在一定區別。
DSDX協議的組成要素
DSDX(Digital Supply-chain Data Exchange)SBOM格式由OpenSCA社區主導發起,匯聚開源中國、電信研究院、中興通訊等權威研究機構、甲方用戶、安全廠商多方力量,共同適配中國企業實戰化應用實踐場景。
作為國內的數字供應鏈安全SBOM格式,DSDX目標是成為數字供應鏈安全治理與運營的核心技術抓手,以助力行業及產業從軟件供應鏈安全向數字供應鏈安全過渡升級,使每個軟件公司都可以將SBOM 附加到每個可交付成果,并且每個人都可以完全了解軟件中使用的組件,并確切地知道哪些漏洞正在影響該軟件。
DSDX規范文檔由基本信息、項目信息、對象信息、代碼片段信息及依賴信息這幾部分構成:
1)SBOM 清單信息:清單名稱、ID、創建者、清單版本、創建階段、創建時間等
2)項目基本信息:項目名稱、宿主環境信息、運行時環境信息、EAR 信息等
3)組件信息:組件名稱、ID、廠商、組件來源、組件類型、置信度、校驗碼、語言、依賴關系、依賴數量、依賴路徑等
4)代碼文件信息:名稱、ID、校驗碼、路徑、相似文件來源、相似度
5)代碼片段信息:ID、來源文件 ID、校驗碼、代碼片段位置、相似代碼片段來源、相似度
6)依賴樹信息:以 K-V 形式保存的項目完整依賴關系圖(在任何情況下,SBOM 都應該捕獲多級依賴關系)
7)備注信息:其他備注信息。
DSDX兼容SPDX、CycloneDX、SWID國際標準和國內標準,但不止于主流規范,在最小元素集基礎上擴展其他元素。DSDX重點引入了運行環境信息、創建階段和供應鏈流轉信息,加強了清單間的互相引用,并實現最小集/擴展集的靈活應用,深度支持代碼片段信息的存儲及追蹤,為企業用戶提供整個數字供應鏈基礎設施視角的落地治理實踐。
構建軟件的企業需要維護準確、最新的?SBOM,其中包括第三方和開源組件的清單,以確保其代碼質量高、合規且安全。企業通過要求軟件供應商提供?SBOM,以發現潛在的安全和許可證問題,或者應用程序是否使用過時的庫版本。
當發現此類問題時,管理員可以要求供應商使用較新版本重建應用程序,在等待更新的軟件期間,安全人員有機會采取臨時緩解措施來保護應用程序免受攻擊者利用該漏洞進行攻擊,還可以幫助安全人員在漏洞被披露或核心庫發布新版本時,對應用程序和代碼進行抽查以避免出現安全問題。
二、速度創造價值:SBOM對漏洞風險治理實踐的影響
SBOM的使用可以為軟件供應鏈的漏洞治理節省大量時間。以往,企業在修復已部署系統的漏洞缺陷時往往需要幾個月甚至是數年的時間,其重要原因是企業無法在漏洞出現的第一時間知曉該信息。軟件供應鏈下游的企業需要等待上游軟件供應商完成軟件補丁,才可以進行漏洞修復,在等待的時間內,下游企業往往會面臨無法預知的安全風險。而構建詳細準確的SBOM則可以避免這一現象的發生,允許所有利益相關者在漏洞發現時立即開始評估漏洞,并開始制定相關的補救措施。
受感染的開源組件在軟件中未被修復的每一分鐘都會增加潛在被利用的風險,SBOM?有助于企業在漏洞披露的早期對漏洞進行識別,通過提供受感染開源組件和依賴項的準確位置,為企業在風險分析、漏洞管理和補救過程中節省數百小時至數月的時間。SBOM?有助于揭示整個軟件供應鏈中的漏洞與弱點,提高軟件供應鏈的透明度,減輕軟件供應鏈攻擊的威脅,還可以幫助企業進行漏洞管理、應急響應、資產管理、許可證和授權管理、知識產權管理、合規性管理、基線建立和配置管理等。
三、勤于思、敏于行:基于SCA技術工具及時響應
企業需要謹慎、合理地選擇、獲取和使用第三方閉源組件和開源組件。軟件安全團隊或研發團隊通過必要的技術手段確保所使用的第三方組件的安全性,及時獲取所使用第三方組件和開源組件的漏洞情報,并適時做出響應。
軟件成分分析(SCA)是一種對二進制軟件的組成部分進行識別、分析和追蹤的技術。SCA可以生成完整的SBOM,分析開發人員所使用的各種源碼、模塊、框架和庫,以識別和清點開源軟件的組件及其構成和依賴關系,并精準識別系統中存在的已知安全漏洞或者潛在的許可證授權問題,把這些安全風險排除在軟件的發布上線之前,也適用于軟件運行中的診斷分析。
SCA分為靜態和動態兩種模式。靜態模式是使用工具對目標工程文件進行解壓,識別和分析各個組件的關系;動態模式則是依賴于執行過程,在程序執行的同時收集必要的活動元數據信息,通過數據流跟蹤的方式對目標組件的各個部分之間的關系進行標定。
使用基于多源SCA開源應用安全缺陷檢測技術的安全審查工具,可以精準識別應用開發過程中軟件開發人員有意或違規引用的開源第三方組件,并通過對應用組成進行分析,多維度提取開源組件特征,計算組件指紋信息,深度挖掘組件中潛藏的各類安全漏洞及開源協議風險。
Apache log4j?2漏洞,因其嚴重性和廣泛性的影響而被業界稱為“核彈級”漏洞,同時也使得開源安全及軟件供應鏈安全治理相關話題再次成為熱點。
開源安全作為軟件供應鏈安全的重要環節以及面臨的已知或未知的安全風險,更讓業界意識到開源安全治理已是迫在眉睫。通過引入SCA工具以保證軟件供應鏈安全,在軟件開發的需求階段、編碼階段、構建集成、軟件測試等相應階段使用SCA,將開源組件安全檢測和合規檢測融入到企業開發測試流程中,可以幫助企業以最小代價落地開源安全保障體系,降低軟件安全問題的修復成本,保障開源軟件供應鏈安全。
懸鏡安全率先在源鑒SCA商業化產品中集成了DSDX、SPDX、CycloneDX、SWID四種SBOM標準格式的自動化生成能力。在商業化的同時,懸鏡安全更不忘為開源社區、廣大開發者和中小企業賦能,旗下開源數字供應鏈安全社區OpenSCA是目前國內能夠完全自主化、自動化生成DSDX、SPDX格式SBOM清單的開源SCA工具。