普黎明,劉樹新,丁瑞浩,王凱
(信息工程大學(xué),河南 鄭州 450002)
在云計(jì)算產(chǎn)業(yè)蓬勃發(fā)展的大環(huán)境下,云安全問(wèn)題已成為阻礙其發(fā)展的難題,未知漏洞或后門成為云安全中最主要的威脅。云計(jì)算本質(zhì)上是在現(xiàn)有技術(shù)的基礎(chǔ)上建立的,已有技術(shù)的漏洞后門會(huì)直接轉(zhuǎn)移到云服務(wù)平臺(tái)上[1],云服務(wù)提供商向用戶提供大量一致化的基礎(chǔ)軟件(如操作系統(tǒng)、數(shù)據(jù)庫(kù)和應(yīng)用軟件等)資源,又加劇了漏洞后門向云端的聚集,帶來(lái)了大范圍的安全問(wèn)題與服務(wù)隱患。
網(wǎng)絡(luò)空間擬態(tài)防御(CMD,cyber mimic defense)是國(guó)內(nèi)團(tuán)隊(duì)提出的改變網(wǎng)絡(luò)空間“易攻難守”游戲規(guī)則的技術(shù),把擬態(tài)防御技術(shù)應(yīng)用到云環(huán)境中構(gòu)建擬態(tài)云服務(wù),將大大增強(qiáng)系統(tǒng)的安全防御效能,大幅提升攻擊者的攻擊難度,增強(qiáng)云服務(wù)系統(tǒng)的安全性。擬態(tài)防御技術(shù)以動(dòng)態(tài)異構(gòu)冗余(DHR,dynamic heterogeneous redundancy)為核心架構(gòu),該架構(gòu)由輸入代理、異構(gòu)執(zhí)行體池、輸出裁決器、控制器等組成??刂破鞲鶕?jù)調(diào)度、裁決等策略指揮系統(tǒng)各部件協(xié)同工作,在其控制下,輸入代理向異構(gòu)執(zhí)行體池進(jìn)行請(qǐng)求分發(fā),異構(gòu)執(zhí)行體池處理請(qǐng)求并向輸出裁決器發(fā)出響應(yīng),輸出裁決器對(duì)各執(zhí)行體的處理結(jié)果進(jìn)行判決產(chǎn)生唯一輸出[2-4]。其中,控制器對(duì)異構(gòu)執(zhí)行體池的調(diào)度對(duì)擬態(tài)系統(tǒng)的安全性有著重要的作用。目前,該技術(shù)已在存儲(chǔ)服務(wù)器[5]、Web服務(wù)器[6]、路由器[7]、SDN 控制器[8]、域名服務(wù)器[9]等領(lǐng)域得到應(yīng)用。
傳統(tǒng)的異構(gòu)冗余技術(shù)大幅提高了系統(tǒng)的可靠性和容錯(cuò)能力[10-11],應(yīng)用比較廣泛,但缺乏動(dòng)態(tài)性,不關(guān)注異構(gòu)體調(diào)度,抗攻擊能力較DHR 技術(shù)弱[12-13]。擬態(tài)云服務(wù)系統(tǒng)需要綜合考慮執(zhí)行體的動(dòng)態(tài)、異構(gòu)和冗余特性,通過(guò)調(diào)度機(jī)制達(dá)到三者之間平衡互補(bǔ)[6]。文獻(xiàn)[14]提出的最長(zhǎng)相異性距離組件選擇算法和最佳平均相異距離的軟件組件選擇算法主要從空間維度討論相異性,解決容錯(cuò)設(shè)計(jì)中軟件組件的選擇問(wèn)題,但沒有考慮動(dòng)態(tài)情況。文獻(xiàn)[15]提出的最大異構(gòu)系統(tǒng)選擇算法只從時(shí)間維度給出共同漏洞指標(biāo),并沒有考慮空間維度的漏洞累積,而且也只選出執(zhí)行體最大的異構(gòu)集,動(dòng)態(tài)性較差。文獻(xiàn)[16]利用復(fù)雜性和差異性從空間維度來(lái)描述異構(gòu)性指標(biāo),其調(diào)度算法穩(wěn)定性較好,但動(dòng)態(tài)性不足。文獻(xiàn)[17]提出共同漏洞指標(biāo)(CVI,common vulnerability indicator)量化系統(tǒng)相似度,其指標(biāo)僅從時(shí)間維度考慮相似性,缺乏空間維度特性。文獻(xiàn)[18]提出異構(gòu)功能等價(jià)體調(diào)度模型,從空間層面來(lái)度量相似性,并據(jù)此提出隨機(jī)種子最小相似度(RSMS,random seed and minimum similarity)算法,該算法兼顧動(dòng)態(tài)性和可靠性,但其動(dòng)態(tài)性和種子可選集容量強(qiáng)相關(guān),當(dāng)種子可選集較小時(shí)動(dòng)態(tài)性不足。
本文首先基于相似性指標(biāo)定義了執(zhí)行體調(diào)度指標(biāo),從時(shí)空維度對(duì)執(zhí)行池相似性進(jìn)行建模;然后根據(jù)該指標(biāo)提出執(zhí)行池調(diào)度方案以及基于優(yōu)先級(jí)和時(shí)間片的執(zhí)行池調(diào)度(PSPT,pool scheduling based on priority and time slice)算法;最后通過(guò)實(shí)驗(yàn)和分析對(duì)PSPT 算法和RSMS 算法的動(dòng)態(tài)性、相似性和耗時(shí)進(jìn)行比較,討論算法的綜合性能。
異構(gòu)執(zhí)行體調(diào)度指標(biāo)需要綜合考慮異構(gòu)性和動(dòng)態(tài)性,執(zhí)行池變換得越快,異構(gòu)性越好,系統(tǒng)越安全。本文通過(guò)對(duì)執(zhí)行體的相似性評(píng)估來(lái)反映其異構(gòu)性指標(biāo),相似性和異構(gòu)性成反比,且相似性的評(píng)估方法較成熟,同時(shí)通過(guò)策略控制調(diào)度得到動(dòng)態(tài)性。
擬態(tài)云服務(wù)(MCS,mimic cloud service)是網(wǎng)絡(luò)空間擬態(tài)防御技術(shù)的一種應(yīng)用,其構(gòu)造如圖1 所示。根據(jù)擬態(tài)防御原理及DHR 架構(gòu),MCS 構(gòu)造主要包括調(diào)度集、執(zhí)行池、服務(wù)代理、控制器。其中調(diào)度集是多個(gè)功能等價(jià)的異構(gòu)執(zhí)行體集合實(shí)體,圖1 中表示為虛擬節(jié)點(diǎn);執(zhí)行池是MCS 的功能執(zhí)行單元,池中虛擬節(jié)點(diǎn)實(shí)際上映射到調(diào)度集中對(duì)應(yīng)的節(jié)點(diǎn),它是調(diào)度集的一個(gè)邏輯映射單元,不同的節(jié)點(diǎn)組合可以映射出不同的執(zhí)行池;服務(wù)代理負(fù)責(zé)接收并向執(zhí)行池分發(fā)用戶請(qǐng)求,對(duì)返回的多個(gè)響應(yīng)進(jìn)行多模裁決并輸出;控制器通過(guò)配置分發(fā)與裁決策略指揮服務(wù)代理工作,通過(guò)調(diào)度策略管理執(zhí)行池和調(diào)度集映射關(guān)系。
執(zhí)行池虛擬節(jié)點(diǎn)的數(shù)量稱作執(zhí)行體冗余度,簡(jiǎn)稱余度。余度可根據(jù)實(shí)際情況調(diào)整,控制器在給定余度的條件下保持執(zhí)行池的動(dòng)態(tài)性和異構(gòu)性。動(dòng)態(tài)性可增加系統(tǒng)的不確定性,減少同種攻擊連續(xù)成功的概率,提升漏洞和后門的利用難度[6]。異構(gòu)性可增加系統(tǒng)的穩(wěn)健性,并減少多個(gè)執(zhí)行體同時(shí)存在共同漏洞和后門的概率,進(jìn)而降低擬態(tài)逃逸的概率[2]。因此,執(zhí)行池調(diào)度策略及算法的優(yōu)劣直接決定了MCS 的安全性。
圖1 擬態(tài)云服務(wù)構(gòu)造示意
圖1 是在余度為3 的條件下,由虛擬節(jié)點(diǎn)2、3、5 組成執(zhí)行池時(shí)的擬態(tài)云服務(wù)構(gòu)造示意圖。當(dāng)余度變化時(shí),執(zhí)行池的虛擬節(jié)點(diǎn)數(shù)量也變化,但結(jié)構(gòu)維持不變;執(zhí)行池虛擬節(jié)點(diǎn)和調(diào)度集虛擬節(jié)點(diǎn)的邏輯映射關(guān)系由控制器通過(guò)調(diào)度策略來(lái)控制。
本文采用文獻(xiàn)[17]的共有漏洞指標(biāo)表示執(zhí)行體的相似性,即通過(guò)統(tǒng)計(jì)執(zhí)行體共有漏洞的數(shù)量來(lái)表示相似程度,共有漏洞數(shù)多代表相似程度高,反之相似程度低,共同漏洞信息可以通過(guò)CVE(common vulnerabilities and exposures)數(shù)據(jù)庫(kù)得到。
定義1執(zhí)行體。提供云服務(wù)實(shí)際功能的實(shí)體記為Executori,簡(jiǎn)寫為Ei,其中i 表示第i 個(gè)執(zhí)行體,在MCS 系統(tǒng)中稱為虛擬節(jié)點(diǎn)。
執(zhí)行體由多個(gè)類別的構(gòu)件組成,例如操作系統(tǒng)、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)軟件這3 種構(gòu)件組成一個(gè)應(yīng)用功能實(shí)體,表示為Ei={Clp| l,p=1,2,3,…,n},其中 Clp表示第l 類的第p 個(gè)構(gòu)件。
同一個(gè)系統(tǒng)中,所有執(zhí)行體的構(gòu)件種類和數(shù)量是一致的。例如,所有執(zhí)行體的第一種構(gòu)件是操作系統(tǒng),第二種是數(shù)據(jù)庫(kù),以此類推。若一個(gè)執(zhí)行體由3 種構(gòu)件組成,則其他執(zhí)行體也同樣由這3 種構(gòu)件組成,但每個(gè)種類的構(gòu)件數(shù)量可能是不一樣的,例如某系統(tǒng)中操作系統(tǒng)構(gòu)件只有Windows 2012,數(shù)據(jù)庫(kù)構(gòu)件有MySQL、Oracle、SQL Server 等。
定義2調(diào)度集。系統(tǒng)中所有功能等價(jià)的執(zhí)行體集合記為 E={ Ei| i=1,2,3,…,n},調(diào)度集中所有的執(zhí)行體統(tǒng)一編號(hào),即i 表示編號(hào),n 表示執(zhí)行體數(shù)量,該集合中的執(zhí)行體是控制器備選的調(diào)度對(duì)象。
定義3執(zhí)行池。執(zhí)行池是MCS 系統(tǒng)DHR 架構(gòu)的任務(wù)執(zhí)行部件,系統(tǒng)中同一時(shí)刻在線工作的功能等價(jià)執(zhí)行體集合記為P={ Ei|1≤i ≤ n},且| P |=r,其中r 表示執(zhí)行體的余度,考慮到輸出時(shí)多數(shù)一致裁決原則對(duì)執(zhí)行體數(shù)量的要求,取3 ≤ r ≤n,即執(zhí)行池至少要有3 個(gè)執(zhí)行體。由定義可知,P ?E 表示執(zhí)行池的執(zhí)行體由控制器從調(diào)度集中調(diào)入。
考慮到組成執(zhí)行體的構(gòu)件隨時(shí)間在不斷發(fā)展變化(例如,Windows 已經(jīng)從最初的3.1 版本發(fā)展到如今的Windows 10),其漏洞的種類和數(shù)量也發(fā)生了變化,可能會(huì)變得越來(lái)越多,或者越來(lái)越少。因此,在選擇執(zhí)行池配置時(shí)應(yīng)考慮時(shí)間維度,例如,相比最近出現(xiàn)較少漏洞的執(zhí)行體可能會(huì)有更好的安全性,最近共有漏洞較少的執(zhí)行體集也會(huì)有更好的異構(gòu)性;最近出現(xiàn)的漏洞威脅較高,時(shí)間權(quán)重配置高一些,較早出現(xiàn)的漏洞威脅較低,時(shí)間權(quán)重配置低一些。
定義4時(shí)間權(quán)重因子[17]。定義為
其中,i ∈ {y-years +1,…,y-2,y-1,y};y 表示年份(例如2019 年,則y=2019);years 表示參與漏洞統(tǒng)計(jì)的年數(shù),至少為1 年,通常不會(huì)有使用超過(guò)10 年的構(gòu)件版本。由式(1)可知,在若干年時(shí)間內(nèi),越接近y 權(quán)重越大,y 的時(shí)間權(quán)重因子取值為αy=1。α 因子從時(shí)間維度考慮了構(gòu)件歷史漏洞的重要程度,也可理解為攻擊者利用歷史漏洞的可能性。
定義5空間權(quán)重因子。執(zhí)行體由多個(gè)類別的構(gòu)件組成,從系統(tǒng)結(jié)構(gòu)角度看是多個(gè)空間層次的構(gòu)件組成,例如通常所說(shuō)的存儲(chǔ)層、計(jì)算層、服務(wù)層,或者硬件層、系統(tǒng)層、應(yīng)用層等。每個(gè)層次(類別)的構(gòu)件在執(zhí)行體整體安全性中的重要性是不一樣的,對(duì)于應(yīng)用型服務(wù)來(lái)說(shuō),攻擊者能直接攻擊的目標(biāo)必然是最頂層的應(yīng)用服務(wù)軟件,比如Web 服務(wù),該層構(gòu)件的安全性直接決定了執(zhí)行體的整體安全性,因此該構(gòu)件的空間權(quán)重應(yīng)設(shè)置較大。定義為
其中,tiers > 0表示組成執(zhí)行體的構(gòu)件層數(shù),例如由存儲(chǔ)層、計(jì)算層、服務(wù)層組成的執(zhí)行體tiers=3;l ∈{1,2,3,…,tiers}表示第l 層的構(gòu)件,取值由底層向頂層遞進(jìn),底層的構(gòu)件l=1,頂層的構(gòu)件l=tiers。
由定義5 可知,底層構(gòu)件的空間權(quán)重因子β 取值最小,頂層構(gòu)件的空間權(quán)重因子取值為βl=tiers=1。β 因子從空間維度考慮了各層(類)構(gòu)件的重要程度,也可理解為攻擊者利用該構(gòu)件攻擊的可能性。
定義6構(gòu)件共有漏洞指標(biāo)。同一種類的構(gòu)件對(duì) Clp和 Clq的共同漏洞數(shù)記為 vi(A,B),其定義為
式(3)表示第l 類構(gòu)件對(duì)第p 和q 號(hào)構(gòu)件在y 年的共有漏洞指標(biāo),該指標(biāo)從時(shí)間維度考慮了最近years年的構(gòu)件共有漏洞情況,在一定程度上也可由歷史表現(xiàn)反映或預(yù)測(cè)未知漏洞的部分情況。共有漏洞數(shù)量越大,CVI 越大,構(gòu)件越相似,反之異構(gòu)性越小。
定義7執(zhí)行體共有漏洞指標(biāo)。結(jié)合定義1 和定義5 可以得到執(zhí)行體對(duì)的CVI,表示為
其中,Clp∈Ej,Clq∈ Ek,l 表示層次(或類別),tiers表示組成執(zhí)行體的構(gòu)件層數(shù)。該指標(biāo)從空間維度考慮了執(zhí)行體的共有漏洞情況。
執(zhí)行體CVI 物理意義如圖2 所示。
圖2 執(zhí)行體CVI 物理意義
從圖2 中可看出,執(zhí)行體CVI 從橫向角度表示構(gòu)件對(duì)(j 號(hào)執(zhí)行體的某層p 號(hào)構(gòu)件和k 號(hào)執(zhí)行體的同層q 號(hào)構(gòu)件)之間的共有漏洞指標(biāo),該指標(biāo)回溯了最近若干年的共有漏洞情況,體現(xiàn)了時(shí)間維度特性;從縱向角度表示執(zhí)行體對(duì)的共有漏洞指標(biāo)由各層構(gòu)件對(duì)(從第一層到第tiers 層)的CVI 累計(jì)得出,并考慮了各層的重要性程度,體現(xiàn)了空間維度特性。
定義8執(zhí)行池漏洞指標(biāo)。定義為
其中,j < k且1≤ j ≤r-1,2≤ k ≤ r,r 表示該執(zhí)行池的余度,j、k 表示執(zhí)行體在當(dāng)前執(zhí)行池中的編號(hào)。該指標(biāo)表示執(zhí)行池中執(zhí)行體對(duì)CVI 的平均值。
對(duì)于給定的構(gòu)件集,其組成的調(diào)度集顯然是確定的,滿足r 余度要求的執(zhí)行池?cái)?shù)量也是確定的,即從調(diào)度集中構(gòu)建r 余度執(zhí)行池的數(shù)量是確定的。當(dāng)構(gòu)件集發(fā)生變化(新增或減少構(gòu)件)時(shí),調(diào)度集和執(zhí)行池也隨之變化,但直到構(gòu)件集下一次變化之前,調(diào)度集和執(zhí)行池是確定的。此外,由于CMD負(fù)反饋機(jī)制等原因引起執(zhí)行體下線或清洗,也會(huì)改變執(zhí)行體集和執(zhí)行池。因此,構(gòu)件集、調(diào)度集和執(zhí)行池在總體上具有不確定性,是動(dòng)態(tài)變化的,但在一定的時(shí)間片內(nèi)是相對(duì)確定的。執(zhí)行體的調(diào)度是在一定的條件下啟動(dòng)的,例如構(gòu)件集變化了,可能有更好的相似性組合,可以調(diào)入該組合;執(zhí)行體下線了,引起執(zhí)行池的變化,需要調(diào)入一個(gè)執(zhí)行體;動(dòng)態(tài)策略觸發(fā),需要調(diào)整執(zhí)行池等。
不論何種原因觸發(fā)調(diào)度,系統(tǒng)都可以預(yù)先準(zhǔn)備好執(zhí)行池調(diào)度方案,這比在觸發(fā)時(shí)再計(jì)算相關(guān)方案能夠得到更好的調(diào)度效率。因此有如下定義。
定義9調(diào)度方案。調(diào)度方案是以CVIy(P)升序排列的執(zhí)行池集合,記為F={Pi| i=1,2,…,N},其中P 表示執(zhí)行池,i 表示排序后的序號(hào),i 值越小表示該序號(hào)的執(zhí)行池相似度越小,即CVIy(P)越小,該執(zhí)行池將優(yōu)先調(diào)度,即序號(hào)就是調(diào)度優(yōu)先級(jí)。
通常情況下,對(duì)于給定余度的執(zhí)行池,應(yīng)選調(diào)CVIy(P)較小的執(zhí)行池,但執(zhí)行池內(nèi)的執(zhí)行體之間可能存在局部極值的情況[2-3],雖然平均相似度較小,但某一對(duì)執(zhí)行體的相似度比較大,它們的共有漏洞被攻擊成功的概率相對(duì)較高。調(diào)度方案應(yīng)考慮這種情況,可設(shè)置一個(gè)相似度閾值,如果執(zhí)行池中存在超過(guò)閾值的執(zhí)行體對(duì),則降低該執(zhí)行池優(yōu)先級(jí),放入方案末端,也可以根據(jù)策略刪除該執(zhí)行池。
定義10相似度閾值。記為threshold,一般情況下threshold 取值應(yīng)大于執(zhí)行體CVI 的平均值,且應(yīng)小于最大值,具體取值可根據(jù)經(jīng)驗(yàn)調(diào)整。
對(duì)于執(zhí)行體數(shù)量為n 的調(diào)度集(已根據(jù)構(gòu)件的兼容屬性配置好執(zhí)行體),以r 余度構(gòu)建執(zhí)行池,可以構(gòu)建出包含個(gè)執(zhí)行池的列表,記作PoolList。系統(tǒng)在啟動(dòng)時(shí),或在執(zhí)行體下線及上線后,新的調(diào)度任務(wù)還未觸發(fā)前,分別計(jì)算出個(gè)執(zhí)行池的CVIy(P)值,并按照前文原則排序得出調(diào)度方案F,此時(shí)調(diào)度方案F 就是排序后的PoolList,同時(shí)可知調(diào)度方案F 已經(jīng)包含了r 余度下所有可能的執(zhí)行池。調(diào)度方案生成算法偽代碼如算法1 所示。
算法1調(diào)度方案生成算法
輸入調(diào)度集E,余度r,相似度閾值threshold,調(diào)度策略Policies
輸出調(diào)度方案F
在系統(tǒng)執(zhí)行過(guò)程中,若因安全原因下線執(zhí)行體,則需選調(diào)另一個(gè)不包含該執(zhí)行體的執(zhí)行池;另外,考慮到穩(wěn)定性要求,通常會(huì)選調(diào)包含當(dāng)前執(zhí)行池中非下線執(zhí)行體的執(zhí)行池,以減少更換的執(zhí)行體。若是動(dòng)態(tài)策略觸發(fā)調(diào)度操作,為保障良好的動(dòng)態(tài)性和較長(zhǎng)的調(diào)度周期,只需選調(diào)下一優(yōu)先級(jí)的執(zhí)行池,按照調(diào)度方案F 循環(huán)調(diào)度。執(zhí)行體下線和上線以及余度r 變化會(huì)引起執(zhí)行池的變化,在本次調(diào)度完成之后,需要使用算法1 重新生成調(diào)度方案,但不會(huì)立即觸發(fā)調(diào)度操作;動(dòng)態(tài)策略觸發(fā)調(diào)度操作不會(huì)使調(diào)度池變化,不需要重新生成調(diào)度方案。
定義11時(shí)間片策略。對(duì)于策略觸發(fā)的調(diào)度,系統(tǒng)根據(jù)方案優(yōu)先級(jí)順序給出一個(gè)調(diào)度時(shí)間間隔,稱為時(shí)間片,記為TF={ti| i=1,2,…,N},其中 TF表示調(diào)度方案F 的時(shí)間片策略,ti表示方案中第i 個(gè)執(zhí)行池的時(shí)間片。優(yōu)先級(jí)高的調(diào)度間隔長(zhǎng),反之調(diào)度間隔短,以此在受控條件下平衡動(dòng)態(tài)性和異構(gòu)性要求,使之達(dá)到互補(bǔ)。系統(tǒng)根據(jù)時(shí)間片策略調(diào)用算法2 對(duì)執(zhí)行池進(jìn)行動(dòng)態(tài)調(diào)度,該算法稱為PSPT 調(diào)度算法。
算法2PSPT 調(diào)度算法
輸入當(dāng)前池序號(hào)cp,調(diào)度方案列表PoolList,下線執(zhí)行體Edown,是否策略觸發(fā)isPolicy
輸出當(dāng)前執(zhí)行池序號(hào)
本節(jié)對(duì)調(diào)度算法進(jìn)行實(shí)驗(yàn)和分析,把PSPT 算法與文獻(xiàn)[18]提出的RSMS 算法對(duì)比,測(cè)試算法的動(dòng)態(tài)性、平均相似度、耗時(shí)等效果。實(shí)驗(yàn)設(shè)備采用Thinkpad T480 筆記本電腦,配置為Intel Core i7 1.80 GHz CPU和16 GB RAM,軟件系統(tǒng)采用Ubuntu Linux 版本18.04LTS 和JDK 12.0.1,工具為Java 和Python。
根據(jù)文獻(xiàn)[6,19]對(duì)余度與成本及安全增益的關(guān)系分析可知,余度為3 的執(zhí)行池實(shí)用性較好,且可以達(dá)到最佳折中效果。因此,本文實(shí)驗(yàn)主要以余度為3 的執(zhí)行池開展。
算法的動(dòng)態(tài)性體現(xiàn)在調(diào)度方案的重復(fù)周期,理想的動(dòng)態(tài)性是調(diào)度的方案盡量不重復(fù),但受于可選異構(gòu)執(zhí)行體和余度的限制,調(diào)度方案實(shí)際上是一個(gè)有限集合,方案在調(diào)度過(guò)程中必然會(huì)出現(xiàn)重復(fù),重復(fù)的平均周期越長(zhǎng),動(dòng)態(tài)性越好。
分析RSMS 算法可知,該算法的動(dòng)態(tài)性主要由隨機(jī)函數(shù)來(lái)體現(xiàn),當(dāng)隨機(jī)函數(shù)選中種子執(zhí)行體時(shí),該種子對(duì)應(yīng)的執(zhí)行池也就確定了,也即調(diào)度方案和種子是對(duì)應(yīng)的,方案的調(diào)度周期等效于種子執(zhí)行體重復(fù)出現(xiàn)的周期。而PSPT 算法的調(diào)度周期由調(diào)度方案列表的長(zhǎng)度決定,對(duì)于給定的調(diào)度集,調(diào)度方案長(zhǎng)度是確定的,該長(zhǎng)度值為,其中n 為調(diào)度集的執(zhí)行體個(gè)數(shù),r 為執(zhí)行池余度。
實(shí)驗(yàn)對(duì)100 個(gè)執(zhí)行體的調(diào)度集進(jìn)行算法調(diào)度測(cè)試,執(zhí)行池余度設(shè)為3,假設(shè)執(zhí)行體被調(diào)度的概率相同。為簡(jiǎn)化分析聚焦周期測(cè)試,暫不考慮相似度閾值,加入相似度閾值因素后,可選范圍會(huì)縮小,2 種算法的平均周期值都會(huì)有所降低,即動(dòng)態(tài)性會(huì)變差。每個(gè)算法進(jìn)行100 次實(shí)驗(yàn),出現(xiàn)重復(fù)方案時(shí)按一次計(jì)算。實(shí)驗(yàn)結(jié)果如圖3 所示,其中周期表示的是調(diào)度次數(shù),粗虛線表示周期的平均值。
圖3 算法周期測(cè)試
分析圖3 可知,RSMS 算法的調(diào)度周期符合隨機(jī)函數(shù)特點(diǎn),取值比較發(fā)散,平均周期約為100;PSPT 算法的調(diào)度周期實(shí)驗(yàn)值符合算法預(yù)期值=161 700,該算法的周期固定為161 700,平均周期約是RSMS 算法的1 617 倍。實(shí)驗(yàn)結(jié)果與前述分析一致,PSPT 算法的動(dòng)態(tài)性大幅優(yōu)于RSMS 算法。
RSMS 算法選中種子執(zhí)行體時(shí),也就確定了執(zhí)行池,換句話說(shuō),對(duì)于給定的100 個(gè)執(zhí)行體的調(diào)度集,只有100 個(gè)可能的種子,對(duì)應(yīng)可選中的就是100 個(gè)可能的執(zhí)行池,而每個(gè)執(zhí)行池都有CVI 值。因此,為簡(jiǎn)化實(shí)驗(yàn),聚焦算法的隨機(jī)特性帶來(lái)的相似度變化,在給定余度條件下,本文在執(zhí)行池CVI 最小值和總平均值(調(diào)度集所有執(zhí)行體組合的平均CVI 值)之間隨機(jī)給出100 個(gè)執(zhí)行池作為RSMS 算法的可選集,PSPT算法的可選集為=161 700 個(gè);假設(shè)余度為3 的執(zhí)行池CVI 值服從參數(shù)為[5,15]的β 分布[18],則概率密度曲線和對(duì)應(yīng)的執(zhí)行池CVI 值分布如圖4 所示。
圖4 實(shí)驗(yàn)數(shù)據(jù)CVI 值分布特征
圖4 中CVI 數(shù)據(jù)總平均值為249.7。考慮到RSMS 算法每個(gè)周期的調(diào)度次數(shù)有很大不同(見4.1節(jié)分析),為得到較好的平均數(shù)據(jù),進(jìn)行100 個(gè)周期的調(diào)度實(shí)驗(yàn)并計(jì)算CVI 平均值;PSPT 算法每周期的調(diào)度次數(shù)相同,而且一個(gè)周期即可覆蓋方案中所有的執(zhí)行池,該算法進(jìn)行一個(gè)周期的調(diào)度實(shí)驗(yàn)即可計(jì)算出平均CVI。
實(shí)驗(yàn) 1不考慮閾值和時(shí)間片策略,余度r=(3,4,5),測(cè)試調(diào)度算法得到方案的平均相似度。實(shí)驗(yàn)結(jié)果如表1 所示。
表1 不同算法的調(diào)度方案平均相似度
由表1 可知,RSMS 算法的平均相似度隨余度增加而增加;PSPT 算法的平均相似度不隨余度變化,維持在總平均值。當(dāng)余度較小時(shí),RSMS 算法的平均相似度大幅優(yōu)于PSPT 算法,隨著余度的增加差距逐漸減小,當(dāng)余度增加到等于執(zhí)行體數(shù)量時(shí),平均相似度將趨于一致。
實(shí)驗(yàn)2不考慮閾值,將余度設(shè)為3,針對(duì)PSPT算法啟用時(shí)間片策略并測(cè)試單位時(shí)間內(nèi)的平均相似度。時(shí)間片策略數(shù)據(jù)如下:基準(zhǔn)時(shí)間片取10 個(gè)單位時(shí)間,調(diào)度方案F 列表以為界,后半部分順序取值區(qū)間為[10,100],前半部分順序取值區(qū)間為[100,10K],其中K={10,20,30,…,200},方案F 從該區(qū)間中由大到小獲取時(shí)間片,實(shí)驗(yàn)結(jié)果如圖5 所示。
圖5 單位時(shí)間CVI 值隨時(shí)間片策略變化關(guān)系
從圖5 可以看出,隨著K 值增大,單位時(shí)間內(nèi)CVI 值快速減小,逼近表1 中RSMS 算法的平均值。經(jīng)分析可知,因?yàn)檎{(diào)度方案前半部分的執(zhí)行池CVI值較小,增大該部分時(shí)間片將會(huì)在一段時(shí)間內(nèi)降低CVI 值,該段時(shí)間內(nèi)執(zhí)行池的相似性較低,但動(dòng)態(tài)性有所損失。實(shí)際應(yīng)用時(shí)可根據(jù)情況設(shè)置合適的時(shí)間片策略,獲得異構(gòu)性和動(dòng)態(tài)性的平衡,進(jìn)而得到較好的安全性。
實(shí)驗(yàn)3不考慮時(shí)間片策略,將余度固定為3,調(diào)整相似度閾值,測(cè)試相似度閾值對(duì)算法平均相似度的影響。實(shí)驗(yàn)結(jié)果如圖6 所示。
圖6 不同算法平均相似度隨相似度閾值變化關(guān)系
從圖6 中可以看出,隨著相似度閾值的減小,RSMS 算法的平均相似度變化不大,當(dāng)相似度閾值低于總平均值249.7 時(shí),平均相似度快速減?。籔SPT算法的平均相似度隨相似度閾值快速減小。經(jīng)分析可知,當(dāng)相似度閾值減小時(shí),PSPT 算法快速過(guò)濾掉相似度較大的執(zhí)行池,使獲得的方案列表縮短,平均相似度降低,調(diào)度周期也變短;當(dāng)相似度閾值低于總平均值時(shí),RSMS 算法也會(huì)較多地過(guò)濾掉可選方案,使平均相似度快速下降,同時(shí)調(diào)度周期也縮短。實(shí)際應(yīng)用時(shí),因前者的平均相似度由算法本身決定,不易附加干預(yù)手段,需要控制好余度的選取,以達(dá)到成本和相似性的平衡,余度過(guò)高會(huì)增加成本。后者需要控制好閾值選取,以取得較好的平均相似度且平衡動(dòng)態(tài)性要求,且后者受策略控制較大,可根據(jù)實(shí)際經(jīng)驗(yàn)干預(yù)并調(diào)整策略。
調(diào)度算法的執(zhí)行,大多是由策略驅(qū)動(dòng)的,執(zhí)行體下線或上線引發(fā)的調(diào)度是少數(shù)。因此,實(shí)驗(yàn)只考慮策略驅(qū)動(dòng)的調(diào)度操作,聚焦算法本身的耗時(shí)比較。考慮到算法耗時(shí)主要受到調(diào)度集規(guī)模的影響,通過(guò)增加2 種算法的調(diào)度集規(guī)模來(lái)測(cè)試耗時(shí)情況,調(diào)度集規(guī)模設(shè)為3~1 000,對(duì)每個(gè)規(guī)模調(diào)度集分別測(cè)量算法的CPU 耗時(shí)。實(shí)驗(yàn)結(jié)果如圖7 所示。
圖7 調(diào)度規(guī)模耗時(shí)情況
由圖7 可以看出,RSMS 算法耗時(shí)隨規(guī)??傮w呈線性增加,PSPT 算法耗時(shí)基本維持不變。經(jīng)分析可知,RSMS 算法主要由循環(huán)語(yǔ)句產(chǎn)生耗時(shí),該語(yǔ)句循環(huán)次數(shù)與規(guī)模直接關(guān)聯(lián),時(shí)間復(fù)雜度為O(n);PSPT 算法處理的數(shù)據(jù)已經(jīng)過(guò)排序處理,可直接按序取出,耗時(shí)與規(guī)模無(wú)關(guān),時(shí)間復(fù)雜度為O(1)。PSPS 算法能夠穩(wěn)定維持較低的時(shí)間成本和較小的調(diào)度時(shí)延,優(yōu)于RSMS 算法。
擬態(tài)云服務(wù)是網(wǎng)絡(luò)空間擬態(tài)防御技術(shù)的一種應(yīng)用,執(zhí)行體的調(diào)度機(jī)制是其關(guān)鍵技術(shù),本文針對(duì)調(diào)度機(jī)制給出包含時(shí)空特性的執(zhí)行體調(diào)度指標(biāo),以此提出一種基于優(yōu)先級(jí)和時(shí)間片的執(zhí)行池調(diào)度算法PSPT,該算法在動(dòng)態(tài)性和時(shí)間成本上優(yōu)于RSMS 算法,配合時(shí)間片策略也可在相似性上接近RSMS 算法,且在滿足冗余性基礎(chǔ)上可以兼顧動(dòng)態(tài)性和異構(gòu)性。后續(xù)考慮對(duì)服務(wù)代理接收?qǐng)?zhí)行體返回值的網(wǎng)絡(luò)時(shí)延情況進(jìn)行研究,據(jù)此優(yōu)化調(diào)度方案和算法。