《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.軟體時,始終應將開源許可合規性視為一個主要問題。