軟件供應(yīng)鏈安全治理需打好“團(tuán)體賽”
如今,軟件供應(yīng)鏈攻擊已成為突破業(yè)務(wù)防線的新路徑之一。在近幾年的重大安全事件、實(shí)戰(zhàn)攻防演練中,已頻現(xiàn)軟件供應(yīng)鏈攻擊的身影。
2020年12月,基礎(chǔ)網(wǎng)絡(luò)管理軟件供應(yīng)商SolarWinds遭遇軟件供應(yīng)鏈攻擊,受到攻擊的不僅是SolarWinds服務(wù)的多家科技公司,還有其服務(wù)的大量制造業(yè)公司。隨著時間的推移,此次供應(yīng)鏈攻擊事件波及范圍極大,包括政府部門、關(guān)鍵基礎(chǔ)設(shè)施以及多家全球500強(qiáng)企業(yè)。
事故發(fā)生后的1個月,SolarWinds的股價下跌了50%。2021年12月,Apache開源項(xiàng)目Log4j爆出核彈級漏洞,攻擊者僅需一段代碼就可以遠(yuǎn)程控制目標(biāo)服務(wù)器。
由于Log4j被廣泛地應(yīng)用在中間件、開發(fā)框架、Web應(yīng)用中,而這些中間件和開發(fā)框架作為軟件基礎(chǔ)又被其他軟件系統(tǒng)使用,因此Log4j被極其廣泛的應(yīng)用在各大軟件系統(tǒng)里面。利用此漏洞進(jìn)行軟件供應(yīng)鏈攻擊造成的嚴(yán)重性、影響面,堪稱2021年之最。
除此之外,Linux“臟管道”事件、周下載量超過700萬次的JavaScript流行庫ua-parser 賬戶遭接管、影響多家大廠的依賴混淆、PHP源代碼事件等供應(yīng)鏈安全事件頻發(fā)。
據(jù)Sonatype公司的調(diào)查,供應(yīng)鏈攻擊行為比去年增加了430%。這盆冷水讓大多數(shù)開發(fā)人員意識到,他們的軟件供應(yīng)鏈有嚴(yán)重的安全問題。
過去幾十年,大大小的公司都把注意力聚焦在軟件構(gòu)建和各自的生產(chǎn)環(huán)境上,雖然在基礎(chǔ)設(shè)施方面做得非常好,但攻擊者卻到了更簡單的方法,即從敞開的供應(yīng)鏈大門中進(jìn)入。
事實(shí)上,軟件供應(yīng)鏈安全風(fēng)險防控并不容易,最大的挑戰(zhàn)就在于供應(yīng)鏈的復(fù)雜性。那么,軟件供應(yīng)鏈安全治理到底該如何做?
軟件供應(yīng)鏈安全的復(fù)雜性
所謂軟件供應(yīng)鏈攻擊,顧名思義,指的就是針對軟件供應(yīng)鏈所發(fā)動的網(wǎng)絡(luò)攻擊,攻擊者會先攻擊軟件供應(yīng)鏈中安全防護(hù)相對薄弱的部分,然后再利用軟件供應(yīng)鏈之間的相互連接(如軟件供應(yīng)、開源應(yīng)用)等,將風(fēng)險擴(kuò)大至上下游企業(yè),對大量的供應(yīng)商和最終用戶帶來巨大影響。
與其它攻擊形式相比,軟件供應(yīng)鏈攻擊往往會產(chǎn)生“牽一發(fā)而動全身”的效果。因此,僅僅對軟件供應(yīng)鏈某個單一環(huán)節(jié)進(jìn)行安全防護(hù)是遠(yuǎn)遠(yuǎn)不夠的,需要從其供應(yīng)過程和軟件自身安全出發(fā)。
根據(jù)軟件供應(yīng)鏈的特點(diǎn),軟件供應(yīng)鏈的業(yè)務(wù)流程可以抽象成開發(fā)、交付以及應(yīng)用三個環(huán)節(jié)。
開發(fā)環(huán)節(jié)
主要是指軟件開發(fā)商的編程人員根據(jù)用戶(含定制用戶)的需求,進(jìn)行編程并完成軟件包提供的過程。該過程主要涉及用戶需求、編程語言、開發(fā)環(huán)境、開發(fā)框架、測試和封包等。
在這個階段,尚未有統(tǒng)一的、經(jīng)過安全檢驗(yàn)的發(fā)布渠道,多數(shù)工具未經(jīng)檢測直接發(fā)布;工具及庫通常由商業(yè)公司或個人開發(fā),因代碼復(fù)雜,編程人員往往依據(jù)將易用性作為選擇開發(fā)配套的唯一標(biāo)準(zhǔn),缺乏安全的意識。
因此,在開發(fā)階段存在被病毒污染的可能,導(dǎo)致開發(fā)出的功能模塊默認(rèn)感染病毒。同時,在進(jìn)行源代碼打包或開發(fā)過程中,對功能模塊進(jìn)行后門留存,給程序的開發(fā)環(huán)境以及后續(xù)的使用環(huán)境,都帶來了安全隱患。
此外,程序開發(fā)環(huán)境一般屬于核心區(qū)域,一旦編程人員下載了不安全的工具,則可能直接導(dǎo)致整體編程環(huán)境出現(xiàn)重大安全隱患,所有從該環(huán)境出入的代碼,都可能存在泄密、篡改等風(fēng)險。在軟件測試環(huán)節(jié)也是如此。
如果進(jìn)行源代碼測試、封包的工具存在惡意代碼感染,則可能感染整體測試環(huán)境;測試人員不具備安全意識,測試電腦在不安全的環(huán)境進(jìn)行操作,則帶來次生感染。
交付環(huán)節(jié)
主要是指開發(fā)商或者推廣商通過互聯(lián)網(wǎng)網(wǎng)站、在線商城、社交工具、在線網(wǎng)盤或者通過存儲介質(zhì),將開發(fā)或定制的軟件交付給最終用戶。
在發(fā)布渠道方面,目前主流的軟件發(fā)布渠道缺乏有效的監(jiān)管,各應(yīng)用發(fā)布商缺乏對軟件發(fā)布的安全審核;從應(yīng)用在上傳至渠道用于下載的傳輸途徑、存儲、發(fā)布等環(huán)節(jié),易發(fā)生多維度的篡改行為,導(dǎo)致渠道風(fēng)險的發(fā)生;非官方發(fā)布平臺直接發(fā)布或被篡改并植入惡意代碼,造成感染。
在發(fā)布下載方面,軟件廠商出于推廣需要,多數(shù)軟件往往會對自有軟件進(jìn)行捆綁安裝,已形成了完整的灰色產(chǎn)業(yè)鏈,缺乏對捆綁軟件的審核機(jī)制。同時,常見如域名劫持(DNS)、內(nèi)容分發(fā)系統(tǒng)(CDN)緩存節(jié)點(diǎn)篡改等,導(dǎo)致用戶在不知情的情況下,下載存在惡意代碼或后門的軟件。
應(yīng)用環(huán)節(jié)
主要是指最終用戶使用該軟件產(chǎn)品,包括下載、安裝、注冊、付費(fèi)、使用、故障修復(fù)、升級、卸載等全部過程。
在安裝方面,安裝源自身可能存在隱患,安裝時往往會配套一個腳本安裝工具代為執(zhí)行,但是安裝工具的出現(xiàn)無疑會增加整體使用供應(yīng)鏈的安全。
在升級方面,升級包是對原軟件進(jìn)行升級的代碼包,未經(jīng)認(rèn)證的升級包存在一定的安全風(fēng)險;官方廠商以及第三方非認(rèn)證組織往往會通過自身渠道進(jìn)行補(bǔ)丁包發(fā)布,終端用戶多數(shù)不會進(jìn)行分辨,下載即安裝。
在卸載方面,官方應(yīng)用往往會將卸載工具內(nèi)嵌至應(yīng)用中,但是對于部分應(yīng)用由于其卸載不便,且容易殘留,提供的第三方卸載工具,也會存在安全隱患。
軟件供應(yīng)鏈安全
治理框架的推進(jìn)
為了應(yīng)對不斷升級的軟件供應(yīng)鏈安全威脅,業(yè)界已經(jīng)在逐步推出軟件供應(yīng)鏈安全框架。
最為知名的莫過于Google的軟件供應(yīng)鏈安全框架SLSA,用于確保整個軟件供應(yīng)鏈中軟件工件完整性的端到端框架。
SLSA以Google內(nèi)部的“Borg二進(jìn)制授權(quán)”(BAB)為主導(dǎo)——Google八年來一直使用這一流程來驗(yàn)證代碼出處和實(shí)現(xiàn)代碼身份。
SLSA希望鎖定軟件開發(fā)鏈中的所有內(nèi)容,從開發(fā)人員到源代碼、開發(fā)平臺和CI/CD系統(tǒng)、以及包存儲庫和依賴項(xiàng)。
CNCF基金會托管的in-toto項(xiàng)目,也是一個通過收集和驗(yàn)證相關(guān)數(shù)據(jù)來保護(hù)軟件供應(yīng)鏈的框架。
它通過使庫能夠收集關(guān)于軟件供應(yīng)鏈行為的信息,并允許軟件消費(fèi)者和項(xiàng)目經(jīng)理發(fā)布關(guān)于軟件供應(yīng)鏈實(shí)踐的政策來做到這一點(diǎn),這些政策可以在部署或安裝軟件之前進(jìn)行驗(yàn)證。
簡而言之,它有助于捕獲軟件供應(yīng)鏈中發(fā)生的事情,并確保它按照定義的策略發(fā)生。
在國內(nèi),中國信通院也在助力企業(yè)針對軟件全生命周期進(jìn)行安全管控,以全鏈路安全保障為目標(biāo),建立了一系列軟件供應(yīng)鏈安全標(biāo)準(zhǔn)體系,并落地評估測試。
中國信通院認(rèn)為,針對軟件供應(yīng)鏈安全保障流程,可劃分為軟件供應(yīng)鏈入口(對內(nèi)引入)、自身(自研應(yīng)用)、出口(對外供給)三大階段,應(yīng)從軟件來源、軟件安全合規(guī)、軟件資產(chǎn)管理、服務(wù)支持、安全應(yīng)急響應(yīng)多個維度,對軟件供應(yīng)鏈安全保障能力進(jìn)行規(guī)范,搭建軟件供應(yīng)鏈安全模型。
在落地實(shí)踐方面,中國信通院已牽頭制定了研運(yùn)安全工具標(biāo)準(zhǔn)體系,包括:靜態(tài)應(yīng)用程序安全測試工具(SAST)、交互式應(yīng)用程序安全測試工具(IAST)、軟件組成分析工具(SCA)、應(yīng)用運(yùn)行時自我保護(hù)系統(tǒng)(RASP)、軟件物料清單建設(shè)總體框架(SBOM)等多項(xiàng)標(biāo)準(zhǔn)。
事實(shí)上,要做好軟件供應(yīng)鏈安全,不僅要在安全技術(shù)及工具上對軟件全生命周期的每個階段進(jìn)行安全防護(hù),形成開發(fā)運(yùn)營安全閉環(huán),還要從組織文化、安全開發(fā)流程等多角度考慮,不斷優(yōu)化流程實(shí)踐,以建立更安全的環(huán)境。
軟件供應(yīng)鏈安全的全球性政策
軟件供應(yīng)鏈安全是一個全球性問題,究其根本,是由于軟件行業(yè)全球化、市場化、模塊化的特點(diǎn)。為了防止諸如SolarWinds、Log4j等事件的再次發(fā)生,全球多國法規(guī)都在提升對供應(yīng)鏈安全的管控要求。
近期,美國和歐盟都發(fā)布了新的供應(yīng)鏈安全相關(guān)要求法案,要求廠商評估供應(yīng)鏈數(shù)字化產(chǎn)品的安全性。
美國和歐盟在各自的法案都提到了軟件安全檢測,軟件物料清單(SBOM)等內(nèi)容,這意味著通過強(qiáng)制性的網(wǎng)絡(luò)安全法規(guī)要求,企業(yè)必須通過披露SBOM、源代碼安全檢測等手段提升數(shù)字化產(chǎn)品安全性,才能繼續(xù)正常地銷售提供數(shù)字化產(chǎn)品。
美國白宮在9月14日發(fā)布了題為《通過安全的軟件開發(fā)實(shí)踐增強(qiáng)軟件供應(yīng)鏈的安全性》的備忘錄,要求供應(yīng)商產(chǎn)品需提供安全自我證明。自我證明是指開發(fā)人員必須提供以證明其符合安全軟件開發(fā)框架的文檔。
此外,美國政府還發(fā)布了《ICT供應(yīng)鏈風(fēng)險管理標(biāo)準(zhǔn)》(NIST SP800-161)、商用信息技術(shù)軟件及固件審查項(xiàng)目(VET)等,清楚界定了軟件供應(yīng)鏈中涉及存儲、檢索、修改、傳輸以及服務(wù)的相關(guān)標(biāo)準(zhǔn)與要求,在一定程度上規(guī)避了軟件供應(yīng)鏈面臨的諸多風(fēng)險。
歐盟在9月15日發(fā)布了題為《網(wǎng)絡(luò)彈性法案》(Cyber Resilience Act)的草案,旨在為聯(lián)網(wǎng)設(shè)備制定通用網(wǎng)絡(luò)安全標(biāo)準(zhǔn)。法案要求所有出口歐洲的數(shù)字化產(chǎn)品都必須提供安全保障、軟件物料清單SBOM、漏洞報(bào)告機(jī)制,以及提供安全補(bǔ)丁和更新。
違反規(guī)定的公司將面臨最高1500萬歐元或全球營收2.5%的罰款。在中國,近年來先后頒布的《中華人民共和國網(wǎng)絡(luò)安全法》、《網(wǎng)絡(luò)安全審查辦法》、《中華人民共和國國民經(jīng)濟(jì)和社會發(fā)展第十四個五年規(guī)劃和 2035 年遠(yuǎn)景目標(biāo)綱要》、《關(guān)鍵信息基礎(chǔ)設(shè)施安全保護(hù)條例》等政策法規(guī),都強(qiáng)調(diào)加強(qiáng)軟件供應(yīng)鏈的安全保障。
在標(biāo)準(zhǔn)制定方面,我國出臺了供應(yīng)鏈安全管理國家標(biāo)準(zhǔn)《信息安全技術(shù)ICT供應(yīng)鏈安全風(fēng)險管理指南》(GB/T 36637-2018),從產(chǎn)品全生命周期的角度開展風(fēng)險分析及管理,以實(shí)現(xiàn)供應(yīng)鏈的完整性、保密性、可用性和可控性安全目標(biāo)。
全國信息安全標(biāo)準(zhǔn)化技術(shù)委員會歸口的國家標(biāo)準(zhǔn)《信息安全技術(shù)軟件供應(yīng)鏈安全要求》已形成標(biāo)準(zhǔn)征求意見稿,規(guī)定了信息技術(shù)產(chǎn)品供應(yīng)方和需求方應(yīng)滿足的供應(yīng)鏈基本安全要求。
盡管國內(nèi)對軟件供應(yīng)鏈安全的重視認(rèn)知稍微滯后于國外,但隨著國內(nèi)技術(shù)的發(fā)展和安全意識覺醒,很快就能追趕上來。
結(jié)語
開源技術(shù)應(yīng)用、國際形勢復(fù)雜、軟件供應(yīng)鏈的多樣化,供應(yīng)鏈各個環(huán)節(jié)的攻擊急劇上升,已然成為網(wǎng)絡(luò)主要的安全成脅。想要做好軟件供應(yīng)鏈安全治理,需要打好“團(tuán)體賽”,由整個開源生態(tài)角色在供應(yīng)鏈的各個環(huán)節(jié),建立一系列的安全準(zhǔn)則和最佳實(shí)踐,切實(shí)保障整個網(wǎng)絡(luò)空間的安全。
【科技云報(bào)道原創(chuàng)】
轉(zhuǎn)載請注明“科技云報(bào)道”并附本文鏈接
原文標(biāo)題 : 軟件供應(yīng)鏈安全治理需打好“團(tuán)體賽”
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
圖片新聞
最新活動更多
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市