數(shù)字化時(shí)代,軟件無(wú)處不在。軟件已經(jīng)成為支撐社會(huì)正常運(yùn)轉(zhuǎn)的最基本元素之一,軟件的安全性問(wèn)題也正在成為當(dāng)今社會(huì)的根本性、基礎(chǔ)性問(wèn)題。隨著軟件產(chǎn)業(yè)的快速發(fā)展,軟件供應(yīng)鏈也越發(fā)復(fù)雜多元,復(fù)雜的軟件供應(yīng)鏈會(huì)引入一系列的安全問(wèn)題,導(dǎo)致信息系統(tǒng)的整體安全防護(hù)難度越來(lái)越大。
一、軟件供應(yīng)鏈安全現(xiàn)狀
近年來(lái),針對(duì)軟件供應(yīng)鏈的安全攻擊事件一直呈快速增長(zhǎng)態(tài)勢(shì),造成的危害也越來(lái)越嚴(yán)重,其中,開(kāi)源軟件的安全問(wèn)題尤其值得關(guān)注。
?。ㄒ唬?供應(yīng)鏈安全事件持續(xù)高發(fā)
軟件供應(yīng)鏈安全事件愈演愈烈,下表歸納了最近一年的典型事件,但這只是冰山一角。不難看出,供應(yīng)鏈攻擊可謂無(wú)處不在,在軟件生命周期的各個(gè)環(huán)節(jié)中、軟件產(chǎn)品的各種元素上都可能發(fā)生。
表 1 近一年主要軟件供應(yīng)鏈安全事件
?。ǘ┲饕浖?yīng)鏈攻擊類(lèi)型
軟件產(chǎn)品的生命周期包括設(shè)計(jì)、生產(chǎn)、交付、部署、使用及運(yùn)營(yíng)、停止等階段。面向此生命周期所涉及的分工協(xié)作、聯(lián)合攻關(guān)、平臺(tái)環(huán)境等就是軟件供應(yīng)鏈的主要內(nèi)容,軟件供應(yīng)鏈的主要攻擊類(lèi)型也與這些環(huán)節(jié)密切相關(guān)。
生產(chǎn)階段涉及軟件產(chǎn)品的開(kāi)發(fā)、集成、構(gòu)建等,此階段的供應(yīng)鏈安全問(wèn)題主要包括三類(lèi):第一類(lèi)是針對(duì)軟件生產(chǎn)要素的攻擊,即攻擊者利用安全漏洞、后門(mén)等修改編碼環(huán)境、源碼庫(kù)等開(kāi)發(fā)工具或軟件自身,植入惡意代碼,并經(jīng)網(wǎng)絡(luò)、存儲(chǔ)介質(zhì)等進(jìn)行傳播,用戶(hù)下載使用后,引入風(fēng)險(xiǎn);第二類(lèi)是開(kāi)發(fā)者對(duì)所使用的第三方軟件,特別是開(kāi)源組件未經(jīng)安全測(cè)試而直接使用,不了解其中的安全漏洞和法律風(fēng)險(xiǎn);第三類(lèi)是軟件產(chǎn)品構(gòu)建時(shí),在編譯和鏈接、產(chǎn)品容器化、打包等過(guò)程中,使用的工具或產(chǎn)品對(duì)象本身被污染或惡意修改而帶來(lái)的安全風(fēng)險(xiǎn),如 Codecov事件。
交付和運(yùn)營(yíng)階段涉及軟件產(chǎn)品的發(fā)布、傳輸、下載、安裝、補(bǔ)丁升級(jí)等,互聯(lián)網(wǎng)或移動(dòng)傳輸介質(zhì)是其重要手段。在發(fā)布和下載方面,發(fā)布渠道或商城如對(duì)軟件安全性缺乏分析和測(cè)試則會(huì)存在潛在風(fēng)險(xiǎn);攻擊者可通過(guò)捆綁攻擊,在常用軟件中捆綁額外功能,如果這些功能涉及用戶(hù)隱私、信息的收集,則后患無(wú)窮;針對(duì)發(fā)布站點(diǎn)的攻擊,如域名劫持(DNS)、內(nèi)容分發(fā)系統(tǒng)(CDN)緩存節(jié)點(diǎn)篡改等,會(huì)使用戶(hù)下載存在惡意代碼或后門(mén)的軟件。在軟件更新和升級(jí)方面,攻擊者可能通過(guò)中間人攻擊替換升級(jí)軟件或補(bǔ)丁包,或誘導(dǎo)用戶(hù)從非官方發(fā)布渠道下載,以達(dá)到攻擊的目的,也可能使用捆綁攻擊在升級(jí)包中增加額外軟件功能。
?。ㄈ╅_(kāi)源安全問(wèn)題應(yīng)特別關(guān)注
Gartner 報(bào)告曾指出,在當(dāng)前 DevOps 之類(lèi)的開(kāi)發(fā)模式下,應(yīng)用程序中大部分代碼是被“組裝”而不是“開(kāi)發(fā)”出來(lái)的。據(jù)其統(tǒng)計(jì),超過(guò) 95% 的組織在業(yè)務(wù)關(guān)鍵 IT 系統(tǒng)中都主動(dòng)或被動(dòng)地使用了重要的開(kāi)源軟件(OSS)資產(chǎn);Forrester Research 研究也表明,應(yīng)用軟件 80%~90% 的代碼來(lái)自開(kāi)源組件。因此,開(kāi)源組件的安全性直接關(guān)系到信息系統(tǒng)基礎(chǔ)設(shè)施的安全,但從前表中可以看出,開(kāi)源安全性不容樂(lè)觀,它已成為軟件供應(yīng)鏈安全問(wèn)題增長(zhǎng)的重要因素。
今年 6 月,奇安信代碼安全實(shí)驗(yàn)室發(fā)布了《2021中國(guó)軟件供應(yīng)鏈安全分析報(bào)告》。報(bào)告通過(guò)對(duì) 2188個(gè)企業(yè)軟件項(xiàng)目的檢測(cè)結(jié)果進(jìn)行分析,得出了開(kāi)源使用的安全狀況:所有軟件項(xiàng)目均使用了開(kāi)源軟件,平均每個(gè)項(xiàng)目使用開(kāi)源軟件數(shù)量達(dá) 135 個(gè),使用最多的開(kāi)源軟件出現(xiàn)在 581 個(gè)項(xiàng)目中,滲透率達(dá)到了26.6%;平均每個(gè)軟件項(xiàng)目存在 52.5 個(gè)開(kāi)源軟件漏洞,存在開(kāi)源軟件漏洞、高危開(kāi)源軟件漏洞和超危開(kāi)源軟件漏洞的項(xiàng)目分別為 1695 個(gè)、1559 個(gè)、1319個(gè),占比分別為 77.5%、71.3%、60.3%;影響面最大的開(kāi)源軟件漏洞 (Spring FrameWork 漏洞 ) 出現(xiàn)在973 個(gè)項(xiàng)目中,滲透率高達(dá) 44.5%,一旦該漏洞被攻擊者利用,將影響近半數(shù)的企業(yè)軟件,波及的企業(yè)數(shù)量更加不計(jì)其數(shù)。
此外,根據(jù)奇安信代碼安全實(shí)驗(yàn)室另一項(xiàng)針對(duì)聯(lián)網(wǎng)設(shè)備固件的安全檢測(cè)表明,攝像頭、路由器等智能聯(lián)網(wǎng)設(shè)備的開(kāi)源軟件安全問(wèn)題也很突出:許多多年之前的老舊漏洞未進(jìn)行及時(shí)修復(fù),86.4% 的設(shè)備的最新固件存在至少一個(gè)老舊開(kāi)源軟件漏洞,漏洞最多的固件存在 74 個(gè)老舊開(kāi)源軟件漏洞,甚至2014 年曝出的“心臟滴血”漏洞,仍然存在于 5.3%的最新設(shè)備中。
?。ㄋ模┕?yīng)鏈攻擊頻發(fā)原因分析
生產(chǎn)模式的變化。用戶(hù)對(duì)軟件功能、應(yīng)用實(shí)效等方面的需求越來(lái)越高,這就要求開(kāi)發(fā)者在短時(shí)間內(nèi)實(shí)現(xiàn)相應(yīng)功能,還要持續(xù)不斷地進(jìn)行迭代更新。軟件系統(tǒng)往往由自主研發(fā)的、開(kāi)源獲取的、外包開(kāi)發(fā)的、商業(yè)購(gòu)買(mǎi)的等多種來(lái)源的部件組合而成,為了響應(yīng)快速開(kāi)發(fā)的需求,軟件供應(yīng)鏈中第三方來(lái)源的如開(kāi)源、外包、商業(yè)等成分軟件的占比會(huì)增加,從而引入更多“不可控”成分,增加了軟件安全評(píng)估的難度,也提高了軟件供應(yīng)鏈風(fēng)險(xiǎn)。
軟件自身的變化。軟件系統(tǒng)規(guī)模越來(lái)越大,程序邏輯越來(lái)越復(fù)雜,因此對(duì)軟件的理解和分析也越來(lái)越難,這也造成了對(duì)軟件把關(guān)和分析技術(shù)的門(mén)檻越來(lái)越高。另外,開(kāi)源、庫(kù)文件等提高了代碼復(fù)用性,但在算法、結(jié)構(gòu)、邏輯、特性等復(fù)用的同時(shí),也帶來(lái)了缺陷、漏洞等風(fēng)險(xiǎn)的復(fù)制,極大增加了供應(yīng)鏈的攻擊面,會(huì)造成某一點(diǎn)問(wèn)題的大面積爆發(fā),利用Struts2 等開(kāi)源漏洞攻擊的影響面之廣就是個(gè)很好的例子。
環(huán)境渠道的多樣。軟件產(chǎn)品開(kāi)發(fā)、構(gòu)建、部署、交付等環(huán)節(jié)的生產(chǎn)線環(huán)境和發(fā)布渠道越來(lái)越多樣化、多元化,IDE、代碼管理系統(tǒng)、Bug 管理系統(tǒng)、構(gòu)建工具、CI/CD 工具、云平臺(tái)部署、交付方式等的選擇越來(lái)越多,這些輔助工具或渠道的不安全因素會(huì)作為“基因”傳導(dǎo)至軟件產(chǎn)品中,也會(huì)增加軟件供應(yīng)鏈的攻擊面。
二、美國(guó)和我國(guó)的相關(guān)舉措分析
(一) 美國(guó)加快供應(yīng)鏈風(fēng)險(xiǎn)管理步伐
早在 2013 年,美國(guó)就發(fā)布了第一部 ICT 供應(yīng)鏈安全方面的標(biāo)準(zhǔn)《供應(yīng)商關(guān)系的信息安全(ISO/IEC 27036)》,針對(duì)客戶(hù)和供應(yīng)商之間的購(gòu)買(mǎi)與供應(yīng)關(guān)系,規(guī)定了信息安全管理框架;又于 2015 年發(fā)布了《聯(lián)邦信息系統(tǒng)和組織供應(yīng)鏈風(fēng)險(xiǎn)管理方法(NIST SP800-161)》,用于指導(dǎo)美國(guó)聯(lián)邦政府機(jī)構(gòu)管理 ICT 供應(yīng)鏈的安全風(fēng)險(xiǎn),包括識(shí)別、評(píng)估和緩解 ICT 供應(yīng)鏈風(fēng)險(xiǎn)等。2020 年底爆發(fā)的“太陽(yáng)風(fēng)”(SolarWinds)供應(yīng)鏈攻擊事件,使得美國(guó)政府對(duì)供應(yīng)鏈安全的重視進(jìn)一步提升。下表列舉了 2021 年以來(lái)其在供應(yīng)鏈安全風(fēng)險(xiǎn)管理方面的一些行動(dòng),可以看出,步伐明顯加快。
表 2 美國(guó)供應(yīng)鏈安全風(fēng)險(xiǎn)管理舉措
?。ǘ?我國(guó)相關(guān)法規(guī)和標(biāo)準(zhǔn)日趨完善
近年來(lái),我國(guó)在網(wǎng)絡(luò)安全領(lǐng)域的重要法規(guī)頻頻出臺(tái),對(duì)供應(yīng)鏈安全的要求也多有涉及?!毒W(wǎng)絡(luò)安全法》規(guī)定了網(wǎng)絡(luò)產(chǎn)品和服務(wù)提供者的職責(zé),包括嚴(yán)禁的行為、及時(shí)采取補(bǔ)救措施、告知報(bào)告義務(wù)、維護(hù)的延續(xù)性等;《網(wǎng)絡(luò)安全法》《網(wǎng)絡(luò)安全審查辦法》和《關(guān)鍵信息基礎(chǔ)設(shè)施安全保護(hù)條例》針對(duì)關(guān)鍵信息基礎(chǔ)設(shè)施的供應(yīng)鏈安全提出了要求,包括對(duì)可能影響國(guó)家安全的設(shè)施進(jìn)行安全審查、網(wǎng)絡(luò)產(chǎn)品和服務(wù)提供者應(yīng)配合審查并承諾避免危及供應(yīng)鏈安全的行為、安全審查時(shí)考慮供應(yīng)鏈風(fēng)險(xiǎn)方面的因素、優(yōu)先采購(gòu)安全可信的網(wǎng)絡(luò)產(chǎn)品和服務(wù)、與提供者簽署協(xié)議等。
我國(guó)在供應(yīng)鏈安全方面的標(biāo)準(zhǔn)體系也日趨完善。《信息安全技術(shù) 信息技術(shù)產(chǎn)品供應(yīng)方行為安全準(zhǔn)則》(GB/T 32921-2016)從供應(yīng)商角度入手,規(guī)定了信息技術(shù)產(chǎn)品供應(yīng)方的行為安全準(zhǔn)則;《信息安全技術(shù) ICT 供應(yīng)鏈安全風(fēng)險(xiǎn)管理指南》(GB/T 36637-2018)規(guī)定了信息通信技術(shù)(ICT)供應(yīng)鏈的安全風(fēng)險(xiǎn)管理過(guò)程和控制措施,適用于 ICT 供方和需方、第三方測(cè)評(píng)機(jī)構(gòu)等;國(guó)標(biāo)《信息安全技術(shù) 信息技術(shù)產(chǎn)品供應(yīng)鏈安全要求》針對(duì)關(guān)鍵信息基礎(chǔ)設(shè)施,規(guī)定了信息技術(shù)產(chǎn)品供應(yīng)方和需求方應(yīng)滿足的供應(yīng)鏈安全要求,該標(biāo)準(zhǔn)已完成征求意見(jiàn),即將發(fā)布;中國(guó)信息安全測(cè)評(píng)中心牽頭的國(guó)標(biāo)《信息安全技術(shù) 軟件供應(yīng)鏈安全要求》也在編制中,將對(duì)軟件供應(yīng)鏈所涉及的相關(guān)方應(yīng)滿足的安全要求進(jìn)行規(guī)范。此外,國(guó)內(nèi)有些標(biāo)準(zhǔn)雖并非專(zhuān)門(mén)針對(duì)供應(yīng)鏈安全,但也包含一些具體要求:《信息安全技術(shù) 網(wǎng)絡(luò)安全等級(jí)保護(hù)基本要求》(GB/T 22239-2019)在通用要求里,給出了產(chǎn)品采購(gòu)與使用、外包軟件開(kāi)發(fā)、服務(wù)供應(yīng)商選擇等方面的要求;《信息安全技術(shù) 云計(jì)算服務(wù)安全能力要求》(GB/T 31168-2014)對(duì)云服務(wù)商的供應(yīng)鏈從采購(gòu)過(guò)程、外部服務(wù)提供商、開(kāi)發(fā)商、防篡改、組件真實(shí)性、不被支持的系統(tǒng)組件、供應(yīng)鏈保護(hù)等方面提出了安全要求。
三、對(duì)策與建議
雖然我國(guó)已出臺(tái)了一系列針對(duì)軟件供應(yīng)鏈安全的法規(guī)和標(biāo)準(zhǔn),但包括風(fēng)險(xiǎn)的發(fā)現(xiàn)、分析、處置、防護(hù)等能力在內(nèi)的軟件供應(yīng)鏈安全管理水平仍有待繼續(xù)提升。建議從三個(gè)方面開(kāi)展相關(guān)工作。
?。ㄒ唬?政策層面
建議國(guó)家和行業(yè)監(jiān)管部門(mén)繼續(xù)完善和制定軟件供應(yīng)鏈安全相關(guān)的政策、標(biāo)準(zhǔn)和實(shí)施指南,建立長(zhǎng)效工作機(jī)制;建立國(guó)家級(jí)/行業(yè)級(jí)軟件供應(yīng)鏈安全風(fēng)險(xiǎn)分析平臺(tái),具備系統(tǒng)化、規(guī)模化的軟件源代碼缺陷和后門(mén)分析、軟件漏洞分析、開(kāi)源軟件成分及風(fēng)險(xiǎn)分析等能力,及時(shí)發(fā)現(xiàn)和處置軟件供應(yīng)鏈安全風(fēng)險(xiǎn)。
?。ǘ?用戶(hù)層面
建議政企用戶(hù)參照監(jiān)管要求及成功案例,明確本單位軟件供應(yīng)鏈安全管理的目標(biāo)、工作流程、檢查內(nèi)容、責(zé)任部門(mén)等;在采購(gòu)商用現(xiàn)貨軟件時(shí),應(yīng)充分評(píng)估供應(yīng)商的安全能力,與其簽署安全責(zé)任協(xié)議,要求提供所使用的第三方組件/開(kāi)源組件清單,并對(duì)出現(xiàn)的安全問(wèn)題提供必要的技術(shù)支持;在自行或委托第三方定制開(kāi)發(fā)軟件系統(tǒng)時(shí),應(yīng)遵循軟件安全開(kāi)發(fā)生命周期管理流程,對(duì)軟件源代碼進(jìn)行安全缺陷檢測(cè)和修復(fù),并重點(diǎn)管控開(kāi)源軟件的使用,建立開(kāi)源軟件資產(chǎn)臺(tái)賬,持續(xù)監(jiān)測(cè)和消減所使用開(kāi)源軟件的安全風(fēng)險(xiǎn)。建議個(gè)人用戶(hù)及時(shí)升級(jí)軟件或打補(bǔ)丁,開(kāi)啟軟件安全保護(hù)功能,不使用來(lái)源不明的應(yīng)用,做好賬戶(hù)密碼設(shè)置及管理。
?。ㄈ?廠商層面
建議軟件產(chǎn)品廠商提高安全責(zé)任意識(shí),嚴(yán)控產(chǎn)品安全質(zhì)量;建立清晰的軟件供應(yīng)鏈安全策略,明確相關(guān)的管理目標(biāo)、工作流程、檢查內(nèi)容、責(zé)任部門(mén)等;嚴(yán)控上游,尤其重點(diǎn)管控開(kāi)源軟件的使用,建立開(kāi)源軟件資產(chǎn)臺(tái)賬,采用開(kāi)源安全治理工具,持續(xù)監(jiān)測(cè)和消減其安全風(fēng)險(xiǎn);嚴(yán)控自主開(kāi)發(fā)代碼的質(zhì)量,采用軟件源代碼安全分析工具,持續(xù)檢測(cè)和修復(fù)軟件源代碼中的安全缺陷和漏洞;建立完善的產(chǎn)品漏洞響應(yīng)機(jī)制,包括產(chǎn)品漏洞信息的收集、漏洞報(bào)告渠道的建立和維護(hù)、漏洞補(bǔ)丁的開(kāi)發(fā)和發(fā)布、客戶(hù)端漏洞應(yīng)急響應(yīng)和修復(fù)支持等。