鄭少凡,連宏浩,王 炅
(閩江學(xué)院計(jì)算機(jī)與控制工程學(xué)院,福建 福州 350108)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和工業(yè)互聯(lián)網(wǎng)等概念的提出和實(shí)現(xiàn),工業(yè)生產(chǎn)變得越發(fā)智能與高效,從傳統(tǒng)工業(yè)控制系統(tǒng)的相互獨(dú)立到現(xiàn)在的互聯(lián)開(kāi)放,工業(yè)控制系統(tǒng)受到攻擊的風(fēng)險(xiǎn)也是與日俱增,其中工控安全事件發(fā)生的重點(diǎn)領(lǐng)域集中在能源和供水系統(tǒng)。近年來(lái)國(guó)家的交通等重要行業(yè)已經(jīng)開(kāi)始進(jìn)行大規(guī)模信息化升級(jí)和改造,一旦受到攻擊則損失不可估量。隨著各類病毒和攻擊方式的不斷迭代翻新,在組合攻擊的威脅下原本被動(dòng)防御的防御方式顯得越發(fā)無(wú)力,在這樣的背景下主動(dòng)防御的概念被提出和實(shí)現(xiàn),本文介紹的攻擊圖模型就是主動(dòng)防御措施的一種。在攻擊圖理論的基礎(chǔ)上,進(jìn)行脆弱性加固和最佳蜜罐部署的實(shí)際應(yīng)用。
攻擊圖是一種根據(jù)網(wǎng)絡(luò)環(huán)境中的脆弱性繪制的有向圖,從攻擊的起始節(jié)點(diǎn)到網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)對(duì)其中的所有節(jié)點(diǎn)進(jìn)行描述,是一種將攻擊過(guò)程可視化的高效攻擊模型。通過(guò)借助攻擊圖,工程師可以更好地從全局把握當(dāng)前網(wǎng)絡(luò)的安全態(tài)勢(shì),更加高效地整合和分析當(dāng)前網(wǎng)絡(luò)環(huán)境中節(jié)點(diǎn)間的關(guān)系,可能存在的滲透路徑和關(guān)鍵脆弱節(jié)點(diǎn)等信息。
根據(jù)攻擊圖中節(jié)點(diǎn)和有向邊所代表的不同含義可以將常見(jiàn)的攻擊圖模型分為狀態(tài)攻擊圖和屬性攻擊圖兩個(gè)類型。
在狀態(tài)攻擊圖中,節(jié)點(diǎn)用于表示全局狀態(tài),其中包括主機(jī)信息,用戶權(quán)限和服務(wù)等,有向邊表示能夠引起狀態(tài)改變的攻擊行為。如果表示的網(wǎng)絡(luò)復(fù)雜度增加,狀態(tài)攻擊圖會(huì)發(fā)生狀態(tài)爆炸問(wèn)題,故狀態(tài)攻擊圖不適用于大規(guī)模網(wǎng)絡(luò)。
屬性攻擊圖模型中存在兩種節(jié)點(diǎn)類型,分別表示原子攻擊和原子攻擊發(fā)生的前提或后果,只有在滿足屬性節(jié)點(diǎn)的必須前提時(shí),原子攻擊才會(huì)發(fā)生。連接屬性節(jié)點(diǎn)和前提后果的有向邊成為前提邊和后果邊。屬性攻擊圖沒(méi)有爆炸問(wèn)題,但是可能含有圈,含圈會(huì)導(dǎo)致復(fù)雜度上升,但是可以通過(guò)層次整合等方式降低其影響或避免。
貝葉斯網(wǎng)絡(luò)是一種在以上兩種攻擊圖中引入了概率這一因素的改進(jìn)形式,在貝葉斯網(wǎng)絡(luò)中賦予了根節(jié)點(diǎn)概率值,通過(guò)根節(jié)點(diǎn)的概率值和節(jié)點(diǎn)間的因果關(guān)系進(jìn)行推導(dǎo),獲得后續(xù)節(jié)點(diǎn)的攻擊成功概率。張少俊等根據(jù)貝葉斯網(wǎng)絡(luò)攻擊圖提出了加入時(shí)間因素的動(dòng)態(tài)貝葉斯攻擊圖,可以隨著網(wǎng)絡(luò)中節(jié)點(diǎn)情況的變化及時(shí)更新攻擊圖中節(jié)點(diǎn)的攻擊成功概率。
0day 攻擊圖是一種通過(guò)漏洞數(shù)據(jù)庫(kù)數(shù)據(jù)整理出暫時(shí)沒(méi)有補(bǔ)丁和解決方案的0day 漏洞并據(jù)此優(yōu)化攻擊圖同時(shí)根據(jù)結(jié)果進(jìn)行網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估的一種生成方案,生成過(guò)程中假定網(wǎng)絡(luò)內(nèi)所有遠(yuǎn)程服務(wù)都存在0day 漏洞并基于攻擊者成功完成攻擊所需的0day 漏洞數(shù)量進(jìn)行網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估。
目前暫時(shí)沒(méi)有針對(duì)工控網(wǎng)絡(luò)的攻擊圖生成工具,可以根據(jù)需求選擇Attack Graph Toolkit 等開(kāi)源工具進(jìn)行攻擊圖的生成。
攻擊圖的生成大致可以分為三個(gè)階段,如圖1 所示
圖1 攻擊圖生成過(guò)程
2.1.1 可達(dá)性分析階段
可達(dá)性分析階段的主要工作是通過(guò)網(wǎng)絡(luò)掃描工具,例如Nmap,Nessus 等獲取目標(biāo)網(wǎng)絡(luò)的可達(dá)性信息,其中包括目標(biāo)網(wǎng)絡(luò)拓?fù)?,網(wǎng)絡(luò)中的主機(jī)信息等。其中主機(jī)信息又包含目標(biāo)網(wǎng)絡(luò)中主機(jī)上運(yùn)行的服務(wù),安裝的應(yīng)用,采用的信息過(guò)濾和訪問(wèn)控制規(guī)則等,以及網(wǎng)絡(luò)中防火墻等安全設(shè)備的安全策略配置與網(wǎng)絡(luò)中主機(jī)之間的信任關(guān)系。
2.1.2 攻擊圖建模階段
攻擊建模階段的主要工作內(nèi)容是將攻擊者初始獲得的權(quán)限、目標(biāo)網(wǎng)絡(luò)中主機(jī)存在的漏洞、與這些漏洞相關(guān)聯(lián)的權(quán)限、攻擊實(shí)例以及實(shí)例見(jiàn)的結(jié)構(gòu)和關(guān)系進(jìn)行量化和表示。
2.1.3 攻擊圖構(gòu)建階段
構(gòu)建用于構(gòu)造攻擊圖的核心算法,定義攻擊圖的類型與表示方法,通過(guò)對(duì)算法的改動(dòng)建立更優(yōu)的攻擊路徑,同時(shí)進(jìn)行攻擊圖的關(guān)鍵路徑抽取,以降低復(fù)雜性及完成環(huán)狀路徑的消除。
目前大規(guī)模使用的開(kāi)源攻擊圖生成工具主要有MulVAL 和Attack Graph Toolkot 兩種,其中后者由于模型選擇和復(fù)雜度管理方面的問(wèn)題導(dǎo)致其算法復(fù)雜度達(dá)到了指數(shù)級(jí),故難以應(yīng)用于復(fù)雜網(wǎng)絡(luò)環(huán)境中,因此在本文中選用前者作為示例。
MulVAL 是一款由普林斯頓大學(xué)研究者開(kāi)發(fā)的,Linux 平臺(tái)下的開(kāi)源攻擊圖生成工具,基于Nessus或OVAL 掃描輸出的漏洞信息進(jìn)行攻擊圖生成,故可以在Kali Linux 中安裝并直接使用預(yù)裝的Nessus作為輸入,其漏洞信息來(lái)源為CVE 漏洞信息庫(kù),主要應(yīng)用場(chǎng)景是企業(yè)網(wǎng)絡(luò)威脅感知和主動(dòng)防御。
MulVAL 使用Datalog 或Prolog 作為模型語(yǔ)言,將輸入的漏洞信息、網(wǎng)絡(luò)管理策略、網(wǎng)絡(luò)拓?fù)涞刃畔⑥D(zhuǎn)化為Datalog 語(yǔ)言的事實(shí)并交由推導(dǎo)引擎進(jìn)行攻擊過(guò)程的推導(dǎo),最后由可視化工具輸出為可視化屬性攻擊圖。
構(gòu)建圖2 所示的網(wǎng)絡(luò)拓?fù)洳⑦M(jìn)行測(cè)試,生成攻擊圖如圖2 所示,其中圓形結(jié)點(diǎn)表示原子攻擊,方形節(jié)點(diǎn)表示初始條件,菱形結(jié)點(diǎn)表示中間條件。
在攻擊圖的應(yīng)用中,往往簡(jiǎn)單的網(wǎng)絡(luò)環(huán)境就會(huì)輸出如圖2 的復(fù)雜且規(guī)模較大的攻擊圖,故需要改進(jìn)生成算法等方式簡(jiǎn)化生成結(jié)果。
圖2 試驗(yàn)網(wǎng)絡(luò)拓?fù)?/p>
除了狀態(tài)攻擊圖,其他形式的攻擊圖都存在攻擊圖含有環(huán)形攻擊路徑的問(wèn)題,即當(dāng)前節(jié)點(diǎn)的前置節(jié)點(diǎn)存在于已計(jì)算過(guò)的路徑中,這樣的問(wèn)題會(huì)導(dǎo)致攻擊圖復(fù)雜度大幅上升,但是在真實(shí)的攻擊中通常并不會(huì)使用含圈攻擊路徑進(jìn)行,即攻擊者是理性的,不會(huì)重復(fù)已經(jīng)進(jìn)行過(guò)的步驟,故需要通過(guò)算法改進(jìn)來(lái)去除生成的重復(fù)攻擊路徑。在攻擊圖構(gòu)建過(guò)程中引入單調(diào)性假設(shè)和概率性可以有效減少環(huán)形攻擊路徑的出現(xiàn),即假設(shè)攻擊者在攻擊過(guò)程中的能力是不斷增長(zhǎng)且不會(huì)失去的。
當(dāng)網(wǎng)絡(luò)被分割為過(guò)多層次,則每個(gè)結(jié)點(diǎn)之間都會(huì)存在一條攻擊路徑,但是很多情況下可以將多個(gè)結(jié)點(diǎn)進(jìn)行聚合成為一個(gè)含有多個(gè)元素的結(jié)點(diǎn),比如將同一個(gè)子網(wǎng)下的主機(jī)和原子攻擊聚合成為一個(gè)結(jié)點(diǎn),這樣的處理可以有效減少攻擊圖的復(fù)雜度,但是實(shí)現(xiàn)規(guī)則的指定過(guò)程較為復(fù)雜。
通過(guò)將攻擊圖方法與概率算法,諸如蟻群算法或粒子群算法的結(jié)合也可以優(yōu)化攻擊圖生成效果并且簡(jiǎn)化生成結(jié)果,亦可以結(jié)合機(jī)器學(xué)習(xí)的方式,訓(xùn)練模型模擬攻擊者可能的攻擊思路,優(yōu)化攻擊圖中路徑的權(quán)重分配并改進(jìn)生成結(jié)果。
在動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下,當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)的狀態(tài)或網(wǎng)絡(luò)的整體狀態(tài)發(fā)生變化后,攻擊路徑的起點(diǎn),攻擊者的初始能力,網(wǎng)絡(luò)環(huán)境中脆弱性之間的互相聯(lián)系都有可能發(fā)生改變,這樣的改變將會(huì)影響到生成的攻擊圖結(jié)果。針對(duì)這種情況可以采用基于逆向搜索的攻擊圖動(dòng)態(tài)生成方案,即從目標(biāo)節(jié)點(diǎn)開(kāi)始反向向攻擊者進(jìn)行逆向拓展。
工業(yè)控制系統(tǒng)是從直接數(shù)字控制方式發(fā)展而來(lái)的,由一系列自動(dòng)化控制器件和監(jiān)控器件組成的工業(yè)生產(chǎn)控制系統(tǒng),從網(wǎng)絡(luò)結(jié)構(gòu)分析,一個(gè)典型的工控網(wǎng)絡(luò)可以分為外部網(wǎng)絡(luò)、企業(yè)管理、狀態(tài)監(jiān)控、實(shí)際控制等部分,具有明顯的層次結(jié)構(gòu)。常見(jiàn)的工控網(wǎng)絡(luò)體系架構(gòu)有雙防火墻架構(gòu)、單一防火墻的?;饏^(qū)架構(gòu),骨干網(wǎng)體系架構(gòu)和數(shù)據(jù)DMZ 區(qū)等。
根據(jù)圖3 中中國(guó)關(guān)鍵基礎(chǔ)設(shè)施安全應(yīng)急響應(yīng)中心工控漏洞子庫(kù)的數(shù)據(jù)可以看出,目前收錄的工控系統(tǒng)漏洞已經(jīng)超過(guò)三千個(gè)且每年以超過(guò)300個(gè)的速度增長(zhǎng),其中接近50%是高危漏洞,只有小部分危險(xiǎn)性較低。
圖3 工控系統(tǒng)漏洞發(fā)現(xiàn)趨勢(shì)與危害等級(jí)
有效的安全風(fēng)險(xiǎn)評(píng)估應(yīng)當(dāng)是定量的、基于模型的評(píng)估,能夠有效地監(jiān)控安全狀況,對(duì)系統(tǒng)中的關(guān)鍵脆弱點(diǎn)進(jìn)行發(fā)現(xiàn)和預(yù)警,并通過(guò)對(duì)安全狀態(tài)的監(jiān)控預(yù)測(cè)即將發(fā)生的風(fēng)險(xiǎn),指導(dǎo)系統(tǒng)的加固。利用攻擊圖進(jìn)行風(fēng)險(xiǎn)評(píng)估的方式無(wú)疑符合以上的要求。
通過(guò)生成攻擊圖可以清晰地展現(xiàn)出網(wǎng)絡(luò)環(huán)境中各脆弱點(diǎn)之間的依賴關(guān)系,通過(guò)類比AOV 網(wǎng)可知,通過(guò)將其中的關(guān)鍵路徑實(shí)現(xiàn)難度加大致使攻擊無(wú)法成功,或攻擊成本和技術(shù)要求大幅提升,以實(shí)現(xiàn)在最小花銷的情況下實(shí)現(xiàn)成本與風(fēng)險(xiǎn)承受能立的平衡。
基于攻擊圖的攻防博弈模型首先由姜偉等提出并實(shí)現(xiàn),姜偉等基于攻擊圖建立攻防博弈模型,給出主動(dòng)防御選取算法,基于此算法可以依據(jù)攻擊圖進(jìn)行脆弱性加固以實(shí)現(xiàn)主動(dòng)防御。
蜜罐技術(shù)是一種主動(dòng)防御技術(shù),通過(guò)在網(wǎng)絡(luò)中部署偽裝成計(jì)算機(jī)或服務(wù)器的虛擬蜜罐設(shè)備來(lái)欺騙攻擊者,能夠收集攻擊者信息,發(fā)出警報(bào),同時(shí)分散攻擊者的注意,增加攻擊成本。但蜜罐設(shè)備本身并不承載實(shí)際功能或運(yùn)行服務(wù)且其中不包含有效信息,故遭到攻擊并不影響安全性。
博弈論是關(guān)于策略互相作用的理論,主要研究的是在決策主體各方中如何以他人將會(huì)有的反應(yīng)作為自己行動(dòng)選擇的依據(jù),主動(dòng)防御屬于其中的非合作博弈。
借助博弈論方法結(jié)合攻擊圖模型,可以在網(wǎng)絡(luò)中確定一個(gè)部署蜜罐位置的最優(yōu)解,讓蜜罐有迷惑性的同時(shí)能夠?qū)撛诘陌踩L(fēng)險(xiǎn)進(jìn)行及時(shí)告警,最大限度維護(hù)系統(tǒng)安全。
在網(wǎng)絡(luò)通信與民生、國(guó)防結(jié)合日益緊密的今天,為了應(yīng)對(duì)愈發(fā)多樣化的網(wǎng)絡(luò)安全威脅和攻擊者不斷提升的攻擊水平,需要結(jié)合各方面的知識(shí)來(lái)維護(hù)網(wǎng)絡(luò)安全,為網(wǎng)絡(luò)管理者提供更優(yōu)的安全防御策略。諸如文中介紹的攻擊圖主動(dòng)防御方式作為基礎(chǔ),可以結(jié)合數(shù)學(xué),運(yùn)籌學(xué)等諸多學(xué)科門類,達(dá)到更好效果。