陳荔
(長(zhǎng)安大學(xué),信息與網(wǎng)絡(luò)管理處,陜西,西安 710064)
目前,網(wǎng)絡(luò)數(shù)據(jù)流量呈現(xiàn)多元化、規(guī)模化發(fā)展,其利用服務(wù)鏈依照既定的邏輯順序,經(jīng)過(guò)防火墻、入侵檢測(cè)點(diǎn)等服務(wù)功能點(diǎn),才能為人們提供安全、穩(wěn)定的網(wǎng)絡(luò)服務(wù),而前提是對(duì)服務(wù)路徑進(jìn)行配置。有限網(wǎng)絡(luò)資源下,持續(xù)增長(zhǎng)的網(wǎng)絡(luò)流量數(shù)據(jù)會(huì)造成帶寬消耗過(guò)量、鏈路擁堵、服務(wù)安全等諸多問(wèn)題;而SDN新型網(wǎng)絡(luò)架構(gòu)采用控制、轉(zhuǎn)發(fā)分離的結(jié)構(gòu),集中化的網(wǎng)絡(luò)控制,可動(dòng)態(tài)、集中地調(diào)配數(shù)據(jù)流量的路徑,為路徑配置提供極大便利,但是,也存在管控集中、控制器漏洞、惡意應(yīng)用等安全問(wèn)題。而傳統(tǒng)的安全防御秉承“威脅感知、問(wèn)題移除”的策略,不能有效發(fā)現(xiàn)和防御未知的安全風(fēng)險(xiǎn),也即需依賴(lài)于既有的攻擊行為及特征。由此,擬態(tài)防御技術(shù)得以提出和發(fā)展,其通過(guò)動(dòng)態(tài)異構(gòu)冗余架構(gòu)的引入,利用自身網(wǎng)絡(luò)架構(gòu)、機(jī)制的優(yōu)化,變“亡羊補(bǔ)牢”為主動(dòng)防御。為此,探究一種適用于服務(wù)路徑配置的SDN(Software Definition Network)擬態(tài)防御架構(gòu),不僅能夠緩解傳統(tǒng)網(wǎng)絡(luò)服務(wù)的弊端性,而且,可最大限度地優(yōu)化服務(wù)路徑配置及安全性。
大規(guī)模的網(wǎng)絡(luò)流量流轉(zhuǎn)時(shí),在相同時(shí)間可能會(huì)占用多個(gè)鏈路帶寬,可將其定義為一個(gè)二元組〈F(x),L(s)〉,F(x),L(x)分別為轉(zhuǎn)發(fā)數(shù)據(jù)流、所選鏈路帶寬剩余的大小,若前者大于后者,則勢(shì)必造成鏈路堵塞[1]。為此,本文將根據(jù)網(wǎng)絡(luò)鏈路負(fù)載狀態(tài)及流量特征,動(dòng)態(tài)調(diào)整流量分流和路由,從而基于負(fù)載均衡實(shí)現(xiàn)路徑的自適應(yīng)配置。同時(shí),因?yàn)榫W(wǎng)絡(luò)環(huán)境復(fù)雜,單一的強(qiáng)化學(xué)習(xí)方法難以提取人工特征,狀態(tài)—?jiǎng)幼骺臻g狹窄問(wèn)題[2-3],為此,本文選用融合多層神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)2類(lèi)模型的深度強(qiáng)化學(xué)習(xí),建構(gòu)路徑配置的方法框架,如圖1所示。

圖1 SDN網(wǎng)絡(luò)的服務(wù)路徑配置框架
圖1中,路由決策模塊是核心,其采用深度強(qiáng)度學(xué)習(xí)方法,通過(guò)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)從數(shù)據(jù)處理模塊中獲取網(wǎng)絡(luò)鏈路和流特征的狀態(tài)St,而服務(wù)路徑配置的網(wǎng)絡(luò)行為則為動(dòng)作at,路徑優(yōu)化調(diào)配目標(biāo)則為獎(jiǎng)勵(lì)rt。通常,深度學(xué)習(xí)網(wǎng)絡(luò)采用狀態(tài)—?jiǎng)幼髦礠函數(shù)Q(St,at}來(lái)評(píng)價(jià)對(duì)狀態(tài)S的長(zhǎng)期獎(jiǎng)勵(lì)預(yù)期的動(dòng)作,在訓(xùn)練時(shí),根據(jù)下式動(dòng)態(tài)更新Q值,如式(1)和式(2),
(1)

(2)
式中,α為學(xué)習(xí)速率、γ為折扣因子,訓(xùn)練過(guò)程中,深度神經(jīng)網(wǎng)絡(luò)以ε-greddy來(lái)選取擁有最高(St,at}的動(dòng)作以實(shí)現(xiàn)預(yù)期長(zhǎng)期獎(jiǎng)勵(lì)的最大化,并以ε的概率從全部的action中隨機(jī)擇取一個(gè),使用1-ε的概率抽取at=maxaQ(St,a}以確保學(xué)習(xí)過(guò)程中探索與利用的平衡。
傳統(tǒng)強(qiáng)化學(xué)習(xí)的查表容易產(chǎn)生存儲(chǔ)、樣本及計(jì)算的高維性[4],但動(dòng)態(tài)、大規(guī)模的網(wǎng)絡(luò)環(huán)境下,對(duì)眾多狀態(tài)、動(dòng)作對(duì)的Q值表進(jìn)行存儲(chǔ)、計(jì)算不可能。為此,本文使用以深度神經(jīng)網(wǎng)絡(luò)以參數(shù)化函數(shù)來(lái)近似強(qiáng)化學(xué)習(xí)的Q值表,并針對(duì)強(qiáng)化學(xué)習(xí)訓(xùn)練數(shù)據(jù)相關(guān)性的問(wèn)題,利用經(jīng)驗(yàn)回訪方式予以解決,即將訓(xùn)練中學(xué)習(xí)到的路由選擇經(jīng)驗(yàn)中的狀態(tài)、動(dòng)作及獎(jiǎng)勵(lì)存入記憶池。而后,將其中的數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本對(duì)其進(jìn)行訓(xùn)練,以此,便可根據(jù)網(wǎng)絡(luò)鏈路狀態(tài)及流量特征完成的網(wǎng)絡(luò)服務(wù)路徑進(jìn)行自適應(yīng)配置。
本文將動(dòng)態(tài)異構(gòu)冗余架構(gòu)引入SDN控制層,構(gòu)建一體化的內(nèi)生擬態(tài)防御機(jī)制。但是,控制層的擬態(tài)防御僅可確保路徑配置信息的可靠性,無(wú)法確保數(shù)據(jù)流實(shí)際傳輸路徑與配置路徑的一致性[5-6],為此,本文結(jié)合OpenFlow交換機(jī)的特性,建構(gòu)路徑轉(zhuǎn)發(fā)的驗(yàn)證機(jī)制,即匹配流表出發(fā)向控制器發(fā)送Packet_in消息的動(dòng)作,其可記錄數(shù)據(jù)流實(shí)際經(jīng)過(guò)哪個(gè)交換機(jī),以獲取數(shù)據(jù)流的實(shí)際傳輸路徑。如此,便可從路徑配置及效驗(yàn)2個(gè)層面,來(lái)建構(gòu)SDN擬態(tài)防御的整體架構(gòu),如圖2所示。

圖2 用于路徑配置的SDN擬態(tài)防御架構(gòu)
應(yīng)用層:該層集成了各類(lèi)SDN業(yè)務(wù)應(yīng)用,可通過(guò)控制層的接口實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)資源的調(diào)用[7],本文采用B/S結(jié)構(gòu)開(kāi)展路徑配置業(yè)務(wù),以該層作為客戶(hù)端,配設(shè)GUI界面進(jìn)行路徑配置業(yè)務(wù)操作,待生成可靠的路徑配置信息后,將其封裝為JSON統(tǒng)一數(shù)據(jù)格式,通過(guò)RESTAPI統(tǒng)一標(biāo)準(zhǔn)的北向接口,與相當(dāng)于服務(wù)器的控制層進(jìn)行交互。同時(shí),為實(shí)現(xiàn)應(yīng)用層與擬態(tài)控制器的通信,此處選用HTTP協(xié)議,在HTTP的請(qǐng)求報(bào)文中封裝REST的Web架構(gòu)配置數(shù)據(jù),并使用Put、Post、Get、Delete等作為網(wǎng)絡(luò)資源操作的基本動(dòng)作與URL規(guī)范格式的網(wǎng)絡(luò)資源來(lái)完成應(yīng)用層路徑配置業(yè)務(wù)的下發(fā)。
擬態(tài)控制層:該層通過(guò)引入動(dòng)態(tài)冗余架構(gòu),以不同的異構(gòu)執(zhí)行體進(jìn)行隨機(jī)、動(dòng)態(tài)的數(shù)據(jù)處理,提升內(nèi)部架構(gòu)的不可預(yù)測(cè),達(dá)到擬態(tài)防御的目的。具體由輸入代理(北向代理)、調(diào)度器、執(zhí)行體池、判決器等組成,其中,輸入代理是接受應(yīng)用層下發(fā)的路徑配置信息的HTTP請(qǐng)求,并將其存儲(chǔ)傳輸給調(diào)度器;調(diào)度器采用調(diào)度的動(dòng)態(tài)選擇算法,來(lái)隨機(jī)選擇路徑配置的異構(gòu)執(zhí)行體,以此提升SDN網(wǎng)的安全防御性,而因執(zhí)行體對(duì)象結(jié)構(gòu)的差異越大,則擬態(tài)防御的效果越優(yōu),所以,本文采用MOSS量化各異構(gòu)執(zhí)行體的結(jié)構(gòu)差異,且異構(gòu)度并非由單一體確定,此處將其定義為執(zhí)行體的異構(gòu)度,如式(3),
(3)
式中,σ(Ei,Ej}為Ei、Ej2個(gè)執(zhí)行體的異構(gòu)度,m為調(diào)度選擇的m個(gè)執(zhí)行體,σ∈(0,1]為異構(gòu)度,調(diào)度動(dòng)態(tài)算法選擇執(zhí)行體時(shí),以力求σ最小。調(diào)度選擇時(shí),應(yīng)選擇防御能力強(qiáng)的執(zhí)行體,故而,本文引入安全防御系數(shù),將其定義為式(4),
μ(Ep}={μ1,μ2,μ3…,μn}
(4)
式中,n為執(zhí)行體集中的異構(gòu)執(zhí)行體數(shù)量,Ep為執(zhí)行體集。初始時(shí),各異構(gòu)執(zhí)行體的安全防御系數(shù)相同,但后期會(huì)根據(jù)判決器反饋執(zhí)行體的每次輸出情況進(jìn)行更新,如式(5),
(5)
式中,?為更新因子。
據(jù)此,可得執(zhí)行體集的安全防御系數(shù)為式(6),
(6)
結(jié)合執(zhí)行體的異構(gòu)度、安全防御系數(shù),可將執(zhí)行體的調(diào)度對(duì)象函數(shù)定義為式(7),
(7)
如此,通過(guò)調(diào)度對(duì)象函數(shù)最小值的求解,便可選出相應(yīng)的執(zhí)行體,如式(8),
θ(Ep}=arg min(σ*+μ*}
(8)
判決器是通過(guò)對(duì)比各異構(gòu)執(zhí)行體的不同,獲取最終的輸出,因各執(zhí)行體自身結(jié)構(gòu)、安全防御能力各異,輸出結(jié)果的可靠性也不完全相同,故而,本文以可靠度系數(shù)替代每個(gè)輸出為1分的做法,將相同類(lèi)的執(zhí)行體可靠度系數(shù)相加,從中擇取相加可靠度系數(shù)最大類(lèi)別的輸出結(jié)果,作為最終的判決輸出結(jié)果,并據(jù)此將輸出結(jié)果相同的執(zhí)行體歸為一類(lèi),具體過(guò)程如下。
調(diào)度器選擇的執(zhí)行體集E=[E1,E2,…,Em],m為被選中的執(zhí)行體數(shù)量,執(zhí)行體可靠度系數(shù)ω的初始值ω0可依安全防御系數(shù)得出,此時(shí),執(zhí)行體集可靠度系數(shù)初始值定義為式(9),
(9)
式中,β為折扣因子,m為目前活躍的執(zhí)行體數(shù)量。根據(jù)可靠度系數(shù)可得m個(gè)執(zhí)行體輸出結(jié)果{φ1,φ2,…,φm},對(duì)結(jié)果等同的進(jìn)行分類(lèi),如式(10),
φ*={[φ1,a,φ1,b,…,φ1,c][φ2,a,φ2,b,…,φ2c]…
[φk,a,φk,b,…,φkc]}
(10)
式中a、b、c為常數(shù)弱化可靠度系數(shù)的變化幅度,k為執(zhí)行體輸出結(jié)果的分類(lèi)數(shù)量。
據(jù)此,執(zhí)行體集輸出對(duì)應(yīng)的可靠度系數(shù)為式(11),
ω*=f(φ*}
(11)
對(duì)相同分類(lèi)的可靠度系數(shù)相加,如式(12),
(12)
式中,i為第i種分類(lèi),l為相同類(lèi)的執(zhí)行體數(shù)量。
此時(shí),在所處分類(lèi)的可靠度系數(shù)相加最大時(shí),便可得出判決其的最終輸出結(jié)果,如式(13),
φ′=arg maxF(ωi|φ}
(13)
數(shù)據(jù)層:該層配設(shè)多個(gè)OpenFlow交換機(jī)、提供各類(lèi)網(wǎng)絡(luò)服務(wù)功能,重點(diǎn)在于增設(shè)路徑轉(zhuǎn)發(fā)的驗(yàn)證機(jī)制。首先,針對(duì)數(shù)據(jù)流傳輸路徑各異,為準(zhǔn)確區(qū)分功能服務(wù)鏈和交換機(jī),構(gòu)建多項(xiàng)式路徑驗(yàn)證標(biāo)識(shí)集合,并將其配置到Packet-In消息附帶的Cookie字段,利用其中的7個(gè)字節(jié)完成標(biāo)識(shí)配置;然后,控制器利用OpenFlow協(xié)議可將生成的驗(yàn)證標(biāo)識(shí)配置不同交換機(jī)流表上的Cookie字段,因該Cookie是唯一、異化性,據(jù)此可得出交換機(jī)標(biāo)識(shí)datapath_id和配置的數(shù)據(jù)流,進(jìn)而完成路徑驗(yàn)證標(biāo)識(shí)的分發(fā);最后,交換機(jī)會(huì)將基于OpenFlow協(xié)議發(fā)送Packet-In信息,以將驗(yàn)證標(biāo)識(shí)發(fā)送給控制器,控制器收集到Datapath_id,Cookie,以及經(jīng)過(guò)哈希運(yùn)算的數(shù)據(jù)包字符串Hash_data后,將Hash_data相同的數(shù)據(jù)包發(fā)送給控制器的Datapath_id、Cookie并歸入相同組,通過(guò)比較,分析配置到交換機(jī)的路徑驗(yàn)證標(biāo)識(shí)集合與控制器收集到的是否一致,若一致則通過(guò)路徑驗(yàn)證。
為實(shí)測(cè)防御架構(gòu)的效果,本文選用Intel?CoreTMI7-9750H CPU 4.5GHz、16GB RAM,以Mathemtica平臺(tái)為仿真工具,使用TensorFlowTM系統(tǒng),以Python作為編程語(yǔ)言進(jìn)行深度強(qiáng)化學(xué)習(xí)算法的編程實(shí)現(xiàn),并采用Open vSwich交換機(jī)、KVM虛擬化工具、Wireshark軟件作為實(shí)驗(yàn)工具。且實(shí)驗(yàn)選用數(shù)據(jù)中心級(jí)或企業(yè)級(jí)的SDN網(wǎng)絡(luò),控制器需要操控超大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)流量,其面臨的安全威脅更多、動(dòng)態(tài)隨機(jī)性較高。但是,安全防御性能的測(cè)試無(wú)法通過(guò)簡(jiǎn)單的概率事件表征,故而,本文選用廣域網(wǎng)攻擊數(shù)據(jù)集樣本,其涉及的網(wǎng)絡(luò)攻擊多樣包含遠(yuǎn)程注入、黑客入侵、僵尸網(wǎng)絡(luò)等。數(shù)據(jù)內(nèi)容涵蓋地址信息、協(xié)議、工具、信息等多種攻擊類(lèi)型,概率分布繁雜,實(shí)驗(yàn)僅以其中高級(jí)持續(xù)攻擊的攻擊數(shù)據(jù)為準(zhǔn),測(cè)試控制層在接收應(yīng)用層下發(fā)的服務(wù)路徑配置信息后,可否通過(guò)調(diào)度的動(dòng)態(tài)選擇算法擇取最優(yōu)的執(zhí)行體集,并基于執(zhí)行體可靠度系數(shù)的相加,輸出最終的判決結(jié)果配置到OpenFlow交換機(jī)上,以此測(cè)定該擬態(tài)防御框架下有無(wú)攻擊下是否可成功進(jìn)行路徑配置。
路徑配置成功與否的測(cè)試指標(biāo)選用失效概率,分設(shè)無(wú)攻擊、篡改1個(gè)和2個(gè)執(zhí)行體等測(cè)試條件,在有、無(wú)擬態(tài)防御架構(gòu)下來(lái)判定隨著攻擊的增多,擬態(tài)防御性能變化的穩(wěn)定性。而因?yàn)閿M態(tài)防御是動(dòng)態(tài)冗余架構(gòu)布設(shè)于控制層,失效概率與控制器狀態(tài)密切相關(guān),而控制器狀態(tài),也即安全防御性與有效流表的比例相關(guān),故而,其計(jì)算式為式(14),
(14)

通過(guò)實(shí)驗(yàn)分析,可得不同攻擊狀態(tài)下,擬態(tài)防御架構(gòu)的失效概率如圖3所示。

圖3 用于路徑配置的擬態(tài)防御架構(gòu)失效概率
顯然,在無(wú)擬態(tài)防御架構(gòu)下,控制器在無(wú)攻擊狀態(tài)下,失效概率為0,但是隨著對(duì)執(zhí)行體篡改數(shù)量的增加,失效概率逐漸增加,并在60個(gè)時(shí)間單位時(shí),失效概率近似100%;而在有擬態(tài)防御架構(gòu)下,控制器在有無(wú)篡改狀態(tài)下,失效概率變化不大,尤其在90個(gè)時(shí)間單位后,其安全防御性能表現(xiàn)更優(yōu)。這是因?yàn)殡S著攻擊的不斷進(jìn)行,擬態(tài)防御累積了更多的攻擊信息,且動(dòng)態(tài)異構(gòu)冗余的擬態(tài)防御架構(gòu),本就讓不同執(zhí)行體的結(jié)構(gòu)、后門(mén)、漏洞各異,且其動(dòng)態(tài)調(diào)動(dòng)算法可擇優(yōu)選取異構(gòu)執(zhí)行體,以提升控制層的動(dòng)態(tài)、隨機(jī)性,如此,便會(huì)增加成功攻擊的難度,極大的優(yōu)化了安全防御功能。
海量、大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)流量的交互、共享下,面臨的安全問(wèn)題更為多元,而路徑配置中信息生成、下發(fā)傳輸?shù)恼_性,是確保網(wǎng)絡(luò)服務(wù)安全、穩(wěn)定的核心。故而,上述研究著眼于此,針對(duì)SDN控制與轉(zhuǎn)發(fā)分離下,以及控制層單一控制器,容易遭受數(shù)據(jù)泄密、篡改、惡意應(yīng)用等攻擊和威脅性,以多結(jié)構(gòu)異化的控制器冗余體來(lái)建構(gòu)內(nèi)生安全機(jī)制;并利用OpenFlow協(xié)議生成的驗(yàn)證標(biāo)識(shí),對(duì)轉(zhuǎn)發(fā)路徑進(jìn)行“二重”驗(yàn)證,以此給予路徑配置“雙重保險(xiǎn)”,確保網(wǎng)絡(luò)服務(wù)中實(shí)際轉(zhuǎn)發(fā)路徑與路徑配置要求一致,以最大限度提升安全防御性能。