在當前軟體開發的環境中,開源軟體(OSS)已經成為許多企業和開發者的首選。然而,您是否知道使用開源軟體也帶來潛在的風險?軟體組成分析(SCA)是一個幫助開發者檢視其程式碼中嵌入的開源組件的方法,它能夠檢查這些組件是否更新、是否存在安全漏洞或是否符合授權要求。
開源軟體正是因為靈活性和降低開發成本,而受到廣泛青睞,但背後的風險卻被忽視。
自1990年代末期以來,隨著開源軟體的興起,這種透過不同組件開發軟體的方式變得越來越普遍。這種方式將大型程式碼的複雜性劃分為更小的部分,以提高靈活性並加速開發過程。然而,隨著更多組件的使用,開源軟體所帶來的風險顯然也隨之增長,這些風險可以歸類為五大類別:
對於廣泛使用開源組件的組織而言,自動化分析與風險管理正成為必要需求。
SCA產品通常的運作方式如下:首先,掃描引擎會檢查軟體原始碼及其編譯所用的相關工件,識別出使用的開源組件及其版本。接著,這些信息會儲存於資料庫中,形成一個使用的開源組件目錄。這個目錄接著會與已知安全漏洞、授權要求及歷史版本的資料庫進行比對。
例如,在進行安全漏洞檢測時,這項比對通常是針對在國家漏洞數據庫(NVD)中追蹤的已知安全漏洞。某些產品可能會使用額外的專有漏洞數據庫來進行檢查。對於知識產權及法律合規性,SCA產品會提取並評估開源組件使用的授權類型。這些結果通常會以不同的數位格式提供使用者,並會根據不同產品的需求,包含風險評估及法律要求的建議,特別是針對強或弱共享授權的要求。
結果可能還包含服務組件清單(SBOM),詳細說明在軟體應用中使用的開源組件及其屬性。
隨著SCA對不同組織功能的影響,不同團隊各自利用這些數據,這通常取決於組織的規模與結構。IT部門會使用SCA來實施與運營技術,相關的主要利害關係人包括首席信息官(CIO)、首席技術官(CTO)及首席企業架構師(EA)。安全及授權數據通常被首席信息安全官(CISO)用於管理安全風險,而首席IP/合規官則專注於知識產權風險。根據SCA產品的能力,這些工具可以直接在開發者的集成開發環境(IDE)中使用,或者可以作為軟體質量控制過程中的一個必要步驟。
在某些國家,像美國等,SBOM的生成需求被規定為強制,以確保供應商交付給政府機構的軟體安全。
自動化是SCA產品的主要優勢。當開發者使用和整合開源組件時,無需手動進行額外工作。這也包括對於間接引用其他開源組件的自動化處理。然而,當前SCA產品也存在一些關鍵的弱點,例如:部署過程複雜且耗時,可能需要數月才能完全投入運作;每個產品使用自己的專有OSS組件資料庫,這些資料庫的大小及覆蓋率可能差異甚大;而且漏洞數據的限制往往僅報告已在NVD中正式通報的漏洞。
此外,SCA產品常缺乏自動化指導,對報告中的數據行動建議也不足,並且對於檢測到的OSS授權的法律要求缺乏指導。
在這樣的背景下,您是否也在思考如何更有效地管理開源軟體的潛在風險,並保護您的程式碼不受威脅?