《2020年開源安全和風險分析》報告:91%的商業應用程序包含過期或廢棄的開源組件
開源組件和庫幾乎是每個行業中每個應用程序的基礎。隨着開源軟件在商業軟件中的使用量日益增加,識別、跟蹤和管理開源的需求也呈現出指數級增長。許可證驗證、已知漏洞修補流程、以及處理過時和不受支持的開源軟件包的策略,對於負責任地使用開源代碼都不可或缺。
美國新思科技公司(Synopsys)近日發佈了《2020年開源安全和風險分析》報告(OSSRA)。該報告由新思科技網絡安全研究中心(CyRC)製作,研究了由Black Duck審計服務團隊執行的對超過1,250個商業代碼庫的審計結果。其中,研究樣本涉及的行業覆蓋了包括企業軟件/SaaS、醫療保健、健康科技、生命科學、金融服務與金融科技,以及互聯網和軟件基礎架構等。
報告重點介紹了在商業應用程序中開源應用的趨勢和模式,並且提供見解和建議,以幫助企業從安全性、許可證合規性和操作角度更好地管理開源風險。
1.開源被廣泛認可:樣本中有效代碼庫至少包含一個開源組件,其中開源佔70%
2020 OSSRA報告重申了開源在當今軟件生態系統中的關鍵作用,揭示了過去一年中經過審計的所有有效代碼庫(99%)至少包含一個開源組件,其中開源佔所有代碼的70%。值得注意的是,老化或廢棄的開源組件仍然被廣泛使用,91%的代碼庫中包含的組件已經過期四年以上或過去兩年中沒有開發活動。
2.缺乏管理成為開源安全的最大問題
在今年的分析中,最令人擔憂的趨勢是未管理的開源代碼帶來的安全風險日益增加,經過審計的代碼庫中,75%包含具有已知安全漏洞的開源組件,而去年這一比例是60%。同樣,將近一半(49%)的代碼庫包含高風險漏洞,去年則為40%。
99%的代碼庫包含至少一些開源,每個代碼庫中平均有445個開源組件,比2018年的298個有顯著增加。被審計的代碼中有70%是開源代碼,這一數字從2018年的60%增至目前,並且自2015年(36%)以來幾乎翻了一番。
91%的代碼庫包含已經過期四年以上或者近兩年沒有開發活動的組件。除了存在安全漏洞的可能性增加之外,使用過期的開源組件的風險在於更新它們還會帶來不必要的功能和兼容性問題。
2019年,包含易受攻擊的開源組件的代碼庫的比例從2017年的78%下降至2018年的60%之後增至了75%。同樣地,包含高風險漏洞的代碼庫的比例由2018年的40%增至49%。幸運地是, 2019年審計的代碼庫中都沒有受到臭名昭著的Heartbleed漏洞或2017年困擾Equifax的Apache Struts漏洞的影響。
儘管開源軟件擁有“免費”的優勢,但它與其它軟件一樣都要受到許可證的約束。67%的代碼庫包含某種形式的開源代碼許可證衝突,33%的代碼庫包含沒有可識別許可證的開源組件。許可證衝突的發生率因行業而異,從最高的93%(互聯網和移動應用程序)到相對較低的59%(虛擬現實、遊戲、娛樂和媒體)。
以上數據表明,現代應用中始終包含大量的開源組件,並可能存在安全性、許可和代碼質量問題,如何管理開源的使用變得非常重要。
下是對企業開源安全管理的建議:
“如果沒有最新的、準確的軟件清單.-.即所謂的軟件.BOM,內含正在使用的所有開源組及其版本以及正在使用或開發的每個開源項目的下載位置等信息”便不可能解決任何問題。BOM.中還應包含其他內容,如所有的依賴項、代碼正在調用的庫、以及這些依賴項鍊接到的庫等等。
國家漏洞數據庫等公共信息源是獲取有關公開披露的開源軟件漏洞信息的良好第一步。但請切記,國家漏洞數據庫不僅受到運維組織對漏洞優先級分配的影響,而且.CVE. 條目在數據報告、評分和可操作性方面可能存在嚴重滯後的情況。
當然,開源管理工作不應止步於代碼庫在應用程序中的交付使用。只要應用程序還在運行,企業就需要不斷監控新威脅。一旦發現威脅,企業便需要確定如何進行修復,將修復工作分配給適當的人員,並跟蹤修復過程:正在審查哪些漏洞、哪些漏洞已被審查、哪些漏洞已被修復、哪些修復活動已被延期、以及哪些漏洞已打官方補丁。
企業需要對開發人員進行培訓,讓他們知道對開源的使用需要遵照管理。通過針對新開源組件的引入和文檔化制定明確的政策和程序,企業將能夠控制引入到代碼庫中的開源內容並確保對開源的引入符合相關策略。
相應的,企業也可以考慮建立自動化流程來跟蹤開源組件、其許可證和已知安全漏洞、以及版本控制和重複等運營風險,並根據問題的嚴重程度對其進行優先級排序。當企業構建打包、嵌入式或商業.SaaS.軟件時,始終應將開源許可合規性視為一個主要問題。