國(guó)家保密局網(wǎng)站>>保密科技

開源軟件風(fēng)險(xiǎn)分析及治理措施研究

2020年11月27日    來源:國(guó)家保密科技測(cè)評(píng)中心【字體: 打印

一、引言

2020年4月,國(guó)家發(fā)改委明確提出“以新發(fā)展理念為引領(lǐng),以技術(shù)創(chuàng)新為驅(qū)動(dòng),以信息網(wǎng)絡(luò)為基礎(chǔ),面向高質(zhì)量發(fā)展需要,提供數(shù)字轉(zhuǎn)型、智能升級(jí)、融合創(chuàng)新等服務(wù)的基礎(chǔ)設(shè)施體系”,界定了包括信息基礎(chǔ)設(shè)施、融合基礎(chǔ)設(shè)施、創(chuàng)新基礎(chǔ)設(shè)施等在內(nèi)的“新基建”概念范疇!靶禄ā笔切乱淮畔⑼ㄐ偶夹g(shù)與傳統(tǒng)基礎(chǔ)設(shè)施的深度融合,呈現(xiàn)高度網(wǎng)絡(luò)化、數(shù)字化、智能化等顯著特征。數(shù)字經(jīng)濟(jì)時(shí)代,“新基建”將加速虛擬空間和實(shí)體空間的全面融合,在推動(dòng)數(shù)字經(jīng)濟(jì)高速發(fā)展的同時(shí),面臨的安全風(fēng)險(xiǎn)也從傳統(tǒng)的網(wǎng)絡(luò)安全擴(kuò)展到社會(huì)現(xiàn)實(shí)生活。

“新基建”雖然涉及眾多領(lǐng)域,但究其主要功能組件,包括底層的硬件設(shè)備、調(diào)度處理的軟件程序和上層生產(chǎn)的信息數(shù)據(jù)3部分。無論對(duì)硬件設(shè)備的控制,還是生產(chǎn)操作信息數(shù)據(jù),都無法離開基礎(chǔ)的軟件程序支撐,毫無疑問,軟件程序?qū)⒊蔀椤靶禄ā钡暮诵囊兀浖a將作為新基建”的基礎(chǔ)設(shè)施,其安全性直接影響著“新基建”的基礎(chǔ)安全。

二、開源軟件現(xiàn)狀分析

隨著全球信息化發(fā)展態(tài)勢(shì)的不斷融合,國(guó)家或企業(yè)信息系統(tǒng)的產(chǎn)品來源更加多元化,軟件程序的供應(yīng)鏈也隨之變得更加復(fù)雜。

通常來說,軟件程序主要來源于自主研發(fā)、購(gòu)買商業(yè)化產(chǎn)品、使用開源軟件或采用軟件外包開發(fā)等途徑。根據(jù)VeraCode公司統(tǒng)計(jì),大約30%?70%自主研發(fā)軟件的代碼都使用過第三方代碼,并多以開源組件、商業(yè)或外包共享庫的形式存在。信息技術(shù)分析公司高德納(Gartner)更是堅(jiān)定認(rèn)為現(xiàn)代軟件大多數(shù)是被“組裝”出來的,不是被“開發(fā)”出來的,F(xiàn)在的軟件開發(fā)過程類似于早期的工業(yè)生產(chǎn)活動(dòng),是以開源軟件為基礎(chǔ)的原材料,在此基礎(chǔ)上,再結(jié)合實(shí)際的業(yè)務(wù)需求和應(yīng)用場(chǎng)景補(bǔ)充添加相對(duì)獨(dú)立的業(yè)務(wù)代碼,最后“拼裝”出一套軟件系統(tǒng)。這種敏捷開發(fā)的方式雖然在一定程度上提高了軟件系統(tǒng)開發(fā)的效率,卻并未充分考慮其使用的基礎(chǔ)開源組件是否安全可靠,為軟件系統(tǒng)的安全性和可控性帶來了巨大挑戰(zhàn)。

近年來,以廣泛應(yīng)用的Struts2、OpenSSL等為代表的基礎(chǔ)開源組件頻現(xiàn)高危漏洞,不同國(guó)家、不同企業(yè)均因此遭受不同程度的損失,也促使國(guó)家和企業(yè)提高對(duì)軟件供應(yīng)鏈、開源軟件、關(guān)鍵信息基礎(chǔ)設(shè)施中軟件系統(tǒng)安全性的關(guān)注程度。

(一)開源軟件的安全形勢(shì)極其嚴(yán)峻

實(shí)際上,開源軟件的安全形勢(shì)已變得越來越嚴(yán)峻。根據(jù)RiskSense研究報(bào)告稱,2019年已公開的開源軟件CVE漏洞總數(shù)為968個(gè),比之前數(shù)量最高年份的兩倍還多,2020年前3個(gè)月新增的CVE漏洞數(shù)量也處于歷史高位。另外,就美國(guó)國(guó)家漏洞庫(NVD)對(duì)于開源軟件的漏洞管理情況來看,其收錄開源軟件漏洞的滯后性比較嚴(yán)重,從漏洞首次公開披露到漏洞被收錄到NVD平均耗時(shí)54天,最長(zhǎng)耗時(shí)1817天。攻擊者完全有可能利用這段時(shí)間窗口開發(fā)和部署漏洞利用程序。其中,武器化程度最高的開源軟件包括Apache Tomcat、Magento、Kubernetes、Elasticsearch和JBoss。而正在使用存在漏洞開源軟件的企業(yè)由于無法及時(shí)收到NVD的安全警報(bào),將使企業(yè)完全暴露在安全風(fēng)險(xiǎn)之中。

(二)開源軟件所產(chǎn)生的蝴蝶效應(yīng)不容樂觀

從奇安信代碼安全實(shí)驗(yàn)室公布的數(shù)據(jù)來看,開源軟件的源代碼安全缺陷密度是14.22/KLOC,高危安全缺陷密度為0.72/ KLOC,即每1000行開源軟件代碼中就有14個(gè)安全缺陷,每1400行開源軟件代碼中就有1個(gè)高危安全缺陷。由此可見,開源軟件的安全現(xiàn)狀極不樂觀。

另外,由于開源軟件之間的關(guān)聯(lián)依賴關(guān)系非常復(fù)雜,其帶來的安全問題所產(chǎn)生的蝴蝶效應(yīng)將變得十分巨大。一款開源軟件如果出現(xiàn)0Day漏洞,將會(huì)導(dǎo)致所有與之存在關(guān)聯(lián)依賴關(guān)系的其他軟件系統(tǒng)出現(xiàn)同樣的0Day漏洞,漏洞的攻擊面將會(huì)由點(diǎn)及面呈現(xiàn)出爆炸式的放大效果。

(三)開源軟件的供應(yīng)鏈有可能潛藏高級(jí)網(wǎng)絡(luò)威脅

正是由于開源軟件的開源特性,造就了其天然基因中就缺少安全監(jiān)管機(jī)制,上傳開源軟件的可能是個(gè)人,也可能是一個(gè)組織,還可能是一些別有用心的機(jī)構(gòu)。因此,開源軟件很可能不是“免費(fèi)的午餐”,有可能被植入高級(jí)惡意程序代碼,通過數(shù)據(jù)加密的方式,將惡意流量(如竊取到的用戶敏感信息或遠(yuǎn)程控制命令等)混淆在正常的加密數(shù)據(jù)流量中來逃避安全檢測(cè)。這種借助于特洛伊木馬以軟件供應(yīng)鏈為突破口的攻擊方式,直接將攻擊程序?qū)懭腴_源軟件中,大大降低了攻擊者從外向內(nèi)的攻擊成本,也必將成為企業(yè)所面臨的下一個(gè)網(wǎng)絡(luò)安全風(fēng)口。

(四)開源軟件尚處于管理盲區(qū)

開源軟件目前正處于企業(yè)信息化的管理盲區(qū),因?yàn)槠髽I(yè)所用到的各類軟件無論是自行開發(fā)還是外包服務(wù),都更偏向于對(duì)功能需求的驗(yàn)證,忽視了源代碼和使用的基礎(chǔ)開源組件的安全性以及各個(gè)組件之間的依賴關(guān)系。

軟件供應(yīng)商的開發(fā)團(tuán)隊(duì)對(duì)開源軟件的使用非常隨意,未建立完整的開源軟件使用管理機(jī)制,開發(fā)人員對(duì)開源軟件基本處于“只用不說”的狀態(tài),項(xiàng)目負(fù)責(zé)人無法掌握開發(fā)團(tuán)隊(duì)所用到的開源軟件具體列表,企業(yè)甲方更無法了解正在使用的軟件系統(tǒng)是否包含了開源軟件。一旦軟件產(chǎn)品交付,開源軟件的漏洞也將為整個(gè)信息系統(tǒng)的安全運(yùn)營(yíng)帶來極大的安全挑戰(zhàn)。

三、開源軟件治理措施

當(dāng)前,國(guó)家和企業(yè)已逐漸進(jìn)入數(shù)字化時(shí)代,無論是對(duì)硬件的調(diào)度控制還是對(duì)上層信息數(shù)據(jù)的存儲(chǔ)、加工和利用,開源軟件已成為構(gòu)建虛擬空間和物理實(shí)體的重要黏合劑,應(yīng)作為“新基建”的核心基礎(chǔ)設(shè)施給予充分的重視,加緊開展開源軟件的安全治理措施研究。

(一)建立開源軟件的審查管理機(jī)制

無規(guī)矩不成方圓,企業(yè)和軟件開發(fā)商應(yīng)建立對(duì)開源軟件的審查管理機(jī)制,嚴(yán)格執(zhí)行對(duì)開源軟件全生命周期的安全使用和風(fēng)險(xiǎn)控制。

(1)建立針對(duì)開源軟件的頂層審查管理機(jī)制。設(shè)立相應(yīng)的組織機(jī)構(gòu),明確管理職責(zé),結(jié)合企業(yè)的實(shí)際特點(diǎn),制定審查管理制度和流程。

(2)建立開源軟件安全準(zhǔn)入機(jī)制,制定評(píng)估要點(diǎn),在其生命周期內(nèi)持續(xù)評(píng)估其完整性、安全性和法律風(fēng)險(xiǎn),實(shí)時(shí)掌握開源軟件資產(chǎn)和與其關(guān)聯(lián)的軟件系統(tǒng)的安全風(fēng)險(xiǎn)狀態(tài)。

(3)借助于開源軟件的自動(dòng)化工具持續(xù)檢測(cè)和發(fā)現(xiàn)開源軟件資產(chǎn),持續(xù)跟蹤開源軟件漏洞情報(bào)。

(4)建立開源軟件的漏洞緩解工作機(jī)制,研究開源軟件的漏洞緩解措施,開展應(yīng)急響應(yīng)處置,及時(shí)規(guī)避網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。

(5)建立開源軟件的運(yùn)維管理平臺(tái),按照審查管理制度流程,執(zhí)行開源軟件全生命周期的運(yùn)維管理,跟蹤并記錄開源軟件動(dòng)態(tài),提升開源軟件治理效率。

(二)推進(jìn)源代碼安全保障實(shí)踐方法落地

企業(yè)使用開源軟件面臨的首要問題仍然是代碼的安全性問題。在軟件源代碼安全保障實(shí)踐方面具有代表性的是微軟提出的安全開發(fā)生命周期(Security Development Lifecycle,SDL )和高德納基于敏捷開發(fā)推出的DevSecOps的方法。其中,SDL將安全要素內(nèi)嵌入培訓(xùn)、需求分析、系統(tǒng)設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試驗(yàn)證、發(fā)布和響應(yīng)等軟件開發(fā)和運(yùn)維的7個(gè)階段。DevSecOps通過設(shè)計(jì)一系列可集成的控制措施,增大安全監(jiān)測(cè)、跟蹤和分析力度,將安全融入敏捷過程中,并將安全能力賦予各個(gè)團(tuán)隊(duì),同時(shí)保持“敏捷”和“協(xié)作”的初衷。

無論SDL還是DevSecOps,都可以看到,安全的位置實(shí)際上都進(jìn)行了左移,而且貫穿于所有的過程中。

(1)安全需求分析:應(yīng)結(jié)合業(yè)務(wù)實(shí)際需求,依據(jù)行業(yè)標(biāo)準(zhǔn)規(guī)范,如等級(jí)保護(hù)、分級(jí)保護(hù),識(shí)別岀軟件系統(tǒng)的安全需求,作為后續(xù)安全設(shè)計(jì)的輸入。

(2)安全設(shè)計(jì):依據(jù)安全需求分析文檔,以減少攻擊面為原則,圍繞用戶輸入驗(yàn)證、異常處理、身份鑒別、密碼管理、會(huì)話安全、訪問控制、安全審計(jì)、數(shù)據(jù)脫敏、防Web攻擊等方面對(duì)軟件系統(tǒng)進(jìn)行安全設(shè)計(jì)。

(3)安全編碼:使用指定的安全開發(fā)工具,嚴(yán)格依據(jù)安全設(shè)計(jì)文檔對(duì)軟件系統(tǒng)進(jìn)行編碼實(shí)現(xiàn)。

(4)安全測(cè)試:借助于源代碼審計(jì)、滲透測(cè)試和壓力測(cè)試等綜合測(cè)試方法,充分驗(yàn)證軟件系統(tǒng)的安全性、可用性和完整性。

(5)安全發(fā)布:結(jié)合實(shí)際網(wǎng)絡(luò)拓?fù),合理部署,減少來自網(wǎng)絡(luò)的攻擊面。

(6)安全響應(yīng):制定網(wǎng)絡(luò)安全事件響應(yīng)計(jì)劃和處置流程,有效響應(yīng)網(wǎng)絡(luò)安全事件。

(三)借助專業(yè)力量持續(xù)評(píng)估開源軟件安全風(fēng)險(xiǎn)

企業(yè)應(yīng)引入或借助專業(yè)的技術(shù)力量持續(xù)加強(qiáng)對(duì)在用開源軟件的安全風(fēng)險(xiǎn)評(píng)估。通過常態(tài)化滲透測(cè)試、代碼安全性分析或者建設(shè)網(wǎng)絡(luò)靶場(chǎng),持續(xù)、動(dòng)態(tài)地驗(yàn)證、評(píng)估開源軟件的可靠性、可用性和安全性,提升開源軟件的安全應(yīng)用能力。

(四)合作建立開源軟件的漏洞情報(bào)庫

現(xiàn)有的CVE/CPE體系以及NVD等漏洞庫,已經(jīng)無法滿足開源軟件安全治理的需求,需要?jiǎng)?chuàng)新開源軟件的漏洞情報(bào)研究、共享、共治機(jī)制,合作建立開源軟件漏洞情報(bào)庫。

四、結(jié)語

在企業(yè)數(shù)字化轉(zhuǎn)型過程中,開源軟件可以降低成本,提高效率,讓企業(yè)更專注于自己數(shù)字化業(yè)務(wù)需求實(shí)現(xiàn),已成為企業(yè)構(gòu)筑數(shù)字空間的基礎(chǔ)設(shè)施。開源軟件已經(jīng)站在企業(yè)數(shù)字化轉(zhuǎn)型舞臺(tái)中央,其安全性直接影響著數(shù)字空間的安全,因此,開源軟件的安全性應(yīng)得到充分關(guān)注和重視,亟待開展對(duì)開源軟件的全生命周期治理,為企業(yè)的數(shù)字化安全發(fā)展保駕護(hù)航。

 

(原載于《保密科學(xué)技術(shù)》雜志2020年7月刊)