楊忠富,常 俊,許 妍,羅金燕,吳 彭
云南大學 信息學院,昆明 650500
隨著通信感知一體化、5G、邊緣計算等信息技術的蓬勃發(fā)展,對網(wǎng)絡的管理提出了更高的要求。網(wǎng)絡流量分類作為提高網(wǎng)絡控制能力的必要技術之一,通過區(qū)分網(wǎng)絡應用類型,不僅能夠提供更好的服務質量(QoS),而且能夠有效地監(jiān)督和管理網(wǎng)絡。近年來,隨著個人信息隱私保護和數(shù)據(jù)安全意識的提高,加密技術在互聯(lián)網(wǎng)網(wǎng)絡通信中得到了廣泛的應用。然而,網(wǎng)絡流量加密技術的發(fā)展也導致了網(wǎng)絡安全管理面臨許多挑戰(zhàn)。目前,大多數(shù)惡意軟件和攻擊通過使用加密技術,使得可以避開防火墻和網(wǎng)絡安全系統(tǒng)的檢測。因此,如何高效準確地識別出加密流量類型成為當下研究熱點。
在早期階段,大多數(shù)研究側重于基于端口的流量識別,使用TCP或UDP數(shù)據(jù)報頭的指定端口[1-2],而隨著隨機端口和偽裝技術在網(wǎng)絡通信上的應用,該方法對流量識別率較低,已不再適用于當前網(wǎng)絡環(huán)境。文獻[3]使用基于數(shù)據(jù)包載荷的深度包檢測(DPI)方法,解決了基于端口分類的問題,卻不適合數(shù)據(jù)被加密的網(wǎng)絡。文獻[4-5]使用基于統(tǒng)計的方法提取流量的特征,然后通過機器學習對特征進行識別分類,如隨機森林、支持向量機(SVM)、樸素貝葉斯等[6]。機器學習模型因其處理高維復雜時空數(shù)據(jù)的能力而優(yōu)于傳統(tǒng)模型,但是,在這些方法中,統(tǒng)計特征是手動提取的,需要大量的時間和專家經(jīng)驗[7]。深度學習[8]作為一種端到端的方法應運而生,可以學習輸入和輸出之間的非線性關系,不需要額外地提取復雜的特征。與傳統(tǒng)機器學習模型相比,深度學習模型在網(wǎng)絡流量識別任務中取得了優(yōu)異的性能。Wang 等人[9]提出了一種利用1D-CNN 來實現(xiàn)加密流量分類的方法,該模型是端到端的框架,不需要人工設計流量特征,直接使用Pcap格式的原始數(shù)據(jù)流量,通過對12類別的網(wǎng)絡流量分類準確率達到了86.6%。Zhang等人[10]提出了一種加密流量分類方法,可以獨立過濾和標記未知應用流量。Lotfollahi等人[11]提出一種叫“深度包”的流量分類框架,將經(jīng)過預處理后的IP 包的前1 500 Byte 作為網(wǎng)絡輸入,然后使用SAE 和一維卷積CNN 網(wǎng)絡進行分類,結果表明F1 值高達95%。文獻[12]使用LSTM來提取流量數(shù)據(jù)包之間的時序特征。文獻[13]結合CNN 和LSTM 來提取流量數(shù)據(jù)的空間與時序特征,其平均準確率與1D-CNN 相比平均提高了5%,在精確率和召回率上達到了最高值。在文獻[14]中,對1D-CNN進行了改進,并同樣聯(lián)合使用了LSTM,在訓練階段為每個流量類別設置不同的權重參數(shù),使數(shù)據(jù)平衡,結果顯示,對加密流量數(shù)據(jù)集進行分類,其準確率超過98%。據(jù)查閱文獻可知,在目前的基于深度學習的網(wǎng)絡流量分類方法中,采用CNN 和LSTM 的聯(lián)合模型的分類效果最好,主要原因是網(wǎng)絡流量數(shù)據(jù)本身的“數(shù)據(jù)流-數(shù)據(jù)包-字節(jié)”遞進結構,具有明顯的空間和時序特征。
在目前眾多的加密流量檢測中,基于深度學習的模型仍然采用CNN 來學習流量特征進行分類。然而,基于CNN 的空間特征提取有一定的局限性。首先,CNN只學習了數(shù)據(jù)報中的空間特征,忽略了內(nèi)部字符串之間的相對位置、局部特征和整體之間的關系。其次,池化操作會主動丟棄大量信息。另外,針對網(wǎng)絡流量的表征形式,目前的處理方法分為語義和二進制表征[15]。語義表征是根據(jù)每個數(shù)據(jù)包報頭的語義字段,如IP、TCP 和UDP長度字段,然后將這些語義字段整合成一個完整的表征形式,但是該方法不保留數(shù)據(jù)包中的選項字段。而二進制表征類似于每個數(shù)據(jù)包的“圖像”,即將Bit 對應轉換成0~255 的像素,然后做成圖像數(shù)據(jù)集,但卻忽略了許多復雜的細節(jié),容易造成錯位,在模型中引入噪聲,可能導致兩個數(shù)據(jù)包的特征向量對同一特征具有不同的解釋。
針對以上問題,本文設計了一種聯(lián)合使用CapsNet和BiLSTM 網(wǎng)絡的端到端加密流量分類方法。首先利用改進后的膠囊網(wǎng)絡的卷積層來提取網(wǎng)絡流量的底層特征,接著用膠囊層將卷積層的標量轉化成膠囊向量,向量的方向和長度分別對高級特征的狀態(tài)和特征的檢測概率進行編碼,其中,膠囊長度表示流量類別的概率,使用“動態(tài)路由”機制,捕獲流量字節(jié)數(shù)據(jù)之間的高級空間屬性,最后,利用BiLSTM結構來捕獲CapsNet學習到的空間特征中的層次時間依賴關系。CapsNet能夠很好地呈現(xiàn)出網(wǎng)絡流量內(nèi)部結構的語義關系,在很大程度上解決了傳統(tǒng)CNN 中存在的問題。實驗結果表明,結合CapsNet和BiLSTM的框架優(yōu)于多個最先進的流量分類基線模型。
Geoffrey Hilton 教授提出膠囊神經(jīng)網(wǎng)絡是一個三層的網(wǎng)絡[16],當Capsule 識別出圖像某一區(qū)域的特定物體時,其輸出是一個膠囊向量,向量模長表示識別物體的概率,方向表示對象所包含的內(nèi)部信息,如相對位置和方向,如果對象有輕微的變化,如旋轉、平移、方向、大小等,輸出向量模長不會改變,但是,方向將會有所改變,所以Capsule可以表征物體的變化規(guī)律。
膠囊網(wǎng)絡的功能類似于卷積神經(jīng)網(wǎng)絡,將輸入圖像自下而上映射到特征空間。膠囊網(wǎng)絡模型主要由三部分組成:卷積層、初始膠囊層(primary capsule layer)和數(shù)字膠囊層(digital capsule layer),網(wǎng)絡結構如圖1所示。第一層是普通的卷積層,在輸入尺寸為28×28的圖片后,使用256個9×9的卷積核對圖片提取底層特征,步長為1,激活函數(shù)為ReLU 非線性函數(shù)。第二層為初始膠囊層,它將卷積層提取出來的標量特征圖轉換成向量膠囊,該層采用了通道數(shù)為32的卷積,這個通道數(shù)也就是膠囊數(shù)量,每個膠囊中含有8個卷積核大小為9×9,步長為2 的卷積單元,利用Squash 函數(shù)擠壓向量,實現(xiàn)0-1 的壓縮,保持其方向不變,每個向量是一個膠囊單元,膠囊的長度表示流量所屬類別的概率,膠囊方向代表流量的屬性(如固定字符串的位置、數(shù)據(jù)包之間的順序),最終每個膠囊的輸出是一個8 維向量。第三層是數(shù)字膠囊層,與全連接層類似,該層一共有N個膠囊,每個膠囊代表一個網(wǎng)絡應用服務類別,初始膠囊層和數(shù)字膠囊層之間的耦合系數(shù)是通過動態(tài)路由算法來更新的,再次利用Squash激活函數(shù)擠壓向量保證特征的位置關系,其中||L2||表示對數(shù)字膠囊的向量求模,輸出的向量模大小即為某個類別的概率。
圖1 膠囊網(wǎng)絡結構Fig.1 Structure of capsule network
初始膠囊層與數(shù)字膠囊層的網(wǎng)絡參數(shù)是通過動態(tài)路由迭代算法來更新的。在膠囊網(wǎng)絡中,為了得到由初始膠囊層提取到的網(wǎng)絡流量的局部特征和高級特征之間的空間關系,則需要進行以下計算:
式中,ui為初始膠囊層的第i個輸出向量,代表低層膠囊提取到的局部特征,Wij為權重矩陣,是編碼低層特征和高級特征的空間關系矩陣,通過反向傳播進行學習,為預測向量,Sj為第j個膠囊的輸入,是低層膠囊ui的線性加權和,cij為動態(tài)路由迭代確定的耦合系數(shù),可以通過下式得出:
cij由Softmax函數(shù)計算得出,每個高層膠囊和低層膠囊之間都有一個對應的耦合系數(shù),并且該系數(shù)和為1。bij表示初始膠囊i和高級膠囊j之間耦合的對數(shù)先驗概率,初值為0,迭代過程中通過當前層的輸出向量vj和上一層預測向量的內(nèi)積之間的一致性來不斷更新。
此外,膠囊網(wǎng)絡使用一種被稱為Squash的非線性函數(shù)作為膠囊的激活函數(shù),其計算表達式為:
其中,vj是膠囊j的輸出向量。該公式的作用是壓縮,如果Sj很長,則將其壓縮到約為1 的長度,如果Sj很短,那么就將壓縮至約等于0,因此,膠囊輸出向量的長度可以表示提取的局部特征存在的概率。
雙向LSTM神經(jīng)網(wǎng)絡在兼顧上下文特征的同時,解決了循環(huán)神經(jīng)網(wǎng)絡(RNN)對輸入數(shù)據(jù)的長距離依賴問題,而在網(wǎng)絡流量中有的數(shù)據(jù)流比較長,因此非常適合流量識別任務。BiLSTM的計算公式如下:
其中,it、ot分別代表輸入、輸出門,σ、W、分別表示激活函數(shù)、權重參數(shù)和記憶單元,ht代表t時刻的隱藏狀態(tài)。BiLSTM用于學習膠囊層的輸出,以增強網(wǎng)絡特征的擬合效果,結構如圖2所示。
圖2 BiLSTM網(wǎng)絡結構Fig.2 Structure of BiLSTM network
訓練模型最關鍵的是要有具有代表性的數(shù)據(jù)集,在本文的分類任務中,使用Lashkai 等人在2016 年發(fā)布的ISCX VPN-nonVPN 數(shù)據(jù)集[17],該數(shù)據(jù)集提供了150 個原始流量文件,其文件為Pcap格式,不過并無標簽。按加密類型分為7種常規(guī)加密流量和7種協(xié)議封裝(VPN)流量,但對于Browser 和VPN Browser 兩類流量,例如Facebook-video既屬于Browser也屬于Streaming,因此,本文按照文獻[9]將該數(shù)據(jù)集進行標注,將其分為12類:6種常規(guī)加密流量,6種VPN加密流量,本文所用數(shù)據(jù)集統(tǒng)計如表1所示。
表1 數(shù)據(jù)集統(tǒng)計信息Table 1 Data set statistics
由于深度學習模型對輸入的數(shù)據(jù)有統(tǒng)一的格式,因此,需要將Pcap 格式流量文件進行預處理該方法總共分為以下幾個過程。
(1)流量切分:將原始數(shù)據(jù)包切分成網(wǎng)絡流至關重要,現(xiàn)有五種類型的網(wǎng)絡流量切分方式:Tcp連接、流、會話、服務和主機。目前,研究廣泛的是基于流和會話的切分方法。流是指具有相同的五元組(源IP地址、源端口、目的IP、目的端口、傳輸層協(xié)議)的所有報文,會話是由雙向流組成的所有報文,即五元組的源地址是可互換的。根據(jù)文獻[9]的結果表明,會話包含了雙方的交互信息,且對加密流量的識別本身就是依靠雙方交互的明文信息,所以本文選擇了會話進行實驗。利用SplitCap工具將原始的Pcap文件按照五元組信息切分成會話形式。
(2)去除無用信息:因為ISCX VPN-nonVPN 數(shù)據(jù)集是在數(shù)據(jù)鏈路層進行采集的,該層的信息對于與流量分類無關,因此首先刪除數(shù)據(jù)鏈路層數(shù)據(jù)。其次,刪除用來連接確認的無關數(shù)據(jù)包,在TCP 傳輸過程中,會有一些僅用于建立或者終止的數(shù)據(jù)包,例如ACK、SYN和FIN 標志數(shù)據(jù)包,這些數(shù)據(jù)中不包含流量分類信息,因此,可通過判斷TCP 數(shù)據(jù)包頭的標志信息來進行刪除。用于域名解析的字段(DNS)也與流量服務識別無關,也應刪除。最后,重復和空白的數(shù)據(jù)會影響神經(jīng)網(wǎng)絡模型的訓練,降低分類準確率,因此刪除這些數(shù)據(jù)。
(3)五元組信息匿名化:數(shù)據(jù)在采集過程中,使用的固定幾個IP地址進行數(shù)據(jù)采集,有些數(shù)據(jù)甚至來自于同一個IP,所以為了防止MAC地址和IP地址對模型造成分類影響,特別是造成過擬合,因此,使用16 進制的0x00來替換五元組信息。
(4)統(tǒng)一長度:為了盡可能全面地包含網(wǎng)絡流量特征信息,實現(xiàn)更準確的網(wǎng)絡流量分類,截取固定長度為784 Byte的負載數(shù)據(jù),文件超過784 Byte的進行刪除,不足的在末尾補上0x00。
(5)生成數(shù)據(jù)集:將784 Byte 的會話二進制后轉化成長度為784的數(shù)組,按順序將每個字節(jié)都轉化成一個uint8數(shù)據(jù)格式的8位像素,一個字節(jié)大小[0~255]對應于灰度像素,轉換為二維灰度圖像,并以PNG格式存儲。最后,我們將灰度圖像按8∶2的比例分成訓練集和測試集。
對上述預處理的結果進行可視化分析,每個圖像像素為28×28,如圖3所示。圖3(a)顯示了所有12類流量的可視化結果,且各流量中隨機選取一張圖片,從結果可看出,12種類型流量的圖片之間具有很好的分辨度,而且VPN 加密流量圖片間的紋理相差較大,更加容易區(qū)分,這是因為VPN 協(xié)議之間偽隨機數(shù)的發(fā)生器不一樣,會導致產(chǎn)生的流量完全不同。圖3(b)為隨機選取的兩類流量里的9張圖片,該結果顯示了同類流量具有很高的一致性。
圖3 加密流量可視化示意圖Fig.3 Visualization diagram of encrypted traffic
網(wǎng)絡流量數(shù)據(jù)是一個顯著的時空層次化結構實體,其實質是一系列的流量字節(jié)串,然后根據(jù)網(wǎng)絡協(xié)議將字節(jié)組合成數(shù)據(jù)包,最后按照通信協(xié)議把數(shù)據(jù)包又組合為網(wǎng)絡流,它包含了包大小、流大小、上下行數(shù)據(jù)流字節(jié)數(shù)之比、數(shù)據(jù)包到達順序等局部特征,具有一定的排列規(guī)律和相對的空間信息。此外,對于相同IP報頭的TCP數(shù)據(jù)包和UDP 數(shù)據(jù)包擁有完全不同的信息,并不是所有的IP數(shù)據(jù)包都含有選項字段信息,傳統(tǒng)的標量表征容易造成同一特征的誤解,因此,本文設計了一個CapsNet-BiLSTM 架構。如圖4 所示,該架構由4 個卷積層、1 個膠囊網(wǎng)絡單元、1個雙向LSTM層和1個Softmax分類器組成,用于提取網(wǎng)絡流量的空間特征和時序特征,實現(xiàn)更加高效的網(wǎng)絡應用服務識別。
3.1.1 卷積層提取底層空間特征
本文串聯(lián)使用了4個3×3的卷積來代替1層9×9的卷積,多個小卷積核所需的參數(shù)量減小及降低了梯度消失的風險,而且與大卷積核感受野相同,較之擁有更多的非線性變化。本文所使用的ISCX VPN-nonVPN 數(shù)據(jù)集由于數(shù)據(jù)不平衡,有的類別數(shù)據(jù)量屬于小數(shù)據(jù)集,神經(jīng)網(wǎng)絡參數(shù)量過大很容易出現(xiàn)過擬合現(xiàn)象,所以,為了防止模型過擬合,在4個卷積層中加入了L2正則化,并且使用了批量歸一化(batch normalization,BN),BN具有較高的初始學習率,能加速模型收斂過程。假設輸入的數(shù)據(jù)為xi,經(jīng)過卷積層后的輸出Convi則為:
其中,Wconv和bi分別為卷積網(wǎng)絡的卷積核與偏置項,R為ReLU激活函數(shù)。
3.1.2 膠囊單元學習高級空間特征
首先,初始膠囊層使用卷積操作和Squash函數(shù)將卷積層輸出的標量特征轉為向量膠囊Prim,膠囊數(shù)量為32,然后使用動態(tài)路由機制將Prim與數(shù)字膠囊層進行全連接,得到整個CapsNet網(wǎng)絡的輸出Dig,其表達如下:
式中,Wprim、bprim分別是初始膠囊層的卷積核和偏置項,Wdig、bdig為數(shù)字膠囊層的權重和偏置,S代表Squash激活函數(shù)。在該層中,設置路由迭代次數(shù)為5,最終輸出的高級膠囊數(shù)則為分類類別數(shù)N。
3.1.3 BiLSTM學習時序特征
膠囊網(wǎng)絡的輸出Dig由N個膠囊向量組成,包含了網(wǎng)絡數(shù)據(jù)流的空間特征,同時,這些膠囊向量如同網(wǎng)絡交互的數(shù)據(jù)包一樣,具有很明顯的時間順序結構,因此,采用了一個BiLSTM,依次從正向和反向讀取兩個方向的時序特征。其隱藏層數(shù)設置為128。
最后使用Softmax函數(shù)將綜合得到的時空特征向量轉換為N×1 矩陣,得到輸出預測向量。
對于CapsNet-BiLSTM 網(wǎng)絡,定義了一個聯(lián)合損失函數(shù),由邊緣損失和交叉熵函數(shù)組成。
由于膠囊網(wǎng)絡需要同時對多個對象進行識別,不能使用傳統(tǒng)的交叉熵損失函數(shù),因此,使用了邊緣損失函數(shù)代替。
式中,類別用c表示,Tc是存在函數(shù),只有0和1兩種取值,類別c存在即為1,不存在為0,m+、m-分別表示上界和下界,取值為0.9 和0.1,分別用來懲罰假陽性(false positive)和假陰性(false negative),將實際存在的類別預測為不存在就是假陽性,將不存在的預測為存在就是假陰性,‖vc‖為膠囊的模長,表示概率,λ是比例系數(shù),取值為0.5,用來調整兩者比例。
LSTM網(wǎng)絡采用交叉熵作為損失函數(shù):
本文使用的計算機配置如下:處理器為Intel i5-8100,操作系統(tǒng)為Windows10,使用的開發(fā)語言為python3.6,采用tensorflow1.2作為深度學習框架。訓練過程中使用Adam optimizer 對網(wǎng)絡進行優(yōu)化,Batch_size 與Epoch分別設為128和100。
本文采用了準確率(Accuracy)、精確度(Precision)、召回率(Recall)和F1值(F1-score)四個指標來評估提出的方法。其中,準確率評價了分類模型的整體性能,精度和召回率反映了方法在單獨類別中的識別效率。F1值是基于召回率與精確率的調和平均,即通過綜合精度和召回率得到的評價指標。計算公式如下:
由于樣本數(shù)量的不平衡,會導致數(shù)據(jù)量較大的類別對準確率的影響占主要因素,因此,本文也使用了混淆矩陣來進行評估。
為了驗證本文算法在加密流量多分類任務上的有效性,采用上述預處理后的ISCX VPN-nonVPN數(shù)據(jù)集進行了實驗,本文實驗總共分為兩個6分類和一個12分類,即6種常規(guī)加密業(yè)務分類、6種VPN加密業(yè)務分類及12 種加密業(yè)務分類,以下分別簡稱6_VPN、6_nonVPN、12_VPN non VPN。
首先驗證本文優(yōu)化的CapsNet 性能,即針對改動的卷積層進行實驗,在此,只單獨使用膠囊網(wǎng)絡。圖4 顯示了改動的卷積層層數(shù)與原始CapsNet 在準確率上的對比結果。
由圖5 可知,使用卷積核尺寸為3×3 的2、3、4、5 層卷積的平均準確率分別為:96.93%、97.48%、98.75%及97.59%,1層9×9的卷積平均準確率為97.33%。與原始的CapsNet 模型相比,本文提出的4 層卷積網(wǎng)絡相對提高了1.26%。原因是原始CapsNet 只有一個卷積層,對于ISCX VPN-non VPN 數(shù)據(jù)集來說,其捕獲底層特征的能力受到限制,而采用多層卷積能夠更好地捕獲網(wǎng)絡流量的細節(jié)信息,故而證明了本文提出的4層小卷積模塊在加密流量分類上的有效性。另外,還可以從結果看出,在3類分類實驗中,6_VPN的識別率都是最高的,12分類最次,是因為VPN 加密流量和普通加密流量在進行加密時使用的加密協(xié)議不同導致,VPN加密流量協(xié)議之間的數(shù)據(jù)分布具有較大的區(qū)別,而普通加密流量使用的協(xié)議之間的差別不是很大,符合預期結果。
圖5 卷積層準確率對比Fig.5 Accuracy comparison of convolutional layer
圖6 顯示了本文的CapsNet-BiLSTM 模型在3 種分類實驗上的訓練和測試準確率曲線。結果表明,整體結果都達到了高平穩(wěn)狀態(tài)。6_VPN、6_nonVPN及12_VPN non VPN的測試準確率分別為99.61%、99.19%和98.97%,與單獨使用CapsNet模型相比平均高出了1個百分點以上,這表明在膠囊層后面加入BiLSTM模型計算輸入的多個膠囊向量,能夠進一步提取網(wǎng)絡流量特征,因此,可以認為本文提出的模型能夠勝任具有時空特征的加密流量識別任務。
圖6 分類準確率變化圖Fig.6 Changes in classification accuracy
單獨的準確率指標在面對數(shù)據(jù)不平衡時具有很大不足,為此,表2、3 和4 顯示了CapsNet-BiLSTM 模型在每個加密流量服務識別任務上的精確率、召回率和F1值??梢钥闯觯?個分類實驗中,3個指標結果都在97%以上,說明CapsNet-BiLSTM 模型充分發(fā)揮了提取流量數(shù)據(jù)空間和時序特征的優(yōu)勢。
表2 6_nonVPN評價指標結果Table 2 Evaluation index results of 6_nonVPN單位:%
表3 6_VPN評價指標結果Table 3 Evaluation index results of 6_VPN單位:%
表4 12_VPN non VPN評價指標結果Table 4 Evaluation index results of 12_VPN non VPN單位:%
為了進一步詳細分析,繪制了如圖7所示的混淆矩陣,橫軸為預測標簽,縱軸為真實標簽,在此只展示12_VPN non VPN實驗的混淆矩陣,因為其他兩個實驗具有類似的結果。從整體上看,各個類別都帶有較深的紅色,且最低預測概率為97%,最高可達100%,證明了本文模型在加密流量識別上的可行性。從這個圖中,顯示出不管是6_VPN還是6_nonVPN,預測概率最低的類別是File 流量,可以看出本文模型傾向于將File 文件類別分類到VoIP 文件,主要原因是File 文件中的流量由Skype進行傳輸,而Skype是VoIP客戶端。最后,從混淆矩陣上可以看到,各個類別的分類錯誤只會發(fā)生在6_VPN和6_nonVPN內(nèi)部,不會出現(xiàn)VPN加密流量類別被誤判為non VPN類別這種情況,反之亦然,再次說明了VPN加密流量與普通加密流量所用協(xié)議之間的差別。
圖7 12_VPN non VPN混淆矩陣Fig.7 Confusion matrix of 12_VPN non VPN
為了更好地分析CapsNet-BiLSTM在加密流量識別中的優(yōu)越性,實驗選擇文獻[9,11,13]的結果進行比較。文獻[9]中的實驗將數(shù)據(jù)集劃分成non VPN 及VPN,即進行與本文相似的實驗組合,文獻[11,13]中的實驗只進行加密流量服務分類,即本文的12 分類,因此,首先與文獻[9]進行6_nonVPN 和6_VPN 兩組實驗的對比,與其他方法則進行12_VPN non VPN分析。
從表5 可以看出,本文的6_nonVPN 實驗的識別準確率比1dCNN提高了16.19個百分點,精確率、召回率及F1 值提高了13 個以上的百分點,6_VPN 實驗準確率相比提高了1.01個百分點,另外3個指標也相對有所提高。
表5 6_nonVPN和6_VPN實驗對比Table 5 Experimental comparison of 6_nonVPN and 6_VPN 單位:%
圖8 顯示了與文獻[11,13]在12_VPN non VPN 分類中精確率、召回率、F1值上的結果對比,結果表明,與最優(yōu)的結果即文獻[11]相比,本文模型在3 個指標上都有了極大提升。本文與文獻[11]在數(shù)據(jù)預處理上幾乎相似,僅除了網(wǎng)絡輸入尺寸,但最終的結果卻相差較大,主要原因是本文模型很好地提取了網(wǎng)絡流量的層次化特征,而文獻[11]只針對流量的空間特征,并且,如前文所說,CNN忽略了網(wǎng)絡流量的特性。因此,可以認為本文提出的CapsNet-BiLSTM模型在加密流量任務識別上具有很好的效果。
圖8 不同模型結果對比Fig.8 Comparison results of different models
本文提出了一種基于時空特征的加密流量識別方法。Caps-BiLSTM 模型考慮了固定字符串的位置和數(shù)據(jù)包之間的順序,尤其是CapsNet網(wǎng)絡使用的神經(jīng)元是向量,它能準確刻畫出流量中數(shù)據(jù)包和字節(jié)的屬性,因此適合于加密流量分類任務,此外,網(wǎng)絡流量數(shù)據(jù)包具有很明顯的順序結構,使用雙向LSTM能更好地提取前后信息,最后,使用聯(lián)合損失函數(shù)比單一的邊緣損失函數(shù)能更好地勝任該模型。實驗結果表明,與最先進的方法相比,本文方法在ISCX VPN-nonVPN數(shù)據(jù)集上取得了顯著的成果。由于目前的加密流量種類太多,且網(wǎng)絡復雜度日漸上升,現(xiàn)有的模型在真實網(wǎng)絡環(huán)境中識別的實時性和魯棒性上均有所欠缺,未來的研究工作應該在真實環(huán)境中進行識別并提高準確率。