江 魁,丘遠東,鄭浩城
1.深圳大學 信息中心,廣東 深圳518000
2.深圳大學 電子與信息工程學院,廣東 深圳518000
隨著IPv4地址的耗盡,IPv6將取代IPv4,成為建設下一代互聯(lián)網(wǎng)的基礎。雖然IPv6相較于IPv4在很多方面都有所改進,但仍存在多種網(wǎng)絡安全問題,例如信道安全問題[1]、非法入侵、信息泄露、分布式拒絕服務攻擊(Distribute Denial of Service,DDoS)等等[2],DDos攻擊對業(yè)務破壞性大、影響面廣、威脅程度高。近年來,DDoS攻擊在網(wǎng)絡安全事件中的占比越來越高,甚至發(fā)展成完整的攻擊產(chǎn)業(yè)鏈,IPv6 DDoS攻擊防御對于保障未來的網(wǎng)絡安全十分重要[3]。
ICMPv6(Internet Control Management Protocol version 6),即互聯(lián)網(wǎng)控制信息協(xié)議版本六,是為了與IPv6配套使用而開發(fā)的互聯(lián)網(wǎng)控制信息協(xié)議[4]。與ICMPv4是IPv4的可選協(xié)議不同,在IPv6網(wǎng)絡中,ICMPv6是強制性協(xié)議,每個啟動IPv6的節(jié)點必須完全實現(xiàn)ICMPv6協(xié)議才能在網(wǎng)絡中正常工作。由于ICMPv6的不可或缺性,利用其協(xié)議漏洞來實施DDoS攻擊是最普遍的IPv6攻擊之一[5]。
ICMPv6 DDoS攻擊的主要類型[6]如圖1所示,包括:(1)ICMPv6泛洪攻擊,攻擊者可以向受害者注入大量的ICMPv6數(shù)據(jù)包來進行攻擊;(2)ICMPv6放大攻擊,如基于ICMPv6多播地址的rSmurf攻擊,攻擊者通過將ECHO請求數(shù)據(jù)包發(fā)送到具有欺騙性源地址(指向受害者地址)的多播地址來執(zhí)行DDoS攻擊;(3)基于利用ICMPv6協(xié)議規(guī)范的攻擊,如通過發(fā)送ICMPv6路由器通告(RA)數(shù)據(jù)包冒充其他路由器來執(zhí)行MITM攻擊。此外還有利用路由器請求(RS)、鄰居通告(NA)、鄰居請求(NS)、重定向消息數(shù)據(jù)包等其他DDoS攻擊方式[7]。
圖1 基于ICMPv6的DDoS攻擊類型Fig.1 Types of DDoS attacks based on ICMPv6
IPv4網(wǎng)絡中,網(wǎng)絡管理員為了避免潛在的攻擊,可以通過丟棄所有的ICMPv4數(shù)據(jù)包來阻止ICMPv4 DDoS攻擊。但在IPv6網(wǎng)絡中,由于ICMPv6與IPv6節(jié)點的高度相關性,網(wǎng)絡管理員無法使用該機制抵御DDoS攻擊[8]。因此,避免此問題的唯一方法是在網(wǎng)絡中部署檢測系統(tǒng),通過對異常流量的快速檢測來及時進行治理。
對異常流量的檢測,當前業(yè)界主流做法是采用基于統(tǒng)計學或基于機器學習的方法,前者檢測速度快,不需考慮過多的特征值,但是檢測準確率低,誤報率高。而基于機器學習的檢測方法準確率較高,誤報率較低,但需要手動構(gòu)建較多的特征值、參數(shù)等,檢測速度慢。針對機器學習的局限性,深度學習通過學習數(shù)據(jù)樣本的內(nèi)在規(guī)律和表示層次,對此有一定程度上的解決[9]。但是基于深度學習的檢測會消耗較大的系統(tǒng)資源[10],面對DDos這類流量巨大的網(wǎng)絡攻擊,無法做到檢測的實時性。因此,尋找一個高準確率、低誤報率,同時又具有更高效率的檢測方法,成為ICMPv6 DDos攻擊檢測的難點。
長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)是深度學習算法的一種,依靠獨特的隱藏層循環(huán)結(jié)構(gòu)能夠很好地捕捉數(shù)據(jù)間的時間相關性,使得一個學習系統(tǒng)能夠不依賴人工的特征選擇,而學習到復雜的表達函數(shù)。本文在LSTM的基礎上構(gòu)建了單向3層LSTM堆疊神經(jīng)網(wǎng)絡模型LSTM3,提出了一種基于信息熵與LSTM3結(jié)合的雙重檢測方法,該方法結(jié)合了信息熵與LSTM3的優(yōu)點,與現(xiàn)有檢測方法相比,具有更高的準確率和更低的誤報率,同時減少了檢測時間,具有更好的性能。
查閱近幾年的相關研究,Saad等人[11]利用反向傳播神經(jīng)網(wǎng)絡(Back Propagation Neural Network,BPNN)來檢測ICMPv6 DDos攻擊,在應用BPNN之前,作者首先使用信息增益比(Information Gain Ratio,IGR)和主成分分析(Principal Component Analysis,PCA)進行了測試,最終獲得了98.3%的檢測精度,但是作者使用的數(shù)據(jù)集僅包含“ICMPv6 ECHO Request”泛洪這一種攻擊,攻擊數(shù)據(jù)類型單一,不具備廣泛的檢測效果。Zulkiflee等人[12]使用了支持向量機(Support Vector Machine,SVM)來檢測多種IPv6攻擊。這項研究主要集中在選擇與目標攻擊相關的一組特征上,這些攻擊包括了“ICMPv6 RA”泛洪這一種DDoS攻擊。作者選擇了時間間隔,Src IP,Src端口,Dst端口和協(xié)議作為特征值,取得了較高的檢測精度,但無法檢測其他類型的DDoS攻擊。Praptodiyono等人[13]提出一種基于主動技術的檢測方法來檢測基于NA和NS的DDoS攻擊,提出兩種算法分別用于處理NS和NA數(shù)據(jù)包、提取相關IPv6-MAC地址信息,缺點是無法檢測來自真實地址對(IP-MAC)的攻擊,而且檢測方法對資源的消耗較大。以上方法盡管在檢測準確率上有了較高精度,但存在檢測時間較長、檢測攻擊類型單一、檢測消耗資源較大等問題。
因此,在ICMPv6 DDoS攻擊檢測上,結(jié)合以上的研究學習,本文提出了一種基于信息熵與LSTM的雙重檢測方法,該方法利用信息熵來對流量進行初步檢測,如果檢測到可疑流量,再以改進的LSTM作為深度檢測來判斷可疑流量是否為DDoS攻擊流量。該方法結(jié)合了信息熵與LSTM的優(yōu)點,與現(xiàn)有檢測方法相比,既提高了準確率、又降低了誤報率,同時具有更好的性能。
總體架構(gòu)如圖2所示,本檢測方法包括2個步驟,分別是基于信息熵的初步檢測和基于LSTM3的深度檢測。初步檢測首先對導入的數(shù)據(jù)進行初步分析,提取用于計算熵值的特征,隨后計算固定時間間隔內(nèi)特征的熵值,并與設定好的閾值進行比較,如果熵值不在閾值范圍內(nèi),則認為流量異常,同時將異常流量導入基于LSTM3的深度檢測,經(jīng)深度檢測判斷可疑流量是否為DDoS攻擊流量,最后再進行下一步的處理,下面分別對這兩部分進行說明。
圖2 檢測模型的總體架構(gòu)Fig.2 Overall architecture of detection model
信息熵的概念是由數(shù)學家香農(nóng)提出來的,它是衡量樣本集合離散程度的指標之一[14]。一般來說,正常的網(wǎng)絡行為是較為隨機的,所產(chǎn)生的數(shù)據(jù)比較離散,而且從長時間上看,正常行為產(chǎn)生的信息熵大體會趨于一個穩(wěn)定的范圍,所以當網(wǎng)絡發(fā)生異常時,異常行為所產(chǎn)生的信息熵會偏離這個穩(wěn)定的范圍,通過計算信息熵能夠很快發(fā)現(xiàn)異常行為。用香農(nóng)公式計算信息熵:
H(x)表示的是數(shù)據(jù)樣本x的熵值表示的是x中的某個樣本值i發(fā)生的概率,ni表示的是i發(fā)生了ni次,W表示的是樣本的總數(shù)量,由公式(1)可知,當所有的樣本值都相同時,H(x)=0,此時熵值最小,當所有的樣本值都不一樣時,H(x)=lbW,此時熵值最大。
因此,在樣本數(shù)量相同的情況下,熵值大小只與樣本序列的異同情況有關。通過選取數(shù)據(jù)集中最能反應當前網(wǎng)絡狀態(tài)的某些特征序列來作為數(shù)據(jù)樣本x計算其熵值。另外,W的大小也會改變樣本特征熵值在短時間內(nèi)的變化情況,如果W值過大,會導致熵值變化不明顯,從而降低檢測的準確度。因此,將數(shù)據(jù)集分為若干個合適的W,然后依次計算每個W的信息熵值,最終得到一個基于信息熵異常流量的分析指標。通過對選取的特征序列計算得到熵值,與預先設定的閾值T進行比較,當指標中的信息熵不在正常閾值范圍內(nèi)時,則認為網(wǎng)絡中產(chǎn)生了異常,并開始啟動基于LSTM3的深度檢測。單純基于熵值的檢測方法有較高的局限性,比如閾值如何設定會影響整個算法的準確率、誤報率等。所以與其他基于熵值的檢測方法不同的是,不將這個作為判斷是否發(fā)生ICMPv6 DDoS攻擊的標準,只是將初步檢測的功能設為對可疑流量的排查,所以閾值T的設定本著盡量將異常流量排查出來的原則,將其設定為一個較為寬泛的范圍,以達到較高的識別率,同時可以接受高誤報率。
通過LSTM來進行深度檢測。LSTM是由Hochreiter和Schmidhuber在1997年提出的一種改進的循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN),由于RNN有梯度消失的問題,因此只有短期記憶,無法處理長時間序列。LSTM則有效地解決了梯度消失的問題,它能通過“門”的結(jié)構(gòu)決定過去的狀態(tài)是保留還是遺忘[15]。LSTM在每個單元中包括三個門:遺忘門、輸入門和輸出門。LSTM的結(jié)構(gòu)如圖3所示。
圖3 LSTM結(jié)構(gòu)圖Fig.3 LSTM structure diagram
遺忘門ft:決定單元狀態(tài)Ct-1的丟棄程度。
輸入門it:決定當前時刻網(wǎng)絡的輸入xt有多少保存到單元狀態(tài)Ct。
輸出門ot:決定了控制單元狀態(tài)Ct有多少輸出到LSTM的當前輸出值ht。
式中,Wf,Wi,WC,Wo是輸入的加權矩陣;bf,bi,bC,bo是偏置項;σ為Sigmoid激活函數(shù);tanh為雙曲正切激活函數(shù)[16]。
為更好地適用ICMPv6 DDoS攻擊檢測,在LSTM的基礎上構(gòu)建了單向3層LSTM堆疊神經(jīng)網(wǎng)絡,即LSTM3網(wǎng)絡模型。如圖4所示,該模型是由三個LSTM層堆疊而成,其中,LSTM0、LSTM1、LSTM2分別表示第1層、第2層、第3層LSTM結(jié)構(gòu),{x0,x1,…,xN}為經(jīng)過預處理后的輸入數(shù)據(jù)。最終的輸出分類器為采用了Softmax函數(shù)的分類網(wǎng)絡。Softmax函數(shù)本質(zhì)上是一種神經(jīng)元輸出的概率分布形式,最后一個輸出層的節(jié)點個數(shù)與分類任務的目標數(shù)相等。最終的輸出數(shù)據(jù)用一維數(shù)組[0,1]和[1,0]來表示攻擊流量和正常流量,在實際預測中,使用一維數(shù)組中最大值的下標來表示預測結(jié)果,例如,[0.013 487 1,0.987 580 1]表示攻擊流量,[0.996 568 5,0.003 112 3]表示正常流量。
圖4 LSTM3網(wǎng)絡模型Fig.4 Model of LSTM3
網(wǎng)絡容量的增加很容易導致模型的過擬合,為防止過擬合,提高模型的泛化性能,在訓練過程中采用了循環(huán)Dropout正則化來降低過擬合,即將某一層的輸入單元以一定的概率隨機設為0,目的是打破該層訓練數(shù)據(jù)中的偶然相關性。
在模型的輸入數(shù)據(jù)上,通過對導入的數(shù)據(jù)集進行特征提取以及預處理,將數(shù)據(jù)集轉(zhuǎn)化為模型需要的輸入數(shù)據(jù)形式,如圖5所示,每塊長條為一個包含N個特征值的數(shù)據(jù)(input-size),批處理batch-size為60,時間步長time-step為100。
圖5 模型的輸入數(shù)據(jù)Fig.5 Input data of model
實驗中所使用的硬件環(huán)境是通用X86架構(gòu)的物理主機,配置為Inter?Xeon?CUP雙核+8 GB內(nèi)存,軟件環(huán)境為Windows操作系統(tǒng)和基于Tensorflow框架開發(fā)的深度檢測模塊。使用的數(shù)據(jù)集是由馬來西亞理科大學(USM)計算機科學學院發(fā)布的基于流的ICMPv6 DDoS攻擊的公開數(shù)據(jù)集[17],該數(shù)據(jù)集涵蓋了22種基于ICMPv6的DDoS攻擊流量。數(shù)據(jù)集分為訓練集和測試集兩部分,分別有10萬條左右的數(shù)據(jù)流,從該數(shù)據(jù)集中選取11種基于流的特征參與神經(jīng)網(wǎng)絡學習,表1是具體的基于流的特征及其描述。
表1 基于流的特征及其描述Table 1 Flow-based features and description
初步檢測的目的是將網(wǎng)絡中的異常流量識別出來,所以非常適合將識別率(detection rate)和誤報率(false alarm rate)作為評估它的性能指標。
ICMPv6協(xié)議具有多種消息類型,正常的用戶訪問基于不同的目的和內(nèi)容,產(chǎn)生的ICMPv6數(shù)據(jù)類型在整體看是隨機的,而攻擊者使用命令發(fā)送惡意數(shù)據(jù)包,該命令會在短時間內(nèi)從相同的ICMPv6類型生成大量的數(shù)據(jù)包。另外,攻擊行為和人類訪問行為的另一個主要區(qū)別在于訪問的頻率上[18]。因此選取了最符合以上描述的幾個特征——ICMPv6 Type、Packets Number、Transferred Bytes作為候選特征,通過多次實驗,發(fā)現(xiàn)ICMPv6 Type、Transferred Bytes的正常流量與攻擊流量之間的熵值分離度更高,區(qū)分程度更好,所以選擇這兩個作為計算熵值的特征,如表2所示。
表2 基于信息熵的異常流量分析指標Table 2 Abnormal traffic analysis index based on information entropy
分別計算正常流量與異常流量在每個窗口W內(nèi)的信息熵值,并將該信息熵與閾值進行比較來判斷網(wǎng)絡是否發(fā)生異常。原則上,W的選擇與實際的網(wǎng)絡負載相關,結(jié)合實驗所使用的數(shù)據(jù)集與測量分析,發(fā)現(xiàn)W=60是一個很好的選擇,也就是60條數(shù)據(jù)流為一個計算間隔,每條數(shù)據(jù)流是通過固定的時間間隔t=5 s構(gòu)造的,實驗的結(jié)果如圖6、7所示。
圖6 正常流量與異常流量H(IT)的比較Fig.6 Comparison of H(IT)between normal flow and abnormal flow
圖7 正常流量與異常流量H(TB)的比較Fig.7 Comparison of H(TB)between normal flow and abnormal flow
由圖6、7可以看出,有一部分正常流量和異常流量的熵值交織在一起,說明了單一的基于信息熵的檢測對于某些DDoS攻擊是無效的,初步檢測的目的是識別出異常流量,所以一定要有很高的識別率,同時由于還有深度檢測步驟,所以能接受較高的誤報率。根據(jù)以上原則,分析實驗數(shù)據(jù),得到當H(IT)的熵值設定為1.687時,異常流量的識別率為99.89%,誤報率為42.36%,當H(TB)的熵值設定為1.819時,識別率為99.89%,誤報率為31.18%。當2個熵值的其中一個小于規(guī)定的閾值時,就認為網(wǎng)絡中可能發(fā)生了ICMPv6 DDOS攻擊。
為了驗證閾值的效果,使用了測試集來進行測試,實驗結(jié)果如表3所示。
表3 基于信息熵異常檢測算法的識別率和誤報率Table 3 Recognition rate and false alarm rate based on information entropy anomaly detection algorithm
由實驗結(jié)果可知,基于信息熵的異常流量檢測具有極高的識別率,雖然有較高的誤報率,但是不影響其作為初步檢測的作用,證明該方法能夠有效地識別ICMPv6 DDoS攻擊流量。
本文將準確率(accuracy rate)、損失率(loss rate)和偏差率(deviation rate)作為評估深度檢測的性能指標。
LSTM3檢測模型中除了隱藏層的層數(shù)確定為3層外,各層RNN unit的個數(shù)、時間步長、學習率,Dropout系數(shù)等關鍵參數(shù)的確定會對模型的預測結(jié)果有較大影響。本實驗通過網(wǎng)格搜索優(yōu)化算法結(jié)合交叉驗證法可以得到模型參數(shù)的最優(yōu)解。經(jīng)搜索優(yōu)化,確定LSTM3各層的RNN unit個數(shù)為64,時間步長為100,初始的學習率設為lE?3,Dropout系數(shù)為0.1。
實驗過程:首先對數(shù)據(jù)集進行預處理,第一步先進行標準化。標準化后將訓練集中的數(shù)據(jù)分為20份子數(shù)據(jù)集(大小為S),依次進行讀取,目的是防止一次性讀取數(shù)據(jù)過多導致服務器存儲填滿,將滑動窗口(K)設置為100,每份子數(shù)據(jù)集組合成S-K個數(shù)據(jù)包集合,每個數(shù)據(jù)包有K條數(shù)據(jù)流,批處理大小(B)設置為60,這樣每個子數(shù)據(jù)集的迭代次數(shù)為(S-K)/B+1,然后將這些數(shù)據(jù)包傳輸?shù)侥P椭羞M行訓練。
訓練完后,再從測試集中選取出5 000條數(shù)據(jù)進行網(wǎng)絡攻擊預測。一共進行10次實驗,取結(jié)果的平均值作為最終的實驗結(jié)果。
為驗證LSTM3模型的檢測效果,又分別搭建了LSTM1(單層LSTM)、LSTM2(雙層LSTM)以及LSTM4(四層LSTM)模型來與LSTM3模型進行實驗比較,表4顯示了四個模型的測試結(jié)果對比。
表4 不同層數(shù)LSTM模型的對比Table 4 Comparison of LSTM models with different layers
由表4可知,當LSTM的層數(shù)為3時,模型在準確率、損失率以及偏差率上的表現(xiàn)都要更好。同時發(fā)現(xiàn)過多的層數(shù)會造成檢測指標的下降以及訓練時間的增加,所以結(jié)合實驗數(shù)據(jù),LSTM3作為深度檢測的模型最為合適。
另外,使用相同數(shù)據(jù)集進行相關研究的還有文獻[19],作者使用了K近鄰算法(K-Nearest Neighbor,KNN)、支持向量機(SVM)、樸素貝葉斯算法(Naive Bayesian Algorithm,NBA)和隨機森林算法(Random Forest,RF)等模型,同時,本文還引入了近幾年較為流行的深度學習算法中的卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)和門控循環(huán)單元(Gated Recurrent Unit,GRU)來與LSTM3模型一同進行比較,由于文獻[19]僅使用了準確率和誤報率作為評價模型的指標,所以將比較它們的準確率和誤報率的情況。
從表5可以看出,LSTM3神經(jīng)網(wǎng)絡模型在準確率和誤報率上均好于以上所比較的算法。由結(jié)果可知,在檢測ICMPv6 DDoS攻擊上,基于LSTM3的深度檢測要優(yōu)于大部分機器學習算法。
表5 不同算法模型的對比Table 5 Comparison of different algorithm models %
雖然LSTM3模型檢測效果最好,但是該模型在本實驗物理主機上對數(shù)據(jù)的處理時間是最長的,一方面是因為實驗物理主機的性能限制,另一方面是LSTM3神經(jīng)網(wǎng)絡面對大量數(shù)據(jù)需要的計算量非常大。先通過基于信息熵的檢測,可以減少處理時間,用相同的數(shù)據(jù)對基于LSTM3的深度檢測模型和基于信息熵與LSTM3的雙重檢測模型進行了測試實驗,結(jié)果如表6所示。
表6 雙重模型與單一模型的對比Table 6 Comparison of dual model and single model
從結(jié)果來看,兩者在準確率上基本一樣,都具有較高的檢測精度,但是雙重檢測模型的處理時間比前者減少了一半以上。這是因為信息熵的計算屬于輕量級計算,對主機資源占用不高。而且,初步檢測階段已將大部分的正常流量排除掉,極大地減少了對主機資源占用較高的深度檢測所需要處理的數(shù)據(jù)量。
綜上所述,通過選擇合適的特征、調(diào)整LSTM層數(shù)、調(diào)整神經(jīng)網(wǎng)絡參數(shù)等手段,得到了適用于檢測ICMPv6 DDoS攻擊的深度檢測模型,在此基礎上通過添加基于信息熵的初步檢測后再進行比較,仿真實驗證明,該方法具有更好的性能指標及更高的檢測效率。
本文在對現(xiàn)有ICMPv6 DDoS攻擊檢測方法研究基礎上,提出了基于信息熵與LSTM3相結(jié)合的雙重檢測方法,該方法通過基于信息熵的初步檢測能夠有效識別出異常流量,再進一步基于LSTM3的神經(jīng)網(wǎng)絡的深度檢測對異常流量進行確認。理論分析及仿真實驗表明,該方法可以準確高效地檢測出ICMPv6 DDos攻擊,可實際應用于下一代互聯(lián)網(wǎng)威脅感知類系統(tǒng)(如蜜罐、入侵檢測、高級持續(xù)性威脅發(fā)現(xiàn)等),并為今后該方面研究提供借鑒。