秦振翔, 馬潤年
(空軍工程大學(xué)信息與導(dǎo)航學(xué)院,西安,710077)
近些年來,先進(jìn)可持續(xù)性威脅(Advanced Persistent Threat,APT)的發(fā)展使網(wǎng)絡(luò)安全的形勢(shì)越來越嚴(yán)峻。傳統(tǒng)防御網(wǎng)絡(luò)所特有的確定性、相似性、靜態(tài)性及漏洞的持續(xù)性是現(xiàn)有網(wǎng)絡(luò)信息系統(tǒng)的致命安全缺陷[1]。這些缺陷將直接導(dǎo)致網(wǎng)絡(luò)信息系統(tǒng)始終處于被動(dòng)挨打的局面。因此,完善防衛(wèi)系統(tǒng)的防御強(qiáng)度就十分必要。然而,無論防御強(qiáng)度有多高,只要主機(jī)處于靜止?fàn)顟B(tài),攻擊者總有辦法通過時(shí)間成本來換取攻擊效益。移動(dòng)目標(biāo)防御就是設(shè)法打破這種靜止?fàn)顟B(tài),從而可以增加攻擊成本,使攻擊者得不償失。目前,在對(duì)移動(dòng)目標(biāo)防御中軟件層、平臺(tái)層、網(wǎng)絡(luò)層和數(shù)據(jù)層進(jìn)行的相關(guān)研究中,前人已取得了不少成果。
平臺(tái)層的移動(dòng)目標(biāo)防御通過構(gòu)建多樣化的運(yùn)行平臺(tái),進(jìn)而動(dòng)態(tài)改變其運(yùn)行環(huán)境,縮短應(yīng)用在某平臺(tái)上的暴露時(shí)間。文獻(xiàn)[3]應(yīng)用了相關(guān)Web服務(wù)多樣化技術(shù),提出了虛擬服務(wù)器軟件棧的設(shè)計(jì)方案,卻未進(jìn)一步對(duì)虛擬服務(wù)器的最大可暴露時(shí)間做定量分析;文獻(xiàn)[4]利用多樣化的軟件棧模板,設(shè)計(jì)了基于異構(gòu)平臺(tái)的虛擬服務(wù)器池,未對(duì)虛擬服務(wù)器的最大可暴露時(shí)間進(jìn)行定量分析;文獻(xiàn)[5]在平臺(tái)暴露時(shí)間和隨機(jī)遷移次序等因素影響下,提出了3種面向隔離區(qū)的主動(dòng)遷移策略,未進(jìn)一步對(duì)遷移時(shí)間做定量分析;文獻(xiàn)[6]基于前人移動(dòng)目標(biāo)防御的研究成果,進(jìn)行了分類與總結(jié),不需要定量分析虛擬服務(wù)器的最大可暴露時(shí)間;文獻(xiàn)[7]對(duì)動(dòng)態(tài)平臺(tái)技術(shù)作為防御機(jī)制進(jìn)行了定量評(píng)估,沒有進(jìn)一步分析虛擬服務(wù)器的最大可暴露時(shí)間;文獻(xiàn)[8]基于云計(jì)算對(duì)Web防御系統(tǒng)進(jìn)行了相關(guān)的研究,不需要對(duì)虛擬服務(wù)器的最大可暴露時(shí)間進(jìn)行定量分析;文獻(xiàn)[9]針對(duì)傳統(tǒng) Web 服務(wù)可信性難以適應(yīng)動(dòng)態(tài)評(píng)估的問題, 提出了一種基于信息熵權(quán)重和帶修正指標(biāo)的動(dòng)態(tài)信任評(píng)估模型(Dynamic Trustworthy Evaluation based on Information Entropy and Correction Metrics,DTEIECM),不需要對(duì)虛擬服務(wù)器的最大可暴露時(shí)間進(jìn)行定量分析;文獻(xiàn)[10]針對(duì)傳統(tǒng)網(wǎng)絡(luò)的靜態(tài)等特性,提出了一種軟件定義APT攻擊移動(dòng)防御網(wǎng)絡(luò)架構(gòu)(Software Defined Moving Target Defense Ar-chitecture, SDMTDA),不需要對(duì)虛擬服務(wù)器的最大可暴露時(shí)間進(jìn)行定量分析;文獻(xiàn)[11]針對(duì)端信息跳變的有關(guān)問題,提出了一種基于非廣延熵和Sibson 熵融合的實(shí)時(shí)網(wǎng)絡(luò)異常度量算法,不需要對(duì)虛擬服務(wù)器的最大可暴露時(shí)間進(jìn)行定量分析。而這些都未定量地對(duì)防御平臺(tái)中虛擬服務(wù)器的最大可暴露時(shí)間進(jìn)行分析。
不同的虛擬服務(wù)器在平臺(tái)上的暴露時(shí)間會(huì)有所不同,可能是因?yàn)楦鞣?wù)器中的被攻擊面不同。目前,很少有文獻(xiàn)在保證系統(tǒng)不被攻破的前提下對(duì)服務(wù)器的最大可暴露時(shí)間進(jìn)行定量的研究。本文假設(shè)防御者清楚狀態(tài)攻擊面,且攻擊者不能在某個(gè)時(shí)間段內(nèi)攻破。那么,保證系統(tǒng)虛擬服務(wù)器安全的時(shí)間至少大于系統(tǒng)虛擬服務(wù)器的最大可暴露時(shí)間。因此本文試圖基于模糊控制相關(guān)理論與技術(shù),以攻擊面的度量結(jié)果和漏洞評(píng)估結(jié)果為輸入,最終輸出服務(wù)器的最大可暴露時(shí)間,達(dá)到保證系統(tǒng)虛擬服務(wù)器不被攻破的目的。
如圖1,基于模糊控制技術(shù),對(duì)受到攻擊的虛擬服務(wù)器進(jìn)行相關(guān)攻擊信息的采集,分析后得到攻擊面數(shù)學(xué)期望,再根據(jù)國家信息安全漏洞庫(China National Vulnerability Database of Information Security, CNNVD)中的漏洞分級(jí)規(guī)范對(duì)系統(tǒng)漏洞進(jìn)行評(píng)估,得到一個(gè)評(píng)估分?jǐn)?shù),再將這2個(gè)指標(biāo)輸入到模糊控制器中,得到該服務(wù)器最大暴露時(shí)間。再將暴露時(shí)間反饋到控制程序,作為確定切換到下一個(gè)服務(wù)器時(shí)間點(diǎn)的參考依據(jù)。
圖1 基于模糊控制確定平臺(tái)暴露時(shí)間體系結(jié)構(gòu)
虛擬服務(wù)器一般由4個(gè)部分組成,每一個(gè)部分都有具體的構(gòu)成形式,Web服務(wù)多樣化即是讓各部分的具體構(gòu)成形式在兼容模式下進(jìn)行任意組合。
攻擊面是攻擊者進(jìn)入被攻擊系統(tǒng)的“橋梁”。一般來說,攻擊者可以通過一些系統(tǒng)的內(nèi)部程序、系統(tǒng)通道(如套接字)等和系統(tǒng)中共享的數(shù)據(jù)項(xiàng)來對(duì)目標(biāo)系統(tǒng)發(fā)起攻擊。這些資源在系統(tǒng)中某一時(shí)刻存在的可被攻擊點(diǎn)統(tǒng)稱為攻擊面[11]。在此,可以用Nessus對(duì)Web虛擬服務(wù)器進(jìn)行漏洞掃描,將漏洞作為攻擊面。
為了方便研究,設(shè)定9個(gè)虛擬服務(wù)器。每個(gè)虛擬服務(wù)器均有3種模式,即在線模式、關(guān)閉模式和離線模式。在線模式下,接受攻擊并收集攻擊者信息;關(guān)閉模式下,將收集到的攻擊信息進(jìn)行分析;離線模式下,對(duì)存儲(chǔ)的攻擊信息進(jìn)行清零操作,為再次收集做好準(zhǔn)備。
設(shè)Ai表示虛擬服務(wù)器i的在線模式,i=1,2,…,9。假定9個(gè)虛擬服務(wù)器只有一個(gè)處于在線模式,并且假設(shè)在平穩(wěn)狀態(tài)下虛擬服務(wù)器i處于在線模式的概率為xi,各個(gè)虛擬服務(wù)器的模式切換符合馬爾科夫鏈。規(guī)定服務(wù)器在完成切換的同時(shí),在線模式會(huì)自動(dòng)轉(zhuǎn)變成關(guān)閉模式,最后變成離線模式。設(shè)狀態(tài)Ai轉(zhuǎn)移到狀態(tài)Aj的轉(zhuǎn)移概率(各虛擬服務(wù)器間的切換概率)為pij,可得此系統(tǒng)狀態(tài)轉(zhuǎn)移矩陣為:
(1)
設(shè)各個(gè)狀態(tài)間轉(zhuǎn)移時(shí)間的間隔相等均為Δt∈[0,1],隨機(jī)化程度R∈[0,1],防御者對(duì)攻擊者探測(cè)報(bào)文的攔截率t∈[0,1],pdi是攻擊者探測(cè)到漏洞的概率,滿足以下函數(shù)關(guān)系:
式中:T0表示為掃描到該虛擬服務(wù)器中所有攻擊面(在此指漏洞)所需時(shí)間的最大值。
本文假設(shè)防御者清楚狀態(tài)攻擊面,且攻擊者不能在某個(gè)時(shí)間段內(nèi)攻破。在狀態(tài)空間A={A1,A2,…,A9}中,我們?nèi)我庠O(shè)定其中的狀態(tài)轉(zhuǎn)移(服務(wù)器切換)規(guī)則為:若轉(zhuǎn)移前它在A2,A3,…,A8,則它分別以1/3的概率向前、向后轉(zhuǎn)移或者保留原處;若轉(zhuǎn)移前,它在A1,則它以概率1轉(zhuǎn)移到A2;若轉(zhuǎn)移前,它在A9,則它以概率1轉(zhuǎn)移到A8。由此可得此系統(tǒng)的狀態(tài)轉(zhuǎn)移(服務(wù)器切換)概率矩陣為:
(2)
由馬爾科夫鏈的相關(guān)基礎(chǔ)知識(shí)可得:平穩(wěn)狀態(tài)X=(x1,x2,…,x9)可根據(jù)X=Xp可得:
(3)
解得:X=(1/23, 3/23,3/23,3/23,3/23,3/23,3/23,3/23,1/23)
不管初始狀態(tài)什么樣,系統(tǒng)在經(jīng)過轉(zhuǎn)移后,達(dá)到一個(gè)馬爾科夫平衡狀態(tài)。據(jù)此,可算出攻擊面的數(shù)學(xué)期望值:
(4)
式中:ki表示第i個(gè)虛擬服務(wù)器中的可被攻擊點(diǎn)的個(gè)數(shù),在此為Nessus掃描到的漏洞個(gè)數(shù)。
本文基于CNNVD漏洞分級(jí)規(guī)范來對(duì)Nessus掃描到的線上虛擬服務(wù)器的漏洞進(jìn)行相關(guān)評(píng)估。凡是被CNNVD收錄的漏洞,均適用此分級(jí)規(guī)范,包括采集的公開漏洞以及收錄的未公開漏洞,通用型漏洞及事件型漏洞[14]。該項(xiàng)評(píng)估主要基于可利用性指標(biāo)組和影響性指標(biāo)組來對(duì)其進(jìn)行定量評(píng)估。
如表1、表2所示,根據(jù)以下7種指標(biāo)來對(duì)系統(tǒng)漏洞進(jìn)行評(píng)估,再根據(jù)CNNVD分級(jí)規(guī)范給定的評(píng)分表,即可得出2組指標(biāo)的評(píng)分。2組指標(biāo)的評(píng)分和為評(píng)估結(jié)果。如:攻擊途徑為網(wǎng)絡(luò)、攻擊復(fù)雜度低、無權(quán)限要求和不需要用戶交互的情況下,可用性指標(biāo)組評(píng)分為3.89;在高機(jī)密性影響、高完整性影響和高可用性影響的情況下,影響性指標(biāo)組評(píng)分為5.87。因此2組評(píng)分和9.76即為最終的評(píng)分結(jié)果。
表1 可攻擊性指標(biāo)
表2 影響性指標(biāo)
在目前的平臺(tái)層的移動(dòng)目標(biāo)防御研究中,很少有對(duì)服務(wù)器最大可暴露時(shí)間做出相關(guān)定量研究。因此,本文試圖運(yùn)用模糊控制系統(tǒng)在仿真環(huán)境中對(duì)服務(wù)器可暴露時(shí)間做出定量分析。
圖2 模糊控制原理框圖
在模糊控制系統(tǒng)中,為方便研究,將2個(gè)輸入量分別模糊化成3個(gè)子集、輸出量模糊化成5個(gè)子集,再選取三角形隸屬函數(shù)。
1)對(duì)于攻擊面數(shù)學(xué)期望,選定3個(gè)模糊子集:期望值小(ES)、期望值中(EM)、期望值大(EL)。為研究方便,假設(shè)輸入x的定義域?yàn)閇0,6],則可得其隸屬函數(shù):
(5)
2)對(duì)于系統(tǒng)漏洞評(píng)估分?jǐn)?shù),選定3個(gè)模糊子集:分?jǐn)?shù)低(SS)、分?jǐn)?shù)中(SM)、分?jǐn)?shù)高(SL)。根據(jù)CNNVD的分級(jí)標(biāo)準(zhǔn),可得評(píng)估分?jǐn)?shù)在[0,10]內(nèi),大于10的以10來代替。因此,輸入y的定義域?yàn)閇0,10],則可得其隸屬函數(shù):
(6)
3)對(duì)于輸出量即服務(wù)器可暴露時(shí)間,選定5個(gè)模糊子集:很短(SV)、短(S)、中等(M)、長(L)、很長(LV)。為研究方便,假設(shè)輸出τ的值域?yàn)閇0,12],以min為時(shí)間單位,可得其隸屬函數(shù)如下:
(7)
根據(jù)已有的攻防先驗(yàn)知識(shí),系統(tǒng)越危險(xiǎn),在保證系統(tǒng)不被攻破的前提下,虛擬服務(wù)器完成切換越快,其暴露時(shí)間就會(huì)越短。因此,切換要盡快完成。據(jù)此有以下模糊規(guī)則:
1)攻擊面數(shù)學(xué)期望越大,漏洞評(píng)估分?jǐn)?shù)越高,服務(wù)器可暴露時(shí)間就越短;
2)攻擊面數(shù)學(xué)期望適中,漏洞評(píng)估分?jǐn)?shù)適中,服務(wù)器可暴露時(shí)間就適中;
3)攻擊面數(shù)學(xué)期望越小,漏洞評(píng)估分?jǐn)?shù)越低,服務(wù)器可暴露時(shí)間就越長。
在此,假設(shè)漏洞評(píng)估分?jǐn)?shù)對(duì)服務(wù)器可暴露時(shí)間影響更大且更顯著。對(duì)攻擊面數(shù)學(xué)期望和漏洞評(píng)估分?jǐn)?shù)各3種情況進(jìn)行組合,可得到具體的模糊規(guī)則,見表3。
表3 模糊控制的具體規(guī)則表
根據(jù)以上的模糊規(guī)則,在理想狀態(tài)下,總的集合應(yīng)由上述所有的規(guī)則進(jìn)行并集運(yùn)算得到。然而在一般情況下,由于每次的輸入量不可能全部激活上述規(guī)則,因此根據(jù)這一特點(diǎn),只取出激活了的規(guī)則相并作為研究對(duì)象即可,再進(jìn)行近似推理。最后通過最大隸屬度的最小值法得到平臺(tái)暴露時(shí)間,完成系統(tǒng)輸出的去模糊化。
首先利用Nessus對(duì)在線模式下的虛擬服務(wù)器進(jìn)行漏洞掃描,并記錄下漏洞數(shù)量為ki,再利用國家信息安全漏洞庫中的漏洞分級(jí)規(guī)范逐一對(duì)漏洞進(jìn)行定量評(píng)估。表4為Web虛擬服務(wù)器構(gòu)成。
表4 Web虛擬服務(wù)器構(gòu)成
按照表4,構(gòu)造出9種不同的虛擬服務(wù)器后,逐一對(duì)在線模式下的虛擬服務(wù)器的攻擊面進(jìn)行計(jì)量,同時(shí)對(duì)軟件棧中的漏洞進(jìn)行評(píng)估。再將2個(gè)數(shù)據(jù)輸入到Matlab中的Fuzzy logic designer,經(jīng)過仿真即可得到平臺(tái)暴露時(shí)間。
在Matlab中找到Fuzzy logic designer的應(yīng)用程序,首先添加一個(gè)輸入量并對(duì)兩輸入進(jìn)行重命名,再確定其各自的Range。分別對(duì)輸入/輸出量進(jìn)行雙擊,按照上文既定的隸屬度函數(shù)進(jìn)行設(shè)置,編譯模糊規(guī)則,最終得到仿真結(jié)果。
在仿真中,在攻擊面數(shù)學(xué)期望和漏洞評(píng)估分?jǐn)?shù)的區(qū)間內(nèi),任意給定一組數(shù)據(jù),可得到服務(wù)器的最大可暴露時(shí)間。如圖3所示,給定77組數(shù)據(jù),繪制成三維散點(diǎn)圖。根據(jù)圖中點(diǎn)的分布情況,不難發(fā)現(xiàn)漏洞評(píng)估分?jǐn)?shù)對(duì)虛擬服務(wù)器暴露時(shí)間的影響確實(shí)大于攻擊面數(shù)學(xué)期望的影響,攻擊面數(shù)學(xué)期望越大,漏洞評(píng)估分?jǐn)?shù)越高,在盡量保證虛擬服務(wù)器不被攻破的情況下,最大可暴露時(shí)間越短。
圖3 最大隸屬度最小值法散點(diǎn)圖
通過仿真,可以先對(duì)攻擊面和漏洞評(píng)估做定量分析,再通過模糊控制器在保證系統(tǒng)安全的情況下計(jì)算出服務(wù)器的最大可暴露時(shí)間,最終保證系統(tǒng)在不消耗過多資源的情況下,防御收益盡可能大。
本文在平臺(tái)層移動(dòng)目標(biāo)防御的背景下,利用模糊控制相關(guān)思想和方法,以虛擬服務(wù)器遭受攻擊時(shí)的攻擊面數(shù)學(xué)期望和操作系統(tǒng)漏洞的評(píng)估分?jǐn)?shù)為輸入,輸出平臺(tái)最大暴露時(shí)間,從而為更好地進(jìn)行網(wǎng)絡(luò)防御提供了相關(guān)的參考指標(biāo)。下一步的工作主要是結(jié)合網(wǎng)絡(luò)中具體的情況,不斷改進(jìn)完善模型,提高準(zhǔn)確性與可操作性。