在安全和隱私保護(hù)需求的驅(qū)動(dòng)下,網(wǎng)絡(luò)通信加密化已經(jīng)成為不可阻擋的趨勢。加密網(wǎng)絡(luò)流量呈現(xiàn)爆炸增長,給流量審計(jì)與網(wǎng)絡(luò)空間治理帶來了挑戰(zhàn)。盡管機(jī)器學(xué)習(xí)已解決了部分加密流量識(shí)別的問題,但仍存在無法自動(dòng)提取特征等局限。深度學(xué)習(xí)可以自動(dòng)提取更本質(zhì)、更有效的特征,已被用于加密流量識(shí)別,并取得了高精度。基于深度學(xué)習(xí)的加密流量識(shí)別的相關(guān)研究工作,提出基于深度學(xué)習(xí)的加密流量識(shí)別的框架,并通過數(shù)據(jù)集、特征構(gòu)造和模型架構(gòu)回顧部分研究工作,分析基于深度學(xué)習(xí)的加密流量識(shí)別面臨的挑戰(zhàn)。
0 引 言
加密流量主要是指在通信過程中所傳送的被加密過的實(shí)際明文內(nèi)容。在安全和隱私保護(hù)需求的驅(qū)動(dòng)下,網(wǎng)絡(luò)通信加密化已經(jīng)成為不可阻擋的趨勢。加密網(wǎng)絡(luò)流量呈現(xiàn)爆炸增長,安全超文本傳輸協(xié)議(Hyper Text Transfer Protocol over Secure,HTTPS)幾乎已經(jīng)基本普及。但是,加密流量也給互聯(lián)網(wǎng)安全帶來了巨大威脅,尤其是加密技術(shù)被用于網(wǎng)絡(luò)違法犯罪,如網(wǎng)絡(luò)攻擊、傳播違法違規(guī)信息等。因此,對(duì)加密流量進(jìn)行識(shí)別與檢測是網(wǎng)絡(luò)惡意行為檢測中的關(guān)鍵技術(shù),對(duì)維護(hù)網(wǎng)絡(luò)空間安全具有重要意義。
隨著流量加密與混淆的手段不斷升級(jí),加密流量分類與識(shí)別的技術(shù)逐步演進(jìn),主要分為基于端口、基于有效載荷和基于流的方法。
基于端口的分類方法通過假設(shè)大多數(shù)應(yīng)用程序使用默認(rèn)的傳輸控制協(xié)議(Transmission Control Protocol,TCP)或用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP)端口號(hào)來推斷服務(wù)或應(yīng)用程序的類型。然而,端口偽裝、端口隨機(jī)和隧道技術(shù)等方法使該方法很快失效。基于有效載荷的方法,即深度包解析(Deep Packet Inspection,DPI)技術(shù),需要匹配數(shù)據(jù)包內(nèi)容,無法處理加密流量?;诹鞯姆椒ㄍǔR蕾囉诮y(tǒng)計(jì)特征或時(shí)間序列特征,并采用機(jī)器學(xué)習(xí)算法,如支持向量機(jī)、決策樹、隨機(jī)森林等算法進(jìn)行建模與識(shí)別。此外,高斯混合模型等統(tǒng)計(jì)模型也被用于識(shí)別和分類加密流量。
雖然機(jī)器學(xué)習(xí)方法可以解決許多基于端口和有效載荷的方法無法解決的問題,但仍然存在一些局限:(1)無法自動(dòng)提取和選擇特征,需要依賴領(lǐng)域?qū)<业慕?jīng)驗(yàn),導(dǎo)致將機(jī)器學(xué)習(xí)應(yīng)用于加密流量分類時(shí)存在很大的不確定性;(2)特征容易失效,需要不斷更新。與大多數(shù)傳統(tǒng)機(jī)器學(xué)習(xí)算法不同,在沒有人工干預(yù)的情況下,深度學(xué)習(xí)可以提取更本質(zhì)、更有效的檢測特征。因此,國內(nèi)外最近的研究工作開始探索深度學(xué)習(xí)在加密流量檢測領(lǐng)域中的應(yīng)用。
基于已有研究工作,本文提出了基于深度學(xué)習(xí)的加密流量分類的通用框架,主要包括數(shù)據(jù)預(yù)處理、特征構(gòu)造、模型與算法選擇。本文其余部分組織如下:第1節(jié)介紹加密流量識(shí)別的定義;第2節(jié)提出基于深度學(xué)習(xí)的加密流量分類的總體框架;第3節(jié)討論加密流量分類研究中一些值得注意的問題和面臨的挑戰(zhàn);第4節(jié)總結(jié)全文。
1 加密流量識(shí)別的定義
1.1 識(shí)別目的
加密流量識(shí)別的類型是指識(shí)別結(jié)果的輸出形式。通過加密流量識(shí)別的應(yīng)用需求,確定識(shí)別的類型。加密流量可以從協(xié)議、應(yīng)用、服務(wù)等屬性出發(fā),逐步精細(xì)化識(shí)別,最終實(shí)現(xiàn)協(xié)議識(shí)別、應(yīng)用識(shí)別、異常流量識(shí)別及內(nèi)容本質(zhì)識(shí)別等。
1.1.1 識(shí)別加密流量
加密流量識(shí)別的首要任務(wù)是區(qū)分加密與未加密流量。在識(shí)別出加密流量后,可以采用不同策略對(duì)加密流量進(jìn)行精細(xì)化識(shí)別。
1.1.2 識(shí)別加密協(xié)議
加密協(xié)議(如TLS、SSH、IPSec)的識(shí)別可以用于網(wǎng)絡(luò)資源的調(diào)度、規(guī)劃和分配,也可以用于入侵檢測以及惡意網(wǎng)絡(luò)行為檢測等。由于各協(xié)議定義不同,需要在協(xié)議交互過程中挖掘具有強(qiáng)差異性的特征與規(guī)律,從而提升加密流量識(shí)別的精確性。
1.1.3 識(shí)別加密應(yīng)用
加密應(yīng)用的識(shí)別是指識(shí)別加密流量所屬的應(yīng)用類型,如Facebook、Youtube、Skype等。它既可用于網(wǎng)絡(luò)資源的精準(zhǔn)調(diào)度,也可用于識(shí)別暗網(wǎng)應(yīng)用(如Tor、Zeronet),從而提升網(wǎng)絡(luò)空間治理能力。
1.1.4 識(shí)別惡意加密流量
惡意加密流量是指使用加密傳輸?shù)膼阂饩W(wǎng)絡(luò)流量,如勒索病毒、惡意軟件等。識(shí)別惡意加密流量可以用于入侵檢測、惡意軟件檢測和僵尸網(wǎng)絡(luò)檢測。
1.1.5 識(shí)別加密流量內(nèi)容
加密流量的內(nèi)容識(shí)別是指從加密流量中識(shí)別其承載的內(nèi)容,如圖片、視頻、音頻、網(wǎng)頁以及文件類型等。識(shí)別加密流量內(nèi)容可用于網(wǎng)絡(luò)空間安全治理。
1.2 識(shí)別性能
目前,網(wǎng)絡(luò)加密流量的識(shí)別方法大多采用與準(zhǔn)確性相關(guān)的指標(biāo)進(jìn)行評(píng)估,主要為誤報(bào)率、精確率、召回率以及總體準(zhǔn)確率等。
假設(shè)加密流量有N種類型,即N為分類類別數(shù);定義圖片為實(shí)際類型為i的樣本被識(shí)別為類型i的樣本數(shù);定義圖片為實(shí)際類型為i的樣本被誤識(shí)別為類型j的樣本數(shù)。
類型i的誤報(bào)率為:
類型i的精確率為:
類型i的召回率為:
總體準(zhǔn)確率為:
1.3 加密流量數(shù)據(jù)集
使用深度學(xué)習(xí)對(duì)加密流量進(jìn)行分類時(shí),需要選擇規(guī)模較大、數(shù)據(jù)分布均衡且具有代表性的數(shù)據(jù)集。目前,加密流量數(shù)據(jù)集主要有公共數(shù)據(jù)集和原始數(shù)據(jù)。
1.3.1 選擇公共數(shù)據(jù)集
近年來,大多數(shù)加密流量識(shí)別的研究工作選擇公共數(shù)據(jù)集,如ISCX2012、Moore、USTC-TFC2016和IMTD17等。但是,公開的加密流量數(shù)據(jù)集的數(shù)量少,且缺少一個(gè)能夠準(zhǔn)確且全面表征所有加密流量類型的數(shù)據(jù)集。究其原因,主要在于:流量類型多且數(shù)量龐大,應(yīng)用程序更新頻繁,沒有數(shù)據(jù)集可以包含所有類型的加密流量;難以覆蓋寬帶和無線接入、PC和移動(dòng)設(shè)備接入等所有網(wǎng)絡(luò)場景。
1.3.2 收集原始數(shù)據(jù)
文獻(xiàn)[11-12]通過數(shù)據(jù)包采集工具,收集來自研究實(shí)驗(yàn)室網(wǎng)絡(luò)或運(yùn)營商的原始流量數(shù)據(jù),但大部分原始數(shù)據(jù)集均未公開。
2 深度學(xué)習(xí)的加密流量識(shí)別框架
本文提供了基于深度學(xué)習(xí)的加密流量識(shí)別通用框架,并簡要介紹常用深度學(xué)習(xí)方法的一些最新論文,總體框架如圖1所示,包含數(shù)據(jù)預(yù)處理、特征構(gòu)造以及深度學(xué)習(xí)模型架構(gòu)設(shè)計(jì)、訓(xùn)練以及識(shí)別等流程。
圖1 基于深度學(xué)習(xí)的加密流量識(shí)別的通用框架
2.1 數(shù)據(jù)預(yù)處理
加密流量原始數(shù)據(jù)集可以分為原始數(shù)據(jù)包數(shù)據(jù)集、流量pcap文件和已處理過的統(tǒng)計(jì)特征3種類型。在對(duì)加密流量識(shí)別的深度學(xué)習(xí)框架中,常見的數(shù)據(jù)預(yù)處理操作有數(shù)據(jù)包過濾或報(bào)頭去除、數(shù)據(jù)包填充與截?cái)嘁约皵?shù)據(jù)歸一化。
2.1.1 數(shù)據(jù)包過濾或報(bào)頭去除
由于原始數(shù)據(jù)包數(shù)據(jù)集中可能包含地址解析協(xié)議(Address Resolution Protocol,ARP)、動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol,DHCP)、Internet控制報(bào)文協(xié)議(Internet Control Message Protocol,ICMP)等流量,同時(shí)pcap文件中包含pcap文件頭等信息。通常這兩類數(shù)據(jù)需要進(jìn)行預(yù)處理,如數(shù)據(jù)包過濾、報(bào)頭去除。
2.1.2 數(shù)據(jù)包填充與截?cái)?/p>
由于深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)總是被饋送固定大小的輸入,而數(shù)據(jù)包的幀長度從54到1 514變化很大,如傳輸控制協(xié)議(Transmission Control Protocol,TCP)協(xié)議,因此需要對(duì)數(shù)據(jù)包進(jìn)行固定長度的零填充和截?cái)唷?/p>
2.1.3 數(shù)據(jù)歸一化
數(shù)據(jù)歸一化對(duì)深度學(xué)習(xí)的性能至關(guān)重要。通過將統(tǒng)計(jì)特征數(shù)據(jù)集中的流量數(shù)據(jù)歸一化為[-1,+1]或[0,1]范圍內(nèi)的值,有助于分類任務(wù)在模型訓(xùn)練期間更快收斂。
2.2 特征提取
深度學(xué)習(xí)模型的輸入對(duì)模型在訓(xùn)練和測試過程中的性能有很大影響,既能直接影響模型的準(zhǔn)確性,又能影響計(jì)算復(fù)雜度和空間復(fù)雜度。在現(xiàn)有研究中,基于深度學(xué)習(xí)的加密流量分類模型的輸入一般可以分為原始數(shù)據(jù)包數(shù)據(jù)、流量特征以及原始數(shù)據(jù)與流量特征組合3種類型。
2.2.1 原始數(shù)據(jù)包數(shù)據(jù)
深度學(xué)習(xí)可以自動(dòng)提取特征,因此大多數(shù)基于深度學(xué)習(xí)的加密流量分類算法將數(shù)據(jù)預(yù)處理后的原始數(shù)據(jù)包數(shù)據(jù)作為模型的輸入。
2.2.2 流量特征
加密流量的一般流量特征可以分為包級(jí)特征、會(huì)話特征和統(tǒng)計(jì)特征。其中:包級(jí)特征包含源和目的端口、包長度、到達(dá)時(shí)間間隔、有效載荷字節(jié)、TCP窗口大小以及流向等;會(huì)話特征包括接收與發(fā)送數(shù)據(jù)包個(gè)數(shù)、會(huì)話持續(xù)時(shí)間以及會(huì)話有效負(fù)載等;統(tǒng)計(jì)特征有平均數(shù)據(jù)包長度、平均延誤時(shí)間間隔以及平均上下行數(shù)據(jù)比例等。在文獻(xiàn)[12]中,數(shù)據(jù)包級(jí)、流級(jí)特征和統(tǒng)計(jì)特征都被用于模型的輸入。文獻(xiàn)[15]針對(duì)Tor常用的3種流量混淆插件(Obfs3、Obfs4、ScrambleSuit)進(jìn)行研究,旨在挖掘可用的混淆插件Tor流量識(shí)別方法。該文采用的方法為機(jī)器學(xué)習(xí)方法,包括C4.5、SVM、Adaboost以及隨機(jī)森林,采用的流特征包括數(shù)種前向與后向的數(shù)據(jù)包大小統(tǒng)計(jì)特征,如前向總字節(jié)數(shù)。該實(shí)驗(yàn)結(jié)果證明,僅僅采用每條流的前10~50個(gè)數(shù)據(jù)包的信息即可實(shí)現(xiàn)上述流量的快速檢測。同時(shí),有研究表明,第一個(gè)數(shù)據(jù)包的數(shù)量對(duì)分類器的影響較大,尤其是實(shí)時(shí)分類性能。第一個(gè)數(shù)據(jù)包收集越多,流量特征越完整和全面。
2.2.3 原始數(shù)據(jù)和流量特征的組合
TONG等人將原始數(shù)據(jù)包數(shù)據(jù)和從網(wǎng)絡(luò)流量中提取的特征進(jìn)行組合,從而對(duì)新型加密協(xié)議QUIC下的谷歌應(yīng)用程序進(jìn)行分類。
2.3 模型架構(gòu)
2.3.1 多層感知器
由于多層感知器(Multilayer Perceptron,MLP)的復(fù)雜性和低準(zhǔn)確率,研究者在識(shí)別加密流量領(lǐng)域中較少使用MLP。文獻(xiàn)[18]基于不同的加密流量數(shù)據(jù)集,將多種深度學(xué)習(xí)算法與隨機(jī)森林算法(Random Forest,RF)進(jìn)行比較,結(jié)果表明大多數(shù)深度學(xué)習(xí)方法優(yōu)于隨機(jī)森林算法,但MLP性能低于RF。但文獻(xiàn)[18]提出,由于RF、MLP和其余深度學(xué)習(xí)方法的輸入特征不同,不應(yīng)將該實(shí)驗(yàn)結(jié)果作為對(duì)MLP、RF等方法的綜合比較結(jié)論。
文獻(xiàn)[19]介紹了一種稱為DataNet的基于深度學(xué)習(xí)的加密流量分類方法,其中MLP模型由1個(gè)輸入層、2個(gè)隱藏層和1個(gè)輸出層組成,用ISCX2012的VPN-nonVPN流量數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)評(píng)估結(jié)果表明,它的精確率、召回率均超過92%。
2.3.2 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)可以通過卷積層來改善MLP無法處理高維輸入的限制,利用卷積和池化來減少模型參數(shù),如圖2所示。
圖2 卷積神經(jīng)網(wǎng)絡(luò)
文獻(xiàn)[14]用一維向量表示每個(gè)流或會(huì)話,以訓(xùn)練CNN模型。結(jié)果表明,該CNN的準(zhǔn)確性優(yōu)于使用時(shí)間序列和統(tǒng)計(jì)特征的C4.5方法。文獻(xiàn)[17]將時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為二維圖像,并使用具有2個(gè)卷積層、2個(gè)池化層和3個(gè)全連接層的CNN進(jìn)行訓(xùn)練。結(jié)果表明,文獻(xiàn)[14]提出的CNN模型在協(xié)議和應(yīng)用分類方面優(yōu)于經(jīng)典機(jī)器學(xué)習(xí)方法和MLP。
2.3.3 循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)可以有效處理序列問題,對(duì)之前發(fā)生的數(shù)據(jù)序列有一定的記憶力,結(jié)構(gòu)如圖3所示。文獻(xiàn)[12]提出,在加密流量識(shí)別領(lǐng)域中,混合模型會(huì)有優(yōu)于單一的長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)或CNN模型。文獻(xiàn)[12]同時(shí)使用CNN和RNN來捕獲流的空間特征和時(shí)間特征。LIU等人采用基于注意力的雙向門限循環(huán)單位網(wǎng)絡(luò)(Attention-Based Bidirectional GRU Networks,BGRUA)進(jìn)行以HTTPS封裝的Web流量的識(shí)別。該文采用3個(gè)部分的神經(jīng)網(wǎng)絡(luò)進(jìn)行充分的加密流量識(shí)別。第1部分為一個(gè)雙層的BGRU網(wǎng)絡(luò),用于從輸入的流序列中學(xué)習(xí)得到序列隱藏狀態(tài)。第2部分為注意力層,將隱藏狀態(tài)序列轉(zhuǎn)化為帶注意力權(quán)重參數(shù)的隱藏狀態(tài)序列,然后通過前向神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)化為預(yù)測標(biāo)簽。第3部分為遷移學(xué)習(xí)網(wǎng)絡(luò),實(shí)現(xiàn)前兩部分學(xué)習(xí)成果的場景擴(kuò)展。實(shí)驗(yàn)結(jié)果除了證明模型在性能上的優(yōu)勢外,還證明了遷移學(xué)習(xí)在加速新場景方面的訓(xùn)練能力。
圖3 RNN結(jié)構(gòu)
2.3.4 自編碼器
自編碼器(Auto-Encoder,AE)是一種無監(jiān)督的神經(jīng)網(wǎng)絡(luò)模型,可以學(xué)習(xí)到輸入數(shù)據(jù)的隱含特征。文獻(xiàn)[21]使用AE重構(gòu)輸入,并將softmax層應(yīng)用于自編碼器的編碼內(nèi)部表示。文獻(xiàn)[22]采用有效載荷數(shù)據(jù)來訓(xùn)練一維CNN和堆疊AE模型,如圖4所示。這兩種模型顯示出高精度,且CNN模型略微優(yōu)于堆疊AE模型。
圖4 Deep Packet框架
3 挑戰(zhàn)與展望
本節(jié)對(duì)加密流量識(shí)別的挑戰(zhàn)與未來方向進(jìn)行了討論。
3.1 現(xiàn)存挑戰(zhàn)
3.1.1 新型加密協(xié)議的出現(xiàn)
隨著新型加密協(xié)議的出現(xiàn)與普及,如TLS1.3協(xié)議,數(shù)據(jù)包中只有少數(shù)字段未加密,證書和域名信息都將加密?;赥LS1.2握手期間,部分明文字段的加密流量識(shí)別算法都將失效。
3.1.2 加密流量的標(biāo)注
深度學(xué)習(xí)在訓(xùn)練過程中需要大量標(biāo)記數(shù)據(jù)。但是,由于隱私保護(hù)和流量標(biāo)注工具如深度包解析工具無法處理加密流量,難以在短時(shí)間和低成本的條件下合法收集,并準(zhǔn)確標(biāo)注加密流量數(shù)據(jù)集。
3.1.3 加密流量的分布
在真實(shí)網(wǎng)絡(luò)環(huán)境下,類不平衡也是加密流量分類的重要問題,會(huì)直接影響分類精度。
3.2 未來可能的方向
3.2.1 預(yù)訓(xùn)練模型
未標(biāo)記的流量數(shù)據(jù)數(shù)據(jù)量大且比較容易獲取,因此一些研究人員開始探索如何利用容易獲得的未標(biāo)記流量數(shù)據(jù)結(jié)合少量標(biāo)記流量數(shù)據(jù)進(jìn)行準(zhǔn)確的流量分類。通過它可以使用大量未標(biāo)記的交通數(shù)據(jù)預(yù)訓(xùn)練模型,然后將其轉(zhuǎn)移到新架構(gòu),并使用深度學(xué)習(xí)重新訓(xùn)練模型。此外,預(yù)訓(xùn)練可以用于降維,使模型變得輕量級(jí)。
3.2.2 生成對(duì)抗網(wǎng)絡(luò)
生成模型可用于處理網(wǎng)絡(luò)流量分類中的數(shù)據(jù)集不平衡問題。不平衡問題是指每個(gè)類的樣本數(shù)量差異很大的場景,而處理不平衡數(shù)據(jù)集的最常見和最簡單的方法是通過復(fù)制少類的樣本進(jìn)行過采樣,或者通過從多類中刪除一些樣本進(jìn)行欠采樣。文獻(xiàn)[24]中,生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)用于生成合成樣本以處理不平衡問題,通過使用輔助分類器生成對(duì)抗網(wǎng)絡(luò)(Auxiliary Classifier Generative Adversarial Network,AC-GAN)來生成兩類網(wǎng)絡(luò),使用具有2個(gè)類(SSH和非SSH)和22個(gè)輸入統(tǒng)計(jì)特征的公共數(shù)據(jù)集。
3.2.3 遷移學(xué)習(xí)
遷移學(xué)習(xí)假設(shè)源任務(wù)和目標(biāo)任務(wù)的輸入分布是相似的,允許在源任務(wù)上訓(xùn)練的模型用于不同的目標(biāo)任務(wù)。由于模型已訓(xùn)練,再訓(xùn)練過程需要的標(biāo)記數(shù)據(jù)和訓(xùn)練時(shí)間將明顯減少。在網(wǎng)絡(luò)加密流量識(shí)別的場景中,可用公開的加密數(shù)據(jù)集來預(yù)訓(xùn)練模型,在進(jìn)一步調(diào)整模型后,以用于具有較少標(biāo)記樣本的另一個(gè)加密流量分類任務(wù)。文獻(xiàn)[23]使用這種方法,將預(yù)先訓(xùn)練的CNN模型的權(quán)重轉(zhuǎn)移到一個(gè)新模型,訓(xùn)練對(duì)Google應(yīng)用程序進(jìn)行分類。論文還表明,在不相關(guān)的公共數(shù)據(jù)集上,預(yù)訓(xùn)練的模型仍然可以用于遷移學(xué)習(xí)。
4 結(jié) 語
網(wǎng)絡(luò)流量是網(wǎng)絡(luò)通信的必然產(chǎn)物,而流量蘊(yùn)含了通信過程中雙方的各種關(guān)鍵信息,因此加密流量分析是網(wǎng)絡(luò)態(tài)勢感知的一個(gè)重要方面。多種研究和實(shí)踐已經(jīng)證明,加密流量中蘊(yùn)含的信息可以在一定程度上被有效挖掘,為網(wǎng)絡(luò)管理操作決策提供高質(zhì)量的依據(jù)支撐。因此,加密流量分析是提升網(wǎng)絡(luò)態(tài)勢感知能力的關(guān)鍵因素之一,具有極高的科研、應(yīng)用、民生以及安全意義。
本文提出了基于深度學(xué)習(xí)的加密流量分類的通用框架,并根據(jù)分類任務(wù)定義、數(shù)據(jù)準(zhǔn)備、特征構(gòu)造、模型輸入設(shè)計(jì)和模型架構(gòu)回顧了最新的現(xiàn)有工作。此外,本文對(duì)加密流量識(shí)別的現(xiàn)存問題和未來可能的識(shí)別技術(shù)進(jìn)行了討論。