《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 開源漏洞長期普遍存在,軟件供應鏈挑戰我國關基設施安全

開源漏洞長期普遍存在,軟件供應鏈挑戰我國關基設施安全

2021-06-03
來源: e安在線
關鍵詞: 開源漏洞 關基設施

  近年來,針對軟件供應鏈的安全攻擊事件一直呈快速增長態勢,造成的危害越來越嚴重,防范軟件供應鏈安全風險,已經迫在眉睫;

  開源軟件漏洞頻現:截至2020年底,CVE/NVD、CNNVD、CNVD等公開漏洞庫中共收錄開源軟件相關漏洞41342個,其中高達13%(5366個)為2020年度新增漏洞;

  研究發現:近9成軟件項目存在已知開源軟件漏洞;平均每個軟件項目存在66個已知開源軟件漏洞;影響最廣的開源軟件漏洞存在于44.3%的軟件項目中;15年前開源軟件漏洞仍存在于多個軟件項目中。

  2020年 “奇安信開源項目檢測計劃”對1364個開源軟件項目的源代碼安全檢測顯示:開源軟件項目整體缺陷密度為14.96個/千行,高危缺陷密度為0.95個/千行;

  近期,奇安信代碼安全實驗室發布《2021年中國軟件供應鏈安全綜合分析報告》。報告主要包括國內企業自主開發源代碼安全狀況分析、開源軟件生態發展與安全狀況分析、國內企業軟件開發中開源軟件應用狀況分析、典型應用系統供應鏈安全風險實例分析、總結及建議等五個方面。

  國內企業自主開發源代碼安全狀況

  源代碼是軟件的原始形態,位于軟件供應鏈的源頭。源代碼安全是軟件供應鏈安全的基礎,其地位非常關鍵和重要。

  2020年全年,奇安信代碼安全實驗室對2001個國內企業自主開發的軟件項目源代碼進行了安全缺陷檢測,檢測的代碼總量為335011173行,共發現安全缺陷3387642個,其中高危缺陷361812個,整體缺陷密度為10.11個/千行,高危缺陷密度為1.08個/千行。

  1、編程語言分布情況

  在被檢測的2001個國內企業自主開發的軟件項目中,使用數量排名前3的編程語言為Java、PHP、C/C++,對應的軟件項目數量分別為1492個、204個和97個。可以看出,相關國內企業在進行軟件開發時的首選語言是Java語言,占比高達75%。編程語言的總體分布情況如下圖所示。

 1.png

  2、典型安全缺陷檢出情況

  輸入驗證、路徑遍歷、跨站腳本、注入、NULL引用、資源管理、密碼管理、API誤用、配置管理、日志偽造等十類安全缺陷是程序員在編寫軟件代碼時經常會出現的典型安全缺陷。

  典型安全缺陷的檢出率可以體現出軟件源代碼的基本安全狀況(檢出率指含有某類缺陷的軟件項目數占軟件項目總數的比例)。在被檢測的2001個軟件項目中,十類典型安全缺陷的總體檢出率為77.8%,每類典型缺陷的檢出率及排名如下表所示。

 2.png

  開源軟件生態發展與安全狀況

  Gartner表示,現代軟件大多數是被“組裝”出來的,不是被“開發”出來的。根據知名研究機構Forrester統計,軟件開發中,80~90%的代碼來自于開源軟件。因此,現代軟件的源代碼絕大多數是混源代碼,由企業自主開發的源代碼和開源軟件代碼共同組成。開源軟件是現代軟件開發最基礎的原材料,與企業自主開發的源代碼所處的軟件供應鏈環節相同,也位于軟件供應鏈的源頭,其代碼自身的安全狀況,會直接影響最終軟件的安全性。

  報告從開源軟件生態發展狀況、開源軟件源代碼安全狀況、開源軟件公開報告漏洞狀況、開源軟件活躍度狀況等四個方面對2020年開源軟件生態發展與安全狀況進行綜合分析。

  1、開源軟件生態發展狀況分析

  據奇安信代碼安全實驗室監測和統計,2019年底和2020年底,主流開源軟件包生態系統中開源項目總量分別為2841314個和3814194個,一年間增長了34.2%;截至2020年底,主流開源軟件包生態系統中平均每個開源項目有10.2個版本。可以看出,2020年開源軟件生態更加繁榮,整體發展非常迅猛。

  本報告中對八個典型的開源軟件包生態系統進行了進一步的分析和比較,這八個包生態系統為Maven、NPM、Packagist、Pypi、Godoc、Nuget、Rubygems、Swift,具體分析如下。

  NPM包生態項目數量最多,Godoc包生態增速最快。八個典型的開源軟件包生態系統中開源項目數量和增長率情況如下圖所示,其中開源項目數量最多的是NPM包生態系統,截至2020年底,其開源項目數量達到了1559835個;開源項目數量增速最快的是Godoc包生態系統,2020年一年間的項目總量增速達到了36.2%。

 3.png

  Maven、Nuget、NPM包生態系統的開源項目開發者比較“勤奮”,開源項目的平均版本數超過11個。截至2020年底,八個典型的開源軟件包生態系統的開源項目數量和版本數量如下表所示。其中,Maven包生態系統平均每個開源項目有18.0個版本,Nuget包生態系統平均每個開源項目有11.7個版本,NPM包生態系統平均每個開源項目有11.0個版本。

  4.png

  2、開源軟件源代碼安全狀況分析

  奇安信代碼安全實驗室于2015年初發起了“奇安信開源項目檢測計劃”,該計劃是一項針對開源軟件項目的公益性安全檢測計劃,旨在讓廣大開發者關注和了解開源軟件的安全問題,提高軟件安全開發意識和技能。

  2020年全年,“奇安信開源項目檢測計劃”對1364個開源軟件項目的源代碼進行了安全檢測,代碼總量為124296804行,共發現安全缺陷1859129個,其中高危缺陷117738個。2020年檢測的1364個開源軟件項目整體缺陷密度為14.96個/千行,高危缺陷密度為0.95個/千行。

 ?。?)編程語言分布情況

  2020年檢測的1364個開源項目中,一共涉及到7種編程語言,分別是Java、C/C++、Python、OC、Go、JavaScript、PHP,編程語言的分布情況如下圖所示。

 5.png

 ?。?)典型安全缺陷檢出情況

  輸入驗證、路徑遍歷、跨站腳本、注入、NULL引用、資源管理、密碼管理、API誤用、配置管理、日志偽造等十類安全缺陷是程序員在編寫軟件代碼時經常會出現的典型安全缺陷。

  典型安全缺陷的檢出率可以體現出軟件源代碼的基本安全狀況(檢出率指含有某類缺陷的軟件項目數占軟件項目總數的比例)。在2020年檢測的1364個開源軟件項目中,十類典型安全缺陷的總體檢出率為56.3%,每類典型缺陷的檢出率及排名如下表所示。

 6.png

  3、開源軟件公開報告漏洞狀況分析

  據奇安信代碼安全實驗室監測與統計,截至2020年底,CVE/NVD、CNNVD、CNVD等公開漏洞庫中共收錄開源軟件相關漏洞41342個,其中5366個為2020年度新增漏洞。

 ?。?)大型開源項目漏洞總數及年度增長TOP20

  截至2020年底,歷史漏洞總數排名前20的大型開源項目信息如下表所示。

  7.png

  2020年一年間,公開報告漏洞數量增長排名前20的大型開源項目信息如下表所示。

 8.png

 ?。?)主流開源軟件包生態系統漏洞總數及年度增長TOP20

  截至2020年底,主流開源軟件包生態系統中歷史漏洞總數排名前20的開源軟件信息如下表所示。

 9.png

  2020年一年間,主流開源軟件包生態系統中公開報告漏洞數量增長排名前20的開源軟件信息如下表所示。

 10.png

  4、開源軟件活躍度狀況分析

  活躍度也是衡量開源軟件安全性的一個重要維度。不活躍的開源軟件,無論是更新頻率很低,或者被廢棄,一旦出現安全漏洞,難以得到及時的修復,安全風險很高;活躍的開源軟件中,如果其版本更新發布的頻率過高,同樣會增加使用者運維的成本和安全風險。在選擇使用開源軟件時,應該充分考慮這兩個因素。

  本報告中分析了2020年主流開源軟件包生態系統中開源軟件的版本更新情況,可以一定程度上體現當前開源軟件活躍度的整體狀況。

 ?。?)61.6%的開源軟件項目處于不活躍狀態

  我們將一年內未更新發布過版本的開源軟件項目定義為不活躍項目。2020年全年,主流開源軟件包生態系統中不活躍的開源軟件項目數量為2347794個,占比達到61.6%。

  本報告中對八個典型的開源軟件包生態系統進行了進一步的分析和比較,這八個包生態系統為Maven、NPM、Packagist、Pypi、Godoc、Nuget、Rubygems、Swift,其中NPM的不活躍項目數量最多,達到1018533個,Rubygems的不活躍項目比例最高,占比達到86.5%,具體數據見下表。

 11.png

 ?。?)13000多個開源軟件一年內更新發布超過100個版本

  2020年全年,主流開源軟件包生態系統中,更新發布100個以上版本的開源項目有13411個。前述八個典型的開源軟件包生態系統中,一年內更新發布超過100個版本的項目數量見下表。

  12.png

  國內軟件開發中開源軟件應用狀況

  現代軟件的源代碼絕大多數是混源代碼,由企業自主開發的源代碼和開源軟件代碼共同組成。本章內容將針對國內企業在進行軟件開發工作時,使用開源軟件的具體情況進行分析。主要回答兩個問題:一是國內企業在軟件開發中是否使用以及使用了多少開源軟件?二是其使用的開源軟件是否存在安全問題?

  2020年全年,奇安信代碼安全實驗室對2557個國內企業軟件項目中使用開源軟件的情況進行了分析,這些軟件項目的應用領域涉及政府、金融、能源等重要行業。分析發現,國內企業在軟件開發中普遍使用存在已知漏洞的開源軟件,存在巨大的軟件供應鏈安全風險。具體分析數據如下。

  1、開源軟件總體使用情況分析

 ?。?)國內企業軟件項目100%使用開源軟件

  在被分析的2557個國內企業軟件項目中,無一例外,均使用了開源軟件。最多的項目使用了3878個開源軟件,平均每個項目使用126個開源軟件。使用開源軟件最多的5個項目情況如下表所示。

 13.png

  經過后續的調研和訪談,我們還發現,軟件項目中使用的開源軟件數量大大超出了軟件項目管理者和程序員自身的認知。由于開源軟件之間的依賴關系錯綜復雜,且軟件開發中依賴包的管理通常通過包管理器程序自動管理,軟件開發者常常意識不到自己使用了數量巨大的開源軟件,因此當某個開源軟件曝出安全漏洞時,軟件開發者常常“躺槍”而不自知,這中間隱含了巨大的軟件供應鏈安全風險。

  (2)流行開源軟件被近1/4的軟件項目使用

  一些流行開源軟件會被很多軟件項目所使用,這些開源軟件一旦出現安全漏洞,影響面將會非常巨大。對于大型企業來說,企業內部可能就有數以百計的軟件開發項目,更加需要對流行開源軟件保持足夠的關注和重視,應該做到對其在本單位內的使用情況心中有數。經統計,在我們分析的2557個國內企業軟件項目中,被使用最多的開源軟件為Apache Commons Lang,被622個項目所使用,占比達24.3%。被使用最多的前5名開源軟件如下表所示。

 14.png

  2、開源軟件漏洞風險分析

  (1)近9成軟件項目存在已知開源軟件漏洞

  分析發現,在2557個國內企業軟件項目中,存在已知開源軟件漏洞的項目有2280個,占比高達89.2%;存在已知高危開源軟件漏洞的項目有2062個,占比為80.6%;存在已知超危開源軟件漏洞的項目有1802個,占比為70.5%。

 ?。?)平均每個軟件項目存在66個已知開源軟件漏洞

  在2557個國內企業軟件項目中,共檢出168604個已知開源軟件漏洞(涉及到4166個唯一CVE漏洞編號),平均每個軟件項目存在66個已知開源軟件漏洞,最多的軟件項目存在1200個已知開源軟件漏洞。存在已知開源軟件漏洞數量排名前5的項目情況如下表所示。

 15.png

 ?。?)影響最廣的開源軟件漏洞存在于44.3%的軟件項目中

  從漏洞的影響度來分析,影響范圍最大的開源軟件漏洞為CVE-2020-5421,影響了44.3%的軟件項目。影響度排名前5的開源軟件漏洞情況如下表所示。

  16.png

  (4)15年前開源軟件漏洞仍然存在于多個軟件項目中

  分析發現,部分軟件項目中存在十幾年前公開的古老開源軟件漏洞,最古老的漏洞是2005年11月公開的CVE-2005-3510,仍然存在于31個項目中。部分古老開源軟件漏洞的影響情況如下表所示。

  17.png

  3、開源軟件運維風險分析

  開源軟件運維風險復雜多樣,本報告主要從老舊開源軟件的使用和開源軟件多版本的使用角度進行分析。

 ?。?)18年前的老舊開源軟件版本仍在被使用

  分析發現,許多軟件項目中使用了十幾年前發布的開源軟件版本,存在很大的運維風險。被使用的老舊開源軟件版本中,最老舊的一個是2003年3月3日發布的Apache Xalan 2.5.D1,已經有18年之久,但仍然被7個軟件項目所使用。按老舊程度排名前5的開源軟件如下表所示。

  18.png

 ?。?)開源軟件各版本使用非?;靵y

  分析發現,各個項目中開源軟件使用的版本非?;靵y,并非使用的都是最新版本。Spring Data是被使用版本最多的開源軟件,有162個版本在被使用。按照被使用版本的數量排序,排名前5的開源軟件情況如下表所示。

  19.png

  總結及建議

  軟件供應鏈已經成為網絡空間攻防對抗的焦點,直接影響關鍵基礎設施和重要信息系統安全。為了應對軟件供應鏈安全挑戰,美國總統拜登在2021年5月12日簽署了“加強國家網絡安全的行政命令”,明確提出要增強美國聯邦政府的軟件供應鏈安全,要求向美國聯邦政府出售軟件的任何企業,不僅要提供軟件本身,還必須提供軟件物料清單(SBOM),明確該軟件的組成成分。行政命令中還要求美國國家標準與技術研究院(NIST)在6個月內發布軟件供應鏈安全指南,并在1年內發布最終指南。該行政命令被認為是迄今為止美國聯邦政府為保護美國軟件供應鏈安全采取的最強勁措施。

  當前,我國在軟件供應鏈安全方面的基礎比較薄弱,亟需從國家、行業、機構、企業各個層面建立軟件供應鏈安全風險的發現能力、分析能力、處置能力、防護能力,整體提升軟件供應鏈安全管理的水平。現代軟件的供應鏈非常復雜,軟件供應鏈安全管理是一個系統工程,需要長期持續的建設?;谄姘残糯a安全實驗室的研究和實踐,我們建議可從以下方面入手開展軟件供應鏈安全相關工作,并在此基礎之上不斷增強和完善。

  1、對國家與行業監管層面的建議:

  制定軟件供應鏈安全相關的政策要求、標準規范和實施指南,建立長效工作機制。

  建立國家級/行業級軟件供應鏈安全風險分析平臺,具備系統化、規模化的軟件源代碼缺陷和后門分析、軟件漏洞分析、開源軟件成分及風險分析等能力,為關鍵基礎設施、重要信息系統用戶提供日常的自查服務,及時發現和處置軟件供應鏈安全風險。

  在產品測評、系統測評等工作中納入軟件供應鏈安全的內容,針對軟件的源代碼、制成品、運行中的軟件系統等進行軟件供應鏈安全的測試和評估。

  2、對軟件最終用戶層面的建議:

  參照監管要求及業內優秀實踐,明確本單位內部軟件供應鏈安全管理的目標、工作流程、檢查內容、責任部門,并賦予責任部門足夠的權力。

  在采購商業貨架軟件時,應充分評估供應商的安全能力,并與供應商簽署安全責任協議,要求供應商提供其軟件產品中所使用的第三方組件/開源組件的清單,并明確要求,一旦這些第三方組件/開源組件出現安全漏洞,供應商需同樣承擔安全責任,提供必要的技術支持。

  在自行開發軟件系統或委托第三方定制開發軟件系統時,應遵循軟件安全開發生命周期管理流程,針對軟件源代碼進行安全缺陷檢測和修復,同時要重點管控開源軟件的使用,建立開源軟件資產臺賬,持續監測和消減所使用的開源軟件的安全風險。

  3、對軟件廠商層面的建議:

  提高安全責任意識,將安全作為產品的基礎屬性來對待,嚴控產品的安全質量。

  建立清晰的軟件供應鏈安全策略,明確本單位內部軟件供應鏈安全管理的目標、工作流程、檢查內容、責任部門,并賦予責任部門足夠的權力。

  嚴格管控上游,尤其重點管控開源軟件的使用,建立開源軟件資產臺賬,建議采用可融入軟件開發流程的開源安全治理工具,持續監測和消減所使用的開源軟件的安全風險。

  嚴控自主開發的代碼質量,建議采用可融入軟件開發流程的軟件源代碼安全分析工具,持續檢測和修復軟件源代碼中的安全缺陷和漏洞。

  建立完善的產品漏洞響應機制,包括產品漏洞信息的收集、漏洞報告渠道的建立和維護、漏洞補丁的開發和發布、客戶側漏洞應急響應和修復支持等。

  


微信圖片_20210517164139.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美一级看片a免费观看 | 日本精品中文字幕在线播放 | 77788色淫网站女女免费视频 | 日韩伦理剧在线观看 | 天天cao在线 | 国产一级视频播放 | 欧美日本日韩aⅴ在线视频 欧美日本免费观看αv片 | 亚洲成a人片在线观看中文!!! | 麻豆国产成人精品午夜视频 | 天天干天天操天天射 | 成人a一级毛片免费看 | 成年网站视频在线观看 | 日韩黄色一级视频 | 成人黄色一级毛片 | 国产视频网站在线 | 日朝欧美亚洲精品 | 国产精品成在线观看 | 在线免费视频你懂的 | 欧洲在线观看在线视频吗 | 亚洲精品第四页中文字幕 | www.日韩视频 | 欧美日韩一区视频 | 日韩成人性视频 | 一级性黄色 | 亚洲午夜精品久久久久久人妖 | 欧美日韩一区二区在线视频 | 91短视频免费在线观看 | 日韩在线精品视频 | 无遮挡高清一级毛片免费 | 最近2019中文字幕大全第二页 | 久久精品国产精品亚洲艾 | 欧美成人vr18sexvr | 久久亚洲成a人片 | 亚洲最色网站 | 天天摸夜夜摸成人免费视频 | 欧美精品hdvideosex | 欧美日韩一日韩一线不卡 | 国产丝袜精品丝袜久久 | 国产不卡一区 | 最近更新2019中文字幕国语 | 2021精品国夜夜天天拍拍 |