李傳煌,唐晶晶,陳泱婷,雷睿,陳超,王偉明
(浙江工商大學(xué)信息與電子工程學(xué)院(薩塞克斯人工智能學(xué)院),浙江 杭州 310018)
近年來,互聯(lián)網(wǎng)行業(yè)高速發(fā)展,網(wǎng)絡(luò)技術(shù)被應(yīng)用在金融、政務(wù)、交通等諸多領(lǐng)域。但互聯(lián)網(wǎng)給生產(chǎn)生活帶來極大便利的同時也帶來了許多安全問題,形式多樣的網(wǎng)絡(luò)攻擊層出不窮,分布式拒絕服務(wù)(distributed denial of service,DDoS)攻擊、數(shù)據(jù)泄露以及滲透攻擊等新型的網(wǎng)絡(luò)攻擊對提供計算、存儲、網(wǎng)絡(luò)服務(wù)的云計算等虛擬化網(wǎng)絡(luò)環(huán)境構(gòu)成了巨大的威脅。因此,如何依據(jù)目前的網(wǎng)絡(luò)威脅有針對性地構(gòu)建新型安全防御方案成為了亟須解決的問題。
端到端服務(wù)的交付通常需要多種服務(wù)功能(service function,SF),包括傳統(tǒng)的網(wǎng)絡(luò)服務(wù)功能(如防火墻、IP網(wǎng)絡(luò)地址轉(zhuǎn)換器等)及特定于應(yīng)用程序的服務(wù)功能。服務(wù)功能鏈(service function chain,SFC)指SF有序排列的集合,它能夠處理分類后的數(shù)據(jù)包、數(shù)據(jù)幀或數(shù)據(jù)流[1]。傳統(tǒng)網(wǎng)絡(luò)中的SFC與物理拓?fù)涞木o密連接造成SFC變更時將產(chǎn)生較高的網(wǎng)絡(luò)開銷與潛在的利潤損失[2],而軟件定義網(wǎng)絡(luò)(software defined network,SDN)[3-5]和網(wǎng)絡(luò)功能虛擬化(network functions virtualization,NFV)[6-8]技術(shù)的運(yùn)用使上述問題得以方便解決,SFC再次成為當(dāng)前研究和應(yīng)用的熱點[9]。NFV技術(shù)構(gòu)建各種虛擬SF資源池,SDN技術(shù)用控制轉(zhuǎn)發(fā)分離的方式動態(tài)集中調(diào)度流量,進(jìn)而實現(xiàn)定制化和靈活化的對接。
隨著基于SDN和NFV技術(shù)的SFC使用量增漲,其安全性的需求日益增大。SF是SFC的關(guān)鍵組成部分,SFC域中的所有數(shù)據(jù)流必須經(jīng)過特定的SF。如果SF被控制,攻擊者可以通過被挾持的SF隨意篡改、丟棄數(shù)據(jù),甚至通過拒絕服務(wù)(denial of service,DoS)攻擊[10]使服務(wù)功能轉(zhuǎn)發(fā)器(service function forwarder,SFF)癱瘓[11],不但SF不能完成指定功能,且整個SFC域可能面臨崩潰。本文針對SFC中的SF安全問題,根據(jù)擬態(tài)安全防御理論中的動態(tài)異構(gòu)冗余(dynamic heterogeneous redundancy, DHR)模型[12],提出了一種建立在數(shù)據(jù)轉(zhuǎn)發(fā)層面的MSFC防御架構(gòu)。
擬態(tài)安全防御類似生物的擬態(tài)偽裝,防御者通過控制網(wǎng)絡(luò)、運(yùn)行環(huán)境、軟/硬件組成等元素的動態(tài)變化以達(dá)到自身不易被成功攻擊的目的。擬態(tài)安全防御[13](mimic security defense, MSD)是在主動或被動的觸發(fā)條件下,動態(tài)隨機(jī)地選擇多個執(zhí)行對應(yīng)功能的硬件變體和軟件變體。因此,系統(tǒng)具備動態(tài)性、隨機(jī)性、冗余性、異構(gòu)性以及非持續(xù)性等特點。系統(tǒng)的上述特點使內(nèi)部攻擊者和外部攻擊者都無法準(zhǔn)確獲取系統(tǒng)內(nèi)部元件的運(yùn)行環(huán)境以及狀態(tài)信息,因此無法根據(jù)后門和漏洞建立穩(wěn)定的攻擊鏈,從而達(dá)到提升系統(tǒng)安全性的目的。所以,擬態(tài)安全防御本質(zhì)是一種結(jié)合被動防御與主動防御的新型防御體系。目前的擬態(tài)研究,包括擬態(tài)控制器[14-15]、擬態(tài)Web服務(wù)器等在控制層面建立擬態(tài)構(gòu)架,而在數(shù)據(jù)轉(zhuǎn)發(fā)層面的研究較少。
本文在提出的MSFC防御架構(gòu)的基礎(chǔ)上,進(jìn)一步提出一種基于判決反饋的動態(tài)調(diào)度方法,以判決器反饋的異常執(zhí)行體信息、執(zhí)行體的異構(gòu)度以及系統(tǒng)的實際負(fù)載量作為調(diào)度影響因素,使調(diào)度方法可以根據(jù)網(wǎng)絡(luò)變化進(jìn)行自適應(yīng)調(diào)整,從而提升系統(tǒng)的安全性。此外,該調(diào)度方法基于判決反饋對調(diào)度時間進(jìn)行調(diào)整,以達(dá)到系統(tǒng)花費與安全性的最佳平衡,降低系統(tǒng)的資源開銷。
在SFC安全研究方面,現(xiàn)有的防御方案總結(jié)見表1。
表1 防御方案總結(jié)
被動防御主要有SF安全加固和SFC安全編排與部署兩類方案。SF安全加固方法通過增設(shè)安全模塊降低風(fēng)險。文獻(xiàn)[16]提出了一種驗證SFC中策略是否正確執(zhí)行的安全策略分析模型,并基于該安全模型設(shè)計了一種可以應(yīng)對同一SFC中SF的錯誤交互導(dǎo)致的安全漏洞等網(wǎng)絡(luò)潛在威脅的軟件工具,但該方案同時將額外造成大量的時間與資源開銷。SFC安全編排與部署方法通過對SF的邏輯結(jié)構(gòu)、部署方式等進(jìn)行調(diào)整提升安全性。文獻(xiàn)[17]通過分析不考慮節(jié)點同質(zhì)性問題的SFC現(xiàn)有冗余備份部署方法,提出了一種異構(gòu)備份部署方案。該方案可以確保備份服務(wù)器節(jié)點、虛擬網(wǎng)絡(luò)功能(virtual network function,VNF)節(jié)點與原始節(jié)點之間的異構(gòu)性,并根據(jù)該方案構(gòu)建了具有異構(gòu)備份的SFC部署模型。但由于未知漏洞的普遍性,攻擊者仍能大范圍利用漏洞攻破SFC。
被動的防御方案無法有效防御基于未知漏洞的攻擊方式,而主動防御則是一類不依賴攻擊行為先驗知識的防御機(jī)制,主要有移動目標(biāo)防御(moving target defense,MTD)[18]和擬態(tài)安全防御兩方面。其中,MTD利用動態(tài)性、隨機(jī)性、多樣性思想對多個層面進(jìn)行改造[19],增加了系統(tǒng)環(huán)境的不確定性,從而加大攻擊難度。文獻(xiàn)[20]通過靜態(tài)代碼分析對指令操作數(shù)分類并與隨機(jī)掩碼進(jìn)行異或操作,從數(shù)據(jù)層面提升了攻擊者的漏洞利用難度,但該方法計算復(fù)雜,從設(shè)計層面實現(xiàn)開銷較大。在擬態(tài)安全防御方面,為了建立基于“有毒帶菌”的軟/硬件設(shè)備的高安全性系統(tǒng),鄔江興院士帶領(lǐng)團(tuán)隊首創(chuàng)了“擬態(tài)安全防御”概念,設(shè)置多個功能等價的異構(gòu)冗余執(zhí)行體共同處理相同的數(shù)據(jù),并對執(zhí)行體進(jìn)行基于負(fù)反饋的動態(tài)調(diào)度,以動態(tài)性、異構(gòu)性、冗余性代替被動防御的靜態(tài)性、相似性、單一性,從而達(dá)到系統(tǒng)安全風(fēng)險可控的要求。
異構(gòu)執(zhí)行體的動態(tài)調(diào)度是擬態(tài)防御架構(gòu)中最重要的環(huán)節(jié),它負(fù)責(zé)構(gòu)建當(dāng)前的執(zhí)行體服務(wù)集,實現(xiàn)執(zhí)行體組件的動態(tài)變化,使整個架構(gòu)保持異構(gòu)冗余特性。因此,調(diào)度算法決定了架構(gòu)的安全質(zhì)量。目前,擬態(tài)調(diào)度方法的研究主要在于保證擬態(tài)系統(tǒng)的高異構(gòu)性以及探測攻擊并動態(tài)調(diào)整調(diào)度方法兩個方面。文獻(xiàn)[21]提出了一種完全隨機(jī)的調(diào)度算法,通過偽隨機(jī)數(shù)確定異構(gòu)執(zhí)行體的冗余度和編號并進(jìn)行調(diào)度,但該方法的隨機(jī)性使防御效果并不穩(wěn)定。文獻(xiàn)[22]提出了一種基于執(zhí)行體異構(gòu)度的調(diào)度方法,每次調(diào)度都盡可能選取與在線執(zhí)行體集合相比異構(gòu)度大的執(zhí)行體,以確保擬態(tài)系統(tǒng)的異構(gòu)性保持較高水平,降低了執(zhí)行體間的共同漏洞,增大了攻擊者的攻擊代價與難度。文獻(xiàn)[23]提出將NFV中SFC的攻防過程建模為斯坦科爾伯格博弈模型,通過動態(tài)地輪換存在安全威脅的VNF節(jié)點,有效地提升了SFC的安全性。但不同于控制層面的擬態(tài),MSFC防御架構(gòu)須考慮每個執(zhí)行體的性能。若采用文獻(xiàn)[22-23]的方法,可能出現(xiàn)幾次調(diào)度選取的執(zhí)行體速度都不滿足網(wǎng)絡(luò)負(fù)載要求的情況,從而導(dǎo)致更嚴(yán)重的安全問題。文獻(xiàn)[24]提出了一種基于生物種群模型的負(fù)反饋調(diào)度方法,將不同類型的執(zhí)行體和攻擊者建模為不同的生物種群,結(jié)合生物種群模型中的生存力以及系統(tǒng)的負(fù)載量計算每個執(zhí)行體的選取系數(shù),并以此為依據(jù)選取新的執(zhí)行體集合。該方法通過動態(tài)選擇被攻擊次數(shù)較少的執(zhí)行體,提升了系統(tǒng)的安全性。但由于忽略了系統(tǒng)的異構(gòu)性,只能有效防御普通的靜態(tài)攻擊者,對存在記憶能力且能夠?qū)ο嘟繕?biāo)實施快速攻擊的適應(yīng)型攻擊者有一定局限性[25]。對于這類攻擊者,系統(tǒng)的異構(gòu)性越小,則被成功攻擊的概率越高。因此,本文基于判決反饋提出了一種能夠保證系統(tǒng)異構(gòu)性,且在線執(zhí)行體集合可以隨網(wǎng)絡(luò)變化自適應(yīng)調(diào)整的調(diào)度方法。
MSFC防御架構(gòu)將以主動防御的方式確保SF執(zhí)行體正常執(zhí)行對應(yīng)的服務(wù)功能,MSFC防御架構(gòu)如圖1所示。
圖1 MSFC防御架構(gòu)
(1)SFF
具有轉(zhuǎn)發(fā)功能的設(shè)備,負(fù)責(zé)根據(jù)網(wǎng)絡(luò)服務(wù)頭(network service header,NSH)信息對數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。
(2)控制器
負(fù)責(zé)定義SFC,將流規(guī)則安裝在SFF中以及將分類策略下發(fā)給分類器。
(3)分類器
負(fù)責(zé)根據(jù)控制層下發(fā)的分類策略給數(shù)據(jù)包加上相應(yīng)的NSH信息,使數(shù)據(jù)包進(jìn)入SFC域后可以按照規(guī)定的服務(wù)功能路徑轉(zhuǎn)發(fā)。
(4)擬態(tài)SF
擬態(tài)SF組成如圖2所示,包括調(diào)度器、分發(fā)器、緩存器、判決反饋器、控制分析器以及異構(gòu)SF執(zhí)行體池6個部分。
圖2 擬態(tài)SF組成
MSFC防御架構(gòu)工作流程如圖3所示。
圖3 MSFC防御架構(gòu)工作流程
步驟1進(jìn)入SFC域的數(shù)據(jù)包將先到達(dá)分類器,分類器依據(jù)控制層下發(fā)的分類策略為數(shù)據(jù)包加上對應(yīng)的NSH信息,根據(jù)NSH信息將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一SFF。
步驟2SFF收到數(shù)據(jù)包后依據(jù)NSH信息判斷是否需要經(jīng)過它所連接的SF,需要則進(jìn)行步驟4,反之則進(jìn)行步驟3。
步驟3判斷數(shù)據(jù)包是否將離開SFC域,離開則SFF脫掉數(shù)據(jù)包的NSH并將其轉(zhuǎn)發(fā)至SFC域外的網(wǎng)絡(luò)設(shè)備;反之則直接轉(zhuǎn)發(fā)至下一SFF,回到步驟2。
步驟4將數(shù)據(jù)包轉(zhuǎn)發(fā)至分發(fā)器,分發(fā)器去除其NSH,將數(shù)據(jù)包復(fù)制多份并轉(zhuǎn)發(fā)給各個在線SF執(zhí)行體。執(zhí)行體執(zhí)行相應(yīng)服務(wù)功能后將執(zhí)行結(jié)果依次轉(zhuǎn)發(fā)給判決反饋器。
步驟5控制分析器根據(jù)判決反饋器發(fā)送的判決結(jié)果下線異常SF執(zhí)行體。
步驟6調(diào)度器根據(jù)執(zhí)行體動態(tài)調(diào)度方法,每隔一定的調(diào)度時間從異構(gòu)SF執(zhí)行體池中選擇異構(gòu)度大的未上線SF執(zhí)行體上線并將所有在線SF執(zhí)行體下線。
MSFC防御架構(gòu)以SFC架構(gòu)[1]為基礎(chǔ),參考了DHR模型,通過引入異構(gòu)冗余SF執(zhí)行體池,用多種異構(gòu)SF執(zhí)行體同時執(zhí)行服務(wù)功能的方式代替?zhèn)鹘y(tǒng)由單一SF執(zhí)行體執(zhí)行服務(wù)功能的模型,保證系統(tǒng)的可靠性;通過基于判決反饋的執(zhí)行體動態(tài)調(diào)度方法對SF執(zhí)行體進(jìn)行動態(tài)調(diào)度,保證系統(tǒng)的安全性;通過對異常SF執(zhí)行體的及時下線,保證系統(tǒng)的內(nèi)部純潔性。其中,異構(gòu)執(zhí)行體的動態(tài)調(diào)度是擬態(tài)防御架構(gòu)中最重要的環(huán)節(jié),調(diào)度算法決定了架構(gòu)的安全質(zhì)量。因此,本文基于架構(gòu)進(jìn)一步提出了執(zhí)行體動態(tài)調(diào)度方法以提升安全性。
本節(jié)給出執(zhí)行體動態(tài)調(diào)度方法相關(guān)符號和定義。
定義1異構(gòu)因子比較函數(shù)。設(shè)執(zhí)行體池共有m個執(zhí)行體 SF = {SF1, SF2,???, SFm},每個SFi由各種硬件、操作系統(tǒng)和軟件等e種異構(gòu)元素組成每個異構(gòu)元素劃分為可以比較的最小單位其中,Ig表示SFi第g類異構(gòu)元素的異構(gòu)因子種類數(shù)。定義異構(gòu)因子比較函數(shù)為:
定義2單個執(zhí)行體間異構(gòu)度。根據(jù)定義1,定義SFi與SFj的異構(gòu)度α( SFi,SFj)為:
其中,用gδ表示第g類異構(gòu)元素的權(quán)值,δgk表示第g類異構(gòu)元素第k類異構(gòu)因子的權(quán)值,從而區(qū)分不同種類異構(gòu)元素以及單個異構(gòu)元素中不同種類異構(gòu)因子的關(guān)鍵性。
定義3整體異構(gòu)度。根據(jù)定義2,設(shè)有n個在線執(zhí)行體 SFo ={SFo1,SFo2,???, SFon},定義SFo的整體異構(gòu)度為:
定義4置信度。定義置信度集合B={bSF1,bSF2,???,bSFm}表示SF執(zhí)行體的可信賴程度,每個SF執(zhí)行體的置信度都會隨著實際網(wǎng)絡(luò)情況的變化而改變,集合中所有元素的初始值相同。
定義5執(zhí)行速度影響值。定義集合U={uSF1,uSF2,???,uSFm},uSFi表示SFi在執(zhí)行體池中的相對執(zhí)行速度。定義變量εuSFi表示SFi的執(zhí)行速度影響值,依據(jù)網(wǎng)絡(luò)流量變化更新,且ε>0。
定義6系統(tǒng)負(fù)載及異常執(zhí)行體總數(shù)增長量。定義Δdl與Δda分別代表系統(tǒng)負(fù)載量和異常執(zhí)行體總數(shù)較前一個調(diào)度周期的增長量。在調(diào)度周期內(nèi),若Δdl與Δda同時極大增長,則SF執(zhí)行體緩存溢出概率較大;若Δdl無明顯變化,Δda極大增長,則SF執(zhí)行體被攻擊成功概率較大。上述情況均會造成輸出的執(zhí)行結(jié)果異常。
設(shè)執(zhí)行體池由l種執(zhí)行不同類型服務(wù)功能的SF執(zhí)行體組成 SF = {S1,S2,???,Sl},假設(shè)下一個調(diào)度周期需要第i類服務(wù)功能,當(dāng)SFo為前一個周期的在線執(zhí)行體集合時,設(shè)置集合W表示在集合Si中,所有不屬于SFo的元素的集合。
(1)計算異構(gòu)度
實際中受異構(gòu)元素種類的限制,為了選出最佳SF執(zhí)行體集合,加入異構(gòu)元素間相對異構(gòu)度的影響。對于?SFi∈U,計算SFi與集合SFo中所有元素的異構(gòu)度γi(SFi,SFo),計算式如下:
(2)更新置信度
運(yùn)行環(huán)境不同,SF執(zhí)行體池中的每個異構(gòu)SF執(zhí)行體的防御能力也有所差異。調(diào)度器需依據(jù)網(wǎng)絡(luò)環(huán)境變化實時更新執(zhí)行體置信度,并選擇較難被成功攻擊的SF執(zhí)行體。
若調(diào)度器接收SFi為異常SF執(zhí)行體,則立即將其置信度設(shè)置為0。比較集合SF中所有元素與SFi的異構(gòu)度,根據(jù)異構(gòu)度對SF執(zhí)行體的置信度進(jìn)行更新。設(shè)置δn為置信度更新因子,且δn>0。由定義2可知,兩個SF執(zhí)行體間的異構(gòu)度最大值。設(shè)置為異構(gòu)度區(qū)分邊界,則對集合SF中每個SFj的置信度作如下更新:
若調(diào)度器接收SFi為正常SF執(zhí)行體,則對集合SF中每個SFj的置信度作如下更新:
(3)計算執(zhí)行速度影響值
實際網(wǎng)絡(luò)流量大小在不同時段是不同的。在流量使用高峰時段,執(zhí)行速度慢的SF執(zhí)行體即使未被成功攻擊,也可能出現(xiàn)緩存隊列的溢出使其輸出結(jié)果與正常SF執(zhí)行體不匹配,因而被判定為異常SF執(zhí)行體。當(dāng)大部分在線SF執(zhí)行體的執(zhí)行速度不滿足網(wǎng)絡(luò)要求時,系統(tǒng)甚至可能直接崩潰。因此,調(diào)度器需要考慮SF執(zhí)行體的執(zhí)行速度,即調(diào)度算法必須能隨網(wǎng)絡(luò)流量的變化進(jìn)行適當(dāng)調(diào)整。
在MSFC防御架構(gòu)中,數(shù)據(jù)包先到達(dá)分發(fā)器,再由分發(fā)器復(fù)制并轉(zhuǎn)發(fā)給各個SF執(zhí)行體,因此可以將分發(fā)器的負(fù)載量變化作為實際網(wǎng)絡(luò)流量的變化。設(shè)在一個調(diào)度周期內(nèi),分發(fā)器的總負(fù)載量增加c,則執(zhí)行速度影響值計算如下:
(4)計算可信賴度并更新執(zhí)行速度影響值
每次調(diào)度都根據(jù)需要的服務(wù)功能類型確定從哪個集合選取SF執(zhí)行體。假設(shè)選取的集合為Sk,對于 ?S Fi∈Sk,根據(jù)調(diào)度過程(1)計算的異構(gòu)度、調(diào)度過程(2)計算的置信度和調(diào)度過程(3)計算的執(zhí)行速度影響值,可計算SFi的基礎(chǔ)選擇度如下:
根據(jù)定義6,若SF執(zhí)行體緩存溢出,則需增大執(zhí)行速度對可信賴度計算的影響;若SF執(zhí)行體被攻擊者成功攻擊,則需增大置信度和異構(gòu)度對可信賴度計算的影響。設(shè)置系統(tǒng)負(fù)載量與異常執(zhí)行體個數(shù)的增長閾值分別為lξ與aξ,且將Δdl與Δda超出增長閾值的情況都視作極大增長。對于?S Fi∈Sk,SFi的可信賴度計算方式如下:
進(jìn)一步,對執(zhí)行速度影響值ε進(jìn)行如下更新:
依據(jù)前后兩個調(diào)度周期的系統(tǒng)負(fù)載量和異常執(zhí)行體總數(shù)的變化,以基礎(chǔ)選擇度為基準(zhǔn)計算下一調(diào)度周期SF執(zhí)行體的可信賴度,能夠使執(zhí)行體調(diào)度與網(wǎng)絡(luò)變化的結(jié)合更加緊密。
(5)選取執(zhí)行體集合
假設(shè)在線SF執(zhí)行體集合共需要l個SF執(zhí)行體。調(diào)度器計算集合W中所有元素的可信賴度后,對其進(jìn)行由高到低排序,選出可信賴度靠前的2l個SF執(zhí)行體形成新的SF執(zhí)行體集合Si*={S Fd1,SFd2, ???,SFd2l}。為了提高所選在線SF執(zhí)行體集合的整體異構(gòu)度,以最大化攻擊者的攻擊難度,對Si*中所有SF執(zhí)行體進(jìn)行遍歷,組合得到包含l個SF執(zhí)行體的集合并計算其整體異構(gòu)度。最后,選擇整體異構(gòu)度最大者作為新的在線SF執(zhí)行體集合。
(6)更新調(diào)度周期
系統(tǒng)的安全性將隨調(diào)度周期的減小而增加,但同時將帶來更高的系統(tǒng)資源消耗。因為網(wǎng)絡(luò)環(huán)境的變化,難以確定固定的調(diào)度時間Ts使系統(tǒng)資源消耗與安全性達(dá)到最佳平衡。
設(shè)置集合T= {Ts1,Ts2,…,Tsk},k→+∞,其中,Tsi表示第(i?1)次調(diào)度到第i次調(diào)度對應(yīng)的時間間隔??紤]異常SF執(zhí)行體信息最能體現(xiàn)網(wǎng)絡(luò)變化,將異常SF執(zhí)行體個數(shù)ir作為siT的調(diào)整依據(jù)。若ir大于設(shè)定閾值nξ,則認(rèn)為當(dāng)前系統(tǒng)需要通過降低調(diào)度時間以提升安全性;反之,則認(rèn)為僅依靠調(diào)度算法的內(nèi)部調(diào)節(jié)就可以降低異常SF執(zhí)行體個數(shù)。設(shè)siT的最大取值為ξmax,τ表示異常執(zhí)行體個數(shù)為零的次數(shù),從首次出現(xiàn)該情況開始累加,一旦出現(xiàn)個數(shù)不為零的情況則立即將τ置零,待異常執(zhí)行體個數(shù)再次為零時重新開始累加,則對下一調(diào)度周期進(jìn)行如下更新:
根據(jù)前一個調(diào)度周期內(nèi)異常SF執(zhí)行體的總數(shù)對調(diào)度時間動態(tài)調(diào)整,使得防御系統(tǒng)可以在合適的系統(tǒng)代價始終保持較高水準(zhǔn)的安全性。
調(diào)度算法根據(jù)SF執(zhí)行體的可信賴度從異構(gòu)SF執(zhí)行體池中選擇滿足要求的SF執(zhí)行體集合。因為影響SFi可信賴度的所有因素都會隨著網(wǎng)絡(luò)變化而實時變化,所以SFi的可信賴度可以動態(tài)更新,又因為SFi與集合SFo的異構(gòu)度是可信賴度計算影響因素之一,所以該調(diào)度方法既能保持動態(tài)性和隨機(jī)性,又能保證選出的SF執(zhí)行體集合與集合SFo維持一定水平的異構(gòu)度。
定時地替換在線執(zhí)行體,可以在保持系統(tǒng)異構(gòu)性的同時降低每個執(zhí)行體的暴露時間,系統(tǒng)結(jié)構(gòu)信息的不確定性提升,漏洞被發(fā)現(xiàn)的風(fēng)險降低。因為系統(tǒng)處于不斷更新的狀態(tài)且一直保持較高的異構(gòu)度,所以可以清除適應(yīng)型攻擊者的前期努力及潛在漏洞。在發(fā)現(xiàn)被感染的異常執(zhí)行體后,系統(tǒng)還可以通過調(diào)度直接將其下線,達(dá)到有效阻斷攻擊者對異常執(zhí)行體持續(xù)控制的目的。
假設(shè)下一個調(diào)度周期需要第i類服務(wù)功能。具體見算法1(符號沿用4.2節(jié)的標(biāo)記)。
輸入在線SF執(zhí)行體集合SFo,執(zhí)行第i類服務(wù)功能的SF執(zhí)行體集合Si,執(zhí)行速度影響因子ε,SF執(zhí)行體間的相對執(zhí)行速度集合U,SF中所有元素的置信度集合B,系統(tǒng)負(fù)載量Δdl,異常執(zhí)行體總數(shù)較前一個調(diào)度周期對應(yīng)值的增長量Δda
輸出下一個調(diào)度周期的執(zhí)行體集合 SFonext
計算Si中非在線SF的基礎(chǔ)可信賴度
本節(jié)對在數(shù)據(jù)轉(zhuǎn)發(fā)層設(shè)計的調(diào)度方法進(jìn)行仿真分析,測試其有效性。通過Open vSwitch虛擬交換機(jī)實現(xiàn)分類器與SFF,數(shù)據(jù)層拓?fù)淙鐖D4所示,同時將物理計算機(jī)以物理連接的方式分別連接到分類器、SFF3所掛載的物理接口以模擬源目的特征組,最后在物理服務(wù)器安裝多臺虛擬機(jī)以構(gòu)建擬態(tài)SF。虛擬機(jī)集合表示如下:
圖4 數(shù)據(jù)層拓?fù)?/p>
V1及V2安裝CentOS操作系統(tǒng)且設(shè)置V1完成控制分析器功能,V2完成分發(fā)器、緩存器、判決反饋器功能。V3~V12設(shè)置為防火墻與負(fù)載均衡的SF執(zhí)行體池,其中,V3~V7安裝不同操作系統(tǒng)與防火墻組合,V8~V12安裝不同操作系統(tǒng)與負(fù)載均衡組合,SF執(zhí)行體池構(gòu)建見表2。將服務(wù)器中所有虛擬機(jī)設(shè)置相同的虛擬機(jī)端口組,將擬態(tài)SF加入SFC中,從而完成實驗平臺的搭建。
表2 SF執(zhí)行體池構(gòu)建
使用Java語言定義不同異構(gòu)元素的SF執(zhí)行體類,同時針對不同的異構(gòu)元素設(shè)置對應(yīng)的漏洞類,將對應(yīng)的漏洞對象作為SF執(zhí)行體類的成員變量。當(dāng)SF執(zhí)行體類實例化時,賦予不同類型的SF執(zhí)行體對象不同的最大可承受負(fù)載量,即在不發(fā)生異常的情況下設(shè)備能夠處理的最大數(shù)據(jù)量,以完成異構(gòu)SF執(zhí)行體集合的構(gòu)建。
為驗證本文調(diào)度算法能在網(wǎng)絡(luò)負(fù)載量增長時選取合適的執(zhí)行體集合,假設(shè)系統(tǒng)初始調(diào)度時間為T,在時間間隔5T內(nèi),分別用隨機(jī)調(diào)度算法[21]、異構(gòu)度調(diào)度算法[22]以及本文的判決反饋動態(tài)調(diào)度算法從異構(gòu)執(zhí)行體池中獲取執(zhí)行體集合。將獲取的執(zhí)行體集合中所有不滿足負(fù)載量要求的執(zhí)行體視為異常執(zhí)行體,得到異常執(zhí)行體的總數(shù)與負(fù)載量關(guān)系。依據(jù)獲取的數(shù)據(jù)得到實驗仿真結(jié)果,異常執(zhí)行體的總數(shù)與負(fù)載量關(guān)系如圖5所示。
圖5 異常執(zhí)行體的總數(shù)與負(fù)載量關(guān)系
由仿真結(jié)果可知,隨著負(fù)載量的不斷增大,使用隨機(jī)調(diào)度算法與異構(gòu)度調(diào)度算法的系統(tǒng)異常執(zhí)行體總數(shù)明顯大于使用判決反饋動態(tài)調(diào)度算法的系統(tǒng)異常執(zhí)行總數(shù),且差距隨著負(fù)載量的增大而增大。這是由于當(dāng)系統(tǒng)負(fù)載量較小時,大多數(shù)SF執(zhí)行體都滿足系統(tǒng)負(fù)載要求,此時3種算法系統(tǒng)的異常執(zhí)行體總數(shù)差距不大。隨著系統(tǒng)負(fù)載量的增加,不滿足系統(tǒng)負(fù)載要求的SF執(zhí)行體不斷增多,使用判決反饋動態(tài)調(diào)度算法的系統(tǒng)相較于另兩種能盡量避免選擇不符合負(fù)載要求的SF執(zhí)行體,減少異常執(zhí)行體總數(shù)。
為驗證判決反饋動態(tài)調(diào)度算法能在網(wǎng)絡(luò)負(fù)載量急劇變化時及時做出相應(yīng)調(diào)整,設(shè)置初始負(fù)載量為所有SF執(zhí)行體都能滿足的值,并以5T為測量間隔進(jìn)行仿真。設(shè)定負(fù)載量在第二個調(diào)度周期內(nèi)發(fā)生唯一的一次增長,記錄使用3種不同的調(diào)度算法時,異常執(zhí)行體的總數(shù)與負(fù)載量增長值的關(guān)系,并依據(jù)獲取的數(shù)據(jù)得到實驗仿真結(jié)果,異常執(zhí)行體的總數(shù)與負(fù)載量增長值的關(guān)系如圖6所示。
圖6 異常執(zhí)行體的總數(shù)與負(fù)載量增長值的關(guān)系
仿真結(jié)果表明,當(dāng)負(fù)載量增長值在25 MB/s以內(nèi)時,使用3種調(diào)度算法的系統(tǒng)異常執(zhí)行體總數(shù)相差無幾;當(dāng)負(fù)載量增長值大于25 MB/s時,使用隨機(jī)調(diào)度算法與異構(gòu)度調(diào)度算法的系統(tǒng)異常執(zhí)行體總數(shù)的增速呈上升趨勢,而使用判決反饋動態(tài)調(diào)度算法的系統(tǒng)異常執(zhí)行體總數(shù)的增速呈下降趨勢。因為當(dāng)負(fù)載量增長值在25 MB/s以內(nèi)時,未達(dá)到Δda>ξa、Δdl>ξl的條件,此時本文提出的調(diào)度算法并未受到執(zhí)行速度影響因子的干涉,且此時執(zhí)行體池中不符合負(fù)載要求的執(zhí)行體不多,所以3種調(diào)度算法對應(yīng)系統(tǒng)的異常執(zhí)行體總數(shù)相差不多。當(dāng)負(fù)載增長值大于25 MB/s時,滿足 Δda>ξa、Δdl>ξl的條件,此時判決反饋動態(tài)調(diào)度算法將受到執(zhí)行速度影響因子的干涉,進(jìn)而選取執(zhí)行速度較快的SF執(zhí)行體,因此異常執(zhí)行體總數(shù)的增速相對下降。而其他兩種調(diào)度算法未將負(fù)載值增量作為影響因素,且執(zhí)行體池中不符合負(fù)載要求的執(zhí)行體逐漸增多,因此異常執(zhí)行體總數(shù)的增速必然相對增加。
為驗證判決反饋動態(tài)調(diào)度算法能夠適應(yīng)攻擊者不同強(qiáng)度的攻擊,通過模擬適應(yīng)型攻擊者的攻擊模式,以5T為測量時間間隔,以不同的攻擊頻率模擬實際網(wǎng)絡(luò)中攻擊者不同的攻擊強(qiáng)度,對運(yùn)行上述3種調(diào)度算法的系統(tǒng)進(jìn)行模擬攻擊。最終得到系統(tǒng)被成功攻擊的概率與攻擊強(qiáng)度的關(guān)系,并依據(jù)獲取的數(shù)據(jù)得到實驗仿真結(jié)果,系統(tǒng)被成功攻擊的概率與攻擊強(qiáng)度關(guān)系如圖7所示。
圖7 系統(tǒng)被成功攻擊的概率與攻擊強(qiáng)度關(guān)系
仿真結(jié)果表明,隨機(jī)調(diào)度算法與異構(gòu)度調(diào)度算法的系統(tǒng)被成功攻擊的概率隨著攻擊強(qiáng)度的增強(qiáng)而不斷增加。異構(gòu)度調(diào)度算法將與前一調(diào)度周期的在線SF執(zhí)行體集合間的異構(gòu)度作為調(diào)度依據(jù),所以該算法對應(yīng)的系統(tǒng)被成功攻擊的概率上升較慢。當(dāng)攻擊強(qiáng)度小于15次/min,未達(dá)到動態(tài)調(diào)整調(diào)度時間的觸發(fā)條件時,判決反饋動態(tài)調(diào)度算法考慮了與前一調(diào)度周期的在線SF執(zhí)行體集合間的異構(gòu)度以及與異常執(zhí)行體的異構(gòu)度,所以該算法的系統(tǒng)被成功攻擊的概率略小于異構(gòu)度算法;攻擊強(qiáng)度大于15次/min時,該算法動態(tài)減小調(diào)度時間,以花費更多系統(tǒng)資源的代價提升系統(tǒng)安全性,所以系統(tǒng)被成功攻擊的概率瞬間銳減且該概率的上升速率明顯降低。
系統(tǒng)被成功攻擊的概率與系統(tǒng)資源的總調(diào)度花費成反比,針對同一段系統(tǒng)運(yùn)行時間t,若將系統(tǒng)調(diào)度時間Ts設(shè)置為較大值,則系統(tǒng)被成功攻擊的平均概率較高但是總調(diào)度花費較低;反之系統(tǒng)被成功攻擊的平均概率較低但是總調(diào)度花費較高。為驗證判決反饋動態(tài)調(diào)度算法能依據(jù)網(wǎng)絡(luò)環(huán)境的變化適當(dāng)?shù)恼{(diào)整系統(tǒng)調(diào)度時間,通過模擬適應(yīng)型攻擊者的攻擊模式,以不同的攻擊頻率模擬實際網(wǎng)絡(luò)中攻擊者不同的攻擊強(qiáng)度,對運(yùn)行在同種調(diào)度方法下設(shè)置調(diào)度時間分別固定為T=3 s,T=9 s以及設(shè)置動態(tài)調(diào)度時間在3~9 s的系統(tǒng)進(jìn)行了模擬攻擊。最終得到系統(tǒng)被成功攻擊的概率與攻擊強(qiáng)度的關(guān)系,并依據(jù)獲取的數(shù)據(jù)得到實驗仿真結(jié)果,系統(tǒng)被成功攻擊的概率與攻擊強(qiáng)度的關(guān)系如圖8所示。同樣地,得到不同調(diào)度時間系統(tǒng)平均調(diào)度資源花費關(guān)系如圖9所示。
圖8 系統(tǒng)被成功攻擊的概率與攻擊強(qiáng)度的關(guān)系
圖9 不同調(diào)度時間系統(tǒng)平均調(diào)度資源花費
圖8顯示,隨著攻擊強(qiáng)度的增長,系統(tǒng)被成功攻擊的概率不斷上升。當(dāng)調(diào)度時間為9 s時,系統(tǒng)被成功攻擊的概率明顯大于動態(tài)選取調(diào)度時間和調(diào)度時間為3 s的概率,且差距隨著攻擊強(qiáng)度增加不斷增大。調(diào)度時間在3~9 s動態(tài)調(diào)整,則該系統(tǒng)被成功攻擊的概率介于調(diào)度時間為3~9 s的系統(tǒng),且與前者系統(tǒng)十分接近。圖9顯示,動態(tài)選取調(diào)度時間與調(diào)度時間為9 s的系統(tǒng)平均調(diào)度資源花費較低,調(diào)度時間為3 s的系統(tǒng)平均調(diào)度資源花費較高。實驗結(jié)果表明,本文根據(jù)異常SF執(zhí)行體個數(shù)動態(tài)調(diào)整系統(tǒng)調(diào)度時間的方法可以使系統(tǒng)在保持一定安全性的同時盡量花費較小的調(diào)度代價。
面對SFC的安全性問題,本文提出了數(shù)據(jù)轉(zhuǎn)發(fā)層面的MSFC防御架構(gòu),研究基于判決反饋的動態(tài)調(diào)度方法以判決器反饋的異常執(zhí)行體信息、執(zhí)行體的異構(gòu)度以及系統(tǒng)的實際負(fù)載量作為調(diào)度影響因素,使得調(diào)度方法可以根據(jù)網(wǎng)絡(luò)實際變化進(jìn)行自適應(yīng)調(diào)整。此外,該調(diào)度方法基于判決反饋對調(diào)度時間進(jìn)行調(diào)整,以達(dá)到系統(tǒng)花費與安全性的最佳平衡,降低了系統(tǒng)的資源開銷。仿真結(jié)果表明,該調(diào)度方法可以在平衡系統(tǒng)花費與安全性的基礎(chǔ)上,選出更符合當(dāng)前網(wǎng)絡(luò)需求的高異構(gòu)度執(zhí)行體集合,從而提升了系統(tǒng)的安全性和可靠性并減少了系統(tǒng)開銷。但本文提出的調(diào)度方法并未考慮執(zhí)行體選取的時延問題。在后續(xù)研究中,將對該方法進(jìn)行相關(guān)優(yōu)化,盡可能在保持系統(tǒng)安全性和高效性的同時降低執(zhí)行體選取時延,使之具有更好的實用性。