王宇航,姜文剛,翟江濤,史正爽
1.江蘇科技大學(xué)電子信息學(xué)院,江蘇 鎮(zhèn)江 212003
2.南京信息工程大學(xué)智能網(wǎng)絡(luò)與信息系統(tǒng)研究院,南京 210000
3.愛丁堡大學(xué)信息學(xué)研究院,愛丁堡 EH8 9YL
互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,在為人們生活帶來便利的同時,也會被一些犯罪分子用于不法傳輸,這對網(wǎng)絡(luò)空間的穩(wěn)定性及安全性產(chǎn)生了極大的影響,使得網(wǎng)絡(luò)安全問題越來越受到人們的關(guān)注,因此,全球加密網(wǎng)絡(luò)流量不斷飆升。雖然流量經(jīng)過加密后再傳輸,使得傳輸數(shù)據(jù)的安全性得到保障,但也為流量的審計增加了難度。
常用的VPN 技術(shù)有MPLS VPN、IPSEC VPN、SSL VPN三種。MPLS VPN主要應(yīng)用在路由器和交換機等設(shè)備上,IPSEC VPN 是IPSec 協(xié)議在VPN 上的一種應(yīng)用,SSL VPN 屬于應(yīng)用層VPN 技術(shù)。相比于前兩種在使用上更加便捷,這使得SSL VPN 在安全傳輸中得到了廣泛使用,但這也使得一些惡意流量有了可乘之機。一些非法應(yīng)用利用SSL VPN來繞過防火墻等安全設(shè)施的檢測。因此,對SSL VPN 加密流量的有效識別對網(wǎng)絡(luò)信息安全具有重要意義。
Shen等人[1]通過增加Markov鏈的狀態(tài)多樣性,來建立二階Markov 鏈模型從而對HTTPS 應(yīng)用進行識別。程光等人[2]采用相對熵區(qū)和蒙特卡洛仿真方法結(jié)合實現(xiàn)加密流量和非加密流量的識別,取得了不錯的識別效果。Lotfollahi 等人[3]采用卷積神經(jīng)網(wǎng)絡(luò)模型對流量進行分類。趙博等人[4]利用加密數(shù)據(jù)的隨機性特點,對網(wǎng)絡(luò)報文逐一實施累積和檢驗,最終,實現(xiàn)了對加密流量的普適識別。目前,對加密流量分類的相關(guān)文獻取得不錯的成果。
針對SSL 流量的識別常采用機器學(xué)習(xí)的方法和指紋識別的方法,文獻[5]對SSH 流量的識別問題展開研究,提出了一種SSH 流量識別方法。該方法基于SSH協(xié)議建立連接階段的特征,對使用SSL 協(xié)議的流量進行識別。文獻[6]采用簽名和統(tǒng)計相結(jié)合的方法,選擇了13 個特征字段和14 個流屬性,通過C4.5,Naive Bayesian 和SVM 等多種機器學(xué)習(xí)算法,對SSL 協(xié)議流進行識別。
流量識別研究大多圍繞對某種協(xié)議流量的識別展開,針對VPN 流量識別的研究尚不足。西佛羅里達大學(xué)[7]的研究人員對文獻[8]發(fā)布的數(shù)據(jù)集開展深一步的研究,比較了Logistic回歸、樸素貝葉斯、SVM、KNN、RF和GBT 方法的識別效果,并對算法參數(shù)進行了相應(yīng)的優(yōu)化,最終VPN 流量達到了90%以上識別率。王琳等人[9]提出一種將指紋識別與機器學(xué)習(xí)方法相結(jié)合識別SSL VPN流量,雖然取得了91%以上的識別率,但是該方法需要手工提取流的特征。
本文在現(xiàn)有研究基礎(chǔ)上,提出一種基于Bit 級DPI和深度學(xué)習(xí)的檢測方法,分兩步實現(xiàn)SSL VPN 流量的識別。先使用本文提出的一種新的基于Bit級DPI的指紋生成技術(shù)——位編碼,通過將流的少量初始位與生成的位指紋匹配,來判斷當(dāng)前數(shù)據(jù)包是否使用SSL 協(xié)議、當(dāng)前數(shù)據(jù)流是否為SSL 流。對于第二階段的SSL VPN 流量識別,本文提出了一種基于注意力機制的改進的CNN網(wǎng)絡(luò)流量識別模型,并與一般的CNN模型進行比較。實驗結(jié)果表明,本文提出的方法不僅有效解決了SSL 加密流量指紋識別方法存在的漏識別率較高的問題,同時改進后的深度學(xué)習(xí)模型,能提取網(wǎng)絡(luò)流量中具有非常顯著性的細(xì)粒度的特征,從而更加有效地捕捉網(wǎng)絡(luò)流量中存在的依賴性,識別模型具有良好的實驗效果。
深度包檢測技術(shù)(deep packet inspection,DPI)采用匹配特征字段對網(wǎng)絡(luò)流量進行識別[10]。許多基于DPI的檢測方法使用有效負(fù)載內(nèi)容生成特定于應(yīng)用程序的指紋。DPI可快速準(zhǔn)確地識別指紋庫存在的流量,但也存在著致命的缺陷,DPI 識別依賴于應(yīng)用協(xié)議特征字段,無法識別協(xié)議交互階段加密數(shù)據(jù)和私有協(xié)議[11]。但本文提出了一種基于Bit 級DPI 的指紋生成技術(shù),用于快速篩選識別SSL協(xié)議流量,發(fā)揮了DPI識別速度快的優(yōu)點,對識別模型預(yù)處理過程有很大的作用。
SSL(安全套接字協(xié)議)在傳輸層與應(yīng)用層之間對網(wǎng)絡(luò)連接進行加密,是一種為主機間通信提供安全的協(xié)議。SSL 協(xié)議由握手協(xié)議、記錄協(xié)議、更改密文協(xié)議和警報協(xié)議組成,如圖1所示。
圖1 SSL協(xié)議位置與組成Fig.1 SSL protocol location and composition
握手協(xié)議是SSL協(xié)議中十分重要的協(xié)議,是在應(yīng)用程序的數(shù)據(jù)傳輸之前使用的。該協(xié)議允許服務(wù)器和客戶機通過握手相互驗證,在這一過程中雙方需要確認(rèn)密鑰和算法,同時還要協(xié)商信息摘要算法、數(shù)據(jù)壓縮算法等。在握手協(xié)議結(jié)束后,雙方開始加密數(shù)據(jù)的傳輸。握手協(xié)議的通信流程如圖2所示。
圖2 握手協(xié)議的通信流程Fig2 Flow of handshake protocol communication
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN),是深度學(xué)習(xí)的代表算法之一,提供了一種端到端的學(xué)習(xí)模型。這一深度學(xué)習(xí)網(wǎng)絡(luò)模型相較于傳統(tǒng)的其他模型存在以下優(yōu)點:
網(wǎng)絡(luò)中的神經(jīng)元采用稀疏連接的方式,而非像一般神經(jīng)網(wǎng)絡(luò)的神經(jīng)元采取全連接的方式。達到了降低參數(shù)的數(shù)量的目的,方便網(wǎng)絡(luò)結(jié)構(gòu)模型的擴展和模型的訓(xùn)練。
采用參數(shù)共享,其過程就是針對每個神經(jīng)元與前面層次的所有連接都貢獻權(quán)重值,這樣也能夠進一步的減少訓(xùn)練的參數(shù)數(shù)量[12]。
利用池化操作獲取更具代表性的特征值,同時降低了參數(shù)的數(shù)據(jù)量信息。有利于后面模型的訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)能自動從學(xué)習(xí)樣本中很好的學(xué)習(xí)原始數(shù)據(jù)中的特征,并完成對數(shù)據(jù)特征的提取與分類,無需像機器學(xué)習(xí)那樣人工設(shè)計特征。
注意力模型最近幾年在圖像處理、語音識別、自然語言處理等領(lǐng)域得到廣泛應(yīng)用,其核心目標(biāo)是從眾多信息中選擇出對當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息,增加感興趣區(qū)域,抑制無用信息。因此,本文將注意力機制引入到CNN 模型當(dāng)中,用來提取序列中非常顯著性的細(xì)粒度的特征,實現(xiàn)短期的有效提取。從而優(yōu)化輸入信息,達到提升模型分類能力的目的。
注意力機制可分為,硬注意力(hard attention)及軟注意力(soft attention)。硬注意力核心的原理在于直接限制深度學(xué)習(xí)模型當(dāng)中輸入內(nèi)容的這種處理方法,但是在時序預(yù)測的相關(guān)領(lǐng)域相對來說并不是完全適合[13]。同時硬注意力是一個隨機的預(yù)測過程,更強調(diào)動態(tài)變化。其訓(xùn)練過程往往是通過增強學(xué)習(xí)來完成的,且后期模型訓(xùn)練難度較大,導(dǎo)致模型的通用性比較差。與硬注意力機制不同,軟注意力是確定性的注意力。學(xué)習(xí)完成后,可以通過神經(jīng)網(wǎng)絡(luò)得到注意力的權(quán)重,直接加權(quán)全局上的信息作為輸入特征。軟注意力機制更關(guān)注區(qū)域或者通道,最關(guān)鍵的地方是軟注意力是可微的,可以很好地與一種端到端的學(xué)習(xí)方式相結(jié)合。
基于以上分析,本文將軟注意力機制引入到一維卷積神經(jīng)網(wǎng)絡(luò)當(dāng)中。采取對輸入特征逐個加權(quán)的方式,達到關(guān)注特定空間和通道目的。最終,對時間序列上細(xì)粒度的顯著性特征進行提取,從而完成對網(wǎng)絡(luò)流量中存在的依賴性的有效捕捉。
SSL握手協(xié)議采用明文傳輸?shù)男问?,因此可以利用解析PCAP文件得到的數(shù)據(jù)包的頭部信息,判斷出當(dāng)前數(shù)據(jù)包為何種SSL 握手協(xié)議的消息類型。一個完整的握手協(xié)議,其通信過程一定包含ClientHello、SeverHello、SeverHelloDone、ClientKeyExchange、ChangeCipherSpec類型的消息?;趥鹘y(tǒng)的DPI 檢測技術(shù)若某數(shù)據(jù)流中未能全部包含以上5 種類型的消息,則判斷為非SSL流。當(dāng)數(shù)據(jù)流中只檢測到部分類型信息時,可能是自身握手協(xié)議建立不成功,或者是抓取數(shù)據(jù)包時存在漏包的情況。然而在實際抓取數(shù)據(jù)包時,設(shè)置確定截斷時間,會存在一個流雖然是SSL 流,但并不是從開始截取的,而是從其他傳輸階段截取的。這時,基于傳統(tǒng)的DPI檢測技術(shù)會因為沒有檢測到SSL握手協(xié)議的消息,將其判定為非SSL 流,因此,會產(chǎn)生漏識別的情況。為了解決這一問題,本文提出一種基于Bit 級DPI 的SSL 加密流量識別。
SSL 加密的數(shù)據(jù)包根據(jù)其消息類型的不同,有不同的消息格式,但其前5 個字節(jié)的格式是固定的,分別表示通信的階段(握手(Handshake)、開始加密傳輸(ChangeCipherSpec)還是正常通信(Application)等),SSL 協(xié)議版本號和剩余包長度[2],如表1 所示。基于位級DPI的SSL加密流量識別方法,僅使用來自TCP數(shù)據(jù)段的少量初始位,并將不變位標(biāo)識為位指紋。隨后,對這些指紋進行編碼,將其轉(zhuǎn)換為狀態(tài)轉(zhuǎn)換機,用來識別SSL流量。這種方法擴大了SSL流識別的范圍,不僅能夠識別SSL握手階段的流,同時也能識別數(shù)據(jù)傳輸階段的SSL流。
表1 協(xié)議前5個字節(jié)格式Table 1 First five bytes of protocol format
整個識別過程分為以下幾個部分:
(1)重構(gòu)流
網(wǎng)絡(luò)流由兩個主機之間交換的一系列數(shù)據(jù)包組成。這兩個主機由兩個唯一的IP 地址標(biāo)識。共享相同5 元組的所有包都是流的一部分,依據(jù)相同的5元組信息對流進行重構(gòu),從而將所有數(shù)據(jù)包(流內(nèi))的有效載荷數(shù)據(jù)都被獲取并連接起來,用作后續(xù)指紋生成階段的輸入。
(2)位指紋生成
位編碼使用前一階段選擇的有效載荷的不變位集生成應(yīng)用程序特定的位指紋。假設(shè)訓(xùn)練集中存在L(L∈I)個SSL流,它從SSL的L個流中各收集前n位,并為SSL流生成n位位指紋。第h個流(1 ≤h≤L)的前n位為f1h,f2h,…,fnh。L個流都被提取都用于生成如下位指紋。每個流提取的第k位[1,n]位置用來決定SSL流的第k個指紋位。指紋創(chuàng)建過程如下所示,其中每個Si是一個指紋位:
如果每個流的第k位(1 ≤k≤L)的值都為0,k指紋位設(shè)置為0,如果每個流的第k位(1 ≤k≤L)的值為1,k指紋位設(shè)置為1。如果這些位的位置中有0位和1位,則第k個指紋位設(shè)置為“^”。圖3 顯示了SSL 流的位指紋生成過程,在這個示例中,有3 個流,每個流有15 位,用于指紋生成。
圖3 生成位指紋Fig.3 Generate bit signature
(3)運行長度編碼
指紋位由1 位、0 位和^位組成,每個指紋為n位。為了有效地表示、存儲和比較,對這n位進行了運行長度編碼(RLE)。RLE 是一種用于無損數(shù)據(jù)壓縮的技術(shù)。RLE 通過指定重復(fù)次數(shù)來減少重復(fù)字符串的大小。在RLE中,數(shù)據(jù)的運行是指在許多連續(xù)數(shù)據(jù)元素中具有相同數(shù)據(jù)值的序列存儲為單個值,并存儲該數(shù)據(jù)值重復(fù)的次數(shù)計數(shù)。例如,它的位值是1111111000000^^^^111,在使用RLE編碼之后,它被轉(zhuǎn)換為7O6Z4^3O顯示狀態(tài)。
(4)狀態(tài)轉(zhuǎn)換機器創(chuàng)建
經(jīng)過第(3)步驟之后生成一個編碼指紋,將經(jīng)過編碼的位指紋轉(zhuǎn)換成狀態(tài)轉(zhuǎn)換機。然后與需要的網(wǎng)絡(luò)流量流進行比較,以識別應(yīng)用程序。狀態(tài)轉(zhuǎn)換機的定義如下:
用20 位指紋(11111111000000^^^111,編碼指紋為8O6Z3^3O)生成的示例狀態(tài)轉(zhuǎn)換機如圖4 所示。在狀態(tài)轉(zhuǎn)換機中有5種狀態(tài),從q0到q4,q0是開始狀態(tài),q4是結(jié)束狀態(tài)。每個狀態(tài)都有一個計數(shù)器(C0到C4),每次轉(zhuǎn)換訪問該狀態(tài)時,該計數(shù)器都會被初始化為一個新值。機器在q0狀態(tài)下啟動,將q0的計數(shù)器設(shè)置為0,從測試流中讀取比特,并進行允許的轉(zhuǎn)換以達到最終狀態(tài)。狀態(tài)轉(zhuǎn)換機的轉(zhuǎn)換有一個輸入符號(位值)和一個對計數(shù)器值的約束,計數(shù)器值充當(dāng)保護,只有當(dāng)約束被滿足(評估為true)時,才允許轉(zhuǎn)換。
圖4 生成狀態(tài)轉(zhuǎn)換機Fig.4 Transition machine of generating state
在圖4中,狀態(tài)q0在輸入1上定義了一個到自身的轉(zhuǎn)換。這個轉(zhuǎn)換對C0的計數(shù)器值有一個約束,它在0到8之間。這個約束映射了在開始時在流中讀取8個連續(xù)的1 要求。從q0到q1的轉(zhuǎn)換是在輸入0 上,只有當(dāng)C0處的計數(shù)器值為8時才有效(已經(jīng)讀取了8個連續(xù)的1),并將q1處的計數(shù)器C1設(shè)置為1(在8 個連續(xù)的1 之后讀取0)才有效。無論何時在指紋中有^,它將有兩個轉(zhuǎn)換,一個是輸入0,另一個是輸入1,這兩個轉(zhuǎn)換都將增加計數(shù)器值。
(5)識別SSL流
與狀態(tài)轉(zhuǎn)換機匹配的簽名過程如圖5 所示。與簽名生成過程類似,在這個階段也存在重構(gòu)該流,數(shù)據(jù)流的前n位被提取出來作為輸入(從第一個位到最后一個位,每次一個位),來自測試流的n位將提供給SSL狀態(tài)轉(zhuǎn)換機。SSL狀態(tài)轉(zhuǎn)換機進行了允許的轉(zhuǎn)換,如果數(shù)據(jù)流能達到SSL 狀態(tài)轉(zhuǎn)換機最終狀態(tài),則流被標(biāo)記SSL流;如果沒有達到最終狀態(tài),則標(biāo)記為非SSL流。
圖5 匹配狀態(tài)轉(zhuǎn)換機Fig.5 Transition machine of matching state
以位序列11111111000000101111 和001111110000 00101111。第一個序列作為輸入提供11111111000000 101111 給圖4 狀態(tài)轉(zhuǎn)換機,很容易看到它到達最終狀態(tài),因為它以8個1開始,接下來是6個0,隨后三位0或1都行,最后三位數(shù)是1。然而,第二個序列不被狀態(tài)轉(zhuǎn)換機接受,因為它從0開始,并且當(dāng)計數(shù)器C0在狀態(tài)q0下為0時,不存在與輸入0的轉(zhuǎn)換。
在本文中注意力機制模塊引入到一維CNN 中,包含特征的聚合和尺度恢復(fù)兩個部分。特征聚合主要是采用多層次的卷積和池化層次的堆疊,從跨尺度的子序列中提取出細(xì)粒度的顯著性的特征,最后一層上則用來挖掘其中的線性關(guān)系。尺度恢復(fù)指是將關(guān)鍵性的特征直接恢復(fù)到與網(wǎng)絡(luò)模型中的CNN模塊的輸出保持一致。為將數(shù)值直接保持在0~1 之間,采用Sigmoid 函數(shù)。最后將獲得的上下文特征,作為實際的基礎(chǔ)性的顯著性特征。
令xi∈Rk,也就是用k維向量表示數(shù)據(jù)流中的第i個流量字節(jié),一個長度為n的數(shù)據(jù)流的定義如下:
xi:j為流量字節(jié)的連接結(jié)果,卷積操作由一個過濾器或卷積核構(gòu)成,w∈Rhk,過濾器的窗口寬度為h,過濾器對一組流量字節(jié)操作一次,就輸出一個新的特征CI。具體操作如下:
其中,Patt為注意力機制的權(quán)重,b為偏置項,f是ReLU的非線性函數(shù)。過濾器將在每個可能的流量字節(jié)窗口進行操作,產(chǎn)生一個特征映射。時序最大池化操作,在特征映射上找到最大值,最終輸出對應(yīng)輸入在每一類輸出上的概率分布。
基于注意力機制的CNN 結(jié)構(gòu),由于將原本的CNN的輸入替換為注意力模塊支路輸入,并采用堆疊深層卷積和池化層的方式,所以擴大了特征對應(yīng)的輸入感受野。這樣有利于捕捉網(wǎng)絡(luò)流量中存在的依賴性,從而學(xué)習(xí)當(dāng)前局部序列特征的重要程度。通過引入注意力模塊,能夠提高重要時序特征的影響權(quán)重,抑制非重要特征時序的干擾,因而有效解決了模型無法區(qū)分時間序列數(shù)據(jù)重要程度的差異性的問題。
本文提出的基于注意力機制的改進CNN網(wǎng)絡(luò)流量分類識別模型如圖6所示。模型包含數(shù)據(jù)預(yù)處理、模型訓(xùn)練和模型測試3個階段。
圖6 改進的CNN網(wǎng)絡(luò)流量分類識別模型Fig.6 Improved traffic classification and recognition model of CNN network
數(shù)據(jù)預(yù)處理階段:將數(shù)據(jù)集中的原始流量進行預(yù)處理,得到CNN 模型輸入所需的數(shù)據(jù)格式文件。這里使用的王偉博士開發(fā)的USTC-TK2016,包括流量切分、流量清理、圖片生成、IDX轉(zhuǎn)換4個步驟[13]。流程全過程如圖7所示。
圖7 網(wǎng)絡(luò)流量數(shù)據(jù)預(yù)處理流程圖Fig.7 Flow chart of network traffic data preprocessing
訓(xùn)練階段:使用上一階段處理得到的流量數(shù)據(jù)(IDX3 格式)和標(biāo)簽數(shù)據(jù)(IDX1 格式)訓(xùn)練改進的CNN模型,訓(xùn)練方法是最小批隨機梯度下降技術(shù)。為使模型具有良好的泛化能力,訓(xùn)練采用10 折交叉驗證技術(shù)。最終,得到的改進CNN 模型作為測試階段使用的模型。
測試階段:使用訓(xùn)練階段得到改進的CNN模型數(shù),對數(shù)據(jù)預(yù)處理階段輸出的IDX3格式的測試數(shù)據(jù)進行類別預(yù)測,得出最終分類結(jié)果。
其中,在數(shù)據(jù)預(yù)處理階段的圖片生成步驟,每個流量結(jié)果樣本可以表示成28×28 像素的灰度圖,結(jié)果如圖8 所示。從流量可視化的結(jié)果看,大部分圖片之間還是很容易區(qū)分的。SSL VPN 流量的黑色部分主要集中在底下部分,而非SSL VPN 流量的黑色部分主要集中在底部1/4 處。因此二者之間的區(qū)分度較為明顯,可以推測,使用CNN 模型對其進行分類應(yīng)該能夠取得良好效果。
圖8 可視化結(jié)果Fig8 Visualization results
本文采用的數(shù)據(jù)集是Lashkai等人[14]在2016年發(fā)布的VPN-nonVPN數(shù)據(jù)集,共包含28 GB數(shù)據(jù)。該實驗室的官網(wǎng)對數(shù)據(jù)集進行了詳細(xì)介紹,并提供下載,不同類別的流量生成方式如表2所示。
表2 實驗數(shù)據(jù)集Table 2 Experimental data set
SSL加密的數(shù)據(jù)包雖然有不同的消息格式,但其前5個字節(jié)的格式是固定的。分別表示通信的階段(握手(Handshake)、開始加密傳輸(ChangeCipherSpec)還是正常通信(Application)等)、SSL 協(xié)議版本號和剩余包長度[9]。因此,本文選定SSL流數(shù)據(jù)包的前40位生成指紋將壓縮后,生成狀態(tài)轉(zhuǎn)換機,用以識別SSL 流。由于傳統(tǒng)的SSL 加密流量指紋識別方法在沒有檢測到完整的SSL 握手協(xié)議的消息,就會將其判定為非SSL 流。本文在此基礎(chǔ)上提出了基于Bit級DPI的SSL加密流量識別技術(shù),有效地解決了傳統(tǒng)SSL 加密流量指紋識別方法存在的漏識別率較高的問題。除Vimeo 等少數(shù)流量識別率未到97%外,其余應(yīng)用的SSL 流識別率均達到99%以上,與傳統(tǒng)SSL 識別方法的實驗結(jié)果對比如圖9所示。
圖9 SSL流識別結(jié)果對比Fig.9 Comparison of SSL stream identification results
本文選擇精準(zhǔn)率P、召回率R和F1這3 項評分來評估基于注意力機制的改進CNN模型。其計算公式為:
式中,Tp真正表示加密流量的樣本被正確識別的個數(shù),F(xiàn)p假正表示真實是加密流量但被錯誤的標(biāo)識的個數(shù),F(xiàn)N假負(fù)表示未加密流量的樣本被正確識別的個數(shù)。
為了驗證本文提出的算法模型的有效性及優(yōu)越性,本文選擇了KNN(K近鄰)、PGA-RF(基于參數(shù)優(yōu)化的改進RF 算法)和CGA-RF(基于子分類器優(yōu)化的改進RF算法)進行比較。為驗證一維CNN 模型相比于二維CNN 模型更適合于流量分類,本文還設(shè)計了二維CNN模型與之對比,結(jié)果如表3所示。
從表3 可以看出,相比較于傳統(tǒng)的機器學(xué)習(xí)算法,本文提出的模型具有很好的識別效果,網(wǎng)絡(luò)流量的服務(wù)識別性能都有了大幅度的提升。本文方法的準(zhǔn)確率為97.6%,相比于文獻[7]中KNN 的83.7%提升了13.9個百分點。與文獻[9]中改進的方法PGA-RF 的91.6%相比,CGA-RF 的92.2%提升了0.6 個百分點。在精確率對比實驗中,本文方法的精確率為98%,相比于文獻[7]中KNN 的83.9%提升了14.1 個百分點,而參考文獻[9]中PGA-RF、CGA-RF 的精確度分別為92.1%、92.6%,本文方法精確率明顯高于參考文獻[9]。同時本實驗還對召回率進行了對比,召回率優(yōu)于文獻[7]中KNN的82.5%與文獻[9]中91.1%和91.9%。最后,本文方法與各方法的F1-score 進行對比,本文方法的F1-score 為97.8%,文獻[7]中KNN 為83%,參考文獻[9]的F1-score 分別為92.3%、92.1%,本文方法F1-score 上也是高于參考文獻[9],提升了5.7 個百分點。綜合4 項指標(biāo)對比實驗可以看出,本文模型優(yōu)于文獻[7]中使用的KNN 與文獻[9]中改進傳統(tǒng)機器學(xué)習(xí)方法PGA-RF 與CGA-RF。
表3 SSL VPN 流量識別結(jié)果對比Table 3 Comparison of SSL VPN traffic identification results
通過四項指標(biāo)對比實驗可以看出,一維CNN 模型在準(zhǔn)確率、精確率、和F1-score 上均優(yōu)于二維CNN 模型。這是由于網(wǎng)絡(luò)流量本質(zhì)上是一種時序數(shù)據(jù),是按照字節(jié)、幀、會話、整個流量層次化結(jié)構(gòu)組織起來的一維字節(jié)流,因此選擇一維CNN 網(wǎng)絡(luò)模型識別加密流量更符合數(shù)據(jù)流的特征。
此外,相比于其他普通的深度神經(jīng)網(wǎng)絡(luò)模型,本文所提模型在準(zhǔn)確率上提升了2.9 個百分點,精確率提升了2.9 個百分點,召回率提升了2.7 個百分點,F(xiàn)1-score則提升了3.2個百分點。這是由于注意力機制的引入能夠?qū)W(wǎng)絡(luò)流量中存在的依賴性的進行有效捕捉,從而提高重要時序特征的影響,抑制非重要特征時序的干擾,因而有效解決了模型無法區(qū)分時間序列數(shù)據(jù)重要程度的差異性的問題。
因此,本文還將改進前后的一維CNN 網(wǎng)絡(luò)模型進行了對比,分別選擇前5 輪訓(xùn)練的準(zhǔn)確率結(jié)果進行比較,如圖10。可以看出引入注意力機制的改進CNN 模型比普通的CNN 模型收斂速度快,且平均準(zhǔn)確率提升了0.3 個百分點以上。如圖11 展示了基于注意力機制的改進的CNN識別模型在實際訓(xùn)練過程中準(zhǔn)確率的變化趨勢;圖12 展示了是基于注意力機制的改進CNN 識別模型訓(xùn)練過程中的損失率變化的情況。
圖10 改進前后的一維CNN網(wǎng)絡(luò)實驗對比圖Fig.10 One-dimensional CNN network experimental comparison diagram of before and after improvement
圖11 模型訓(xùn)練過程中準(zhǔn)確率的變化Fig.11 Change of accuracy during model training
圖12 模型訓(xùn)練過程中損失率的變化Fig.12 Change of loss during model training
本文提出了一種基于混合方法的SSL VPN 加密流量識別方法。本文的Bit 級DPI 技術(shù)識別SSL 流具有快速、準(zhǔn)確的優(yōu)點,極大地改善了流的漏識別問題,最大程度上發(fā)揮了DPI 的優(yōu)勢。所提基于注意力機制的改進CNN 網(wǎng)絡(luò)流量識別模型對SSL VPN 流量識別,其平均的精準(zhǔn)率、召回率和F1-score 分別達到了98.0%、96.9%和97.8%,與傳統(tǒng)的流量識別模型相比具有優(yōu)良的識別性能,實現(xiàn)了SSL VPN 加密流量的有效識別。