焦利彬,王 猛,霍永華
(1.中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;2.火箭軍裝備部駐廊坊地區(qū)軍代室,河北 廊坊065000)
流量分類是網(wǎng)絡(luò)流量異常負(fù)載檢測和入侵檢測等工作中至關(guān)重要的一步,是網(wǎng)絡(luò)管理(尤其是網(wǎng)絡(luò)安全領(lǐng)域)的關(guān)鍵研究方向之一。將網(wǎng)絡(luò)流量與特定應(yīng)用程序關(guān)聯(lián)的過程被稱為流量分類(Traffic Classification,TC)。流量分類是實(shí)現(xiàn)流量管理的基本功能之一,支撐了流量處理(如流量策略、流量整形等)到安全管理(如流量過濾、異常檢測等)的全流程。
由于現(xiàn)代互聯(lián)網(wǎng)流量的多樣性和復(fù)雜性,網(wǎng)絡(luò)流量的構(gòu)成更加趨向于異質(zhì)化,同時(shí)對用戶流量數(shù)據(jù)進(jìn)行深入剖析以得到有價(jià)值信息的需求激增,流量分類的難度與必要性持續(xù)增加。同時(shí),隨著加密技術(shù)的廣泛采用,也使現(xiàn)有流量分類方法面臨著巨大的挑戰(zhàn),例如,對于基于更強(qiáng)大的加密協(xié)議(尤其是QUIC和TLS 1.3等加密協(xié)議)的流量分類問題尚待深入研究。
流量分類已經(jīng)廣泛應(yīng)用到各個(gè)領(lǐng)域,在流量分類領(lǐng)域主要有以下方法[1-2]:基于端口匹配、基于深度包檢測(Deep Packet Inspection,DPI) 、基于行為特征以及基于機(jī)器學(xué)習(xí)(Machine learning,ML)等分類方法。但是,隨著網(wǎng)絡(luò)應(yīng)用數(shù)目逐漸增多,隨機(jī)端口和偽裝端口的出現(xiàn)使得傳統(tǒng)基于端口的流量分類方法已經(jīng)無法對流量特征進(jìn)行準(zhǔn)確識別。同時(shí)由于加密協(xié)議的廣泛使用(例如TLS等),也使DPI不再適用?;趥鹘y(tǒng)機(jī)器學(xué)習(xí)的流量分類方法解決了端口匹配和深度包檢測無法解決的問題,例如針對加密流量的分類和極高的計(jì)算成本,但標(biāo)準(zhǔn)ML分類器需要領(lǐng)域?qū)<疫M(jìn)行特征標(biāo)注,無法適應(yīng)動態(tài)和具有挑戰(zhàn)性的網(wǎng)絡(luò)環(huán)境。
為解決傳統(tǒng)ML分類器在網(wǎng)絡(luò)流量高速發(fā)展情況下的局限性,采用基于深度學(xué)習(xí)的分類器,通過自動獲取結(jié)構(gòu)化特征表示,將其直接輸入原始數(shù)據(jù)訓(xùn)練分類器,可以實(shí)現(xiàn)端到端的特征提取。深度學(xué)習(xí)在流量分類領(lǐng)域已經(jīng)取得了顯著的成果,例如Wei Wang等人將CNN運(yùn)用在未加密流量數(shù)據(jù)集上,準(zhǔn)確率、召回率和F值均達(dá)到89%以上[3-4]。文獻(xiàn)[5]中比較了LSTM和2D-CNN的組合模型與標(biāo)準(zhǔn)CNN、LSTM在RedIRIS數(shù)據(jù)集上的性能差異,結(jié)果顯示,性能表現(xiàn)最優(yōu)異的是2D-CNN和LSTM層的組合,達(dá)到了96.32%的準(zhǔn)確率和95.74%的F值。文獻(xiàn)[6]提出了一種基于2D-CNN的新型多任務(wù)學(xué)習(xí)系統(tǒng),Chen[7]等人提出了基于CNN的在線流量分類框架Seq2Img。BSNN[8]提出了由LSTM和GRU等模型組成的分類器對數(shù)據(jù)報(bào)文進(jìn)行流量分類。
盡管深度學(xué)習(xí)已經(jīng)在流量分類領(lǐng)域取得了不錯(cuò)的效果,但在高速發(fā)展的網(wǎng)絡(luò)流量環(huán)境中,現(xiàn)有ML流量分類器仍缺乏靈活性和適應(yīng)性,在端到端的深度學(xué)習(xí)分類器中僅使用單一模式,而沒有充分利用流量數(shù)據(jù)異質(zhì)化的特征,這將導(dǎo)致結(jié)果具有偏差性[9]。因此,與現(xiàn)有的基于單模態(tài)輸入的深度學(xué)習(xí)流量分類器相比,本文中提出基于多模態(tài)的流量分類框架,旨在將不同的模態(tài)(輸入)融合并進(jìn)行流量識別,從而適應(yīng)動態(tài)變化的網(wǎng)絡(luò)環(huán)境。
深度學(xué)習(xí)中的多模態(tài)數(shù)據(jù)融合技術(shù)(Multimodality Fusion Technology,MFT)是模型在完成分析和識別任務(wù)時(shí)處理不同形式數(shù)據(jù)的過程。多模態(tài)數(shù)據(jù)的融合能建立處理和關(guān)聯(lián)來自多種模態(tài)信息的模型,縮小模態(tài)間的異質(zhì)性差異,從而為模型決策提供更多的信息,提高決策總體結(jié)果的準(zhǔn)確率。MFT已逐步成為深度學(xué)習(xí)的研究熱點(diǎn)。
本節(jié)將先分析現(xiàn)有流量分類器的流量輸入單位,然后分析基于單個(gè)流量單位的輸入數(shù)據(jù)類型,再對不同的模態(tài)(即同一流量單位的不同類型輸入)分別進(jìn)行訓(xùn)練,融合多個(gè)模型輸出結(jié)果,從而集成不同類型的特征來提高機(jī)器學(xué)習(xí)模型性能,實(shí)現(xiàn)多模態(tài)流量數(shù)據(jù)分析和識別。
流量單位分割可以將原始流量數(shù)據(jù)分割成多個(gè)離散流量單位作為分類器輸入。在文獻(xiàn)[3]中定義,flow包括具有相同五元組的所有數(shù)據(jù)包的序列(即源IP地址、源端口、目的IP地址、目的端口和網(wǎng)絡(luò)傳輸協(xié)議),并以此作為輸入分類器和進(jìn)行訓(xùn)練的最小單位。而biflow表示雙向flow(即共享同一五元組但方向相反的flow)。Wei Wang在文獻(xiàn)[3]中討論了不同流量單位對分類結(jié)果的影響,研究表明相較于flow選擇biflow作為流量單位,其分類結(jié)果輸出更準(zhǔn)確。
現(xiàn)有的深度學(xué)習(xí)模型將流量數(shù)據(jù)的不同類型表示作為輸入。例如,將流量單位有效負(fù)載的前N個(gè)字節(jié)或者原始數(shù)據(jù)的前N個(gè)字節(jié)作為輸入,文獻(xiàn)[3]中,選擇TCP/IP模型中應(yīng)用層(L7)或所有的協(xié)議層(ALL)的前784個(gè)字節(jié)作為輸入?;蛘?,可以將流量單位中前Np個(gè)數(shù)據(jù)包的協(xié)議字段信息作為輸入,例如在文獻(xiàn)[5]中,采集流量單位(biflow)的前20個(gè)數(shù)據(jù)包,并且對于每個(gè)數(shù)據(jù)包,提取以下6個(gè)字段(因此每個(gè)流量單位都得到了維度為20×6的矩陣):源端口和目標(biāo)端口、傳輸層有效負(fù)載中的字節(jié)數(shù)、TCP窗口大小、到達(dá)間隔時(shí)間和數(shù)據(jù)包傳輸方向等。
實(shí)際上,盡管流量業(yè)務(wù)數(shù)據(jù)可以是“多模態(tài)的”,即可以用不同的數(shù)據(jù)類型和字段描述同一概念,但傳統(tǒng)基于深度學(xué)習(xí)的模型都集中于一種類型的輸入信息(例如,有效載荷字節(jié)或報(bào)頭字段),即只能對單模態(tài)數(shù)據(jù)進(jìn)行處理。本文下節(jié)中將提出基于多模態(tài)的流量特征分類學(xué)習(xí)模型,能夠自動學(xué)習(xí)并融合多模態(tài)的流量數(shù)據(jù)特征表示。所提出的模型通過捕獲模態(tài)間和模態(tài)內(nèi)的依賴性,有效利用流量數(shù)據(jù)的異構(gòu)性,以“多模式”方式隱式地承載信息,克服現(xiàn)有單模態(tài)流量分類方法的性能限制,適應(yīng)具有異構(gòu)特征的流量數(shù)據(jù)分類需求。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neutral Network,CNN)被廣泛應(yīng)用于計(jì)算機(jī)視覺、推薦系統(tǒng)、自然語言處理等應(yīng)用領(lǐng)域。根據(jù)文獻(xiàn)[2]的研究表明,通過卷積神經(jīng)網(wǎng)絡(luò),可以將流量數(shù)據(jù)處理成具有局部強(qiáng)相關(guān)性的序列數(shù)據(jù)。
CNN通過多個(gè)卷積層實(shí)現(xiàn)特征學(xué)習(xí)。每一卷積層都包含一系列具有平移不變性、能夠提取特定輸入?yún)^(qū)域特征的濾波器。CNN層可以根據(jù)輸入數(shù)據(jù)的性質(zhì)以一維卷積(1D-CNN)或二維卷積(2D-CNN)呈現(xiàn)。據(jù)研究表明[4],1D-CNN相比2D-CNN更加適用于序列數(shù)據(jù),因此本文中采用1D-CNN去提取“有效載荷”模態(tài)的特征(即應(yīng)用層負(fù)載的前Nb個(gè)字節(jié)),同時(shí)在池化層后采用一定概率的隨機(jī)失活和提前終止技術(shù),以防止模型過擬合,在一定程度得到正則化的效果。
長短期記憶(Long Short-term Memory,LSTM)網(wǎng)絡(luò)模型是循環(huán)神經(jīng)網(wǎng)絡(luò) (Recurrent Neutral Network,RNN) 的一種變體,解決了循環(huán)神經(jīng)網(wǎng)絡(luò)梯度消失的問題。LSTM中引入3個(gè)門,即輸入門(input gate)、遺忘門(forget gate)和輸出門(output gate),以及與隱藏狀態(tài)維度相同的記憶細(xì)胞,以記錄額外的信息。其基本結(jié)構(gòu)如圖1所示。
圖1 LSTM神經(jīng)網(wǎng)絡(luò)模型Fig.1 Neural network model of LSTM
如圖1所示,給定時(shí)間步t的小批量輸入Xt和上一時(shí)間步隱藏狀態(tài)Ht-1,輸出由sigmod激活函數(shù)計(jì)算得到。時(shí)間步t的輸入門It、遺忘門Ft、輸出門Ot可得:
(1)
(2)
(3)
(4)
(5)
當(dāng)前時(shí)間步t的隱藏狀態(tài)為:
Ht=Ot⊙tanh(Ct)。
(6)
LSTM網(wǎng)絡(luò)比簡單的循環(huán)架構(gòu)更易于學(xué)習(xí)具有長相關(guān)性特征的時(shí)間序列,在此類任務(wù)處理上有顯著優(yōu)勢。本文應(yīng)用LSTM神經(jīng)網(wǎng)絡(luò)模型來提取協(xié)議的字段信息,即前Np個(gè)流量數(shù)據(jù)包的特征。
本文所提出流量分類框架為2個(gè)不同類型的輸入:I. 應(yīng)用層有效載荷的前Nb個(gè)字節(jié)(將字節(jié)處理成[0,255]的數(shù)值,均歸一化至[0,1]);II. 前Np個(gè)數(shù)據(jù)包的協(xié)議字段信息,即傳輸層有效負(fù)載中的字節(jié)數(shù)、TCP窗口大小(對于UDP數(shù)據(jù)包設(shè)置為零)、到達(dá)間隔時(shí)間和數(shù)據(jù)包方向∈{0,1}等。需要說明的是,為了不產(chǎn)生有偏差的結(jié)果,通道II并不使用端口信息作為輸入。
圖2為本文提出的基于多模態(tài)輸入的流量數(shù)據(jù)分類框架。通道I為“有效載荷”模態(tài)的特征提取,是兩個(gè)一維卷積層,分別由16和32個(gè)濾波器組成,內(nèi)核大小為25,采用單位步長和ReLU作為激活函數(shù)。卷積層后均連有一個(gè)1-D最大池化層,其單位步長和空間范圍均等于3。最后是全連接層,具有256個(gè)神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)。這樣設(shè)置的原因是一維卷積層能夠從有效載荷中提取具有空間不變性的特征。
圖2 基于多模態(tài)輸入的流量數(shù)據(jù)分類框架Fig.2 Traffic data classification framework based on multimodal input
通道II為“協(xié)議字段”模態(tài)的特征提取,通過連接LSTM神經(jīng)網(wǎng)絡(luò)和一個(gè)全連接層(具有256個(gè)神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn))。在通道II中設(shè)計(jì)采用LSTM神經(jīng)網(wǎng)絡(luò)模型,可以具備捕獲與雙流初始段有關(guān)的長期依賴關(guān)系的能力。在單模態(tài)層I和II后通過合并層將兩個(gè)分支的中間特征連接起來,并在softmax分類之前饋入一個(gè)全連接(共享表示)層(具有128個(gè)神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn))。所有層都通過ReLU獲得輸出,從而得到流量分類識別結(jié)果。
方便起見,定義訓(xùn)練集的第m個(gè)流量單位為(訓(xùn)練集由M個(gè)樣本組成,M表示所屬類別的總樣本數(shù)量)x(m),所屬類別標(biāo)記為(m)。
(7)
為了減輕類不平衡問題,損失函數(shù)中引入wm表示第m個(gè)樣本的權(quán)重。
(8)
其中,預(yù)訓(xùn)練和微調(diào)階段所用的損失函數(shù)Lp(·)和L(·)采用的是標(biāo)準(zhǔn)一階局部優(yōu)化器(SGD,ADAM等)。
本文使用文獻(xiàn)[10]采用的ISCX VPN-non VPN traffic dataset數(shù)據(jù)集,此流量數(shù)據(jù)集中有兩種數(shù)據(jù)格式:流量特征和原始流量(即.PCAP格式)。該數(shù)據(jù)集中常用的流量有12類,包括6類常規(guī)加密流量數(shù)據(jù)和6類VPN協(xié)議封裝流量數(shù)據(jù),包括20 173個(gè)非VPN樣本,12 264個(gè)VPN樣本,共計(jì)32 437個(gè)樣本。表1顯示了該數(shù)據(jù)集的詳細(xì)分類內(nèi)容。
表1 ISCX VPN-nonVPN數(shù)據(jù)集Tab.1 ISCX VPN-nonVPN data set
不同的分割粒度會產(chǎn)生不同的流量單位,流量單位的選擇會影響模型最后的分類效果。使用biflow作為基本流量單位,從原始流量轉(zhuǎn)化到biflow的過程如下:
I. 原始流量:所有數(shù)據(jù)包的集合為P={p1,p2,…,p|P|},單個(gè)數(shù)據(jù)包定義pi=(xi,bi,ti),i=1,2,…,|P|。xi代表五元組,分別為源IP地址、源端口、目的IP地址、目的端口和網(wǎng)絡(luò)傳輸協(xié)議;bi∈[0,∞)為數(shù)據(jù)包大小,單位是字節(jié);ti為數(shù)據(jù)包pi開始傳輸?shù)臅r(shí)間。
II. 將原始流量轉(zhuǎn)化為biflow:將原始流量集合P分割成多個(gè)子集的集合F={f1,f2,…,fi,…,fm},m為原始流量劃分的子集個(gè)數(shù),fi表示將原始流量劃分為多個(gè)子集中的任一子流。子流fi=(xi,bi,di,ti)中的數(shù)據(jù)包以時(shí)間順序排列,其中xi在biflow中表示具有源IP地址、源端口、目的IP地址、目的端口和網(wǎng)絡(luò)傳輸協(xié)議的五元組;bi∈[0,∞)為子流fi中所有數(shù)據(jù)包的大小,單位是字節(jié);di為子流fi傳輸?shù)目倳r(shí)長;ti則為子流fi中的數(shù)據(jù)包序列的第一個(gè)數(shù)據(jù)包開始傳輸?shù)臅r(shí)間。
對于同一個(gè)流量單位,采用兩種不同模態(tài)的輸入。對于模態(tài)I,輸入為“L7-Nb”,即流應(yīng)用層(L7)有效載荷的前Nb個(gè)字節(jié)[5];模態(tài)II輸入則為“MAT-Np”[5],是指對每個(gè)biflow,提取前Np個(gè)數(shù)據(jù)包中每個(gè)數(shù)據(jù)包的4種協(xié)議字段信息組成的Np×4矩陣(不同于文獻(xiàn)[5],只提取了有效負(fù)載的字節(jié)數(shù)量、TCP窗口大小、數(shù)據(jù)包到達(dá)間隔時(shí)間和數(shù)據(jù)包方向4個(gè)特征)。為了降低復(fù)雜性,均采用biflow中數(shù)據(jù)包應(yīng)用層的載荷數(shù)據(jù)。根據(jù)大量分析,模態(tài)I中采用前Nb=576字節(jié)數(shù),模態(tài)II中使用Np=12個(gè)數(shù)據(jù)包。
通過對樣本集進(jìn)行劃分,隨機(jī)分配90%的樣本作為訓(xùn)練樣本,10%的樣本作為測試樣本,使用訓(xùn)練樣本訓(xùn)練模型,然后用測試集進(jìn)行測試。為加強(qiáng)實(shí)驗(yàn)說服力,減少隨機(jī)性,進(jìn)行多次重復(fù)試驗(yàn),最后將試驗(yàn)結(jié)果取平均值如表2所示。從表中可以看出本文提出的分類算法最終分類結(jié)果精度可達(dá)85%,準(zhǔn)確率、F值均可達(dá)80%以上,相較于傳統(tǒng)LSTM方法能對異質(zhì)化、多模態(tài)的流量數(shù)據(jù)實(shí)現(xiàn)更為精確的分類。
表2 流量分類結(jié)果Tab.2 Classification results%
針對流量數(shù)據(jù)分類的問題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)與長短期記憶的多模態(tài)深度學(xué)習(xí)分類算法,充分利用了流量數(shù)據(jù)異質(zhì)化、多模態(tài)的特征,針對同一流量分類單位的不同類型輸入分別進(jìn)行處理,再融合多模態(tài)的流量數(shù)據(jù)特征表示,最后得到更精確的分類結(jié)果,克服了現(xiàn)有深度學(xué)習(xí)流量分類器的局限性。