《報告》顯示,2022年開源軟件生態(tài)依然繁榮。2021年底和2022年底,主流開源軟件包生態(tài)系統(tǒng)中開源項目總量分別為4395386個和5499977個,一年間增長了25.1%;截至2022 年底,主流開源軟件包生態(tài)系統(tǒng)中平均每個開源項目有12.6個版本,較前兩年報告的11.8個和10.2個呈持續(xù)增長的趨勢。
開源軟件風(fēng)險管控是軟件供應(yīng)鏈安全的重中之重
奇安信代碼安全實驗室通過數(shù)據(jù)分析發(fā)現(xiàn),與前兩年相比,開源軟件自身的安全狀況持續(xù)下滑,國內(nèi)企業(yè)軟件開發(fā)中因使用開源軟件而引入安全風(fēng)險的狀況更加糟糕,開源軟件供應(yīng)鏈安全風(fēng)險管控依然任重道遠(yuǎn)。
過去一年,開源軟件漏洞數(shù)量持續(xù)增長,2022年新增的開源軟件漏洞為7682個。根據(jù)“奇安信開源項目檢測計劃”的實測數(shù)據(jù)顯示,三年來開源軟件的總體缺陷密度和高危缺陷密度呈現(xiàn)出逐年上升的趨勢,均處于較高水平,2022年全年,共對2098個開源軟件項目的源代碼進(jìn)行了安全檢測,代碼總量為173174712行,共發(fā)現(xiàn)安全缺陷3646486個,其中高危缺陷222640個,整體缺陷密度為21.06個/千行,高危缺陷密度為1.29個/千行。
2022年,奇安信代碼安全實驗室對2631個國內(nèi)企業(yè)軟件項目中使用開源軟件的情況進(jìn)行分析發(fā)現(xiàn):平均每個項目使用155個開源軟件,遠(yuǎn)高于之前的126和127個。同時,存在已知開源軟件漏洞的項目有2411個,占比達(dá)91.6%;存在已知高危開源軟件漏洞的項目有2268個,占比為86.2%;存在已知超危開源軟件漏洞的項目有2032個,占比為 77.2%;存在容易利用的漏洞的項目有2089個,占比為79.4%,這四個比例均比去年有所提高。平均每個項目存在110個已知開源軟件漏洞。
十類典型缺陷的總體檢出率為72.3%,與去年73.5%相當(dāng),遠(yuǎn)高于前年的56.3%??傮w來看,開源軟件自身的安全問題愈發(fā)嚴(yán)峻。
《報告》指出,開源項目維護(hù)者對安全問題的重視度和修復(fù)積極性較低。2022年,“奇安信開源項目檢測計劃”共向各被測開源項目的維護(hù)者反饋1484個安全問題,僅有547個得到確認(rèn)并修復(fù),其他937個反饋不修復(fù)、未反饋,或無人處理,安全問題的修復(fù)率僅為36.9%。另據(jù)統(tǒng)計發(fā)現(xiàn),一個安全問題從提交到維護(hù)人員反饋確認(rèn)并修復(fù),時間較長的可長達(dá)一年甚至更久。
并且從開源軟件活躍度角度看,不活躍的開源軟件,一旦出現(xiàn)安全漏洞,難以得到及時的修復(fù)。如果將超過一年未更新發(fā)布過版本的開源軟件項目定義為不活躍項目,數(shù)據(jù)顯示,2022年全年,主流開源軟件包生態(tài)系統(tǒng)中不活躍的開源軟件項目數(shù)量3967204個,占比高達(dá)72.1%。,與去年的69.9%和前年的61.6%相比,呈現(xiàn)出逐年升高的趨勢。
對八個典型的開源軟件包生態(tài)系統(tǒng)進(jìn)行分析和比較發(fā)現(xiàn),除Nuget外,其他各包生態(tài)系統(tǒng)中不活躍項目的占比較去年報告數(shù)據(jù)均有小幅升高,Nuget則從去年的68.1%大幅下降至54.3%。NPM的不活躍項目數(shù)量最多,達(dá)1693287個,Rubygems的不活躍項目比例仍為最高,占比高達(dá)90.5%。
開源軟件“老漏洞”依然發(fā)揮著“0day 漏洞”的攻擊作用
《報告》分析發(fā)現(xiàn),與前兩年結(jié)果一致,部分軟件項目中仍然存在很久之前公開的古老開源軟件漏洞。其中,最古老的漏洞是2002年3月15日公開的 CVE-2002-0059,距今已21年,仍然存在于11個項目中。在開源項目版本管理方面,近30年前的老舊開源軟件版本仍然在使用,同一開源軟件各版本的使用依然混亂。這些開源軟件的“老漏洞”發(fā)揮了“0day 漏洞”的攻擊作用。
典型案例如Zimbra Collaboration Suite(ZCS)這款開源協(xié)同辦公套件,目前應(yīng)用于全球140個國家的20多萬個組織中,CVE-2022-41352是影響 ZCS 8.8.15和 9.0的一個超危歷史漏洞。分析驗證發(fā)現(xiàn),目前依然可以利用該歷史漏洞,通過ZCS 8.8.15 patch34和9.0.0 patch27在系統(tǒng)上實現(xiàn)任意文件上傳的軟件供應(yīng)鏈攻擊。
再如,CVE-2020-12695是UPnP協(xié)議的一個高危歷史漏洞,又被稱作CallStranger漏洞,攻擊者可利用它繞過內(nèi)網(wǎng)的數(shù)據(jù)防泄漏(DLP)系統(tǒng),實現(xiàn)數(shù)據(jù)逃逸,從而導(dǎo)致敏感數(shù)據(jù)泄露;還可以對設(shè)備所在內(nèi)網(wǎng)進(jìn)行掃描,甚至還能劫持設(shè)備進(jìn)行分布式拒絕服務(wù)(DDoD)攻擊。該漏洞影響產(chǎn)品的范圍非常廣泛。在某國際知名廠商生產(chǎn)的企業(yè)級千兆無線路由器中,該路由器的固件使用開源工具M(jìn)iniUPnPd來實現(xiàn) UPnP 服務(wù),當(dāng)UPnP服務(wù)功能開啟時,UPnP協(xié)議漏洞會影響該路由器,對路由器所在內(nèi)網(wǎng)進(jìn)行掃描,由此引發(fā)軟件供應(yīng)鏈攻擊。
需加速落地開源軟件供應(yīng)鏈的系統(tǒng)化安全治理措施
《報告》提到,近年來國外各組織機構(gòu)推進(jìn)和出臺了一系列針對開源治理的措施和解決方案。然而,國內(nèi)還未形成統(tǒng)一的規(guī)范和流程,缺少統(tǒng)一的開源治理體系架構(gòu)、指南和公共服務(wù)平臺支撐,為此提出三方面的建議,一是制定具有普遍共識的開源治理框架和指南;二是建立開源治理平臺和漏洞響應(yīng)機制,方便各方開展開源軟件資產(chǎn)風(fēng)險監(jiān)測;三是提升針對開源軟件供應(yīng)鏈的“五防”能力,即防漏洞、防投毒、防侵權(quán)、防停服、防斷供。