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