許盛亮 鄭 松
隨著網(wǎng)絡(luò)化時代的到來,云控制系統(tǒng)作為一種新型的網(wǎng)絡(luò)控制技術(shù)受到了廣泛關(guān)注.“云控制系統(tǒng)”是對傳統(tǒng)網(wǎng)絡(luò)控制系統(tǒng)的延伸,其概念最早由夏元清教授提出,它利用云端處理任務(wù)的計算與決策,突破了傳統(tǒng)網(wǎng)絡(luò)控制系統(tǒng)的算力瓶頸[1-2].然而,云控制系統(tǒng)也面臨著諸如DDoS 攻擊等安全威脅.DDoS攻擊是指通過大量偽造數(shù)據(jù)包占用網(wǎng)絡(luò)資源或消耗服務(wù)器的資源,從而完全切斷云端與本地的通信,導(dǎo)致嚴(yán)重的丟包現(xiàn)象并破壞系統(tǒng)的穩(wěn)定性[3].
針對DDoS 攻擊問題已有許多相關(guān)研究工作,其中一部分研究利用神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方法對數(shù)據(jù)包特征進行訓(xùn)練和檢測.例如,Gavrilis 等提出了一種徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)檢測器[4],利用數(shù)據(jù)包中的少量特征進行訓(xùn)練,進而實現(xiàn)對于DDoS 攻擊的檢測.文獻[5-6]設(shè)計了一種基于Hadoop 和Hbase 的具有學(xué)習(xí)能力的神經(jīng)網(wǎng)絡(luò)DDoS 攻擊檢測系統(tǒng),并取得良好的檢測結(jié)果.YUAN 等設(shè)計了一個循環(huán)深度神經(jīng)網(wǎng)絡(luò),通過網(wǎng)絡(luò)流量提取高級特征并跟蹤網(wǎng)絡(luò)攻擊,從而實現(xiàn)檢測和防御[7].鄒源等使用過采樣方法對不平衡的黑白流量樣本進行處理,并使用長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)模型實現(xiàn)對網(wǎng)絡(luò)惡意流量的檢測[8].文獻[9]中針對低速DDoS 攻擊提出一種基于雙向長短期記憶網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,BiLSTM)模型的檢測算法,其檢測的準(zhǔn)率達到了95.08%.胡曉紅等提出基于結(jié)合主成分分析和隨機森林DDoS 攻擊檢測模型,通過降維的方式提高模型的檢測效率[10].
另一部分研究采用博弈論、動態(tài)定價等方法對攻防策略進行建模和優(yōu)化.ALI 等對于云控制系統(tǒng)的DDoS 攻擊提出一種基于協(xié)方差矩陣檢測的方式[11],通過對比正常和異常傳輸流的協(xié)方差矩陣的差異判斷云端與本地的通信是否遭受到DDoS 攻擊.YANG 建立基于云控制的網(wǎng)絡(luò)多智能體系統(tǒng)[12],通過Stackberg博弈建立拒絕服務(wù)(denial of service,DoS)攻擊模型,最后通過預(yù)測云控制實現(xiàn)對DoS 攻擊的防御.YUAN建立基于信噪比的攻防Stackelberg 博弈模型[13],設(shè)計了一種新型的輔助動態(tài)反饋定價機制,使得云控制系統(tǒng)在受到攻擊時可以有一定的干擾抑制性能,保持控制系統(tǒng)的穩(wěn)定性.
現(xiàn)有研究大多直接使用公開數(shù)據(jù)集,并未充分模擬真實場景下云控制系統(tǒng)遭受DDoS 攻擊時可能出現(xiàn)的情況.且目前云控制系統(tǒng)的DDoS 攻擊的研究大多是基于純數(shù)值仿真,缺少實際的物理場景的驗證.本文提出的CNN-MHA-BiLSTM 模型解決了低相關(guān)度特征影響現(xiàn)有模型影響檢測結(jié)果的問題,提高了檢測結(jié)果的準(zhǔn)確率.其次,對于純數(shù)值仿真難以模擬真實場景下的云控制系統(tǒng)DDoS 攻擊的問題,基于IAP 云平臺搭建了一套單容水箱云控制半物理仿真系統(tǒng),模擬了真實場景下的DDoS 攻擊,實驗結(jié)果也很好地驗證了本文所提出模型的優(yōu)勢.
分布式拒絕服務(wù)攻擊是一種占用網(wǎng)絡(luò)傳輸鏈路帶寬的攻擊形式,被攻擊的通信鏈路會因此發(fā)生丟包或者超長延時現(xiàn)象.云控制系統(tǒng)的分布式拒絕服務(wù)攻擊模式如圖1 所示,其過程可分成3 個階段:首先是蠕蟲建立階段,即攻擊者通過設(shè)置相關(guān)命令建立大量受感染的計算機群;其次是攻擊程序部署階段,即在這些受感染的計算集群中部署相應(yīng)的攻擊程序;最后是發(fā)起攻擊階段,即通過控制中心驅(qū)動蠕蟲發(fā)起對云控制系統(tǒng)的DDoS 攻擊.
圖1 云控制系統(tǒng)DDoS 攻擊Fig.1 DDoS attacks of cloud control system
本章提出的一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)、BiLSTM 和多頭注意力機制的云控制系統(tǒng)DDoS 攻擊檢測算法.該算法包括3 個階段:首先是對原始流量的預(yù)處理階段,即對網(wǎng)絡(luò)流量進行采樣、過濾和歸一化等操作;其次是流表特征提取階段,即利用CNN 和BiLSTM 網(wǎng)絡(luò)從流表中抽取有效特征;最后是攻擊分類檢測階段,即利用多頭注意力機制對特征進行加權(quán)組合,并輸出攻擊類型.
本文通過Linux 系統(tǒng)中的TCPdump 指令每60 s捕獲一次系統(tǒng)中的網(wǎng)絡(luò)流量,并按時間保存為pcap文件.由于深度學(xué)習(xí)模型無法直接讀取pcap 文件,因此,需先對原始流量進行預(yù)處理.本文選擇會話流作為流量分類的粒度,即兩個端點之間相互發(fā)送和接收數(shù)據(jù)包組成一個會話流.通訊流量通常由3 個層次組成:網(wǎng)絡(luò)流、數(shù)據(jù)包、字節(jié),且在會話流中包含的有效交互信息比單向流更多[14].本文從每個數(shù)據(jù)包中提取五元組信息:(IPsrc)、(IPdst)、(Psrc)、(Pdst)、(Protocol),將五元組信息完全匹配的數(shù)據(jù)包整合成一條網(wǎng)絡(luò)流,并用式(1)表示會話:
將會話流記為:Session=(b,l,t,d),其中,t=t1<t2<…<tn,b={b1,b2,…,bn}={(IPsrc,IPdst,Psrc,Pdst,Protocol)},SRC?DST,pi為遵循時間序列ti排列的數(shù)據(jù)包,b 為源地址和目的地址之間交互的五元組信息,l 表示會話流中的數(shù)據(jù)包的長度之和;t 表示首個數(shù)據(jù)包開始的時間;d=tn-t,即整個會話所持續(xù)的時間.通過以上方法即可將原始會話流表示為Flow={Session1,Session2,…,Sessionm} 的形式,其中,m 表示會話流的數(shù)量.之后將捕獲的原始流量的pcap 文件轉(zhuǎn)成數(shù)據(jù)矩陣的形式,本文基于式(1)表示的會話流對原始的網(wǎng)絡(luò)流量進行分片,將網(wǎng)絡(luò)流重組為多個會話流文件,并將網(wǎng)絡(luò)流中的空流和重復(fù)文件刪除,對于數(shù)據(jù)包數(shù)目小于3 的無效會話則執(zhí)行過濾操作;再將數(shù)據(jù)矩陣中一些可能干擾檢測結(jié)果的信息如MAC 地址、IP 地址等進行刪除;最后進行提取操作,對每條會話中前N 個數(shù)據(jù)包的前M 個字節(jié)進行提取,分別對超出和不足部分執(zhí)行“截斷填充”處理,空缺的部分使用0填充,并將該會話進行標(biāo)記.為便于模型讀取數(shù)據(jù)加快模型收斂速度,采用“最大-最小”歸一化將采集的數(shù)據(jù)映射到[0,1]之間,映射函數(shù)如式(2)所示:
網(wǎng)絡(luò)流通常由多個數(shù)據(jù)包組成,因此,可以認(rèn)為數(shù)據(jù)包的字節(jié)之間存在著空間的關(guān)系,而網(wǎng)絡(luò)流中數(shù)據(jù)包發(fā)送時間的不同可以認(rèn)定字節(jié)間存在著時序關(guān)系,由此可以得出,一條網(wǎng)絡(luò)流量同時存在著空間特征和時間特征.而CNN 網(wǎng)絡(luò)可以利用卷積層、批歸一化層、激活層和池化層等結(jié)構(gòu),從輸入的流量數(shù)據(jù)中提取空間維度的特征,例如數(shù)據(jù)包的大小、頻率、持續(xù)時間等.并且可以通過權(quán)值共享和封裝特征提取的過程,降低模型的復(fù)雜度和參數(shù)數(shù)量,提高模型的效率和泛化能力.BiLSTM 網(wǎng)絡(luò)則可以利用兩個LSTM 層分別從前向和后向?qū)斎氲牧髁繑?shù)據(jù)進行時間維度的特征提取,例如數(shù)據(jù)包之間的時序關(guān)系、周期性、趨勢等.同時,BiLSTM 網(wǎng)絡(luò)可以通過記憶單元和遺忘門等結(jié)構(gòu),學(xué)習(xí)長期依賴信息,并避免單向LSTM 的信息丟失問題.
CNN 與BiLSTM 的結(jié)合是一種時空特征融合的方法,它可以將CNN 網(wǎng)絡(luò)輸出的空間特征作為BiLSTM 網(wǎng)絡(luò)輸入的時間序列數(shù)據(jù),并將BiLSTM 網(wǎng)絡(luò)輸出的時間特征作為最終輸出層輸入的分類數(shù)據(jù).這樣可以實現(xiàn)對多種DDoS 攻擊類型的混合流量特征進行有效地提取和檢測.
流量數(shù)據(jù)經(jīng)由預(yù)處理后,轉(zhuǎn)變成28×28 的二維矩陣輸入到卷積神經(jīng)網(wǎng)絡(luò)中,進行空間維度的特征提取,本文所采用的CNN 模型結(jié)構(gòu)包含3 個局部模塊,如圖2 所示,每個局部模塊都包含1 個卷積層,1個批歸一化(BachNormal,BN)層和1 個池化層,其中BN 層主要用于防止“梯度彌散”并加速訓(xùn)練.
圖2 CNN 模型結(jié)構(gòu)Fig.2 The model structure CNN
卷積層和池化層分別遵循式(3)和式(4).
上述公式中,a 為模型的通道,f 為卷積核的尺寸,s 為卷積核每次移動的步長,且步長選擇1;w 為模型的權(quán)重比;l 表示模型的層數(shù);b 指的是模型的偏置項;p 表示對輸入數(shù)據(jù)進行對稱填充0 的操作,經(jīng)此填充后,可以更有效地保持輸入數(shù)據(jù)的邊緣信息;T(i,j)表示映射出來的特征圖.
數(shù)據(jù)輸入模型后,分別經(jīng)過卷積層、批歸一化層、Relu 層和最大值池化層,其中
經(jīng)過CNN 模型的處理后,卷積層的輸出將作為BiLSTM 層的輸入,本文將BiLSTM 模型在單方向上的神經(jīng)元個數(shù)設(shè)置為128.BiLSTM 的優(yōu)勢在于可以獲取某一單元前后的依賴信息,避免某一方向上的信息丟失,圖3 為BiLSTM 的網(wǎng)絡(luò)結(jié)構(gòu).
圖3 BiLSTM 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of BiLSTM
通過在隱藏層中增加的門控結(jié)構(gòu)實現(xiàn)對前后特征信息的提取,遺忘門會通過遺忘權(quán)重Wf與上文的流量特征信息Ct-1相乘,從而選擇性地遺忘上一個神經(jīng)元中的信息.輸入門和輸出門則分別對輸入和輸出信息進行限制,Ct-1與輸入權(quán)重Wi相乘后完成信息的更新,得到Ct,在輸出時,Ct會與一個tanh 激活函數(shù)相乘,再與輸出權(quán)重Wo逐元素相乘,得到當(dāng)前神經(jīng)元的輸出和候選值a(t),具體的計算過程如式(6)~式(9)所示.
式中,xt為t 時刻的輸入;Uf、Ui、Uo和Ua分別表示遺忘門、輸入門、輸出門和特征提取過程中xt的權(quán)重系數(shù);bf、bi、bo和ba分別表示遺忘門、輸入門、輸出門和特征提取過程中的偏置值;ot表示模型的最終輸出;tanh 表示正切雙曲函數(shù);σ 表示激活函數(shù)Sigmoid,且
遺忘門和輸入門計算的結(jié)果作用于c(t-1),構(gòu)成t 時刻的細(xì)胞狀態(tài)c(t),用公式表示為:
其中,⊙表示Hadamard 積,最終,由輸出門o(t)和當(dāng)前時刻的細(xì)胞狀態(tài)c(t)求出t 時刻的隱藏層狀態(tài)h(t),如式(12)所示.
注意力機制最初由VASWANI 等提出,用于解決自然語言處理方面相關(guān)的問題[15].DDoS 攻擊所反映出來的攻擊時間鏈跨度較長,而循環(huán)神經(jīng)網(wǎng)絡(luò)在處理傳遞過程較長的信息時會出現(xiàn)信息丟失并且對于特征重要程度的區(qū)分能力不高等問題,因此,本文將多頭注意力機制與CNN-BiLSTM 模型融合,提高模型對關(guān)鍵特征的關(guān)注度,降低了低相關(guān)度特征對于檢測結(jié)果的影響.
通過多頭注意力機制的查詢(query,Q)=鍵(key,K)=值(value,V)機制捕獲網(wǎng)絡(luò)流量的關(guān)鍵特征信息,并根據(jù)特征信息的關(guān)鍵程度賦予相應(yīng)的權(quán)重,通過向量點積的方式并進行h 次線性變換,便可得到每個數(shù)據(jù)包向量的注意力himh,最后將各個數(shù)據(jù)包的特征進行合并得到全局特征,具體的計算如式(8)~式(10)所示:
其中,dk為矩陣K 的維度;分別為Q,K,V 的權(quán)重矩陣,為權(quán)重矩陣經(jīng)過h 次線性變換所得到的不同數(shù)據(jù)包注意力的值.
圖4 為基于多頭注意力機制的流量特征提取結(jié)構(gòu).多頭注意力機制的處理后將得到會話流的時空特征向量,該特征向量會輸入到深度學(xué)習(xí)網(wǎng)絡(luò)的softmax 分類器中,完成對DDoS 攻擊流量的分類.
圖4 基于多頭注意力機制的特征提取結(jié)構(gòu)Fig.4 Feature extraction structure based on multi-head attention mechanism
本文提出的CNN-MHA-BiLSTM 模型結(jié)構(gòu)如圖5 所示,原始流量經(jīng)過預(yù)處理后會轉(zhuǎn)換成適合輸入CNN 模型的格式,數(shù)據(jù)輸入檢測模型之后,分別進行空間和時間維度的特征提取,最后通過多頭注意力機制重要數(shù)據(jù)包特征的提取能力進行改進,最后由softmax 分類器對流量進行分類,區(qū)分該流量是否為DDoS 攻擊流量.
圖5 CNN-MHA-BiLSTM 檢測模型結(jié)構(gòu)Fig.5 The detection model structure of CNN-MHA-BiLSTM
具體的檢測算法如算法1 所示.
為驗證本文所提出的DDoS 攻擊檢測模型的有效性以及研究DDoS 攻擊對云控制系統(tǒng)的影響,本文基于愛普云平臺搭建了一套單容水箱云控制半物理仿真系統(tǒng),分別選用歐姆龍NJ300、三菱Q03UDE 和施耐德BME 這3 款PLC,作為單容水箱的進水閥、出水閥和水箱的仿真硬件,同時3 種不同協(xié)議的PLC也可以很好地模擬實際生產(chǎn)環(huán)境中的異構(gòu)設(shè)備之間的通信,相關(guān)的數(shù)據(jù)點位均由PLC 的數(shù)據(jù)點位進行控制,數(shù)據(jù)上云則通過邊緣網(wǎng)關(guān)對PLC 的點位數(shù)據(jù)進行采集并上傳到云端.本文所設(shè)計的單容水箱的PID 控制原理如圖6 所示.
圖6 單容水箱PID 控制原理Fig.6 PID control principle of single water tank
相應(yīng)的半物理仿真系統(tǒng)的硬件如圖7 所示.
圖7 單容水箱云控制半物理仿真系統(tǒng)Fig.7 Semi-physical simulation system of single water tank cloud control
在單容水箱半物理仿真系統(tǒng)平穩(wěn)運行后,在Kali Linux 系統(tǒng)中使用hping3 工具向單容水箱云控制系統(tǒng)發(fā)起DDoS 攻擊.本文針對云控制系統(tǒng)DDoS 攻擊的檢測流程如圖8 所示,模型進行初始化時相關(guān)的參數(shù)如表1 所示.
表1 模型初始化參數(shù)Table 1 Model initialization parameters
圖8 DDoS 攻擊檢測流程Fig.8 Flow chart of DDoS attack detection
對于本文所提出的云控制系統(tǒng)DDoS 攻擊檢測模型的評估,選取機器學(xué)習(xí)中的準(zhǔn)確率(AAcc)、F1 得分和誤報率(FFAR)等指標(biāo)作為評價標(biāo)準(zhǔn),相應(yīng)指標(biāo)由式(16)定義.
其中,TTP、TTN、FFP、FFN分別是混淆矩陣所對應(yīng)的4個不同的參數(shù),分別代表模型不同的分類結(jié)果.
在單容水箱云控制系統(tǒng)正常運行一段時間后,對系統(tǒng)發(fā)起DDoS 攻擊,由圖9 所示,在DDoS 攻擊的情況下,水箱的液位開始震蕩,說明DDoS 攻擊產(chǎn)生的大量無用數(shù)據(jù)包占用了網(wǎng)絡(luò)帶寬,影響到云控制系統(tǒng)的正常通信.
圖9 單容水箱液位情況Fig.9 Liquid level situation of single water tank
為研究多頭注意力機制并行頭數(shù)對于模型性能的影響,本文分別設(shè)置了1,2,4,6,8 共5 種并行機制,研究了其對于準(zhǔn)確率、誤報率等指標(biāo)的影響,其結(jié)果如圖10 所示.
圖10 并行頭數(shù)對模型性能的影響Fig.10 Effect of parallel head number on model performance
實驗結(jié)果顯示,模型的檢測效果并不會隨著注意力機制并行頭數(shù)的增加而一直增強,當(dāng)并行頭數(shù)為2 時,相應(yīng)的指標(biāo)都優(yōu)于本次對比實驗所設(shè)置的其他并行頭數(shù).
為驗證本文所提出模型的優(yōu)勢,本文在相同的情況下對比了CNN,BiLSTM,CNN-BiLSTM 3 種模型,相應(yīng)的檢測結(jié)果如表2 所示.
表2 模型檢測結(jié)果對比Table 2 Comparison of model detection results
由以上對比結(jié)果可知,融入多頭注意力機制后,檢測的準(zhǔn)確率相比無多頭注意力機制的模型提高了1.72%,同時CNN-MHA-BiLSTM 模型的誤報率、F1 等指標(biāo)都優(yōu)于其他3 種檢測模型,說明CNN-MHA-BiLSTM模型對于DDoS 攻擊流量的提取與識別能力更強.
針對云控制系統(tǒng)的DDoS 網(wǎng)絡(luò)攻擊,提出一種基于CNN-MHA-BiLSTM 模型的檢測算法,分別采用卷積神經(jīng)網(wǎng)絡(luò)和雙向長短期記憶網(wǎng)絡(luò)提取流表特征,模型中的多頭注意力機制提高模型對關(guān)鍵信息的權(quán)重比.基于會話流對原始數(shù)據(jù)進行處理,獲取相應(yīng)的流表項特征.搭建了基于IAP 云平臺的單容水箱液位云控制半物理仿真系統(tǒng),驗證了真實場景下云控制系統(tǒng)的DDoS 攻擊,彌補了現(xiàn)有的純數(shù)字仿真研究的不足.實驗結(jié)果表明CNN-MHA-BiLSTM 模型可以有效地檢測出云控制系統(tǒng)的DDoS 攻擊,且相對于CNN 和BiLSTM 等模型具有較大的優(yōu)勢.