企業環境(以及商業軟件公司)中的開發人員已經意識到,為了快速提供產品功能,沒有比利用一些代碼重新構建屬于自身的軟件更方便快捷的方法了。因此,他們開始越來越多地通過在其代碼庫中混合和匹配開源軟件組件的方式來構建屬于他們的軟件,以最大限度地縮短其軟件開發時間,留出精力編寫真正能夠為其應用程序增加價值和差異性的組件。
這種對開源組件的依賴性極大地加速了開發人員的創新速度,但往往也需要付出高昂的代價:許多可供下載的組件都包含危險的安全漏洞。
我們從一個簡單的,定義明確的示例來看軟件供應鏈,是這樣子的:
那么開源的情況則是混亂的:未經驗證的許可證、未經測試的軟件倉庫、以及狂野的西部牛仔(開發者),這一切所導致的軟件供應鏈看起來似乎是不可管理的,漏斗的形狀更像是這樣:
正如上圖所直觀顯示的一樣,開源至少導致了一個額外層次的增加。或許你并不這么認為,而是說,將開源組件簡單的插入產品中,和過去授權插入第三方的組件沒有任何本質上的差別。這里要說明的是,雖然看起來沒什么大的變化,但是有一個隱性的知識需要考慮。關于上游的開源組件,多數的源代碼倉庫時候是沒有任何的商業保證的。作為供應鏈或產品經理,最不愿意的事情就是被別人掐住喉嚨,一旦出錯,是無法補救的。
目前,一些公司已經制定了有關開發人員如何以及何時使用這些開源組件的策略,并且正在積極地管理這些組件以跟蹤安全缺陷;但是另有一些公司并沒有這些安全實踐。最新的研究結果表明,那些進行了良好安全實踐的企業可以最大限度地降低將這些組件引入軟件的風險,同時也能最大限度地提高收益。
美國新思科(Sonatype)公司于上周發布的《2019年軟件供應鏈狀況報告》,該報告由新思科技網絡安全研究中心(CyRC)制作,審查了由黑鴨(BlackDuck)審計服務團隊執行的超過1,200個商業應用程序和庫的審計結果。報告重點介紹了開源應用的趨勢和模式,以及不安全的開源組件和許可證沖突的普遍性。在該報告中,Sonatype公司首席執行官Wayne Jackson表示:
“對于那些通過更好的供應商選擇、組件選擇和自動化來實現其軟件供應鏈的組織來說,其得到的回報是巨大的。”
1. 幾乎所有軟件都是開源軟件
最新的研究結果表明,如今幾乎所有的現代軟件都包含至少一些開源組件。根據Synopsys今年早些時候發布的《2019開源安全和風險分析(OSSRA)報告》顯示,在至少包含1000個文件的應用程序中,99%的應用程序至少包含一些開源組件。同時,針對Sonatype所研究的500個現代應用程序的分析結果也顯示,平均來看,85%的代碼是由開源組件組成的。
2. 開源組件可用性激增
Sonaypte的研究表明,過去兩年開源組件的平均增長速度提高了75%。開發人員越多地使用開源組件,他們就越有可能為自己的項目做出貢獻——這也推動了各種在線存儲庫不斷提供新的開放代碼,形成了一個新開放代碼協作世界。自2018年初以來,開發人員平均每天可以訪問超過21,448個新的開源組件版本。
3. 對開源組件的需求也呈現飆升趨勢
上圖顯示Java項目在可用組件的總體量和增長方面處于領先地位。不僅有更多的Java組件可供下載,而且在現實世界中也可以更多地使用這些組件。對于Java組件發布的下載請求總數在2018年增長了68%,達到了1460億。Sonatype估算如果假設世界上大概有1200萬Java開發人員,這一數字就相當于平均每人12,166個請求。
4. 持續增長5年的開源漏洞
Sonatype研究顯示,自2014年以來,確認或疑似與開源有關的違規行為增長了71%。好消息是,開源漏洞的數量似乎在2018年達到了頂峰,過去一年略有下降趨勢。盡管如此,Sonatype的研究數據仍然顯示,1/4的受訪組織表示他們在過去12個月內遭遇過一次安全事件。
5. 組件飽受漏洞困擾
研究表明,開源軟件的使用本身并不是問題,相反地,還會對軟件創新產生重要意義。但是未能積極主動地鑒別和管理任何與開源組件使用有關的安全和許可證風險,可能極具破壞性。根據OSSRA報告顯示,在此次審計的代碼庫中有60%包含至少一個漏洞,雖然這一比例相比2017年的78%已經改善不少,但仍然是一個很大的比例。除此之外,OSSRA報告還指出,對于漏洞嚴重程度的深入研究顯示,超過40%的代碼庫包含至少一個高風險開源漏洞。
6. 開源下載缺陷率仍然很高
在實踐中,組織實際使用的易受攻擊的組件要遠低于OSSRA報告中提及的40%,但下載缺陷率仍然很高。Sonatype的分析結果表明,企業組織中大約8.8%的組件下載包含已知的安全漏洞。在最受歡迎的Java組件中,這一缺陷率甚至高達10.3%。然而,真正令人不安的是,在這些下載的漏洞中,67%的通用漏洞評分指數(CVSS)為7.0或更高。
7. 僅有一半組織對已知漏洞進行了檢測
由于存在眾多具有已知漏洞的開源組件,因此組織有責任對這些漏洞進行檢查,以確保其軟件組件的采購過程安全。不幸的是,WhiteSource于本月早些時候發布的另一項研究顯示,在選擇開源組件之前,只有一半的北美公司和42%的歐洲公司進行了這些檢查。此外,只有1/3的組織使用了能夠自動檢測現有應用程序中這些漏洞的工具。
8. 管理軟件供應鏈,管理風險
Sonatype的研究表明,積極管理其軟件供應鏈、定期更新其開源依賴關系以及采用自動化開源策略的開發團隊可以有效地降低其開源缺陷率。與未經管理的供應鏈相比,經過管理的供應鏈的易受攻擊組件減少了55%。制定了相關策略和最佳實踐的組織更傾向于使用包含較少已知漏洞的最新更新的組件。