隨著整個社會加速數字化、網絡化、智能化,開源已經成為勢不可擋的趨勢,驅動云計算、大數據、人工智能等技術和產業的進步。而隨著開源產業繁榮興起,開源的安全問題也備受關注。
近日,新思科技發布了《2021年開源安全和風險分析》報告(OSSRA)。該報告由新思科技網絡安全研究中心(CyRC)制作,研究了由Black Duck審計服務團隊執行的對超過1500個商業代碼庫的審計結果。
報告重點介紹了在商業應用程序中開源應用的趨勢,以及開源所帶來的安全隱患,包括安全漏洞、過期或廢棄的組件以及許可證合規性問題。
“軟件吞噬世界,開源吞噬軟件”這句話在業界非常流行。新思科技軟件質量與安全部門軟件應用安全解決方案工程師王永雷表示,從報告涉及的17個行業可以看到,開源代碼的比例最低為48%,最高為89%。開源已經成為行業絕大多數應用程序的基礎。
另外,從2016年到2020年,開源代碼比例呈現線性增長,從2016年的不到40%發展到2020年突破70%。
隨著開源變得無處不在,合規風險也隨之而來。OSSRA報告顯示,95%的營銷科技公司的代碼庫存在開源漏洞;98%的醫療保健行業代碼庫包含開源,其中有67%的代碼庫存在漏洞;97%的金融服務/金融科技行業代碼庫包含開源,其中超過60%的代碼庫存在漏洞;92%的零售和電子商務行業代碼庫包含開源,其中71%的代碼庫存在漏洞。
王永雷說,由于疫情影響,線上營銷需求旺盛。這就導致營銷科技應用程序漏洞的比例非常高。不過,物聯網、互聯網等行業的安全漏洞比例在下降,主要是由于這些行業的安全意識不斷提高。
2020年,包含存在漏洞的開源組件的代碼庫百分比為84%,較2019年上漲了9%。同樣,包含高風險漏洞的代碼庫的百分比從49%上升至60%。2020年的審計中再次發現了2019年在代碼庫中發現的幾個十大開源漏洞,并且所有這些漏洞的百分比均有顯著增加。
此外,超過90%經審計的代碼庫含有許可證沖突、自定義許可證或根本沒有許可證的開源組件。2020年審計的代碼庫中,65%包含存在許可證沖突的開源組件,通常涉及“GNU通用公共許可證”。26%的代碼庫采用沒有許可證或定制許可證的開源代碼。這三種問題有潛在的侵權和其它法律風險,通常需要進行評估,尤其涉及到合并和收購交易的時候。
關注風險與開源治理
隨著互聯網化和在線化以及云端應用的增加,企業需要將關注點放在風險治理上面,畢竟被攻擊的風險和數據的泄露將導致公司名譽的損失,比如Equifax信息泄露事件。
雖然開源業界有著“Linus Law”這一說法,但是開源項目缺乏維護的現象也十分嚴重。OSSRA顯示,廢棄開源組件仍在被廣泛使用。高達91%的代碼存在開源依賴項,這些開源組件在過去兩年內沒有任何開發活動——沒有進行代碼改進,也沒有任何安全修復。
同時,85%的代碼庫含有至少四年未曾更新的開源依賴項。與廢棄項目不同,這些過時的開源組件擁有活躍的開發人員,但是他們發布的更新及安全補丁卻沒有被下游商業消費者所采用。除了忽略應用補丁會帶來的明顯安全隱患之外,使用過時的開源組件還可能帶來技術上的麻煩,包括與將來更新相關的功能問題和兼容性問題。
這種風險可以稱之為運維風險,這與開源社區息息相關,比如社區的活躍度、貢獻者的代碼修復情況。此外,隨著社區的國際化合作增多,需要尊重本地市場的合規要求,比如是否涉及加密算法等。
王永雷表示,開源的安全問題有時候隱藏在代碼邏輯里面,并不容易找到。而且找到之后,沒有機制進行及時的通知和修復或者沒有人維護,這也會帶來很大的問題。所以企業需要良好的開源治理。
為此,我們需要構建完整的BOM物料清單,了解企業組織里使用了哪些開源組件。新思科技提供了覆蓋全場景掃描需求的多因子探測技術,幫助企業自動化識別開源組件和代碼的使用情況。
王永雷說,將開源組件自動化識別出來是企業開源軟件治理的基礎,在此之上Black Duck提供了從識別到保護、合規、治理的端到端解決方案。“該方案具有輕量級的特點,能夠融入到整個軟件開發過程,實現開源治理、安全、合規、運營一體化。”
當前軟件開發流行DevOps、CI/CD集成,其實從集成的角度看,新思科技把軟件開發和部署分為五個階段——設計、提交代碼、構建、測試、生產。在整個軟件開發生命周期中,我們可以采用兩個治理思路,一個是主動治理,一個是被動治理。