張穌榮,陳 博,卜佑軍,路祥雨,孫 嘉,2
1.中國人民解放軍戰(zhàn)略支援部隊信息工程大學 信息技術研究所,鄭州 450000
2.鄭州大學 軟件學院,鄭州 450000
如今,隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、云計算等新型網(wǎng)絡技術的出現(xiàn)和發(fā)展,互聯(lián)網(wǎng)的規(guī)模不斷擴大,因此帶來了網(wǎng)絡流量的爆發(fā)式增長[1]。與此同時,隨著大眾網(wǎng)絡安全意識的不斷提高,非加密的數(shù)據(jù)傳輸方式也逐漸被加密傳輸所取代,加密網(wǎng)絡流量在互聯(lián)網(wǎng)中所占比例穩(wěn)步提升。而據(jù)Barac 預測,到2021 年底,89%的流量將被加密[2],加密流量中將有超過50%的部分是由惡意軟件產(chǎn)生的。這就意味著網(wǎng)絡流量加密技術雖然能夠用于用戶隱私與安全保護,但同時也為惡意網(wǎng)絡服務提供了可乘之機。越來越多的惡意網(wǎng)絡服務通過加密和隧道技術繞過防火墻和入侵檢測系統(tǒng),加密技術正在成為惡意服務的溫床。因此,加密流量檢測技術愈加受到學術界和工業(yè)界的廣泛關注。
加密流量檢測與非加密流量檢測最大的不同之處在于其實際內容不可見,而基于解密技術的檢測方法耗時長、成本高,同時也涉嫌對用戶隱私的侵犯。如何在不解密的條件下對加密流量進行有效檢測是當前網(wǎng)絡安全特別是流量安全領域的熱點和難點之一。
人工智能技術的發(fā)展為該領域的研究提供了可行的思路[3]。機器學習是人工智能的一種實現(xiàn)方法,它從樣本數(shù)據(jù)中學習,得到知識和規(guī)律,然后用于實際推斷和決策。然而傳統(tǒng)的機器學習方法必須依靠專家經(jīng)驗手工提取流量特征,耗時耗力,在如今流量特別是加密流量爆發(fā)式增長的情況下,難以實現(xiàn)及時、準確地加密惡意流量檢測。而深度學習能夠從原始流量數(shù)據(jù)中自動提取特征,無需繁雜的人工特征提取過程,經(jīng)過一定周期的訓練,在自動化檢出率、準確率、漏報率等方面,都可以獲得較好的效果。但性能較好的深度學習模型的訓練需要依靠大量正確標記的流量數(shù)據(jù),這正是目前加密惡意流量檢測領域所面臨的一大困境。在現(xiàn)實網(wǎng)絡環(huán)境中,流量復雜多變,難以實時準確地對其進行標記,從而難以獲取大規(guī)模高質量的訓練數(shù)據(jù),給現(xiàn)有方法帶來了巨大的挑戰(zhàn)。為了達到及時檢測的效果,檢測模型必須能夠實現(xiàn)小樣本條件下的快速訓練和準確檢測。
針對加密惡意流量檢測所面臨的可用樣本數(shù)量較少問題,本文提出一種基于遷移學習的加密惡意流量檢測(transfer learning based encrypted malicious traffic detection,TL-EMTD)方法。首先通過預處理階段,將以二進制字符串的形式存儲的原始流量數(shù)據(jù)轉換為二維圖像格式。在此過程中,采用二進制字符串到十六進制字符串,再到十進制整數(shù)矩陣,最后到png格式的二維圖像的轉換流程,將每個pcap文件處理為一張二維圖像。其次,為了解決小樣本問題帶來的模型檢測精度降低問題,借鑒遷移學習理論,將用于圖片分類的Efficientnet-B0模型[4]遷移到加密流量數(shù)據(jù)集上,替換其全連接層后進行訓練。在此過程中,由于模型的卷積層不參與訓練,只有替換的全連接層需要進行梯度更新,參數(shù)數(shù)量大大降低,因此在樣本較少的情況下也能訓練出精度較高的檢測模型。最后,將訓練好的模型用于檢測,可獲得良好的檢測效果。本文的主要貢獻和創(chuàng)新工作總結如下:
(1)提出了一種基于遷移學習的加密惡意流量檢測方法,即TL-EMTD,在公共數(shù)據(jù)集上對該方法進行了評估,取得了較好的檢測結果。
(2)首次將用于圖片分類的Efficientnet-B0 模型遷移到加密流量數(shù)據(jù)集上,結合流量預處理,為加密流量檢測提供了新的思路。
(3)解決了小樣本條件下加密惡意流量檢測精度不高的問題,能夠在訓練樣本較少的情況下,得到性能較好的加密惡意流量檢測器。
一般來說,加密惡意流量檢測的本質是加密流量檢測及分類。在研究初期,研究者主要利用基于規(guī)則的加密流量檢測方法[5-8],其主要思想是利用加密流量的字段組合、排序或者固定模式等作為指紋進行模式匹配。該方法雖然具有輕量級這一優(yōu)點,但是需要人工分析海量流量,選擇具有區(qū)分性的字段特征或組合,且僅可以對已提取的規(guī)則進行匹配識別,容易被人工拼接或惡意偽造字段的流量繞過,導致高誤報率。
隨著網(wǎng)絡流量加密化進程不斷推進,基于規(guī)則的流量檢測方法變得更加困難。于是,研究者引入機器學習算法,大大提高了加密流量檢測性能[9-15]。其主要思想是構建加密流量的統(tǒng)計屬性聯(lián)合作為指紋進行分類識別。該方法雖然提高了加密流量檢測的準確率,但是仍然需要依靠專家經(jīng)驗來決定特征的選擇和提取,費時費力。
近年來,由于深度學習能夠通過訓練進行自動化特征提取,基于深度學習的加密流量檢測也得到了迅速發(fā)展。王偉等[16]首次提出了一種基于一維卷積神經(jīng)網(wǎng)絡(1 dimensional convolutional neural networks,1D-CNN)的端到端加密流量分類方法。該方法將特征提取、特征選擇和分類器集成到一個統(tǒng)一的端到端框架中,自動學習原始輸入與期望輸出之間的非線性關系。此外,在文獻[17]中,該作者還提出了一種基于二維卷積神經(jīng)網(wǎng)絡(2 dimensional convolutional neural networks,2D-CNN)的加密惡意流量檢測方法,通過將會話或網(wǎng)絡流的前784字節(jié)預處理為二維灰度圖像作為模型輸入,來提取其中包含的空間特征,實現(xiàn)加密惡意流量的檢測。吳迪等[18]提出了一種基于深度學習的檢測模型BotCatcher,該模型使用CNN和雙向LSTM這兩種深層神經(jīng)網(wǎng)絡架構,從時間和空間這兩個維度對原始流量進行自動化特征提取。韋佶宏等[19]提出了一種基于混合神經(jīng)網(wǎng)絡的模型,將專家經(jīng)驗與神經(jīng)網(wǎng)絡自動化特征提取的優(yōu)勢相結合,利用1D-CNN 與2D-CNN 優(yōu)秀的特征表達能力,降低對專家經(jīng)驗的依賴,有效提升了針對惡意TLS流量的識別與分類效果。黎佳玥等[20]提出了一種結合深度學習算法中長短期記憶網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的預測模型,能夠訓練得到網(wǎng)絡流量數(shù)據(jù)的時空特征,實現(xiàn)預測下一時段網(wǎng)絡流量特征變化和網(wǎng)絡安全事件分類識別。目前,雖然深度學習技術在加密流量檢測領域已十分廣泛且深入,但模型良好性能的實現(xiàn)仍然需要依靠大量正確標記的數(shù)據(jù)來進行較長時間的訓練,如何實現(xiàn)較高的檢測和細粒度分類精度,甚至在小樣本條件下也能達到具有應用價值的檢測和分類水平,是亟待解決的問題。
對于人類來說,遷移學習就是舉一反三的能力;對于機器學習算法來說,遷移學習就是運用已有的知識來學習新的知識。通常,將原有的知識稱為源域,將新的知識稱為目標域,兩者不同但一定存在關聯(lián)。遷移學習利用數(shù)據(jù)、任務或模型之間的相似性,將源域中學習到的模型應用到目標域。與傳統(tǒng)機器學習技術致力于同時從每個任務中獲取信息的特點不同,遷移學習致力于當目標任務缺少高質量的訓練數(shù)據(jù)時,從之前任務向目標任務遷移知識,解決目標域缺少標簽的問題[21]。
在加密流量檢測領域,文獻[22]采用遷移學習的思想,提出了一種半監(jiān)督的檢測方法。該方法首先在一個大的未標記數(shù)據(jù)集上預訓練一個模型,然后將學習到的權值轉移到一個新的模型中,該模型在一個小的標記數(shù)據(jù)集上進行再訓練。作者表示,盡管每個類只使用20個樣本,但該方法幾乎可以達到與完全監(jiān)督方法在大的標記數(shù)據(jù)集上相同的精度。文獻[23]重點研究了離散順序協(xié)議消息(discrete sequential protocol messages,DSM)中加密數(shù)據(jù)的分類問題,提出了一種基于LSTM和遷移學習(transfer learning,TL)的LSTM-TL 方法。該方法將在源域上預訓練的LSTM 模型轉移到目標域,可以在不需要目標區(qū)域內任何標記數(shù)據(jù)的情況下對未標記DSM 數(shù)據(jù)進行分類。作者在Text、ACARS、HTTP&SSH和AIS數(shù)據(jù)集上進行了實驗,在前三個數(shù)據(jù)集上,該方法的F1 分數(shù)和準確性均大于0.96,而在AIS數(shù)據(jù)集上分別僅為50%和67%,原因是用于預訓練的源域與該目標域差異過大。這也證明要想實現(xiàn)高性能的遷移學習,選擇合適的源域是至關重要的。
可以發(fā)現(xiàn),遷移學習能夠解決目前主流的加密流量檢測方法過分依賴大規(guī)模數(shù)據(jù)進行訓練的問題,在合適的源域條件下,能夠以很少的樣本得到性能良好的加密流量檢測器。
圖1給出了本文提出的加密惡意流量檢測模型TLEMTD 的基本結構,包括數(shù)據(jù)預處理階段、模型訓練階段以及測試階段。整體檢測流程可概述為:首先對原始流量數(shù)據(jù)進行預處理,轉換為模型所需的輸入格式;預處理后的數(shù)據(jù)輸入到檢測模型中,模型對輸入數(shù)據(jù)進行自動化特征提??;提取的特征向量經(jīng)過最后一層Softmax層得到最終的檢測結果。
圖1 TL-EMTD方法整體架構示意圖Fig.1 Overall architecture of TL-EMTD
在數(shù)據(jù)預處理階段,被存儲為Pcap 格式的原始流量數(shù)據(jù)經(jīng)流量切分、數(shù)據(jù)清洗、長度統(tǒng)一、格式轉換及數(shù)據(jù)集劃分等步驟,轉換為可作為模型輸入的png 格式,如圖2所示。
圖2 數(shù)據(jù)預處理步驟示意圖Fig.2 Data preprocessing step
(1)流量切分:根據(jù)五元組將原始流量劃分為會話。
原始流量數(shù)據(jù)存儲在單獨的Pcap 文件中,每個Pcap文件是一個包含不同大小的數(shù)據(jù)包的集合,每個文件代表一種應用程序。在這一步驟中,原始流量文件首先按會話分段,使用所有協(xié)議層次數(shù)據(jù),這是在文獻[16]中王偉等所評價的基于深度學習的流量分類中最理想的流量表示形式。會話是由具有相同五元組(源IP,源端口,目的IP,目的端口,傳輸層協(xié)議)的雙向流組成的一組數(shù)據(jù)包,其源IP和目的IP可以互換。
(2)數(shù)據(jù)清洗:刪除與檢測無關的信息。
對于每條會話,依次迭代其中的每個數(shù)據(jù)包,刪除數(shù)據(jù)鏈路層中一些與以太網(wǎng)相關的數(shù)據(jù),如MAC地址;同時,刪除重復的數(shù)據(jù)包和空數(shù)據(jù)包。
(3)長度統(tǒng)一:固定會話長度以適應模型輸入的要求。
為了使傳輸層段均勻,在UDP 段的標頭(8 Byte)末尾填充0,以使其與TCP 標頭的長度(20 Byte)相等;此外,將每條會話的長度固定為1 024 Byte,如果會話長度大于1 024 Byte 則截斷,小于1 024 Byte 則在會話末尾補零。
(4)格式轉換:將會話文件轉換為灰度圖像。
將長度統(tǒng)一后的會話文件根據(jù)模型需要的輸入分辨率大小進行迭代復制擴充,即以分辨率要求是64×64為例,分別將每條會話(1024 Byte)迭代復制擴充至長度為4 096(64×64)。之后將擴充后的會話文件轉換為的二維灰度圖像,輸出格式為png格式。會話文件中的一個字節(jié)對應灰度圖像中的一個像素值,例如0x00 對應黑色,0xff對應白色。
(5)數(shù)據(jù)集劃分:將數(shù)據(jù)集劃分為訓練集和測試集。
將所有類別的灰度圖像按9∶1 的比例分割成訓練集和測試集。
本文提出一種基于遷移學習的加密惡意流量檢測方法,即TL-EMTD 方法,首次將谷歌團隊在ImageNet數(shù)據(jù)集上預訓練好的Efficientnet-B0 模型及其參數(shù),遷移到加密流量數(shù)據(jù)集上進行再訓練。
Efficientnet 是谷歌大腦的工程師譚明星和首席科學家Le 等于2019 年在文獻[4]中提出的。在這篇論文中,作者構造了一個基線網(wǎng)絡結構Efficientnet-B0,同時提出了一種可以同時兼顧速度與精度的模型擴展方法,并應用在Efficientnet-B0 上,通過擴大不同倍數(shù)分別生成 了Efficientnet-B1~Efficientnet-B7。相 對 于Resnet、Xception、ResNet等經(jīng)典網(wǎng)絡模型,Efficientnet系列模型在ImageNet 數(shù)據(jù)集上的分類性能實現(xiàn)了碾壓;而對比此前效果最好的Gpipe 模型,雖然Efficientnet 在準確率上只提高了0.1%,但模型參數(shù)卻減少了8.4倍。
考慮到數(shù)據(jù)集規(guī)模較小,本文只使用參數(shù)最少的考慮到Efficientnet-B0模型來進行遷移。之所以選擇Efficientnet模型,是因為其本身是用作圖片分類的,而流量數(shù)據(jù)能夠被處理為二維圖像格式,因此可以認為兩者之間存在一定的聯(lián)系,具備遷移的條件。
在遷移過程中,將Efficientnet-B0 模型最后的全連接層去除,保留之前所有的層,并在其之后添加全局平均池化層(global average pooling,GAP)[24]、密集層以及Softmax 層。以基于Efficientnet-B0 模型的6 分類實驗為例,整體網(wǎng)絡架構如圖3所示。
圖3 TL-EMTD方法網(wǎng)絡架構圖Fig.3 Network architecture of TL-EMT
2.2.1 Efficientnet-B0層
在構造Efficientnet-B0時,作者使用MobileNet V2[25-26]中的移動翻轉瓶頸卷積(mobile inverted bottleneck convolution,MBConv)模塊作為模型的主要構造塊,在此基礎上用多目標神經(jīng)架構搜索[26],確定了最終的基線網(wǎng)絡Efficientnet-B0,其結構如表1所示。其中,MBConv模塊是通過在深度可分離卷積(depthwise separable convolution,DSC)的基礎上,使用SENet[27]中的壓縮與激發(fā)(squeeze and excitation,SE)方法進行優(yōu)化而形成的。
表1 Efficientnet-B0網(wǎng)絡結構Table 1 Network structure of Efficientnet-B0
在TL-EMTD方法中,Efficientnet-B0模型可以看作是一個高效的特征提取器。被預處理為二維圖像的加密流量數(shù)據(jù)輸入到其中,經(jīng)過一系列的卷積、池化、激活等操作后,輸出更加精煉且表達能力更強的特征向量。
2.2.2 全局平均池化層
在全局平均池化技術被提出之前,全連接層一直是卷積神經(jīng)網(wǎng)絡的標配,用來改變卷積層輸出特征圖的維度,將學到的“分布式特征表示”映射到樣本標記空間,即實現(xiàn)特征圖的向量化,從而實現(xiàn)分類。但是全連接層參數(shù)過多,容易造成過擬合。為了避免此風險,同時實現(xiàn)特征圖到特征向量的轉換,全局平均池化技術應運而生,兩者的結構如圖4所示。
圖4 全連接層和全局平均池化層結構示意圖Fig.4 Structure comparison diagram of full connection layer and global average pooling layer
2.2.3 密集層
卷積層輸出的特征圖在經(jīng)過全局平均池化層之后,可以得到長度為1 280的一維特征向量。為了進一步整合特征,增強模型的非線性表達能力,本文增加一個密集全連接層,采用線性整流函數(shù)(rectified linear unit,ReLU)作為激活函數(shù),可以得到長度為256的高階特征向量。其中,ReLU函數(shù)如式(1)所示:
ReLU函數(shù)保留全部正值,并將所有負值置為0,通過這種方式賦予神經(jīng)元稀疏激活性,從而使其能夠更好地挖掘輸入信息中與目標相關的特征,擬合訓練數(shù)據(jù)。與線性函數(shù)相比,ReLU函數(shù)具有更強的表達能力;而與其他非線性函數(shù)相比,其非負區(qū)間的梯度為常數(shù),因此能夠避免神經(jīng)網(wǎng)絡訓練過程中經(jīng)常出現(xiàn)的梯度消失問題。
2.2.4 Softmax層
網(wǎng)絡結構的最后一層,即Softmax層,本質上依然是一個全連接層,但是激活函數(shù)采用的是Softmax函數(shù)。該層將密集層輸出的一維特征向量,繼續(xù)映射為(-∞,+∞)范圍內的實數(shù),又稱為分數(shù)。Softmax函數(shù)將這些實數(shù)進一步轉化為(0,1)范圍內的實數(shù),即各類的概率,同時保證它們的和為1。Softmax函數(shù)的計算公式如式(2)所示:
其中,pi是輸入樣本屬于類別i的概率,zi是分數(shù),i為加密流量類別索引,k為加密流量類別總數(shù)。
本文使用的實驗環(huán)境與配置如表2所示。
表2 實驗環(huán)境與配置Table 2 Experimental environment and configuration
翟明芳等在文獻[28]中對目前常見的流量數(shù)據(jù)集做出了總結,從中可以看出,如今很難找到一個能夠滿足同時包含加密惡意流量與正常流量且以Pcap包存儲原始流量等條件的公共數(shù)據(jù)集。因此,本文決定綜合正常加密流量數(shù)據(jù)集ISCX VPN-nonVPN[29]和加密惡意流量數(shù)據(jù)集CTU-13[30],構造一個滿足上述條件的原始流量數(shù)據(jù)集來進行實驗。
ISCX VPN-nonVPN數(shù)據(jù)集中包含14種加密流量,包括7 種常規(guī)加密流量和7 種協(xié)議封裝流量,且同時包含流特征數(shù)據(jù)和原始流量數(shù)據(jù),但原始流量數(shù)據(jù)沒有標簽。由于本文主要關注加密流量的檢測,因此選擇其中的常規(guī)加密流量。此外,由于Browser和Streaming兩種流量中包含重復的文件[16],因此本文將Browser 這類流量去掉,選擇剩余的電子郵件(Email)、聊天(Chat)、流媒體(Streaming)、文件傳輸(File Transfer)、VoIP和P2P這6 類常規(guī)加密流量進行標記。該數(shù)據(jù)集的構成及預處理后生成的二維圖像數(shù)量如表3所示。
表3 加密正常流量數(shù)據(jù)集Table 3 Encrypted benign traffic dataset
CTU 數(shù)據(jù)集是捷克共和國CTU 大學在2011 年至2015年間在真實環(huán)境中捕獲的,本文從中選取6種加密惡意流量,該數(shù)據(jù)集的構成及預處理后生成的二維圖像數(shù)量如表4所示。
表4 加密惡意流量數(shù)據(jù)集Table 4 Encrypted malicious traffic dataset
本文使用以下指標來評價本文提出的方法:
準確率(Acuuracy),表示樣本被正確分類的比例:
精確率(Precision,又稱查準率),表示在所有被預測為正的樣本中實際為正的樣本所占的比例:
召回率(Recall,又稱查全率),表示在實際為正的樣本中被預測為正的樣本所占的比例:
F1 分數(shù)(F1-Score),是精確率和召回率的調和平均,可作為模型的實際評分準則:
其中,TP表示預測為正實際也為正的樣本數(shù)目,TN表示預測為負實際也為負的樣本數(shù)目,F(xiàn)P表示預測為正實際為負的樣本數(shù)目,F(xiàn)N表示預測為負實際為正的樣本數(shù)目。
本文設置4個實驗來測試所提TL-EMTD方法的性能。首先測試輸入圖像的分辨率大小對檢測結果的影響,為后續(xù)實驗提供依據(jù);其次對所有流量數(shù)據(jù)進行二分類,以測試TL-EMTD方法檢測加密惡意流量的性能;在此基礎上,在正常樣本數(shù)量情況下,針對加密惡意流量數(shù)據(jù)集進行細粒度分類實驗,并與文獻[17]及文獻[18]中的方法進行對比;最后通過設置不同的訓練樣本數(shù)量,測試小樣本條件下該方法的細粒度檢測性能。在實驗中,batch_size 設置為16,采用RMSprop 優(yōu)化器,學習率設置為0.001,學習率衰減系數(shù)設置為0.01,同時采用動量梯度下降法加快收斂速度,動量設置為0.9。
3.4.1 實驗1:輸入分辨率大小對檢測結果的影響
在該實驗中,本文以加密惡意流量數(shù)據(jù)集為基礎,通過將原始流量預處理為4種不同分辨率的二維圖像,研究分辨率大小對TL-EMTD方法檢測結果的影響。表5 顯示了4 種分辨率下的檢測準確率以及平均精確率、召回率和F1分數(shù)。
表5 不同分辨率下的檢測結果Table 5 Detection results at different resolutions
從表5中可以看出,隨著分辨率的增加,各個評價指標的數(shù)值均隨之增大,即模型的檢測性能不斷增強。在分辨率為32×32 時,檢測準確率為95.83%,而在分辨率為224×224 時,準確率達到了98.88%,其余評價指標均達到了99%左右。因此,對TL-EMTD 方法所使用的模型架構來說,輸入圖像的分辨率越大,其檢測性能越好。
3.4.2 實驗2:基于遷移學習的加密惡意流量檢測
在該實驗中,本文將所有正常加密流量標記為0,所有加密惡意流量標記為1,對原始流量進行二分類。根據(jù)實驗1 結果,選擇224×224 作為輸入圖像的分辨率大小。將所有原始流量預處理為224×224 大小的二維圖像,輸入到2.2節(jié)中描述的網(wǎng)絡結構中,此處需要將該網(wǎng)絡結構的最后一層fc-out的輸出維度修改為(1,2),以測試TL-EMTD方法檢測加密惡意流量的性能。訓練和測試過程中的準確率及損失值如圖5所示。
圖5 訓練和測試過程中的準確率及損失值變化Fig.5 Changes of accuracy and loss during training and testing
圖5(a)是TL-EMTD 方法在訓練過程中的準確率變化圖,圖5(b)是訓練過程中的損失值變化圖,其中橫坐標均是訓練輪次Epoch。準確率越高、損失值越小,說明模型的檢測性能越好。
從圖5 中可以看到,在訓練伊始,TL-EMTD 方法的檢測準確率就達到了0.9 以上,證明了本文選擇Efficientnet-B0 模型進行遷移的合理性和有效性。隨著訓練的進行,TL-EMTD方法的檢測準確率不斷升高,損失值不斷降低,最終,本文所提的基于遷移學習的加密惡意流量檢測方法能在二分類的情況下達到0.998 7的準確率,損失值無限接近于0,并且達到該檢測水平所需的訓練輪次小于5 輪,在本文實驗環(huán)境下,所需訓練時間在30 s以內。
3.4.3 實驗3:基于遷移學習的加密惡意流量細粒度檢測
在實際應用中,檢測模型不僅需要將加密惡意流量從大規(guī)模復雜流量中檢測出來,還應實現(xiàn)細粒度分類,對其所屬類型進行標記。本文選擇文獻[17]提出的2DCNN 方法以及文獻[18]提出的BotCatcher 方法進行對比,其中2D-CNN模型采用類似經(jīng)典的LeNet-5結構,只提取流量的空間特征信息,而BotCatcher 模型將CNN與雙向LSTM結合,同時利用流量的空間和時間特征對其進行分類。基于本文構造的加密惡意流量數(shù)據(jù)集,對三種方法進行細粒度多分類實驗。最終,TL-EMTD 方法能夠達到98.88%的準確率,高于2D-CNN方法所達到的98.52%的準確率以及BotCatcher 方法所達到的98.64%的準確率。此外,每種方法中各類別的精確率、召回率和F1分數(shù)如圖6~圖8所示。
圖6 三種方法中每一類別的精確率Fig.6 Precision of each category in three methods
從圖6~圖8 中可以看出,本文提出的TL-EMTD 方法與文獻[17]提出的2D-CNN方法以及文獻[18]提出的BotCatcher方法,除了在Virut這種類型的流量上各項檢測指標略低之外,對于其他5種流量的檢測,精確率、召回率、F1分數(shù)總體持平,且均達到了98%以上。此外,針對Virut 流量,與其他兩種方法對比,本文方法在精確率、召回率和F1分數(shù)等指標上有較為明顯的提升。
圖7 三種方法中每一類別的召回率Fig.7 Recall of each category in three methods
圖8 三種方法中每一類別的F1分數(shù)Fig.8 F1_Score of each category in three methods
此外,三種模型訓練參數(shù)量、模型大小對比結果如表6所示。
表6 模型訓練參數(shù)量與模型大小對比Table 6 Comparison of model training parameters and size
從表6 中可以看出,本文所提的TL-EMTD 方法需要訓練的參數(shù)量最少,為329 478,同時模型大小只有19.59 MB,低 于2D-CNN 和BotCatcher。這 是 因 為TL-EMTD 方法在遷移學習的過程中,凍結了源模型Efficientnet-B0 卷積層中預訓練好的參數(shù),只允許新替換的全連接層參與訓練及更新,這就大大減少了網(wǎng)絡中需要訓練的參數(shù)量,能夠在同等實驗條件下縮短訓練時間,有效平衡了分類精度和運行時間的要求。同時,在保存訓練好的模型時能更好地降低存儲開銷,也更加方便之后對模型的再次調用。
3.4.4 實驗4:小樣本條件下基于遷移學習的加密惡意流量檢測
該實驗利用實驗1中6類分辨率為224×224的二維圖像集合,構造樣本數(shù)量不同的7個加密惡意流量訓練集,同時保留原有的測試集不作改變,以觀察不同訓練樣本情況下TL-EMTD、2D-CNN 以及BotCatcher 三種方法對加密惡意流量的檢測與分類性能。各數(shù)據(jù)集中包含的訓練樣本數(shù)量及三種方法對應的準確率如表7所示。
表7 三種方法在不同樣本數(shù)量下的檢測準確率Table 7 Accuracy of three methods in different sample size
從表7中可以看出,在訓練數(shù)據(jù)集中每一類流量的樣本數(shù)量為5 000個時,本文所提的TL-EMTD方法能夠達到98.84%的準確率,接近在原始數(shù)據(jù)集上的最高檢測準確率98.88%,當訓練樣本數(shù)量減少到每類流量中有1 000 個樣本時,準確率只降低了1.52 個百分點,能夠達到97.32%;當減少到訓練集只有100 個樣本時,準確率仍然能夠達到96.35%;而隨著訓練樣本的減少,2D-CNN 和BotCatcher 兩種檢測方法準確率下降明顯,在訓練集中每一類樣本數(shù)量只有100 時,2D-CNN 方法檢測準確率只有72.35%,而BotCatcher僅能達到56.73%。這是因為訓練樣本數(shù)量減少時,模型所提取的特征數(shù)量減少,2D-CNN 和BotCatcher 所用模型中需要訓練的參數(shù)量較大,模型得不到充分訓練,而TL-EMTD方法所用的模型中大部分參數(shù)都是從預訓練好的Efficientnet-B0模型中遷移而來的,只需訓練替換的全連接層即可,因此訓練參數(shù)較少,訓練樣本減少時其受到的影響也較小。綜合考慮,本文提出的TL-EMTD 方法在訓練樣本減少至原有數(shù)量的2%時,準確率只降低了2.49 個百分點,且模型訓練參數(shù)數(shù)量較少,能夠有效節(jié)省計算機的存儲開銷。因此可以認為,本文提出的基于遷移學習的加密惡意流量檢測方法能夠在小樣本條件下取得較高的檢測性能,在可用樣本數(shù)量較少的場景中具有一定的實用價值。
本文提出了一種基于遷移學習的加密惡意流量檢測方法,即TL-EMTD方法,利用遷移學習的思想,首次將在ImageNet數(shù)據(jù)集上預訓練好的模型Efficientnet-B0遷移到加密流量數(shù)據(jù)集上。該方法將原始流量數(shù)據(jù)預處理為二維圖像格式,作為模型的輸入。在訓練時,“凍結”Efficientnet-B0的卷積層,只允許新替換的全連接層進行梯度更新。實驗結果表明,該方法能夠達到較高的檢測精度及細粒度分類精度,同時能夠縮短訓練時間,降低存儲開銷,并且在小樣本條件下也能實現(xiàn)良好的檢測和分類效果。在下一步工作中,將收集更多可靠的加密惡意流量數(shù)據(jù)集,進行進一步實驗以驗證模型的泛化能力,同時嘗試在實際網(wǎng)絡環(huán)境中部署并評估TL-EMTD的檢測性能。