?

基于時空特征的惡意加密流量檢測*

2024-03-20 01:16蘇攀西石元兵張運理
通信技術 2024年2期
關鍵詞:灰度加密準確率

蘇攀西,石元兵,明 爽,張運理,籍 帥

(1.中電科網絡安全科技股份有限公司,四川 成都 610095;2.可信云計算與大數據四川省重點實驗室,四川 成都 610095)

0 引言

2023 年6 月我國網民數量已達10.79 億人,較2022 年12 月增長1 109 萬人[1],但隨著互聯網的飛速普及,網絡安全問題也日益嚴重。為了更好地保護個人隱私和數據不被竊取和篡改,已有大量的網絡應用使用網絡加密協議對流量進行加密處理?!痘ヂ摼W研究趨勢報告》[2]顯示互聯網的加密流量比例已經近九成,主要采用TLS1.2 加密協議。網絡流量加密技術的普及也帶動惡意流量進入了加密時代,惡意流量可以通過加密技術隱藏自己的明文特征,以此降低惡意行為暴露的風險。Zscaler 威脅研究報告[3]顯示,在2020 年,對金融、醫療及制造業等五大行業的網絡攻擊中,基于安全套接層(Secure Socket Layer,SSL)加密的網絡攻擊占總數的17.95%,相比三個季度前增加了近260%,惡意加密流量的快速增長,使得對其的安全檢測能力的需求日益增加。

在網絡加密流量中,由于使用了加密協議,其報文載荷中的內容從明文變成了密文,無法提取其相關字段進行檢測,使得基于深度包檢測[4](Deep Packet Inspection,DPI)的方法都無法有效識別惡意加密流量?;诹髁拷y計特征的機器學習方法可以解決密文無法解密的問題,此方法通過統計流量中未加密的特征(如流持續時間、協議字段數量等)進行惡意加密流量識別,但是針對不同識別場景需要人工設計不同的統計特征,非常依賴專家經驗,且特征的好壞直接影響識別效果。深度學習利用復雜、多層的神經網絡,能夠自動提取數據的抽象特征,無須進行人工設計的特征工程廣泛應用在圖像、語音等特征復雜的數據識別場景中。

為了更好地識別惡意加密流量,本文分別使用卷積神經網絡(Convolutional Neural Networks,CNN)和門控循環單元(Gated Recurrent Unit,GRU)提取流量的空間和時序特征,并在GRU 上使用多頭注意力機制[5](Multi-head Attention),提出一種基于時空特征融合的惡意加密流量識別模型CNN-MHGRU。最后,在公開數據集上進行模型訓練,并通過對比實驗驗證其有效性。

1 相關工作

目前對于惡意加密流量的識別方法主要分為基于機器學習和深度學習兩種,這兩種方法都屬于人工智能技術的子類。

機器學習需要大量的數據進行訓練,適用的場景范圍比較廣,一般在訓練之前需要先進行特征工程,選擇適合應用場景的數據特征。對于惡意加密流量的識別,需要在原始流量中提取可以區別正常流量和惡意加密流量的特征,如果需要進行多分類,則需要提取可以區別各類惡意加密流量的特征。Shah[6]使用Bro 開源流量分析軟件提取加密證書特征和流連接特征,提出了一種基于XGBoost 的惡意加密流量檢測模型。Liu 等人[7]通過提取每條流前8 個數據包的行為統計特征、協議特征和加密證書特征,實現了一種基于隨機森林的在線實時惡意加密流量檢測器。胡斌等人[8]結合報文負載特征和流指紋特征構建數據集,提高了邏輯回歸模型在復雜網絡環境下對惡意加密流量的識別效果。

深度學習通常需要比機器學習更多的數據進行更長時間的模型訓練,因為從原始數據進行表征學習需要更多的函數進行擬合,并且深度學習適用的范圍較機器學習而言更小,更適合復雜抽象、自然生成的數據場景,比如圖像(人臉識別、醫學影像分析等)、語言(語音識別、語言翻譯等)。Wang等人[9]首次在惡意加密流量識別方向提出將原始流量映射到灰度圖,利用卷積神經網絡對灰度圖進行特征提取,從而進行惡意加密流量識別。鄒源等人[10]利用流的前50 個數據包的原始數據對長短時記憶(Long Short Term Memory,LSTM)神經網絡進行訓練,對惡意加密流量的分類效果優于傳統人工提取特征的機器學習算法。吳迪等人[11]提出了一種同時考慮時空特征的深度學習模型BotCatcher,使用CNN 和LSTM 對原始流量數據映射的灰度圖進行時空特征提取,在對僵尸網絡流量的二分類實驗上效果良好。李小劍等人[12]基于切片循環神經網絡建立了SIndRNN 網絡模型,提出了一種基于CNNSIndRNN 的惡意加密流量快速識別方法,使用并行結構的SIndRNN 代替傳統串行結構的循環神經網絡(Recurrent Neural Network,RNN),訓練和檢測用時大幅降低。

本文使用CNN 和雙向GRU 對原始流量數據進行特征提取,不需要人工提取數據特征,利用深度學習的特征自動提取特性。同時,在GRU 上加入多頭注意力機制,能夠更好地捕獲長序列數據的特征,減少長距離傳播中的信息損失。綜上,本文在已有研究的基礎上,使用CNN、GRU 及多頭注意力機制更好地挖掘數據中的時空特征,提出了CNN-MHGRU 模型,通過模型對比實驗,驗證了對惡意加密流量的識別能力。

2 方法設計

本文提出的惡意加密流量識別方法主要包括數據預處理、深度學習模型訓練及特征分類識別這3個部分,各部分的主要工作如下文所述。

(1)數據預處理部分:將數據集中的原始流量PCAP 文件進行會話分割、過濾無效流、地址匿名化、大小標準化和灰度圖映射操作,形成會話到灰度圖一對一的映射關系。

(2)深度學習部分:選用CNN 進行灰度圖的空間特征提取,用帶有多頭注意力機制的GRU 進行時序特征提取,最后將兩者得到的抽象數據進行特征融合,送入全連接神經網絡得到固定大小的時空特征。

(3)特征分類部分:使用softmax 分類器對全連接層輸出的特征進行流量分類。

惡意加密流量識別方法結構如圖1 所示。

圖1 惡意加密流量識別方法結構

2.1 數據預處理

數據預處理部分負責將PCAP 文件的流數據轉換為儲存784 字節內容的灰度圖。首先按照流量的五元組信息(源和目的的IP 地址、源和目的的端口號及網絡協議)進行分割,具有相同五元組信息的數據包按照時間排序構成一個流(會話);其次將內容為空的流刪除,并用“0”數據去替換流中數據包的目的IP 地址、源和目的端口號字段;最后截取流的前784 字節信息進行灰度圖轉換,不足784 字節的流用“0”數據進行填充。

生成的灰度圖如圖2 所示,每一個像素都有8 比特的數據,值為0 到255,每一種惡意流量的傳播和攻擊特性可以通過灰度圖表現出來,但是這種特征差異通過專家經驗很難解釋,需要借助CNN模型的圖像特征提取能力,提取灰度圖中的抽象特征。另外,由于流具有時序性(如先握手再傳數據),自左向右、從上至下將灰度圖數據分為28 組28 字節的數據送入GRU 中,依靠GRU 的時序特征提取能力,提取流中的時序特征。圖2 為隨機抽取的各類惡意流量灰度圖,可以看出每類之間都有一定的區別,這些區別可以被深度學習提取為抽象特征進行分類。

圖2 各類惡意流量灰度圖

2.2 CNN 結構設計

本文CNN 的結構由卷積層、池化層、Dropout層、卷積層、池化層、Dropout 層、全連接層依次組成。兩個卷積層卷積核個數分別為32 和64,卷積核大小都為5×5,步長都為1。池化層類型都為最大池化,大小為2×2,即在2×2 大小的感受野中選擇最大的值進行下一步處理。Dropout 層通過在模型訓練時隨機去掉一定比例的神經元,不參與此次數據的訓練,從而減小模型過擬合的程度,本文的Dropout 層隨機去掉神經元的比例為0.5。全連接層由64 個神經元組成,接收最后的Dropout 層的輸出,最后全連接層輸出64 維空間特征。

2.3 帶有多頭注意力機制的GRU 結構設計

CNN 能夠提取空間特征,但是不善于提取時序上的變化特征。網絡流量由字節、數據包及會話組成,可以看成語言中的字、詞語和句子。流量和語言也都具有時序性,數據包和詞語都必須有著先后順序才能構成合理的會話和句子。LSTM 和GRU 屬于RNN 的變種,可以緩解RNN 的梯度爆炸和梯度消失問題,GRU 又比LSTM 結構更簡單,參數更少,并且雙向結構可以同時考慮輸入在前向時序和反向時序的關系,因此本文選擇雙向GRU 作為時序特征提取模型。

注意力機制提取每個時序的輸出,通過查詢Q、鍵K 和值V 能夠捕獲整個輸入的全部時序關系,降低長序列會出現的信息損失。多頭注意力機制有多組查詢Q、鍵K 和值V,每組參數學習不同的語義信息,從而增強模型的擬合能力和泛化能力。

本文時序特征提取使用兩層雙向GRU 進行,結構順序為GRU 層、多頭注意力層、GRU 層,其中GRU 隱藏層的大小都為32,注意力層的并行頭數量為2,輸出64 維時序特征向量。

2.4 分類學習

在進行分類之前,需要將CNN 和GRU 輸出的時空特征進行融合。為了保留全部的特征信息,本文對兩種特征進行拼接處理,得到128 維時空特征,再分別輸入64 個神經元的全連接層和分類數量個神經元的全連接層,得到的維數就為待分類的數量,最后送入分類器進行分類。

(1)分類器。本文選擇Softmax 作為模型的分類器,通過分類器得到最大值的類型,該輸入就被分類為此類型。Softmax 的公式為:

式中:xi為輸入的第i維值,i類型的分類值為Pi。在本文中進行二分類實驗時,k為2,進行多分類實驗時,k為17。

Softmax 的各個輸出總和為1,大小映射至[0,1],適用范圍廣,簡單易用。

(2)損失函數。損失函數衡量模型輸出值和實際值之間的差距,再通過反向傳播機制對模型中每一個待訓練的參數進行優化,損失函數輸出的值越大,代表和實際情況相差越大,優化調整的幅度也越大。

在本文的二分類實驗中,使用二元交叉熵(Binary Cross Entropy,BCE)作為損失函數,二元交叉熵的公式為:

式中:y為真實標簽,為預測標簽,L為損失值Loss。

在本文的多分類實驗中,使用交叉熵損失(Cross Entropy Loss)函數,交叉熵損失函數的公式為:

(3)優化函數。本文采用Adam 優化算法根據損失函數得出的loss 值對模型可訓練參數進行更新。Adam 的學習率設為0.001,并加入值為0.000 1的權重衰退,限制更新幅度,防止過擬合并且避免梯度爆炸。Adam 優化算法表示如下:

式中:θt為t時刻的參數;gt為t時刻的梯度;mt為Adam 的一階動量參數;vt為Adam 的二階動量參數;α為學習率;λ為權重衰減值;ε默認為10-8,避免除數為0。

3 實 驗

3.1 實驗環境和工具

數據預處理階段在Windows10 操作系統中完成。首先使用SplitCap 工具將原始PCAP 文件拆分成若干雙向會話;其次使用PowerShell 腳本對拆分后的雙向會話PCAP 文件進行裁剪;最后使用Numpy 和PIL 等開源第三方庫生成大小固定的灰度圖。

模型訓練和驗證階段在Ubuntu20.04 LTS 操作系統中完成,并使用PyTorch 進行模型設計和優化。Ubuntu 操作系統中,CPU 使用Inter 至強6226R,內存為128 GB,顯卡為英偉達 RTX4090。

3.2 數據集

翟明芳等人[13]進行了大量的惡意流量檢測數據集比較,從中可以看出,能夠在惡意加密流量識別中使用的數據集非常少,其中提到的可用于加密的數據集也有不足,如按照惡意種類將原始CICIDS2017 數據集的PCAP 文件進行分割較為困難,SSL Certificatres 數據集不適用于模型訓練。因此,本文選擇在公開數據中進行選取,組建一個混合數據集進行訓練和驗證。本文的惡意加密流量從MCFP[14]中選取,正常流量從ISCX VPN-nonVPN[15]和ISCX-Bot-2014[16]的正常流量中選取。

MCFP 是捷克理工大學創建的惡意軟件捕獲設施項目,負責用惡意流量抓取軟件長期抓取,其中部分惡意流量存在加密數據。本文選取16 種惡意流量,其中11 種包含加密流量,會話數上限數為60 000,主要選取情況如表1 所示。

表1 惡意流量種類選取情況

ISCX VPN-nonVPN 含有常規加密和VPN 加密的正常應用流量,本文從中選取的流量類型有email、video、ftps、chat 等。ISCX-Bot-2014 中包含16 種僵尸網絡家族產生的惡意流量以及非加密的正常應用流量。由于本文不對正常流量做詳細分類,且正常流量種類較多,因此不對正常流量種類做詳細展示,主要選取情況如表2 所示。

表2 正常流量來源選取情況

由于惡意流量的會話數遠大于正常流量,因此在訓練集和測試集中每種惡意流量隨機取1 000條,正常流量按8 ∶2 來劃分訓練集和測試集。

在二分類實驗中,去除Miuref、Adware、Zbot、Wannacry、Razy、Artemis 這6 種惡意流量和aim_chat、email、facebook_chat、vpn_bittorrent、vpn_ftps、vpn_skype_audio、vpn_skype_files 等正常流量作為訓練集進行訓練。在對未知流量進行二分類實驗時,用以上種類流量作為測試集進行測試。

3.3 評估指標

本文采取二分類準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1 值(F1_score),多分類整體準確率(Overall_ACC)作為模型識別效果的評價指標。計算公式如下:

式中:TP為二分類中被正確識別為惡意流量的數量,TN為被正確識別為正常流量的數量,FP為被錯誤識別為惡意流量的數量,FN為被錯誤識別為正常流量的數量,TPk為正確識別為第k類流量的數量,TNk為正確識別為非第k類的流量的數量,FPk為不屬于第k類的流量被識別為第k類的數量,FNk為屬于第k類的流量被識別為第k類的數量。

3.4 實驗結果與分析

通過在3×3、5×5、7×7 大小的卷積核進行二分類對比實驗,選出最優的卷積核參數,實驗結果如表3 所示,30 輪訓練輪數可以保證模型收斂,準確率和F1 值都為十折交叉驗證中在驗證集上的平均值。

表3 3 種卷積核大小模型的實驗結果對比

圖3 為3 種不同的卷積核模型在十折交叉驗證中的準確率與迭代次數的關系??梢钥闯?,5×5 大小的卷積核模型雖然起始準確率較低,但是準確率迅速上升。此外,通過表3 可以看出,5×5 大小的卷積核模型的準確率和F1 值分別為99.71%和99.78%,為3 種模型中結果最優。

圖3 3 種卷積核大小模型的準確率實驗對比

本文將GRU 模型所接收的數據類型進行了對比。類型1 為文獻[11]和文獻[17]中提到的提取流中的前8 個數據包,每個數據包中截取前100 個字節,不足100 字節則補0 處理。類型2 為本文提出的將CNN 接收的784 字節數據分為28 組,每組包含28 個字節。將兩種類型數據進行二分類實驗,實驗結果如表4 所示,訓練輪數同樣設為30 輪,準確率和F1 值都為十折交叉驗證中在驗證集上的平均值。

同樣得到GRU 在兩種類型數據的準確率與迭代次數的關系,如圖4 所示。從圖4 可以看出,無論是收斂速度還是識別準確率,數據類型2 的表現相較于類型1 都更好。

圖4 兩種數據類型準確率實驗對比

綜上,為得到更好的檢測效果,本文CNN 選擇5×5 大小的卷積核進行后續實驗,并選擇數據類型2 作為GRU 的后續實驗數據輸入結構。

3.4.1 二分類消融實驗

為了檢測本文提出的時空特征提取模型CNNMHGRU 的效果,本節實驗將通過5 種模型進行二分類實驗,比較各個模型的實驗結果并進行分析。這5 種模型分別是CNN、GRU、MHGRU、CNN_GRU 和CNN-MHGRU。

表5 為5 種模型在十折交叉驗證實驗中,每種模型的評估指標在驗證集上的平均值。

表5 5 種模型十折交叉驗證二分類結果的對比

從表5 可以看出,綜合表現CNN-MHGRU 最優,準確率達到99.92%,F1 值達到99.94%,召回率相比沒有加多頭注意力機制的CNN-GRU 低了0.01%。從MHGRU 和GRU 的結果也可以看出,MHGRU 相比GRU 的準確率和F1 值要高,但是召回率稍低。

由于在對已知數據進行實驗時,模型的訓練結果評估指標相差不大,同時為了模擬真實環境,檢測模型對未知類型的惡意流量和正常流量進行識別的能力,本節的測試集將選取訓練集和驗證集都未出現過的數據種類。選取Miuref、Adware、Zbot、Wannacry、Razy、Artemis 這6 種惡意流量和aim_chat、email、facebook_chat、vpn_bittorrent、vpn_ftps、vpn_skype_audio、vpn_skype_files 等正常流量作為測試集進行測試,實驗結果如表6 所示。

表6 5 種模型對未知流量的二分類實驗結果對比

從表6 可以看出,CNN-MHGRU 模型的準確率、召回率及F1 值在檢測未知流量時表現最優。MHGRU 與GRU 的結果對比可以看出,多頭注意力機制可以提升檢測未知流量的識別準確率。從CNN_GRU 與CNN 和GRU 的結果對比可以看出,同時提取空間特征和時序特征的模型比單一模型的綜合表現更好,其中只考慮空間特征時,表現較差。從CNN-MHGRU 和CNN_GRU 的結果對比可以看出,在時空特征上進行結合時,時序特征如果考慮多頭注意力機制,那么能夠在一定程度上提高對未知威脅的識別準確率。

綜上,本文提出的基于時序特征的多頭注意力模型CNN-MHGRU 能夠提升一定的對惡意加密流量的識別能力。

3.4.2 多分類對比實驗

在實際應用場景中,不僅需要對網絡流量進行惡意威脅識別,還需要對惡意流量進行類別識別,這種對惡意類別的劃分能夠極大幫助網絡安全人員對網絡環境中出現的威脅進行快速反應。為了檢測本文提出的CNN-MHGRU 在多分類場景下的效果,本節對BiLSTM[18]、BotCatcher[11]和CNN-MHGRU模型進行多分類實驗,對比并分析實驗結果。其中,為了還原BotCatcher 模型的實驗情況,BotCatcher使用的是3.4 節中類型2 的數據。

圖5 為3 種模型在十折交叉驗證中的準確率與迭代次數的關系,準確率為十折交叉驗證中在驗證集上的平均值。在30 輪訓練后,BiLSTM、BotCatchar、CNN-MHGRU 的準確率分別達到94.89%、93.81%和95.05%。

圖5 3 種模型十折交叉驗證多分類準確率對比

從圖5 可以看出,3 種模型在20 輪左右基本已經收斂,準確率無較大變化。BiLSTM 和BotCatcher在開始時,準確率高于本文提出的CNN-MHGRU,但在10 輪時CNN-MHGRU 超越前兩者,并從此一直保持領先,說明CNN-MHGRU 能夠更好地擬合數據,在多分類識別時有更好的效果。

圖6 為3 種模型在測試集上多分類識別結果的混淆矩陣(保留3 位小數,小于0.001 看作0 處理),混淆矩陣的橫向坐標為實際類型,縱向坐標為識別類型,其中的數值為被預測類型X(橫坐標值)占實際類型Y(縱坐標值)的比值,主對角線的值為此類被正確識別的比值。

圖6 CNN-MHGRU 模型在測試集上多分類識別結果的混淆矩陣

3 種模型的分類識別結果的F1 值和整體準確率分別如表7 和表8 所示,其中表中粗體項代表此模型為三者中對此類惡意流量識別的最大數值??梢钥闯?,在整體準確率上,本文提出的CNNMHGRU 模型表現最好,F1 值除了在Adware、TrickBot、Wannacry、Artemis、Virtu 這5 種類型的惡意流量稍低,其他類型都為最高。CNN-MHGRU整體準確率為0.929 8(92.98%),分別比BiLSTM和BotCatcher 高出1.5%和2%左右。這說明本文提出的CNN-MHGRU 模型能夠很好地對數據進行時空特征抽象提取,并且在整體上能夠更好地對惡意流量進行識別。

表7 3 種模型多分類實驗的F1 值對比

表8 3 種模型多分類實驗的整體準確率對比

本文提出的CNN-MHGRU 和李小劍提出的CNN-SIndRNN[12]在相同種類的惡意流量下進行對比實驗的結果如表9 所示。

表9 本文模型與CNN-SIndRNN 實驗結果對比

從表9 可以看出,在Dridex 的識別上,CNNSIndRNN 的F1 值比本文模型高0.144;在Zbot、Adware、TrickBot、Wannacry 和Benign 上CNNMHGRU 表現較好,分別比CNN-SIndRNN 高出15.96%、4.97%、7.7%、86.3% 和5.49%;本文模型相比CNN-SIndRNN 在Wannacry 識別上效果尤其突出。綜合比較,本文模型CNN-MHGRU 在實際環境能夠更好地識別惡意流量。

4 結語

本文提出了一種基于時空特征和多頭注意力機制的惡意加密流量識別方法。該方法不依靠人工提取數據特征,通過深度學習的表征學習能力,直接輸入原始數據進行模型訓練。該方法分別利用CNN和GRU 提取空間和時序兩種維度特征,并在GRU中加入多頭注意力機制提高對長序列數據的特征提取能力。通過對比實驗,本文從二分類和多分類角度對該方法訓練的CNN-MHGRU 模型進行分析。實驗結果表明,CNN-MHGRU 模型在二分類和多分類中的準確率、召回率和F1 值都有綜合提高,有效增強了對惡意加密流量的識別能力。然而,隨著參數的增加,模型的訓練和檢測的時間也隨之增加,因此可以對模型結構進行進一步研究,減少使用的資源并增加檢測的實時性。另外,本文數據特征僅來自一個會話,只能對單一會話進行識別,而有些惡意攻擊會在整個局域網表現出惡意行為,可以結合多個會話的聯系進行分析,識別網絡中新型、復雜的惡意加密攻擊。

猜你喜歡
灰度加密準確率
采用改進導重法的拓撲結構灰度單元過濾技術
基于灰度拉伸的圖像水位識別方法研究
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
一種基于熵的混沌加密小波變換水印算法
高速公路車牌識別標識站準確率驗證法
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
基于灰度線性建模的亞像素圖像抖動量計算
認證加密的研究進展
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合