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