












摘 要:傳統軟件定義網絡(SDN)中的分布式拒絕服務(DDoS)攻擊檢測方法需要控制平面與數據平面進行頻繁通信,這會導致顯著的開銷和延遲,而目前可編程數據平面由于語法無法實現復雜檢測算法,難以保證較高檢測效率。針對上述問題,提出了一種基于可編程協議無關報文處理(P4)可編程數據平面的DDoS攻擊檢測方法。首先,利用基于P4改進的信息熵進行初檢,判斷是否有可疑流量發生;然后再利用P4提取特征只需微秒級時長的優勢,提取可疑流量的六元組特征導入數據標準化—深度神經網絡(data standardization-deep neural network,DS-DNN)復檢模塊,判斷其是否為DDoS攻擊流量;最后,模擬真實環境對該方法的各項評估指標進行測試。實驗結果表明,該方法能夠較好地檢測SDN環境下的DDoS攻擊,在保證較高檢測率與準確率的同時,有效降低了誤報率,并將檢測時長縮短至毫秒級別。
關鍵詞:軟件定義網絡;可編程數據平面;可編程協議無關報文處理;分布式拒絕服務攻擊;攻擊檢測;深度神經網絡
中圖分類號:TP393.08 文獻標志碼:A
文章編號:1001-3695(2022)07-037-2149-07
doi:10.19734/j.issn.1001-3695.2021.12.0661
基金項目:國家自然科學基金項目(61572034);安徽省科技重大專項(18030901025)
作者簡介:劉向舉(1978-),男,黑龍江雙城人,副教授,碩士,主要研究方向為物聯網、智能控制技術;尚林松(1996-),男(通信作者),安徽淮南人,碩士研究生,主要研究方向為軟件定義網絡、可編程數據平面(slsrousong@163.com);方賢進(1970-),男,安徽舒城人,教授,博士,主要研究方向為網絡與信息安全、智能計算;路小寶(1995-),男,安徽蚌埠人,碩士研究生,主要研究方向為物聯網、軟件定義網絡.
Distributed denial of service attack detection based on programming protocol-independent packet processors
Liu Xiangju,Shang Linsong?,Fang Xianjin,Lu Xiaobao
(School of Computer Science amp; Engineering,Anhui University of Science amp; Technology,Huainan Anhui 232001,China)
Abstract:The distributed denial of service (DDoS) attack detection method in traditional software defined network (SDN) requires frequent communication between the control plane and the data plane,which will lead to significant overhead and delay,and the current programmable data plane can not implement complex detection algorithms,so it is difficult to ensure high detection efficiency.To solve the above problems,this paper proposed a DDoS attack detection method based on programming protocol-independent packet processors (P4) programmable data plane.First of all,the method used the improved information entropy based on P4 as initial detection to determine whether suspicious traffic occurred.Then,it took advantage of the microsecond time required for feature extraction by P4 to extract the six-tuple features of suspicious traffic,and imported them into the data standardization-deep neural network(DS-DNN) reinspection module to determine whether they were DDoS attack traffic.Finally,it tested the evaluation indicators of the method in the real environment.The experimental results show that this method can better detect DDoS attacks in SDN environments,ensure high detection rate and accuracy,effectively reduce the 1 alarm rate,and shorten the detection time to millisecond level.
Key words:software defined network(SDN);programmable data plane;programming protocol-independent packet processors(P4);distributed denial of service(DDoS) attack;attack detection;deep neural network(DNN)
0 引言
軟件定義網絡(software defined network,SDN)具有網絡開放可編程、數控分離以及邏輯上的集中控制三大特點[1],其中實現數控分離這一特點的南向接口協議——OpenFlow,由于其匹配動作表的匹配域是協議相關的,運用新的協議就需要在原有的協議中繼續添加,導致其變得越發臃腫[2]。可編程協議無關報文處理(programming protocol-independent packet processors,P4)的可重配置性、協議無關性以及平臺無關性[3]不僅彌補了OpenFlow的不足,而且實現了數據平面可編程,使未來的SDN這一概念變得更加完善。同時由于邏輯上集中控制的特點,SDN環境更容易遭受網絡攻擊,被攻擊后產生的破壞性后果更嚴重,其中最常見的攻擊手段是分布式拒絕服務攻擊(distributed denial of service,DDoS)。DDoS攻擊是利用足夠數量的僵尸主機產生數量巨大的攻擊數據包對一個或者多個目標實施拒絕服務(denial of service,DoS)攻擊,將目標主機資源耗盡,使其無法提供正常網絡服務[4]。由于DDoS攻擊成本低、攻擊危害大,至今仍然是當下網絡安全中最嚴重的威脅之一。
目前,國內針對傳統SDN環境下的DDoS攻擊檢測問題,劉俊杰等人[5]提出一種基于C4.5決策樹的檢測方法,該方法在檢測率上高于傳統機器算法,但C4.5仍然無法擺脫單棵決策樹在泛化性能上較差的問題。王健等人[6]提出一種基于尖點突變模型的檢測方法,針對DDoS攻擊特征和流表特點提出了基于流表的改良型控制變量和狀態變量,該方法在高強度的流表項采樣下的檢測率較高,但是誤報率略高于其他文獻。劉振鵬等人[7]提出了基于遺傳算法優化的徑向基神經網絡的檢測方法,該方法通過在檢測方法前利用廣義信息熵對檢測流量進行劃分來有效減低了控制器CPU負載,但相應也降低了原算法的準確率。劉濤等人[8]提出了一種利用交叉熵作為機器學習算法輸入的特征,從而對攻擊進行檢測的方法,該方法較其他特征提取方案有效提高了傳統機器學習算法對于DDoS攻擊的檢測率,但交叉熵在應對大數據量時算法復雜度較高。朱婧等人[9]提出了一種基于深度信念網絡(deep belief network,DBN)的檢測方案。張龍等人[10]提出了一種基于信息熵與深度神經網絡(deep neural network,DNN)的檢測方案。以上兩個方案的準確率和誤報率表現優秀,但其秒級的檢測時間仍然是它們的不足之處。賈錕等人[11]提出了一個輕量化DDoS檢測防御框架SDDetection,可以在粗粒度和細粒度兩種模式下運行,粗粒度模式下通過提取SDN交換機中的特征對可疑流量進行閾值警報,再利用細粒度模式對可疑流量進行二次特征提取,運用熵檢測和SVM算法進行進一步攻擊判別。以上幾種傳統SDN環境下的DDoS攻擊檢測方案,通過控制平面向數據平面獲取流表項信息來構建特征,兩者之間的頻繁通信將會帶來顯著的開銷和延遲,這些延誤在網絡安全方面是無法接受的。
國內外將可編程數據平面運用到DDoS攻擊檢測上的研究成果較少,Pereira等人[12]提出了使用可編程數據平面實現安全的網絡監控,使用加密散列函數搭配count-min sketch數據結構來實現這一目的;該方法在達到網絡監控的同時保證了網絡性能損失可以忽略不計,但沒有提出針對DDoS攻擊檢測的明確方案。Dimolianis等人[13]提出了一種結合多種流量特征的網內DDoS檢測方案;該方案可以在真實環境下實現完全在數據平面對每個子網的準確警報,但該方案在攻擊規模較小時檢測率較低,且只能保證在1~2 Mbps的數據包傳輸速率下不會出現丟包現象。Musumeci等人[14]提出了一種基于P4語言的機器學習輔助檢測方案;該方案利用P4對數據流特征進行提取時間為微秒級的優勢力,將提取到的特征放入控制平面的機器學習算法模塊進行攻擊檢測,但是該方案沒有將攻擊檢測過程完全卸載到數據平面。Lapolli等人[15]提出了一種基于P4的全網實時DDoS攻擊檢測與防御方法;該方案能夠快速檢測到攻擊并采取緩解策略,但是其對增速攻擊不敏感,會出現漏報的可能。以上提出的幾種利用P4可編程數據平面實現的DDoS攻擊檢測方案均有效利用P4的特性實現了快速檢測的優點,但均未采用分類效率更高的深度學習算法。
針對上述問題,本文利用P4可編程交換機可以直接在數據平面進行DDoS攻擊檢測的優勢,提出了基于P4的初檢加復檢的兩階段DDoS攻擊檢測方法。一方面,改進的信息熵初檢模塊具有極高的檢測率,并且可以有效降低數據標準化—深度神經網絡復檢模塊檢測資源消耗和時長;另一方面采用帶有DNN計算能力的中間件解決了P4可編程交換機目前無法直接部署深度學習的問題。
1 本文方法
1.1 攻擊檢測模型總體架構
本文的檢測模型部署在SDN環境下基于P4的可編程數據平面交換機上,該模型主要包括兩個部分,分別是基于P4改進的信息熵初檢模塊和基于P4流量特征提取的DS-DNN復檢模塊,如圖1所示。初檢模塊利用P4可編程交換機計算一個窗口內流量數據包的特征熵值與設定閾值進行比對,判斷是否發生可疑流量,若是,則將該窗口內的流量標記為可疑流量,并將復檢模塊所需的特征提取到具有DNN計算能力的中間件,否則不進行任何操作。復檢模塊在接收到初檢模塊發送過來的特征之后,對其進行進一步檢測,判斷可疑流量是否為DDoS攻擊流量,若是,則進行警報并發送至控制平面等待下一步防御或者緩解工作,否則不做任何操作。
1.2 流量分析以及DDoS攻擊流量特征選擇
本文以較為常見的高速控制平面計算資源消耗型DDoS攻擊作為研究對象。在真實網絡中,攻擊者采用惡意軟件等方式入侵一個或多個SDN架構中的主機,控制其偽造地址生成虛假數據包,在極短的時間內通過OpenFlow協議觸發產生大量無效Packet_In消息發送至控制器,使控制器耗費大量計算資源來處理攻擊造成的Packet_In消息,使控制器沒有足夠的計算資源處理正常消息[16]。詳細網絡流量分析如下:
a)根據正常網絡流量具有自相似性的特點,可以推斷網絡流量在短時間內大概率不會出現明顯波動的情況。而在SDN架構中發生DDoS攻擊時,大量虛假數據包涌入網絡中,造成獲取相同數據包個數所需要的時間更短,因此收集相同數據包個數所消耗的時間長短可以作為檢測依據。同時,由于攻擊者為實現高速攻擊,通常偽造的數據包長度明顯小于正常數據包。DDoS攻擊流量的生存時間值(time to live,TTL)明顯區別于正常流量。如圖2所示,可以看到攻擊流量從第20個窗口開始到第121個窗口結束,窗口時長和平均數據包長度大多數情況下小于正常流量,以及平均數據包TTL要明顯區別于正常流量。
b)信息熵是信息論中用于度量信息量的一個概念。一個系統越是有序,信息熵就越低;反之,一個系統越是混亂,信息熵就越高。DDoS攻擊采用源IP地址偽造技術,即攻擊流量源IP地址數量巨大且互不相同,而目的IP地址基本不變。因此可以推斷出,對比正常流量,該攻擊的源IP地址信息熵值較高,而目的IP地址的信息熵值較低。同時,在正常網絡通信中,數據包的協議多種多樣,因此正常通信的數據包協議信息熵值會高于DDoS攻擊流量的熵值,如圖3所示。
經過以上分析,選取收集固定數據包個數花費的總時長、平均數據包長度、平均數據包TTL、源IP地址熵值、目的IP地址熵值和數據包協議熵值作為DDoS攻擊流量特征。由于P4語法不支持除法、指數以及對數等運算[15],需要對原始的信息熵公式進行對等轉換,所以采用數據包的個數作為一個檢測窗口的標準。采用最小計數草圖(count-min sketch,CMS)數據結構[17],利用P4語言中的寄存器(register)單元進行實現[11],以完成數據包出現頻率的存儲工作。在經過數學變換之后可以獲得新的信息熵計算公式:
其中:H(X)表示信息熵;X是總共n個數據包內的IP地址的集合;xi表示集合中的某一個IP地址;p(xi)表示該IP地址數目占所有IP地址數目的比值;每個不同的IP地址出現的頻率記為f1,f2,…,fM,其中M為不同IP地址的個數,f1=n·p(x1),依此類推。具體流量特征表示如下:
a)收集固定數據包個數花費的時長time_cost(Wi),其中:Wi表示第t個窗口。
b)平均數據包長度:
其中:n表示一個窗口數據包的個數。
c)平均數據包TTL:
d)源IP地址熵值:
其中:S表示一個窗口內源IP地址的種數;sfi表示第i個源IP地址出現的頻率。
e)目的IP地址熵值:
其中:D表示一個窗口內目的IP地址的種數,dfi表示第i個目的IP地址出現的頻率。
f)數據包協議熵值:
其中:P表示一個窗口內協議的種數,pfi表示第i個協議出現的頻率。
1.3 基于P4改進的信息熵初檢模塊
使用P4可編程交換機在不影響數據包正常轉發的同時,解析自定義DDoS攻擊檢測數據包頭與元數據,在對數據包內容進行分析以實現初檢的基礎上,按照復檢模塊需要的流量特征進行提取,并將提取到的特征內容發送到復檢模塊進行進一步檢測。
1.3.1 自定義DDoSD協議實現特征提取
數據包頭(header)是指數據包開頭的格式化數據,給定分組可以包含代表不同網絡協議的分組頭序列。在P4語言中可以自定義header結構,并描述其內部的字段集及其大小,因此可以自定義協議來滿足所需要的功能。本文針對DDoS攻擊初檢自定義分布式拒絕服務攻擊檢測(distributed denial of service detection,DDoSD)協議,設置以太網幀類型為0x9905,用于在parser(解析器)結構中進行解析,具體構造如圖4所示。其中,pkt_num用于記錄該數據包是窗口中第幾個數據包;alarm用于記錄初檢結果,1為攻擊流量,0為正常流量;ether_type用于parser的解析工作;src_entropy用于記錄截止到該數據包時的源IP地址熵值;dst_entropy用于記錄截止到該數據包時的目的IP地址熵值。
元數據(metadata)用于表示在P4程序執行期間生成的中間數據。P4中的元數據可以分為intrinsic_metadata、standard_metadata和用戶定義元數據,前兩者為P4自帶數據結構,后者為與每個數據包相關聯的用戶定義的數據結構。因此,可以使用用戶定義元數據對數據包特征進行分析計算。本文針對DDoS攻擊復檢所需的數據特征自定義用戶元數據,具體構造如圖5所示。其中avg_length用于記錄平均數據包長度;avg_ttl用于記錄平均數據包TTL;ip_count用于記錄當前IP地址是該窗口下第幾個不同于之前出現過的IP地址,便于后續熵值計算;alarm用于記錄初檢結果,便于計算初檢檢測效率;src_entropy用于記錄截止到該數據包時的源IP地址熵值;dst_entropy用于記錄截止到該數據包時的目的IP地址熵值;protocol_entropy用于記錄截止到該數據包時的協議熵值;time_cost用于記錄收集完當前窗口流量包個數花費的總時長。
1.3.2 自定義匹配—動作規則動態獲取熵范數
表(table)將用戶定義的鍵(key)與動作(action)相關聯。動作是描述如何操作數據包頭字段和元數據的結構,動作可以運用由控制平面通過P4Runtime南向接口協議提供的數據。針對P4無法進行對數運算的問題,定義式(1)中的求和部分為X的熵范數:
信息熵公式可改寫為
常規求解信息熵值是等待收集完數據之后,再對收集好的數據進行計算分析得出結果,而P4可編程交換機并不具備這一功能,只能根據每一次數據包的接收進行一次計算。為應對這一問題,運用以下公式進行動態計算熵范數:
S(X)=S(X)+fi log2(fi)-(fi-1)log2(fi-1)(9)
定義函數:
Cal_S(fi)=fi log2(fi)-(fi-1)log2(fi-1)(10)
事先對該函數進行預計算,運用控制平面通過P4Runtime南向接口給動作提供該函數運算值,然后利用P4中表的匹配—動作單元來調用計算好的函數值。且由于無法將函數中每一個數值進行精確計算,將采用最長前綴匹配(longest prefix match,LPM)來進行模糊匹配,以解決P4語言無法進行對數運算的問題,具體匹配方式如圖6所示。
1.3.3 制定窗口大小
為了進一步減少P4可編程交換機處理數據的難度,將窗口大小n設置為2的整數冪(P4語言可以進行移位操作)。因此可以將式(8)中等號右邊第一項用常數代替,對于熵范數的除法操作也就可以通過右移該常數位來進行計算。計算方式如下所示。
H(X)=log2(n)-S(X)gt;gt;log2(n)(11)
在實驗中,將P4可編程交換機處理的一個數據包稱為一個元數據包,利用P4語言在數據平面可編程的能力,提取該元數據包在信息熵檢測模塊的兩個重要特征:源IP地址和目的IP地址。參考式(11),定義n個數據包組成該模塊檢測的一個滑動窗口。若n取值過小,則會導致熵值變化不明顯;若n取值過大,則會導致檢測模塊的靈敏度較低,即當攻擊流量注入網絡中時,并不能及時地進行警報。經過實驗測量分析,當n選取128時,該檢測模塊對于以上兩個問題可以進行一個較好的折中。若計算一個窗口內兩個特征的熵值在閾值范圍內,將把提取到的該窗口內的特征進行丟棄;若計算出的熵值超過了設定的閾值范圍,將對該窗口標記為可疑流量,并將在該窗口內提取到的特征發送到復檢模塊。
1.3.4 算法流程
定義數據包為Pkt;當前窗口ID為Wnow;CMS寄存器中第i行第h(i)列中保存的計數器值為C(i,hji);上次更新計數器的窗口ID為C(i,hji)·Wlast;h(·)表示hash函數值;i=1,2,3,4,j=s,d,p,分別代表源IP地址、目的IP地址和協議;窗口大小為Wsize。算法具體流程如下:
算法 基于P4改進的信息熵初檢算法以及特征提取過程
輸入:Pkt。
輸出:Pkt、(src_entropy,dst_entropy,protocol_entropy,avg_length,avg_ttl,time_cost,alarm)。
1)計算熵范數
(1)從交換機寄存器中讀取Wnow
(2)hsi=h(Pkt.src_IP)
(3)讀取Csrc(i,hsi),Csrc(i,hsi).Wlast
(4)if Csrc(i,hsi).Wlast!=Wnow then
(5) Csrc(i,hsi)=0;
(6) Csrc(i,hsi).Wlast=Wnow
(7)end if
(8)Csrc(i,hsi)=Csrc(i,hsi)+1并寫回CMS寄存器
(9)ip_count=min(Csrc(i,hsi))
(10)Ssrc=Cal_S(ip_count)
(11)Ssrc=Ssrc_last+Ssrc并寫回header和metadata該字段
(12)對目的IP地址和協議按照步驟(2)~(15)求得對應熵范數
2)開始異常檢測
(13)設置Wsize為27,即128個數據包為一個窗口
(14)讀取header中的pkt_num并加1寫回
(15)if pkt_num!=Wsize then
(16) 將pkt_num寫回header對應字段
(17) if pkt_num==1 then
(18) 讀取metadata中time_cost賦值當前時間
(19) end if
(20) 累加avg_length,avg_ttl并寫回metadata字段
(21)else
(22) 一個窗口結束,將Wnow加1并寫回交換機寄存器
(23) 計算src_entropy,dst_entropy,protocol_entropy,avg_length,avg_ttl,time_cost
(24) if src_entropygt;Tsrc and dst_entropylt;Tdst then
(25) alarm=1
(26) else
(27) alarm=0
(28) 將(src_entropy,dst_entropy,protocol_entropy,avg_length,avg_ttl,time_cost,alarm)發送給中間件
(29) 重置各個計數器、header和metadata中的字段值
(30)end if
該模塊最大的優勢在于具有接近1的檢測率,可以最大程度地降低DDoS攻擊被漏報的可能,且該模塊可以減輕復檢模塊在資源消耗方面的壓力。但其誤報率略高,即有可能將正常流量判定為攻擊流量,所以需要復檢模塊進一步檢測。
1.4 基于P4流量特征提取的DS-DNN復檢模塊
DS-DNN的整體結構如圖7所示,DNN模型包含一個輸入層input,五個全連接層(dense 1、dense 2、dense 3、dense 4、dense 5)和一個輸出層final。輸入為初檢模塊輸出的六元特征組(src_entropy,dst_entropy,protocol_entropy,avg_length,avg_ttl,time_cost),輸出為復檢檢測結果alarm,0表示正常流量,1表示DDoS攻擊流量。
1.4.1 特征輸入的數據標準化預處理
從數據平面提取出的六元組特征之間的數量級差距較大(time_cost采用P4行為模型交換機BMv2中自帶的時間戳功能計算結果,以ms為單位,數量級明顯區別于其他特征值),這一點可能會直接影響到深度神經網絡模型的分類效率,因此需要對特征輸入進行調節。本文采用數據標準化(ddata stan-dardization,DS)對輸入特征進行預處理,使輸入特征的均值為0,方差為1:
DS(Xi)=|Xi-|1n∑nj=1(Xj-)2(12)
其中:為某個特征的特征值均值;Xi為該特征的第i個特征值;DS(Xi)為經過數據標準化預處理后特征值。
1.4.2 深度神經網絡模型
神經網絡的最小單元即每一層中的神經元,記一個神經元,其輸入的特征變量為x1,x2,…,xn,輸出為z,則該神經元的線性函數可以記為
z=x1w1+x2w2+…+xnwn+b(13)
其中:{w1,w2,…,wn}為需要通過學習來確定其數據的權重;b為偏移量。
為提高模型的區分能力,同時便于計算,克服梯度消失問題,選取ReLU函數作為隱含層激活函數。綜上,在DNN模型中能夠計算出第l層的輸出ol:
ol=ReLU(wlol-1+bl)(14)
其中:ReLU(·)=max(0,·);wl是權重矩陣;bl是偏移量矩陣。
選擇二元交叉熵作為成本函數,其完整公式如下:
cost=-1N∑Ni=1[yi log i+(1-yi)log(1-i)](15)
其中:N為一層中的神經元個數。選擇它的原因是為了產生一個單調函數,以便下一步利用逆向傳播(back propagation)算法和Adam優化器對網絡權重進行優化調整。由于攻擊檢測為二分類問題,所以在輸出層選取sigmoid函數作為激活函數,將網絡輸出限定在0~1。Adam優化器將根據上述構建好的模型重復更新,直至網絡誤差最小化,最終獲得最佳權重。
2 實驗與分析
2.1 實驗環境
本文實驗采用了i5 CPU、NVIDIA GeForce 940M和4 GB RAM作為硬件支持,操作系統為Ubuntu 18.04.5 LTS,DNN模塊運用Keras搭建網絡模型,采用TensorFlow-GPU進行計算。將Ryu作為控制平面的控制器,P4 Runtime API作為控制平面給數據平面下發數據處理以及匹配動作規則的接口,P4可編程數據平面處理邏輯使用P416標準定義的語法及其格式進行編寫,運用p4c工具作為P4邏輯語法實現的編譯器,然后載入到開源的可編程軟件交換機模型behavioral model version 2(BMv2)中作為數據平面邏輯處理模塊,選擇v1model作為數據平面邏輯的架構基礎,利用Mininet構建網絡拓撲結構模擬真實網絡環境。整個網絡拓撲環境采用k=4的fat-tree拓撲[18],具體布局如圖8所示。
本文實驗采用經典DDoS 攻擊流量產生工具TFN2K分別生成SYN flood、UDP flood、ICMP flood和SYN flood:UDP flood:ICMP flood=1:1:1的MIX flood的攻擊流量。使用D-ITG工具產生背景流量,模擬真實網絡的正常通信。其中由交換機S9所連接的主機H9作為攻擊源,交換機S1所連接的H1作為受攻擊的服務器主機,其余主機正常交互通信。
2.2 實驗評估指標
本文實驗以檢測率、準確率、誤報率和檢測時長四個參數作為算法評估指標。檢測率(detection rate,DR)是指攻擊流量中被檢測模塊正確分類的個數占總體攻擊流量的比例。檢測率越高,說明檢測模塊對DDoS攻擊的識別能力越強。
DR=TP/(TP+FN)(16)
準確率(accuracy,ACC)是指被正確分類的流量個數占所有攻擊流量和正常流量總和的比例。準確率越高,說明檢測模塊對流量正確分類的能力越強。
ACC=(TP+TN)/(TP+FP+TN+FN)(17)
誤報率(1 alarm rate,FAR)是指將正常流量錯誤分類為攻擊流量的個數占所有正常流量的比例。誤報率越低,說明檢測模塊對正常流量分類效果越好,減少檢測系統不必要的損耗。
FAR=FP/(FP+TN)(18)
其中:TP(true positive)是指攻擊流量中被檢測模塊正確分類的個數;FP(1 positive)是指正常流量中被錯誤分類的個數;TN(true negative)是指正常流量被正確分類的個數;FN(1 negative)是指攻擊流量中被錯誤分類的個數[19]。
檢測時長(detection time cost,DTC)反映了分類模型對數據集分類速度的快慢。檢測時長越短,越有利于采取下一步攻擊防御或緩解工作。
2.3 初檢模塊實驗結果分析
按照2.1節中的流量生成方式,在主機H1上收集了10萬條數據流量,統計并計算攻擊流量流經S9、S4、S1三個交換機的源IP地址和目的IP地址熵值,其中選擇MIX flood的攻擊過程繪制熵值變化,如圖9所示。S9、S4和S1交換機分別代表了源端檢測、中間端檢測和目的端檢測。
從圖中可以看到,當網絡中發生DDoS攻擊時,源IP地址熵值和目的IP地址熵值發生了明顯的變化,源IP地址的熵值顯著增加,而目的IP地址的熵值也緩慢下降。在三個交換機的初檢模塊中,源端和中間端的檢測效果相對于目的端檢測效果要好,且在源端檢測對攻擊流量和正常流量有著很好的區分度。由于DDoS攻擊源端沒有形成易于檢測的流量特征,所以源端難以發現攻擊流量,而且源端檢測的最大優勢是在檢測到攻擊的第一時間對攻擊進行防御或者緩解[4]。因此,實驗表明基于P4改進的信息熵初檢模塊可以在源端有效識別出可疑流量。根據以上實驗數據分析,攻擊流量的源IP地址熵值大多高于2,而目的IP地址的熵值除目的端檢測外均較低,為保證初檢較高的檢測率,制定特征熵值的閾值如表1所示。
為了證明該閾值設定的有效性,收集了不同攻擊類型的攻擊流量和正常流量共40萬條,分別打上標簽,將測得數據的評估指標進行統計,結果如表2所示。
由實驗結果可知,基于P4改進的信息熵初檢模塊具有較高的檢測率,說明該模塊可以有效識別DDoS攻擊流量。而該模塊的不足是誤報率較高,在目的端檢測時尤為明顯,因此無法單一工作,需要精確率更高、誤報率更低的算法對可疑流量進行進一步分析,但這并不影響其作為初檢模塊的可用性。
2.4 復檢模塊實驗結果分析
模型的訓練集和驗證集是來自于模擬真實環境下的流量。考慮到DNN模型訓練數據越多,模型效果越好的特點,共收集了1 458 688個數據包。其中正常流量包571 904個,DDoS攻擊流量包886 784個。而測試集構造正常流量與攻擊流量比例如表3所示,每組各包含102 400個數據包。
DS-DNN模型中隱含層的數量會直接影響到模型的分類能力,選擇合適的層數是十分重要的。因此,本文選取在文獻[20]中的DNN模型基礎上,實驗構建了隱含層數分別為2、5、8和10層的模型,使用以上訓練集和驗證集對不同模型分別進行10次迭代至loss收斂,將訓練好的模型使用測試集組1的MIX flood攻擊進行測試,采用準確率來評估模型性能。實驗對比結果如表4所示。
由實驗結果可知,DS-DNN模型并不是隱含層越多,分類效果越好,過多的隱含層數帶來的不僅是模型訓練時間變長,而且會造成分類準確率下降。同時,隨著層數的增多,模型參數也會呈幾何增長,檢測時長也會大幅度增加,不利于快速檢測。因此,本實驗選擇了5層隱含層的DS-DNN分類模型,超參數的選擇如下:學習率設置為0.01;epoch設置為10,以確保模型在訓練過程中的loss有較好的收斂;batch_size使用Keras默認大小32。DS-DNN結構的具體參數如表5所示。
從表6中可以觀察到,在相同結構DNN模型下,進行DS處理的模型對比沒有處理的模型在各項評估指標上有了顯著的提升,隨著攻擊流量占比降低,模型的檢測率和準確率仍然保持較高水平,且誤報率并沒有明顯變化。
將DS-DNN模型在各組的各項評估指標求得均值,檢測率為98.49%,準確率為99.54%,誤報率為0%。分別與基于尖點突變模型算法[6]、GA-RBFNN算法[7]與基于信息熵與深度神經網絡算法[10]的檢測方法對比,結果如表7所示。本文DS-DNN模型的平均檢測率較最高的GA-RBFNN算法提高了0.02%,較誤報率較最低的降低了1.13%。
將DS-DNN模型的攻擊檢測時長按照測試集組3進行了多次測試求得均值為0.13 s,分別與C4.5決策樹、KNN和BayesNet模型[5]進行對比,并添加了各個模型的準確率,如表8所示。此外,本文方法利用P4提取流量特征的時長是微秒級的,不會對DS-DNN模型的檢測時長有較大影響,對比基于深度信念網絡算法[9]和基于信息熵與深度神經網絡算法[10]中的模型,表明使用P4可編程數據平面進行DDoS攻擊檢測可以有效解決傳統SDN攻擊檢測數控平面信息交互時延過長的問題。結果表明,本文算法在平均準確率上較最高的DBN算法提高了0.89%,檢測時長較最低的BayesNet算法減少了45%。
對比SDDetection檢測防御框架[11]中準確率和誤報率分別為100%和0%的檢測模型,本文在準確率方面略有不足,但文獻[11]模型需要控制平面與數據平面頻繁通信,且在采集到1 000個pack-in數據包之后才能進行檢測,檢測靈敏度略低于本文方法。本文采用P4可編程交換機實現了在數據平面僅需接收128個數據包就能夠進行檢測,降低了以上問題帶來的時延,且基于P4可編程數據平面的檢測方法可以靈活地根據環境作出相應修改以達到更好的效果,而該方案基于OpenFlow的檢測方法則需要更高的成本。
3 結束語
本文提出了一種SDN環境下基于P4可編程數據平面的DDoS攻擊檢測方法,該方法具有以下特點:a)相比于大多數傳統SDN攻擊檢測,將攻擊檢測任務卸載到了數據平面,減少了控制平面與數據平面的信息交互時延;b)根據P4可編程交換機的編程邏輯改進了信息熵的計算方式,作為初檢模塊,并通過分析SDN環境下DDoS攻擊流量特性,運用P4可編程交換機提取出DDoS攻擊相關的六元組特征;c)針對SDN環境下DDoS攻擊檢測六元組特征,提出了DS-DNN復檢模塊分類方法。最后模擬真實環境下的實驗結果表明,該方法可以有效識別出DDoS攻擊流量,具有較好的準確率和較低的誤報率,并且檢測時間較短,有利于進行下一步防御或者緩解工作。然而,由于P4語言還在發展階段,數值運算、循環、非初等數學函數運算以及數據結構等功能還不夠完善,所以無法直接將分類能力較好的機器學習和深度學習算法直接在可編程數據平面部署。因此,下一步工作是協助P4社區構建更好的架構,來實現將復雜DDoS攻擊檢測模型直接在可編程數據平面部署這一目標。
參考文獻:
[1]張朝昆,崔勇,唐翯祎,等.軟件定義網絡 (SDN) 研究進展[J].軟件學報,2015,26(1):62-81.(Zhang Chaokun,Cui Yong,Tang Heyi,et al.State-of-the-art survey on software-defined networking (SDN)[J].Journal of Software,2015,26(1):62-81).
[2]林耘森簫,畢軍,周禹,等.基于P4的可編程數據平面研究及其應用[J].計算機學報,2019,42(11):2539-2560.(Lin Yunsenxiao,Bi Jun,Zhou Yu,et al.Research and applications of programmable data plane based on P4[J].Chinese Journal of Computers,2019,42(11):2539-2560.)
[3]Bosshart P,Daly D,Gibb G,et al.P4:programming protocol-indepen-dent packet processors[J].ACM SIGCOMM Computer Communication Review,2014,44(3):87-95.
[4]嚴芬,王佳佳,趙金鳳,等.DDoS攻擊檢測綜述[J].計算機應用研究,2008,25(4):966-969.(Yan Fen,Wang Jiajia,Zhao Jinfeng,et al.Survey of detection on DDoS attack[J].Application Research of Computers,2008,25(4):966-969.)
[5]劉俊杰,王珺,王夢林,等.SDN中基于C4.5決策樹的DDoS攻擊檢測[J].計算機工程與應用,2019,55(20):84-88,127.(Liu Junjie,Wang Jun,Wang Menglin,et al.DDoS attack detection based on C4.5 in SDN[J].Computer Engineering and Applications,2019,55(20):84-88,127.)
[6]王健,王語杰,韓磊.基于突變模型的SDN環境中DDoS攻擊檢測方法[J].信息網絡安全,2020,20(5):11-20.(Wang Jian,Wang Yujie,Han Lei.DDoS attack detection based on catastrophe theory in SDN environment[J].Netinfo Security,2020,20(5):11-20.)
[7]劉振鵬,賀玉鵬,王文勝,等.SDN環境下的DDoS攻擊檢測方案[J].武漢大學學報:理學版,2019,65(2):178-184.(Liu Zhen-peng,He Yupeng,Wang Wensheng,et al.DDoS attack detection scheme under SDN environment[J].Journal of Wuhan University:Natural Science Edition,2019,65(2):178-184.)
[8]劉濤,尹勝.SDN環境中基于交叉熵的分階段DDoS攻擊檢測與識別[J].計算機應用與軟件,2021,38(2):328-333.(Liu Tao,Yi Sheng.Detection and identification of DDoS attacks based on cross entropy in SDN environment[J].Computer Applications and Software,2021,38(2):328-333.)
[9]朱婧,伍忠東,丁龍斌,等.SDN環境下基于DBN的DDoS攻擊檢測[J].計算機工程,2020,46(4):157-161,182.(Zhu Jing,Wu Zhongdong,Ding Longbin,et al.DDoS attack detection based on DBN in SDN environment[J].Computer Engineering,2020,46(4):157-161,182.)
[10]張龍,王勁松.SDN中基于信息熵與DNN的DDoS攻擊檢測模型[J].計算機研究與發展,2019,56(5):909-918.(Zhang Long,Wang Jinsong.DDoS attack detection model based on information entropy and DNN in SDN[J].Journal of Computer Research and Development,2019,56(5):909-918.)
[11]賈錕,王君楠,劉峰.SDN環境下的DDoS檢測與緩解機制[J].信息安全學報,2021,6(1):17-31.(Jia Kun,Wang Junnan,Liu Feng.DDoS detection and mitigation framework in SDN[J].Journal of Cyber Security,2021,6(1):17-31.)
[12]Pereira F,Neves N,Ramos F M V.Secure network monitoring using programmable data planes[C]//Proc of IEEE Conference on Network Function Virtualization and Software Defined Networks.Piscataway,NJ:IEEE Press,2017:286-291.
[13]Dimolianis M,Pavlidis A,Maglaris V.A multi-feature DDoS detection schema on P4 network hardware[C]//Proc of the 23rd Conference on Innovation in Clouds,Internet and Networks and Workshops.Pisca-taway,NJ:IEEE Press,2020:1-6.
[14]Musumeci F,Ionata V,Paolucci F,et al.Machine-learning-assisted DDoS attack detection with P4 language[C]//Proc of IEEE International Conference on Communications.Piscataway,NJ:IEEE Press,2020:1-6.
[15]Lapolli C,Marques J A,Gaspary L P.Offloading real-time DDoS attack detection to programmable data planes[C]//Proc of IFIP/IEEE Symposium on Integrated Network and Service Management.Pisca-taway,NJ:IEEE Press,2019:19-27.
[16]徐建峰,王利明,徐震.軟件定義網絡中資源消耗型攻擊及防御綜述[J].信息安全學報,2020,5(4):72-95.(Xu Jianfeng,Wang Liming,Xu Zhen.Survey on resource consumption attacks and defenses in software-defined networking[J].Journal of Cyber Security,2020,5(4):72-95.)
[17]Cormode G.Data sketching[J].Communications of the ACM,2017,60(9):48-55.
[18]崔子熙,胡宇翔,蘭巨龍,等.基于流分類的數據中心網絡負載均衡機制[J].電子學報,2021,49(3):559-565.(Cui Zixi,Hu Yuxiang,Lan Julong,et al.Load balancing based on flow classification for datacenter network[J].Acta Electronica Sinica,2021,49(3):559-565.)
[19]Tang T A,Mhamdi L,McLernon D,et al.Deep learning approach for network intrusion detection in software defined networking[C]//Proc of International Conference on Wireless Networks and Mobile Com-munications.Piscataway,NJ:IEEE Press,2016:258-263.
[20]Bernico M.基于TensorFlow和Keras的深度神經網絡優化與訓練[M].王衛兵,田皓元,徐倩,等譯.北京:機械工業出版社,2020.(Bernico M.Optimization and training of deep neural network based on TensorFlow and Keras[M].Wang Weibing,Tian Haoyuan,Xu Qian,et al.Beijing:China Machine Press,2020).