葛浩偉,楊啟航,石樂義
(1.中國石油大學(華東)海洋與空間信息學院,山東 青島 266580;2.中國石油大學(華東)計算機科學與技術學院,山東 青島 266580)
隨著互聯(lián)網的迅猛發(fā)展,網絡安全問題日益突出,其中分布式拒絕服務(DDoS)攻擊作為一種常見的網絡威脅引起了廣泛關注。DDoS 攻擊通過利用多個攻擊源向目標系統(tǒng)同時發(fā)送大量請求,占用其帶寬和計算資源,導致合法用戶無法正常訪問服務。具體來說,DDoS攻擊又分為兩種類型:一種是直接攻擊,這種攻擊方式較為直接,攻擊范圍和強度不高,并且因為是直接的方式,攻擊者暴露的可能性增大;另一種攻擊方式是基于反射的攻擊,這種攻擊會使用大量僵尸主機先感染一部分受害主機,將其作為反射器進而來攻擊其他主機,這種攻擊方式的隱蔽性和破壞性使其成為各行各業(yè)組織和企業(yè)面臨的重大風險之一。
一些研究者將目光放在深度學習上,使用深度學習自動提取特征的特性來進行攻擊檢測,文獻[1-6]利用深度學習技術對物聯(lián)網(IoT)和軟件定義網絡(SDN)環(huán)境中的DDoS 攻擊進行了研究。文獻[7]提出了一種不定長輸入的卷積神經網絡進行分類訓練,該方法可以保留全部流量信息。文獻[8]提出了一種基于條件熵和決策樹的DDoS 攻擊檢測方法,利用條件熵判斷當前網絡狀態(tài),通過分析SDN 中DDoS 攻擊特點使用決策樹進行分類。文獻[9]針對低速率的分布式拒絕服務攻擊提出了一種基于混合深度學習的多類型低速率DDoS 攻擊檢測方法。
本文的目的是提出一種能夠準確檢測DDoS 攻擊的檢測算法,為此構造了一種基于深度學習和集成學習的檢測模型。由于人工無法提取難以理解的深層特征,因此本文對原始流量數據進行處理,截取原始流量數據中傳輸層和網絡層的頭部信息,并將其轉化為灰度圖的形式,使用這種方法可以更好地保留原始流量的大部分信息,從而可以利用深度學習來提取其深層特征。但不可否認的是,人工提取的特征具有一定的積極作用,因此使用CICFlowMeter 工具將原始流量的數據特征提取出來,讀取其ASCII 碼轉換為灰度圖。為了提取流量的空間特征,構造了一種基于CNN 與BiLSTM 的深度學習模型。最后為了增強模型的分類平衡性,提出了一種基于深度學習和集成學習的深度模型。
實驗結果表明,本文提出的模型能夠有效檢測DDoS 攻擊。
首先對原始流量數據進行預處理,生成兩張灰度圖作為后續(xù)深度學習模型的輸入。為了保證模型提取特征的能力和速度,在使用原始數據進行訓練的同時,使用了人工提取的特征數據,將其轉化為灰度圖共同作為模型輸入的一部分。使用wireshark 工具抓包獲取實驗數據,并將數據保存為pcap 格式的文件;然后使用CICFlowMeter 工具從原始流量信息中提取高維特征,并將這些特征保存為csv 格式的文件;為了解決CICFlowMeter 工具無法將生成的特征與原始流文件對應的問題,需要在原始流量數據中找到與csv文獻件相對應的流。由于csv文獻件中存在許多五元組相同但時間戳不同的流量記錄,為了減少訓練時間和數據集中的樣本數量,本文在總pcap文獻件中僅進行一次搜索,以找到五元組相同但時間戳不同的原始流量。然后,將提取的流量保存在單獨的pcap文獻件中,同時將對應流量由CICFlowMeter 工具生成的多維特征保存在一個txt文獻件中。這樣可以將對應的流量數據保存在一個目錄下,以便在后續(xù)的深度學習訓練中提取數據集樣本。
1.1.1 pcap文獻件原始流量處理
為了使模型能夠捕捉到原始流量的特征,本文將原始流量的十六進制數據轉換為灰度圖的形式,從而使模型能夠通過可視化流量進行更準確的分類。
本文將流量轉化為灰度圖的方法是將原始流量的二進制轉化為十六進制,然后將十六進制數據轉化為灰度像素來生成灰度圖,為了讓每個流量都能轉換成大小統(tǒng)一的灰度圖,截取每個流量中每個數據包的網絡層和傳輸層頭部的字節(jié)碼進行處理。一般來說,數據包的網絡層包頭是20 B,傳輸層包頭也是20 B。為了盡可能多地保留數據包的特征,本文截取每個數據包的54 B生成灰度圖。為方便起見,將該灰度圖稱為pcap 灰度圖。
1.1.2 csv文獻件中的多維特征處理
本文利用CICFlowMeter 工具提取由專家經驗生成的特征,部分特征如表1 所示。為了去除冗余,本文去除了FlowID、源IP 地址、目的IP 地址、時間戳和標簽,共使用83 維特征生成灰度圖。

表1 利用CICFlowMeter 工具提取的部分特征
為了解決像素特征冗余較大的問題,將所有的特征作為一個整體,而不是單獨處理某個特征,本文使用ASCII 碼來進行灰度圖的轉換,ASCII 碼取值范圍恰好為0~255,與像素值的取值范圍相同,所以可以將特征的每個字符一一對應灰度圖的一個像素值使用,這樣就可以擴大每個維度特征的距離,從而大大減少冗余,本文將此灰度圖稱為txt灰度圖。
整體模型如圖1 所示。本文使用兩張灰度圖像和根據專家經驗生成的原始多維特征作為深度學習模型的輸入。為了捕捉特征之間的時序特征,本文使用BiLSTM 網絡。BiLSTM 是LSTM 網絡的一種變體,主要由前向LSTM 和后向LSTM 組成,即BiLSTM 可以從兩個方向提取特征信息。對于兩幅灰度圖,本文分別采用一維卷積和二維卷積進行特征提取。將兩張灰度圖像作為輸入的兩個通道輸入到二維卷積網絡中,以捕捉流量的空間特征。由于一維卷積網絡的卷積核方向是固定的,所以對于具有時序特征的原始流量,一維卷積可以更好地捕捉其時序特征。因此,將pcap 灰度圖像分別輸入到1D-CNN 以及2D-CNN中,再將一維卷積和二維卷積的輸出輸入到一個BiLSTM 中進一步提取樣本的時序特征,最后經過一個Dense 層輸出分類結果。將本節(jié)中創(chuàng)建的深度學習模型稱為CBG(CNN BiLSTM Grayscale)。

圖1 基于BiLSTM 與CNN 的攻擊檢測模型
由于用于訓練的數據集樣本類別通常是不平衡的,這可能會導致模型在進行分類時會偏向某個類別,為了提高模型分類的平衡性,在1.2 節(jié)構建的CBG 模型的基礎上,融合多個CBG 模型構造了一種基于深度學習和集成學習的深度集成學習模型(CNN BiLSTM Grayscale-Ensemble,CBG-E)。為方便起見,集成的深度學習模型稱為CBG 子模型。本文構造的深度集成學習算法以提出的類權重投票算法為主,使用5 個CBG 子模型對最終的攻擊類別進行投票分類檢測。
構建的深度集成學習模型如圖2 所示。

圖2 CBG-E 模型
首先從原始數據集中隨機有放回地抽取一些樣本來構建子數據集。這是為了使得子數據集訓練出來的CBG 子模型之間能夠有適當的差異性,依靠這個差異來投票可以取得更加平衡的結果。在本文中,隨機取回原始數據集的910 來構建子數據集,然后將CBG 子模型分類結果的F1-Score 保存起來作為構造投票權重的主要依據,這樣可以保證某個類別分類權威性上最大的CBG 子模型在最終投票過程中可以占據更大權重比例,使得模型的結果更具權威性也更具有平衡性。
在得到每個CBG 子模型所有類別的F1-Score后,構建了類權重投票算法來設置每個子模型的投票權重。具體算法如公式(1)所示:
式中:M為5 個CBG 子模型的集合;C代表所有的類別;代表CBG 子模型m對類別c的F1-Score;Weight表示CBG 子模型m對類別c的權重值。
在得到每個CBG 子模型的權重后,采用投票加權的方法將得票數最多的類別作為最終輸出,具體如算法1 所示。
算法1:深度集成學習算法偽代碼
在本節(jié)中使用構建的數據集來評估本文創(chuàng)建的CBG 模型和CBG-E 模型的性能。
本文使用其他文章中常用的CICDDoS2019 數據集進行實驗。CICDDoS2019 數據集是加拿大網絡安全研究所[10]在2019 年發(fā)布的關于DDoS 攻擊的數據集,它包含大量良性和最新的常見DDoS 攻擊流量。該數據集基于HTTP、HTTPS、FTP、SSH、email 協(xié)議生成25 個用戶抽象行為,使用CICFlowMeter-V3工具構建,并提取了88個流量特征。它使用不同的攻擊方式和協(xié)議將攻擊分為13類,包括目前常見的DDoS 攻擊:Syn、NetBIOS、LDAP、MSSQL 和UDP 等。該數據集的研究團隊共進行了兩天的模擬攻擊,這兩天的記錄總數顯示在表2 中。因為數據量過多,本文只選取第一天的攻擊數據集進行實驗。

表2 CICDDoS2019 數據集樣本數據
本文使用的環(huán)境如表3 所示。本文在實驗中選擇Adam 作為優(yōu)化器,學習率為10-3,epoch 設置為15,batch為20,并且所有epoch 中驗證集上F1-Score 最高的模型保存為最終模型。

表3 實驗環(huán)境
本文使用到的模型評估標準為準確率(Accuracy)、精確率(Preciosion)、召回率(Recall)以及F1-Score。其中:TP(True Positive)為模型預測為正且實際為正的樣本數;TF(True Negative)為模型預測為負樣本且實際為負樣本的數量;FP(False Positive)為模型預測為正樣本但實際為負樣本的樣本數量;FN(False Negative)為模型預測為負但實際為正的樣本數。
本文將構成CBG-E 模型的5 個子模型與CBG-E 模型進行了比較,以此來驗證將子模型進行集成操作可以提高模型的分類性能,詳情見表4。可以看出5 個子模型在部分類別上的分類性能較差,例如子模型3 對NetBIOS 攻擊的召回率僅為99.20%,整合后CBG-E 模型對NetBIOS 攻擊的召回率可以提高到99.47%,5 個子模型對NetBIOS 的召回率最高僅為99.40%,整合后可以略有提高,這表明本文提出的集成算法不僅可以集成所有子模型某些方面的分類性能,在此基礎上可以提高某些方面的分類性能。

表4 多指標下子模型和集成學習模型的表現(xiàn) %
隨后對所構造的深度學習模型進行了消融實驗,如表5 所示,分別對比了只使用1D-CNN、2D-CNN、BiLSTM以及結合使用的性能。CBG 模型利用了1D-CNN、2DCNN 和BiLSTM 的優(yōu)勢,綜合了它們在特征提取、空間信息和上下文建模方面的能力,從而在分類任務中取得了出色的性能。這表明CBG 模型的設計是合理且有效的。

表5 深度學習模型消融實驗 %
表6 顯示了CBG-E 模型與其他論文的性能比較。本文設置了文獻[11-14]的方法進行對比。其中:文獻[11]使用到了一種幾何度量的卷積神經網絡CNN-Geo;文獻[12]使用了1D-CNN,并將接收樣本數量、時間以及特征這三種維度作為3D 張量輸入;文獻[13]使用了一種基于GAN 的LSTM 網絡GAN-LSTM;文獻[14]使用了一種BiLSTM 網絡。

表6 本文模型與其他論文方法的對比 %
在使用相同數據集CICDDoS2019 的情況下,本文所提出的CBG-E 模型可以更好地捕捉到流量之間的特征關系,所以它可以更好地分類,并且可以取得比其他論文更好的結果。
在網絡安全形勢越發(fā)嚴峻的今天,DDoS 攻擊依舊是較難檢測和防御的一種攻擊手段,該攻擊憑借著其隨機性使得受害者無法有效進行抵御,故本文提出了一種基于深度學習和集成學習的DDoS 攻擊檢測模型,模型的構建以及數據的預處理有效提高了模型的分類精度,并且在集成算法以及類權重投票算法的加持下,模型對樣本類別的分類平衡性有了提高。最后進行了性能實驗,實驗結果表明,本文提出的CBG-E 模型有效提高了DDoS 攻擊檢測的準確率(99.63%),檢測效果優(yōu)于單一的CBG 模型和其他論文方法。
注:本文通訊作者為石樂義。