國(guó)家互聯(lián)網(wǎng)應(yīng)急中心-2021年開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)研究報(bào)告-20216-25_第1頁(yè)
國(guó)家互聯(lián)網(wǎng)應(yīng)急中心-2021年開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)研究報(bào)告-20216-25_第2頁(yè)
國(guó)家互聯(lián)網(wǎng)應(yīng)急中心-2021年開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)研究報(bào)告-20216-25_第3頁(yè)
國(guó)家互聯(lián)網(wǎng)應(yīng)急中心-2021年開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)研究報(bào)告-20216-25_第4頁(yè)
國(guó)家互聯(lián)網(wǎng)應(yīng)急中心-2021年開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)研究報(bào)告-20216-25_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021

年開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)研究報(bào)告國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心2021

6

月前言

“開(kāi)源”是指源代碼、文檔等設(shè)計(jì)內(nèi)容開(kāi)放的開(kāi)發(fā)模式,是群智協(xié)同、開(kāi)放共享、持續(xù)創(chuàng)新的理念和生產(chǎn)方式。

2020

年,根據(jù)

Synopsys發(fā)布的《開(kāi)源安全和風(fēng)險(xiǎn)分析報(bào)告》顯示,開(kāi)源使用數(shù)量占比較高,在教育、金融、醫(yī)療等傳統(tǒng)行業(yè)滲透率已超過(guò)

60%,開(kāi)源軟件已成為企業(yè)構(gòu)建信息技術(shù)的重要選擇。

國(guó)家政策上,2021

3

12

日,開(kāi)源首次被明確列入《中華人民共和國(guó)國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展第十四個(gè)五年規(guī)劃和

2035

年遠(yuǎn)景目標(biāo)綱要》,支持?jǐn)?shù)字技術(shù)開(kāi)源社區(qū)等創(chuàng)新聯(lián)合體發(fā)展,完善開(kāi)源知識(shí)產(chǎn)權(quán)和法律體系,鼓勵(lì)企業(yè)開(kāi)放軟件源代碼、硬件設(shè)計(jì)和應(yīng)用服務(wù)。

開(kāi)源蓬勃發(fā)展一方面可以突破技術(shù)壁壘、推動(dòng)創(chuàng)新,另一方面考慮到國(guó)際競(jìng)爭(zhēng)關(guān)系錯(cuò)綜復(fù)雜,開(kāi)源軟件安全作為軟件供應(yīng)鏈安全的重要環(huán)節(jié),面臨著安全漏洞、知識(shí)產(chǎn)權(quán)、軟件供應(yīng)鏈安全等相關(guān)風(fēng)險(xiǎn)。在此背景下,認(rèn)識(shí)和了解開(kāi)源安全風(fēng)險(xiǎn)情況是至關(guān)重要的。

國(guó)家互聯(lián)網(wǎng)應(yīng)急中心聯(lián)合棱鏡七彩開(kāi)源安全研究團(tuán)隊(duì)持續(xù)對(duì)開(kāi)源軟件供應(yīng)鏈安全進(jìn)行跟蹤分析。《2019

年開(kāi)源軟件風(fēng)險(xiǎn)研究報(bào)告》主要從GitHub熱門(mén)開(kāi)源軟件視角出發(fā),對(duì)開(kāi)源軟件安全風(fēng)險(xiǎn)進(jìn)行了分析。本報(bào)告從全新視角帶來(lái)開(kāi)源安全風(fēng)險(xiǎn)新的發(fā)現(xiàn)與突破。報(bào)告共分為五部分,第一部分,首先介紹開(kāi)源漏洞的發(fā)展現(xiàn)狀及趨勢(shì);第二部分,聚焦開(kāi)源組件生態(tài)庫(kù)的安全風(fēng)險(xiǎn);第三部分,重點(diǎn)圍繞組件按依賴層級(jí)漏洞傳播范圍分析;第四部分,對(duì)文件級(jí)漏洞潛在安全風(fēng)險(xiǎn)及波及范圍進(jìn)行討論;第五部分,對(duì)開(kāi)源使用者和關(guān)注者如何在開(kāi)源領(lǐng)域蓬勃發(fā)展下,更安全的擁抱開(kāi)源生態(tài)提出了建設(shè)性意見(jiàn)。

1目錄前

言1一、開(kāi)源漏洞發(fā)展現(xiàn)狀及趨勢(shì)3

發(fā)現(xiàn)一:開(kāi)源軟件漏洞整體呈增長(zhǎng)趨勢(shì),2020

年增長(zhǎng)率略有下降

3

發(fā)現(xiàn)二:CVE

官方未收錄的開(kāi)源軟件漏洞數(shù)逐年遞增

4

發(fā)現(xiàn)三:開(kāi)源軟件漏洞由

POC

披露到

NVD

首次公開(kāi)時(shí)間長(zhǎng)達(dá)

11

4

發(fā)現(xiàn)四:近

4

年,高危及以上開(kāi)源漏洞占比均超

40%

5

發(fā)現(xiàn)五:2020

年,最主要缺陷類型為

CWE-79

6二、開(kāi)源組件生態(tài)安全風(fēng)險(xiǎn)分析8

發(fā)現(xiàn)六:開(kāi)源組件生態(tài)中的漏洞數(shù)呈上漲趨勢(shì),2020

年環(huán)比增長(zhǎng)

40%

8

發(fā)現(xiàn)七:近

6

年中

Maven

倉(cāng)庫(kù)漏洞數(shù)量最多

9

發(fā)現(xiàn)八:超半數(shù)倉(cāng)庫(kù)的漏洞數(shù)均較上年有所增長(zhǎng)

10

發(fā)現(xiàn)九:2020

年高危漏洞占比最高,相比去年增加

2.6

倍左右

10

發(fā)現(xiàn)十:2020

年,含高危以上漏洞占比最多倉(cāng)庫(kù)是

Rubygems

12

發(fā)現(xiàn)十一:平均每版本漏洞最多的

TOP

25

組件約五成來(lái)自

Composer

倉(cāng)庫(kù)

12三、組件漏洞依賴層級(jí)傳播范圍分析15

發(fā)現(xiàn)十二:一級(jí)傳播影響范圍擴(kuò)大

125

倍,二級(jí)傳播影響范圍擴(kuò)大

173

15

發(fā)現(xiàn)十三:npm

倉(cāng)庫(kù)中的組件經(jīng)

2

輪傳播,影響組件數(shù)量最多

16

發(fā)現(xiàn)十四:一級(jí)傳播影響范圍最廣的倉(cāng)庫(kù)是

Composer

16

發(fā)現(xiàn)十五:二級(jí)傳播影響范圍最廣的倉(cāng)庫(kù)是

Nuget

17

發(fā)現(xiàn)十六:傳播影響范圍最小的倉(cāng)庫(kù)是

Maven

18四、開(kāi)源文件潛在漏洞風(fēng)險(xiǎn)傳播分析20

發(fā)現(xiàn)十七:超

80%漏洞文件在開(kāi)源項(xiàng)目具有同源文件

20

發(fā)現(xiàn)十八:漏洞文件在開(kāi)源項(xiàng)目中傳播范圍擴(kuò)大

54

21

案例分析

21五、開(kāi)源安全風(fēng)險(xiǎn)建議23

2

一、開(kāi)源漏洞發(fā)展現(xiàn)狀及趨勢(shì)

開(kāi)源軟件具有代碼公開(kāi)、易獲取、可重用的特點(diǎn),這一特點(diǎn)是開(kāi)源軟件熱度攀升的重要原因。隨著開(kāi)源軟件的廣泛使用,一旦軟件發(fā)現(xiàn)安全漏洞,必將給開(kāi)發(fā)、安全團(tuán)隊(duì)帶來(lái)嚴(yán)峻的挑戰(zhàn)。然而,開(kāi)源漏洞信息往往散落分布在各大社區(qū),很多漏洞信息不能及時(shí)被官方收錄。同時(shí),對(duì)于軟件使用者,由于缺少漏洞信息跟蹤能力,使得漏洞修復(fù)具有滯后性,提升了軟件被攻擊的風(fēng)險(xiǎn),為軟件供應(yīng)鏈安全管控增加了難度。

本次研究收錄了官方漏洞庫(kù)、開(kāi)源社區(qū)等渠道的數(shù)據(jù)1,并統(tǒng)一收錄整理成開(kāi)源漏洞知識(shí)庫(kù)。通過(guò)從中選取

2015

年至

2020

年發(fā)布的開(kāi)源漏洞為研究對(duì)象,本報(bào)告展示了近

6

年開(kāi)源安全漏洞發(fā)展現(xiàn)狀及趨勢(shì)。

發(fā)現(xiàn)一:開(kāi)源軟件漏洞整體呈增長(zhǎng)趨勢(shì),2020

年增長(zhǎng)率略有下降圖

1開(kāi)源漏洞時(shí)間分布根據(jù)調(diào)查結(jié)果,相比

2015

年漏洞數(shù)據(jù),近

5

年的漏洞數(shù)量均有不1國(guó)家信息安全漏洞

CNVD

共享平臺(tái)(/)、美國(guó)國(guó)家漏洞庫(kù)(/)、通用漏洞披露庫(kù)(/)等

34同程度增長(zhǎng)。2018

年是開(kāi)源項(xiàng)目快速增長(zhǎng)的一年,根據(jù)

GitHub

官方數(shù)據(jù)顯示,GitHub

代碼倉(cāng)庫(kù)中超過(guò)

1/3

的開(kāi)源項(xiàng)目創(chuàng)建于

2018

年,2018年新增開(kāi)源漏洞數(shù)也創(chuàng)下近

6

年新高,新增

7563

個(gè)漏洞,相較于

2015年翻了

2.85

倍;2017

年漏洞增長(zhǎng)速度最快,環(huán)比增長(zhǎng)率為

92.86%;2019

年與

2020

年增長(zhǎng)率略有下降,2020

年發(fā)布的漏洞數(shù)較

2019

年發(fā)布漏洞數(shù)少了

1746

條。

發(fā)現(xiàn)二:CVE

官方未收錄的開(kāi)源軟件漏洞數(shù)逐年遞增圖

2CVE

官方未收錄開(kāi)源漏洞情況

對(duì)

CVE

官方網(wǎng)站2進(jìn)行統(tǒng)計(jì),可發(fā)現(xiàn)

2020

年發(fā)布的開(kāi)源漏洞中未被

CVE

官方收錄漏洞有

1362

個(gè),占

2020

年發(fā)布漏洞總數(shù)的

23.78%;CVE

官方未收錄數(shù)據(jù)呈上長(zhǎng)趨勢(shì),增長(zhǎng)率逐年遞增,2018

年環(huán)比

2017年增長(zhǎng)速度達(dá)

133.52%。

發(fā)現(xiàn)三:開(kāi)源軟件漏洞由

POC

披露到

NVD

首次公開(kāi)時(shí)間長(zhǎng)達(dá)

11年

2020

年發(fā)布的開(kāi)源漏洞中,編號(hào)為

CVE-2009-4067

Linux

內(nèi)核25的

Auerswald

Linux

USB

驅(qū)動(dòng)程序的緩沖區(qū)溢出漏洞由

POC

披露到NVD

首次公開(kāi)時(shí)間長(zhǎng)達(dá)

11

年。POC

信息在

2009

10

19

日披露3;該漏洞于

2009

11

24

日獲得

CVE

編號(hào),但未公開(kāi)漏洞具體信息;直到

2020

11

2

NVD

官方才將其發(fā)布。

開(kāi)源軟件的使用者僅關(guān)注官方漏洞庫(kù)(如

NVD

等)可能無(wú)法及時(shí)獲取漏洞信息,需綜合考慮更多渠道的漏洞數(shù)據(jù)。

發(fā)現(xiàn)四:近

4

年,高危及以上開(kāi)源漏洞占比均超

40%圖

3含高危以上漏洞占比

調(diào)查結(jié)果顯示,近

6

年高危及以上漏洞占比逐年遞增,從

2015

年占比

30.87%增長(zhǎng)至

2020

年占比

56%;其中,2017

年至

2020

年高危及以上漏洞占比均超過(guò)

40%;2020

年,超危漏洞占比為

8.83%,高危漏洞占比為

46.91%,占

2020

年新增漏洞超

5

成。3/exploits/35957圖

42020

年漏洞危害等級(jí)占比發(fā)現(xiàn)五:2020

年,最主要缺陷類型為

CWE-79圖

52020

年開(kāi)源漏洞

TOP

10

CWE

缺陷類型

調(diào)查結(jié)果顯示,缺陷類型

CWE-79

數(shù)量最多,占

2020

年新增開(kāi)源漏洞的

14%左右。表

1

列出了

TOP

10

CWE

缺陷類型,這些缺陷類型很容易并被利用,往往通過(guò)系統(tǒng)信息暴露、竊取數(shù)據(jù)或阻止應(yīng)用程序正常工作等方式,對(duì)系統(tǒng)造成安全風(fēng)險(xiǎn)。了解開(kāi)源漏洞

Top10

CWE

可以幫助開(kāi)發(fā)人員、測(cè)試人員、用戶、項(xiàng)目經(jīng)理以及安全研究人員深入

6CWE編號(hào)中文名稱個(gè)數(shù)CWE-79在Web頁(yè)面生成時(shí)對(duì)輸入的轉(zhuǎn)義處理不恰當(dāng)(跨站腳本)824CWE-506內(nèi)嵌的惡意代碼726CWE-400未加控制的資源消耗(資源窮盡)510CWE-200信息暴露305CWE-20輸入驗(yàn)證不恰當(dāng)212CWE-94對(duì)生成代碼的控制不恰當(dāng)(代碼注入)201CWE-119內(nèi)存緩沖區(qū)邊界內(nèi)操作的限制不恰當(dāng)142CWE-125跨界內(nèi)存讀134CWE-78OS命令中使用的特殊元素轉(zhuǎn)義處理不恰當(dāng)(OS命令注入)124CWE-325缺少必要的密碼學(xué)步驟117了解當(dāng)前最嚴(yán)重的安全漏洞。表

12020

年開(kāi)源漏洞

TOP

10

CWE

缺陷類型

78二、開(kāi)源組件生態(tài)安全風(fēng)險(xiǎn)分析

開(kāi)源組件生態(tài)蓬勃發(fā)展,重要原因是組件獨(dú)立、可復(fù)用。組件化可以大幅度提高開(kāi)發(fā)效率、可測(cè)試性、可復(fù)用性、提升應(yīng)用性能。同時(shí),組件化能夠屏蔽邏輯,幫助迅速定位問(wèn)題,易于維護(hù)和迭代更新。組件標(biāo)準(zhǔn)化使得優(yōu)質(zhì)好用的組件越來(lái)越多,用戶也更愿意使用,形成一個(gè)良性循環(huán)的開(kāi)源組件生態(tài)庫(kù)。

開(kāi)源組件被廣泛使用,根據(jù)官方數(shù)據(jù)顯示,Maven

倉(cāng)庫(kù)數(shù)據(jù)量已達(dá)

650

萬(wàn)+,Nuget

倉(cāng)庫(kù)累計(jì)下載量超

930

億,Rubygems

倉(cāng)庫(kù)累計(jì)下載量超

712

億,PyPI

倉(cāng)庫(kù)使用人數(shù)超過(guò)

49

萬(wàn)。

本報(bào)告選取了

CocoaPods4、

Composer5、

Go6、

Maven7、

npm8、

Nuget9、PyPI10、Rubygems11這

8

個(gè)主流的倉(cāng)庫(kù)作為研究對(duì)象,分析近

6

年各倉(cāng)庫(kù)新增漏洞數(shù)據(jù),幫助解開(kāi)源組件生態(tài)安全風(fēng)險(xiǎn)情況。

發(fā)現(xiàn)六:開(kāi)源組件生態(tài)中的漏洞數(shù)呈上漲趨勢(shì),2020

年環(huán)比增長(zhǎng)40%

根據(jù)調(diào)查結(jié)果,近

6

年開(kāi)源組件生態(tài)中漏洞數(shù)逐年遞增。其中,2020

年新增漏洞數(shù)為

3426,環(huán)比去年增長(zhǎng)

40%;

2017

年增長(zhǎng)速度最快,環(huán)比增長(zhǎng)

49%;近

3

年增長(zhǎng)速度呈上升趨勢(shì),

2020

年新增漏洞數(shù)是

2015年的

4.48

倍。4567891011/https://pkg.go.dev

/

6開(kāi)源組件生態(tài)漏洞時(shí)間分布發(fā)現(xiàn)七:近

6

年中

Maven

倉(cāng)庫(kù)漏洞數(shù)量最多圖

7近

6

年中各組件倉(cāng)庫(kù)漏洞情況

調(diào)查結(jié)果顯示,近

6

年中漏洞數(shù)量最多是

Maven

倉(cāng)庫(kù),漏洞數(shù)量為

3533

個(gè);Go

倉(cāng)庫(kù)漏洞數(shù)量最少,漏洞數(shù)量為

348

個(gè);平均每個(gè)倉(cāng)庫(kù)漏洞數(shù)量為

1413

個(gè)。

9發(fā)現(xiàn)八:超半數(shù)倉(cāng)庫(kù)的漏洞數(shù)均較上年有所增長(zhǎng)圖

8近

6

年各倉(cāng)庫(kù)漏洞分布圖

調(diào)查結(jié)果顯示,近

6

年,Composer、Go、Maven、npm、PyPI、Rubygems

6

種倉(cāng)庫(kù)的漏洞數(shù)均有不同程度的上漲;Rubygems

倉(cāng)庫(kù)漏洞增長(zhǎng)速度最快,相比去年翻

10.5

倍;Go

倉(cāng)庫(kù)和

PyPI

倉(cāng)庫(kù)增長(zhǎng)率其次,環(huán)比增長(zhǎng)率分別為

252%和

132%;Maven

倉(cāng)庫(kù)

2020

年新增漏洞數(shù)基本與去年持平。

發(fā)現(xiàn)九:2020

年高危漏洞占比最高,相比去年增加

2.6

倍左右

調(diào)查結(jié)果顯示,2020

年新增漏洞中,高危漏洞占比最高,數(shù)量為1826

個(gè);超危漏洞逐年遞增,2020

年數(shù)量有所下降,環(huán)比下降

53%,2019

年新增數(shù)量最多,新增數(shù)量為

468

個(gè);高危漏洞逐年遞增,2020年增長(zhǎng)速度最快,相比去年增加

2.62

倍;中危漏洞呈現(xiàn)平穩(wěn)增長(zhǎng)趨勢(shì),2018

年增長(zhǎng)速度最快,環(huán)比增長(zhǎng)率為

48.13%;低危漏洞逐年遞增,

2020

10年增長(zhǎng)速度有所下降,2019

年新增數(shù)量最多,新增數(shù)量為

171

個(gè)。圖

9

10近

6

年新增漏洞風(fēng)險(xiǎn)等級(jí)時(shí)間分布

6

年新增漏洞各風(fēng)險(xiǎn)等級(jí)占比

11發(fā)現(xiàn)十:2020

年,含高危以上漏洞占比最多倉(cāng)庫(kù)是

Rubygems圖

112020

年各倉(cāng)庫(kù)中含高危以上漏洞占比

調(diào)查結(jié)果顯示,超八成組件含高危以上漏洞占比均超過(guò)

40%。2020年,Rubygems

倉(cāng)庫(kù)含高危以上漏洞占比最多,占

Rubygems

倉(cāng)庫(kù)新增漏洞的

96%;Go

倉(cāng)庫(kù)含高危以上漏洞占比最少,占

2020

Go

倉(cāng)庫(kù)新增漏洞的

39%。

發(fā)現(xiàn)十一:平均每版本漏洞最多的

TOP

25

組件約五成來(lái)自Composer

倉(cāng)庫(kù)

針對(duì)

2020

年各倉(cāng)庫(kù)新增漏洞,分析得到平均每版本漏洞數(shù)量最多的

TOP

25

組件。考慮到各倉(cāng)庫(kù)不同組件的版本數(shù)量各不相同,本報(bào)告采取平均每版本漏洞數(shù)作為計(jì)算依據(jù),即:平均每版本漏洞數(shù)=組件全版本漏洞數(shù)/組件版本數(shù)。

研究發(fā)現(xiàn),平均版本漏洞最多的

TOP25

中,Composer

倉(cāng)庫(kù)的組件數(shù)占比最多,共計(jì)

12

個(gè),占比約

5

成左右;PyPI

倉(cāng)庫(kù)的組件數(shù)排名第二,共計(jì)

7

個(gè);平均版本漏洞數(shù)最多的組件來(lái)自

Maven

倉(cāng)庫(kù),漏洞數(shù)量為

47

個(gè),下圖列示各倉(cāng)庫(kù)中平均版本漏洞

TOP25

組件分布:

1213圖

12

平均版本漏洞最多

TOP25

組件倉(cāng)庫(kù)分布圖

13

Composer

倉(cāng)庫(kù)組件分布14圖

14

PyPI

倉(cāng)庫(kù)組件分布圖

15

Maven

倉(cāng)庫(kù)組件分布圖

16

npm

Nuget

倉(cāng)庫(kù)組件分布三、組件漏洞依賴層級(jí)傳播范圍分析

軟件工程中經(jīng)常引用組件來(lái)實(shí)現(xiàn)某些功能,組件之間存在相互依賴關(guān)系,按依賴關(guān)系可分為直接依賴和間接依賴,即組件

A

依賴組件B,組件

B

依賴組件

C,那么組件

A→組件

B

和組件

B→組件

C

的依賴關(guān)系稱為直接依賴,而組件

A→組件

C

的依賴關(guān)系稱為間接依賴。組件存在安全漏洞,組件之間又存在相互依賴關(guān)系,導(dǎo)致漏洞在組件之間存在傳播風(fēng)險(xiǎn)。

本報(bào)告以

Maven、npm、Rubygems

、PyPI、Composer、Nuget

6個(gè)倉(cāng)庫(kù)中含已公開(kāi)安全漏洞的開(kāi)源組件為研究對(duì)象,共計(jì)

6,416

個(gè)12,對(duì)其做兩輪漏洞傳播模擬實(shí)驗(yàn),研究開(kāi)源組件漏洞依賴層級(jí)傳播范圍。第一輪實(shí)驗(yàn),查找直接依賴這

6,416

個(gè)開(kāi)源組件的組件集合,為方便定義,稱該組件范圍為一級(jí)傳播;第二輪實(shí)驗(yàn),查找直接依賴一級(jí)傳播組件的組件集合,該組件集合均間接依賴這

6,416

個(gè)開(kāi)源組件,稱該組件范圍為二級(jí)傳播。

發(fā)現(xiàn)十二:一級(jí)傳播影響范圍擴(kuò)大

125

倍,二級(jí)傳播影響范圍擴(kuò)大

173

17

組件漏洞依賴層級(jí)傳播范圍12截至

2020

12

月,Maven、npm、Rubygems

、PyPI、Composer、Nuget

6

個(gè)倉(cāng)庫(kù)中含已公開(kāi)安全漏洞的開(kāi)源組件共計(jì)

6,416

個(gè)。

1516

調(diào)查結(jié)果顯示,原始樣本中

6,416

個(gè)組件,受組件依賴關(guān)系的影響,一級(jí)傳播一共波及

801,164

個(gè)組件,其影響范圍擴(kuò)大

125

倍。第二輪實(shí)驗(yàn)中,發(fā)現(xiàn)二級(jí)傳播一共波及

1,109,519

個(gè)組件,影響范圍相比原始樣本

6,416

個(gè)組件擴(kuò)大

173

倍。發(fā)現(xiàn)十三:npm

倉(cāng)庫(kù)中的組件經(jīng)

2

輪傳播,影響組件數(shù)量最多圖

18

各倉(cāng)庫(kù)組件漏洞傳播范圍

調(diào)查結(jié)果顯示,

Maven、

npm、

Rubygems

、

PyPI、

Composer、

Nuget6

個(gè)倉(cāng)庫(kù)選取樣本中,npm

倉(cāng)庫(kù)原始含漏洞組件數(shù)量為

1,962

個(gè),npm倉(cāng)庫(kù)漏洞組件數(shù)量在原始樣本中僅次于

Maven

倉(cāng)庫(kù),排在第二位。經(jīng)2

輪模擬傳播實(shí)驗(yàn),發(fā)現(xiàn)

6

組倉(cāng)庫(kù)中波及范圍最廣是

npm

倉(cāng)庫(kù)。npm倉(cāng)庫(kù)原始樣本中共有

1,962

個(gè)含有漏洞的組件,經(jīng)過(guò)一級(jí)傳播共波及459,876

個(gè)組件,漏洞的影響范圍擴(kuò)大了

234

倍;二級(jí)傳播共波及601,574

個(gè)組件,范圍比最初

1,962

個(gè)組件擴(kuò)大了

307

倍。發(fā)現(xiàn)十四:一級(jí)傳播影響范圍最廣的倉(cāng)庫(kù)是

Composer17圖

19

各倉(cāng)庫(kù)一級(jí)傳播影響范圍

調(diào)查結(jié)果顯示,Composer

倉(cāng)庫(kù)原始含漏洞組件數(shù)量為

380

個(gè),為6

個(gè)倉(cāng)庫(kù)中原始樣本中含漏洞組件數(shù)量的第

5

位。經(jīng)

1

次傳播,一級(jí)傳播波影響范圍最廣的倉(cāng)庫(kù)是

Composer。經(jīng)過(guò)一級(jí)傳播共波及

99,611個(gè)組件,漏洞的影響范圍擴(kuò)大了

262

倍。發(fā)現(xiàn)十五:二級(jí)傳播影響范圍最廣的倉(cāng)庫(kù)是

Nuget

調(diào)查結(jié)果顯示,Nuget

倉(cāng)庫(kù)原始含漏洞組件數(shù)量為

172

個(gè),為

6

組中含漏洞組件數(shù)量最少的倉(cāng)庫(kù)。經(jīng)

2

次傳播,二級(jí)傳播波影響范圍最廣的倉(cāng)庫(kù)是

Nuget。經(jīng)過(guò)一級(jí)傳播共波及

23,240

個(gè)組件,漏洞的影響范圍擴(kuò)大了

135

倍;二級(jí)傳播共波及

84,995

個(gè)組件,范圍比最初

172

個(gè)組件擴(kuò)大了

494

倍。18圖

20

各倉(cāng)庫(kù)二級(jí)傳播影響范圍發(fā)現(xiàn)十六:傳播影響范圍最小的倉(cāng)庫(kù)是

Maven圖

21

兩輪漏洞傳播組件漏洞影響范圍分布圖

調(diào)查結(jié)果顯示,Maven

倉(cāng)庫(kù)原始含漏洞組件數(shù)量為

2,289

個(gè),經(jīng)過(guò)

2

次傳播,6

組倉(cāng)庫(kù)中受漏洞影響范圍最小是

Maven

倉(cāng)庫(kù)。經(jīng)過(guò)一19級(jí)傳播共波及

94,724

個(gè)組件,漏洞的影響范圍擴(kuò)大了

41

倍;二級(jí)傳播共波及

145,827

個(gè)組件,范圍比最初

2,289

個(gè)組件擴(kuò)大了

64

倍。

從整體上看,開(kāi)源組件生態(tài)中漏洞影響范圍遠(yuǎn)超預(yù)期,組件間的依賴層級(jí)關(guān)系會(huì)導(dǎo)致組件之間漏洞存在傳播風(fēng)險(xiǎn)。因此,要保證軟件的安全風(fēng)險(xiǎn)控制,應(yīng)通過(guò)自動(dòng)化的手段識(shí)別軟件工程中的組件成分,梳理組件間的依賴關(guān)系;在已知成分清單基礎(chǔ)上對(duì)組件漏洞風(fēng)險(xiǎn)實(shí)施管控;同時(shí),還要對(duì)已知成分進(jìn)行動(dòng)態(tài)監(jiān)控,建立組件生態(tài)的漏洞威脅警報(bào),在動(dòng)態(tài)變化中將安全漏洞風(fēng)險(xiǎn)降到最低。四、開(kāi)源文件潛在漏洞風(fēng)險(xiǎn)傳播分析

開(kāi)源項(xiàng)目中往往存在相互引用關(guān)系,同一開(kāi)源文件可能被多個(gè)項(xiàng)目所引用或包含??紤]到開(kāi)源文件這一特性,本研究選取已公開(kāi)漏洞中定位至文件級(jí)的開(kāi)源文件為研究對(duì)象,共計(jì)

17,570

個(gè),依托本研究團(tuán)隊(duì)的開(kāi)源項(xiàng)目知識(shí)庫(kù)13,對(duì)

17,570

個(gè)漏洞文件進(jìn)行同源分析,識(shí)別開(kāi)源生態(tài)中包含此漏洞文件的開(kāi)源項(xiàng)目范圍。

發(fā)現(xiàn)十七:超

80%漏洞文件在開(kāi)源項(xiàng)目具有同源文件

22

漏洞文件同源占比分布

調(diào)查結(jié)果顯示,選取的

17,570

個(gè)含漏洞的開(kāi)源文件中有

80.35%的文件可在開(kāi)源項(xiàng)目中找到同源文件,共計(jì)

14,118

個(gè),其余的

3,452個(gè)文件未找到同源文件。13開(kāi)源項(xiàng)目知識(shí)庫(kù)是指對(duì)已公開(kāi)的開(kāi)源項(xiàng)目進(jìn)行收錄、清洗、整理形成的庫(kù)集合。收錄渠道包含:開(kāi)源代碼托管平臺(tái)

GitHub()、開(kāi)源代碼托管平臺(tái)

sourceforge()、開(kāi)源代碼托管平臺(tái)

bitbucket()、開(kāi)源代碼托管平臺(tái)

gitee(https://www.gi)等各大開(kāi)源社區(qū)

2021發(fā)現(xiàn)十八:漏洞文件在開(kāi)源項(xiàng)目中傳播范圍擴(kuò)大

54

倍圖

23

漏洞文件在開(kāi)源項(xiàng)目中傳播范圍分布

通過(guò)對(duì)含同源文件的

14,118

個(gè)含有漏洞的開(kāi)源文件進(jìn)行分析,在不考慮同一開(kāi)源項(xiàng)目不同版本的前提下,這些漏洞文件被

766,877

個(gè)開(kāi)源項(xiàng)目所引用,漏洞文件在開(kāi)源項(xiàng)目中傳播范圍擴(kuò)大

54

倍。如果考慮同一開(kāi)源項(xiàng)目的不同版本,這些漏洞文件被

2,410,476

個(gè)開(kāi)源項(xiàng)目所引用,漏洞文件在開(kāi)源項(xiàng)目中傳播范圍將擴(kuò)大

171

倍。案例分析

LibTIFF

項(xiàng)目中

tif_next.c

被曝出有

2

個(gè)中危漏洞

CVE-2015-1547和

CVE-2015-8784。為了解該漏洞文件在開(kāi)源項(xiàng)目中的引用情況,本研究團(tuán)隊(duì)對(duì)

tif_next.c

漏洞文件進(jìn)行同源分析,在開(kāi)源項(xiàng)目知識(shí)庫(kù)中共發(fā)現(xiàn)有

237

個(gè)開(kāi)源項(xiàng)目包含

tif_next.c

文件,如果考慮項(xiàng)目不同版本,共有

1000

個(gè)開(kāi)源項(xiàng)目中引用

tif_next.c

文件。表

2

列出了

6

大托管平臺(tái)引用

tif_next.c

文件的部分同源開(kāi)源項(xiàng)目,經(jīng)對(duì)比,所有同源文件均僅刪減了注釋行,而代碼邏輯以及函數(shù)變量名稱均未改變。托管平臺(tái)開(kāi)源項(xiàng)目名稱版本號(hào)同源文件路徑GitHub14reactos/reactosbackups/ros-branch-0_4_2@7308715見(jiàn)注釋Gitee16mirrors-opencv2.4.1017見(jiàn)注釋Gitlab18limbov2.2.1-Limbo-armv7-hf19見(jiàn)注釋Bitbucket20xrayFirstAddedTBB21見(jiàn)注釋Sourceforge22wxhaskellwxInstall-Abriline-32-0.123見(jiàn)注釋CodePlex24casaenginemaster25見(jiàn)注釋

2

6

大托管平臺(tái)

tif_next.c

文件的同源開(kāi)源項(xiàng)目舉例

從整體上看,本次研究發(fā)現(xiàn)相同的文件被多個(gè)開(kāi)源項(xiàng)目所引用的現(xiàn)象遠(yuǎn)多于預(yù)期??紤]到漏洞利用的復(fù)雜性,本研究團(tuán)隊(duì)認(rèn)為這些結(jié)構(gòu)一致的同源文件具有潛在漏洞風(fēng)險(xiǎn),漏洞是否能真正的被利用,還需要深入研究。1415項(xiàng)目下載地址:/reactos/reactos/tags?after=ReactOS-0.4.5reactos-backups-ros-branch-0_4_2-73087\reactos-backups-ros-branch-0_4_2-73087\reactos\dll\3rdparty\libtiff16171819項(xiàng)目下載地址:/mirrors/opencv/tags?page=4gitee-mirrors-opencv-2.4.10\opencv\3rdparty\libtiff項(xiàng)目下載地址:/bob447008888/limbo/-/tags?page=2&sort=updated_descgitlab-limbo-v2.2.1-Limbo-armv7-hf\limbo-v2.2.1-Limbo-armv7-hf\jni\SDL_image\external\tiff-4.0.3\libtiff2021項(xiàng)目下載地址:/sentike/xray/downloads/?tab=tagssentike-xray-a2c911aa2e5b\sentike-xray-a2c911aa2e5b\3rd

party\FreeImage\FreeImage\Source\LibTIFF422232425項(xiàng)目下載地址:/projects/wxhaskell/wxInstall-Abriline-32-0.1\wxInstall-Abriline-32-0.1\wxWidgets\src\tiff\libtiff項(xiàng)目下載地址:/?p=casaenginecasaengine\sourceCode\casaengine\ex

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論