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