劉祎彤,王平輝,趙俊舟
(1. 西安交通大學(xué)自動(dòng)化科學(xué)與工程學(xué)院,710049,西安;2. 西安交通大學(xué)智能網(wǎng)絡(luò)與網(wǎng)絡(luò)安全教育部重點(diǎn)實(shí)驗(yàn)室,710049,西安)
計(jì)算機(jī)網(wǎng)絡(luò)作為互聯(lián)網(wǎng)時(shí)代的基礎(chǔ)設(shè)施,是現(xiàn)代社會(huì)生活中不可或缺的組成部分。隨著網(wǎng)絡(luò)通信技術(shù)的快速發(fā)展,各類新型網(wǎng)絡(luò)協(xié)議和應(yīng)用層出不窮,如TLS加密協(xié)議[1]、5G通信[2]、云服務(wù)[3]等。與此同時(shí),互聯(lián)網(wǎng)用戶對(duì)高通量網(wǎng)絡(luò)傳輸?shù)男枨蟛粩嘣鲩L(zhǎng),Cisco發(fā)布的2021年度互聯(lián)網(wǎng)報(bào)告[4]顯示,預(yù)計(jì)到2023年,全球固定寬帶速度將是2018年的2.4倍。面對(duì)日益復(fù)雜的網(wǎng)絡(luò)生態(tài)環(huán)境和龐大的實(shí)時(shí)流量數(shù)據(jù),運(yùn)營(yíng)商亟需提升自身的管理水平和運(yùn)維能力以保障網(wǎng)絡(luò)空間的安全與穩(wěn)定。網(wǎng)絡(luò)流量分類[5]作為先進(jìn)網(wǎng)絡(luò)管理的前提,旨在從不同應(yīng)用和協(xié)議的混合流量中準(zhǔn)確識(shí)別每條流所屬的應(yīng)用類型,進(jìn)而幫助運(yùn)營(yíng)商提升用戶服務(wù)質(zhì)量[6],實(shí)現(xiàn)差異化網(wǎng)絡(luò)定價(jià),提供精細(xì)化服務(wù)[7]以及診斷分析網(wǎng)絡(luò)異常[8]等。
近年來,隨著人工智能技術(shù)在自然語(yǔ)言處理[9-10]和計(jì)算機(jī)視覺[11-12]等領(lǐng)域取得成功,國(guó)內(nèi)外研究人員也開始利用深度學(xué)習(xí)模型來解決流量分類任務(wù)[13-19]。迄今為止,基于深度學(xué)習(xí)的流量分類方法已經(jīng)在絕大多數(shù)公開數(shù)據(jù)集上實(shí)現(xiàn)了最優(yōu)結(jié)果,這很大程度上歸功于數(shù)據(jù)集中包含的大量標(biāo)注樣本。但是,隨著網(wǎng)絡(luò)監(jiān)管政策和數(shù)據(jù)隱私保護(hù)的加強(qiáng),流量采集和標(biāo)注工作變得越發(fā)困難,導(dǎo)致難以生成高質(zhì)量的數(shù)據(jù)集用于模型訓(xùn)練。此外,由于實(shí)際網(wǎng)絡(luò)環(huán)境動(dòng)態(tài)變化,各種類型的未知應(yīng)用不斷涌現(xiàn),如果能在未知應(yīng)用出現(xiàn)早期對(duì)其進(jìn)行快速有效識(shí)別,不僅能為應(yīng)用提供合適的帶寬和時(shí)延保障,而且能及時(shí)檢測(cè)惡意應(yīng)用,避免用戶信息泄露和財(cái)產(chǎn)損失。然而,未知應(yīng)用在早期階段產(chǎn)生的流量規(guī)模小,難以在短時(shí)間內(nèi)獲取充足的樣本用于已有分類器的微調(diào)或重新訓(xùn)練,而現(xiàn)有方法很大程度上忽略了這一問題,因此對(duì)未知應(yīng)用的早期識(shí)別效果不佳。綜上,盡管目前基于深度學(xué)習(xí)的方法在公開流量分類任務(wù)上成果斐然[20-23],但在實(shí)際中,尤其是在未知應(yīng)用早期識(shí)別場(chǎng)景下,經(jīng)常會(huì)面臨樣本稀缺的問題。眾所周知,深度神經(jīng)網(wǎng)絡(luò)參數(shù)龐大,訓(xùn)練樣本的質(zhì)量和數(shù)量對(duì)模型性能起著決定性作用,樣本稀缺會(huì)導(dǎo)致模型過擬合,進(jìn)而降低模型的泛化能力,影響模型的魯棒性和適用性[24-27]。
針對(duì)上述問題,本文提出了一種基于序列特征與知識(shí)引導(dǎo)的未知網(wǎng)絡(luò)應(yīng)用早期識(shí)別方法。該方法首先基于Transformer-encoder框架構(gòu)建流量分類模型(FAIN),利用自注意力機(jī)制挖掘流量序列中數(shù)據(jù)包之間的全局依賴關(guān)系,提取流量序列的高維隱式特征,進(jìn)而將其編碼為具有可分辨性的表示向量用于分類。在之后的訓(xùn)練階段,為提升FAIN模型在樣本稀缺場(chǎng)景下的適應(yīng)能力,本文采取監(jiān)督預(yù)訓(xùn)練與元學(xué)習(xí)相耦合的模型優(yōu)化策略。首先,利用大規(guī)模已知網(wǎng)絡(luò)應(yīng)用的流量樣本,按照監(jiān)督學(xué)習(xí)范式對(duì)模型進(jìn)行預(yù)訓(xùn)練。其次,構(gòu)建小樣本流量分類任務(wù),并將預(yù)訓(xùn)練后的模型參數(shù)作為元學(xué)習(xí)過程的初始化參數(shù),利用預(yù)訓(xùn)練參數(shù)中蘊(yùn)含的有關(guān)流量時(shí)序特征的通用領(lǐng)域知識(shí),引導(dǎo)元學(xué)習(xí)過程中梯度更新方向。與此同時(shí),為降低元學(xué)習(xí)過程中求解高階梯度帶來的高昂計(jì)算成本,采用一階梯度更新算法Reptile[25],對(duì)模型參數(shù)進(jìn)行多輪更新。優(yōu)化后的FAIN模型具備了在樣本稀缺場(chǎng)景下快速學(xué)習(xí)流量分類任務(wù)的能力,能夠滿足準(zhǔn)確識(shí)別早期未知網(wǎng)絡(luò)應(yīng)用的需求。
本文主要貢獻(xiàn)如下:
(1)設(shè)計(jì)了一種基于Transformer-encoder框架的流量分類模型FAIN,利用自注意力機(jī)制挖掘流量序列中數(shù)據(jù)包之間的全局依賴關(guān)系,進(jìn)而構(gòu)建具有可分辨性的流量表示向量用于分類;
(2)提出了一種監(jiān)督預(yù)訓(xùn)練與一階梯度元學(xué)習(xí)相耦合的模型優(yōu)化策略,用于提升流量分類模型FAIN在小樣本場(chǎng)景下的快速適應(yīng)能力,使得模型滿足準(zhǔn)確識(shí)別早期未知應(yīng)用的需求;
(3)在公開數(shù)據(jù)集ISCXTor和ISCXVPN以及由真實(shí)校園網(wǎng)流量合成的小樣本數(shù)據(jù)集XJTU-FSTC上進(jìn)行了對(duì)比實(shí)驗(yàn),結(jié)果表明,FAIN模型在公開數(shù)據(jù)集3個(gè)分類任務(wù)上的綜合表現(xiàn)優(yōu)于對(duì)比方法,性能指標(biāo)F1值(模型精確率和召回率的調(diào)和平均值)分別為93.17%、92.93%和91.10%;優(yōu)化后的FAIN模型在XJTU-FSTC和CSTNET數(shù)據(jù)集的5類和10類小樣本分類任務(wù)上,準(zhǔn)確率顯著提升。
基于深度學(xué)習(xí)的流量分類方法的主要特點(diǎn)在于,將特征提取和流量分類兩方面工作整合到統(tǒng)一的端到端深度神經(jīng)網(wǎng)絡(luò)之中,能夠自動(dòng)從原始流量中提取高維隱式表示向量,降低了特征構(gòu)建過程中對(duì)專家經(jīng)驗(yàn)和領(lǐng)域知識(shí)的依賴,模型具有良好的泛化能力,因此更加適合真實(shí)網(wǎng)絡(luò)環(huán)境。
Lotfollahi等利用流量序列中數(shù)據(jù)包負(fù)載中的字節(jié)序列構(gòu)建特征向量,提出了基于堆疊自動(dòng)編碼器(SAE)和一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)的流量分類模型Deep Packet,該方法從數(shù)據(jù)包層面對(duì)流量進(jìn)行分類,在ISCXVPN公開數(shù)據(jù)集上的分類性能相較于機(jī)器學(xué)習(xí)類方法有明顯提升[13]。Li等提出BSNN流量分類方法,該方法將數(shù)據(jù)包負(fù)載中的字節(jié)序列分割成多個(gè)片段,基于LSTM和GRU循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)建編碼器提取片段內(nèi)和不同片段之間時(shí)序特征,同樣實(shí)現(xiàn)了數(shù)據(jù)包層面的流量分類[15]。Liu等考慮流量中數(shù)據(jù)包之間的時(shí)序特征,提出了流層面的流量分類模型(FS-Net)。該模型采用數(shù)據(jù)包包長(zhǎng)序列作為輸入,基于雙向門控單元(Bi-GRU)構(gòu)建流量特征提取器,并引入重構(gòu)損失保證編碼向量的有效性[14]。Xiao等對(duì)BSNN模型進(jìn)行拓展,提出了可適用數(shù)據(jù)包層面和流層面的流量分類模型(EBSNN)。具體來講,該方法在BSNN模型之上增加了包信息聚合模塊,進(jìn)一步提升了模型的性能和可解釋性[17]。
本節(jié)首先給出網(wǎng)絡(luò)流量分類和未知網(wǎng)絡(luò)應(yīng)用早期識(shí)別問題的公式化定義,其次介紹基于Transformer-encoder框架的流量分類模型,最后闡述基于監(jiān)督預(yù)訓(xùn)練和梯度元學(xué)習(xí)的模型優(yōu)化策略。
2.1.1 網(wǎng)絡(luò)流量分類
2.1.2 未知網(wǎng)絡(luò)應(yīng)用早期識(shí)別
2.2.1 Transformer模型
Transformer作為當(dāng)下應(yīng)用最為廣泛的序列表示學(xué)習(xí)模型,已經(jīng)在自然語(yǔ)言處理和計(jì)算機(jī)視覺領(lǐng)域取得了矚目的成就。Transformer是基于自注意力機(jī)制構(gòu)建的編碼-解碼架構(gòu),設(shè)計(jì)初衷是為了更好地解決機(jī)器翻譯任務(wù)。相較于基于循環(huán)神經(jīng)網(wǎng)絡(luò)建模方法,Transformer通過自注意力機(jī)制挖掘序列中不同時(shí)刻特征之間的全局依賴關(guān)系,有效避免了模型在訓(xùn)練過程中存在的梯度爆炸和梯度消失問題,而且能夠并行進(jìn)行注意力計(jì)算,極大程度上縮短了模型訓(xùn)練和推理所需的時(shí)間。
(1)編碼-解碼架構(gòu)。Transformer架構(gòu)中的編碼和解碼模塊均由6個(gè)結(jié)構(gòu)相同的子模塊堆疊而成,每個(gè)子模塊由多頭注意力層、殘差歸一化層和前向傳播層3部分構(gòu)成。使用Transformer進(jìn)行序列建模時(shí)首先給定一組輸入序列X=[x1,x2, …,xn]∈Rn×din,使用編碼模塊對(duì)X進(jìn)行特征編碼,得到高維隱式嵌入表示Z=[z1,z2, …,zn]∈Rn×dmodel,之后Z作為解碼模塊的輸入,經(jīng)過帶有掩碼操作的自回歸運(yùn)算得到輸出序列Y=[y1,y2, …,ym]∈Rn×dout。
(2)自注意力機(jī)制。Transformer的核心是自注意力機(jī)制。數(shù)學(xué)上,自注意力機(jī)制是通過矩陣點(diǎn)積操作來進(jìn)行向量相似度計(jì)算。給定矩陣Q∈Rn×dk、K∈Rn×dk、V∈Rn×dk分別表示queries、keys和values向量,在注意力計(jì)算過程中,首先將矩陣Q和矩陣K進(jìn)行點(diǎn)積并將結(jié)果歸一化,之后再點(diǎn)積矩陣V得到輸出結(jié)果
(1)
MultiHead(Q,K,V)=
Concat(head1, head2, …, headh)Wo
(2)
(3)
2.2.2 流量表示學(xué)習(xí)模塊
類似于Bert[10],FAIN模型摒棄了Transformer架構(gòu)中的解碼模塊,采用完全堆疊編碼層的方式構(gòu)建流量表示學(xué)習(xí)模塊,這一做法主要出于兩方面考慮:①Transformer中的解碼模塊主要適用于長(zhǎng)度不定的序列生成任務(wù),如機(jī)器翻譯、對(duì)話生成等,且在注意力計(jì)算過程中需要對(duì)序列進(jìn)行掩碼操作,因此并不適用于分類任務(wù);②不使用解碼模塊能夠減少大約一半的模型參數(shù),可以大大縮短模型訓(xùn)練和推理所需時(shí)間。
如圖1所示,流量表示學(xué)習(xí)模塊中的編碼層包含多頭注意力層、殘差歸一化層以及前向傳播層3個(gè)部分。值得注意的是,本文參考文獻(xiàn)[26]在殘差歸一化層中將Transformer中使用的層歸一化替換成批歸一化,目的是減輕序列中存在的異常值的影響,同時(shí)在位置編碼階段采用可學(xué)習(xí)編碼替換Transformer的正弦位置編碼方式。給定一條包含n個(gè)數(shù)據(jù)包的網(wǎng)絡(luò)流,表示為矩陣X=[p1,p2, …,pn]∈Rn×m,其中m表示每個(gè)數(shù)據(jù)包的原始特征維度(包長(zhǎng)、間隔到達(dá)時(shí)間等),流量表示學(xué)習(xí)模塊將從矩陣X中學(xué)習(xí)網(wǎng)絡(luò)流的時(shí)序特征表示。
圖1 本文方法整體框架圖Fig.1 Overall framework of the proposed method
具體地,對(duì)矩陣X編碼時(shí),首先將每個(gè)時(shí)刻的特征pi經(jīng)過線性層Wproj映射到d維嵌入空間中,添加位置編碼后,得到每個(gè)數(shù)據(jù)包的初始表示向量ei,可寫為
(4)
Hl=MultiHead(Ql,Kl,Vl)
(5)
El=BatchNorm(FFN(El-1+Hl))
(6)
式中:El,Hl∈Rn×dmodel;l表示層數(shù);FFN(·)表示前向傳播;BatchNorm(·)表示歸一化。將最后一層的輸出El經(jīng)線性層映射后得到表示向量Z
Z=WoutEl+bout
(7)
式中:Z∈Rn×dout;Wout∈Rn×dout;bout∈Rdout,均為線性層參數(shù)。
2.2.3 流量分類模塊和損失函數(shù)
在分類階段,采用雙層前饋神經(jīng)網(wǎng)絡(luò)構(gòu)建分類器,將流量表示學(xué)習(xí)模塊編碼得到的表示向量Z作為輸入,輸出該條流所屬網(wǎng)絡(luò)應(yīng)用的預(yù)測(cè)結(jié)果
(8)
式中:W1、W2、b1、b2為線性層參數(shù);ReLU(·)表示激活函數(shù);Mean(·)表示平均操作。本文采用多分類問題常用的交叉熵?fù)p失作為損失函數(shù)
(9)
2.3.1 MAML算法
(10)
(11)
在元更新階段,聚合M個(gè)訓(xùn)練任務(wù)的損失梯度用于更新模型參數(shù)θ
(12)
式中β表示元更新階段的學(xué)習(xí)率。
為了減少元學(xué)習(xí)過程中的梯度更新帶來的高昂計(jì)算成本,文獻(xiàn)[27]同時(shí)提出了MAML的一階近似算法FOMAML。FOMAML省略了式(10)中的二階導(dǎo)數(shù)的求解過程,用θ′i作為元梯度的更新方向。實(shí)驗(yàn)證明,采用FOMAML算法不但提升了元學(xué)習(xí)效率,而且能夠保證模型性能不發(fā)生明顯下降。
2.3.2 基于預(yù)訓(xùn)練和梯度元學(xué)習(xí)的模型優(yōu)化策略
由式(9)和(10)可知,MAML算法對(duì)參數(shù)θ的每輪更新都需要求解其二階甚至更高階導(dǎo)數(shù),這將使得訓(xùn)練計(jì)算成本過大,且訓(xùn)練過程易受超參數(shù)和異常樣本的影響,使得訓(xùn)練不穩(wěn)定。除此之外,FAIN模型中基于Transformer框架構(gòu)建的特征提取模塊參數(shù)量龐大,在小樣本學(xué)習(xí)過程中可能出現(xiàn)過擬合,將嚴(yán)重影響模型的泛化能力,導(dǎo)致訓(xùn)練失敗。而且,直接對(duì)特征提取模塊參數(shù)進(jìn)行隨機(jī)初始化,一方面會(huì)導(dǎo)致訓(xùn)練時(shí)間過長(zhǎng),另一方面由于樣本數(shù)量不足,訓(xùn)練過程中模型可能收斂到局部最優(yōu),導(dǎo)致無(wú)法獲得最優(yōu)性能。
為此,本文提出監(jiān)督預(yù)訓(xùn)練和一階梯度元學(xué)習(xí)相結(jié)合的模型優(yōu)化策略,如圖1(b)所示。具體地,首先使用大量已知網(wǎng)絡(luò)應(yīng)用樣本對(duì)FAIN模型按照有監(jiān)督的方式進(jìn)行預(yù)訓(xùn)練,之后去除分類層參數(shù),將特征提取模塊的預(yù)訓(xùn)練參數(shù)θpretrained作為元學(xué)習(xí)過程的初始參數(shù),目的在于利用預(yù)訓(xùn)練參數(shù)中蘊(yùn)含的有關(guān)流量時(shí)序特征的通用領(lǐng)域知識(shí),引導(dǎo)元學(xué)習(xí)過程中參數(shù)的梯度更新方向,緩解隨機(jī)初始化參數(shù)可能造成的模型收斂到局部最優(yōu)問題。與此同時(shí),為進(jìn)一步提高訓(xùn)練效率,元學(xué)習(xí)過程采用一階梯度算法Reptile用以降低求解高階梯度帶來的高昂計(jì)算成本,縮短模型訓(xùn)練所需時(shí)間。模型參數(shù)為
(13)
式中:μ表示學(xué)習(xí)率;N表示訓(xùn)練輪數(shù)。
算法1基于監(jiān)督預(yù)訓(xùn)練和Reptile的參數(shù)優(yōu)化算法
輸出:優(yōu)化后模型參數(shù)θopt
1 初始化模型參數(shù):θ0←θpretrained
2 whilei≤Ndo
3 #元訓(xùn)練階段
5 forjin range(M):
7 根據(jù)式(11)對(duì)參數(shù)θi進(jìn)行k步更新;
9 end for
10# 元更新階段
12i=i+1
13end while
14returnθopt
16使用優(yōu)化后的參數(shù)θopt計(jì)算分類結(jié)果
3.1.1 實(shí)驗(yàn)環(huán)境
本文所有實(shí)驗(yàn)使用的服務(wù)器配置了2塊Intel(R) Xeon(R) E5-2690 V4 2.60 Hz CPU處理器以及4塊NVIDIA Tesla V100 32 GB GPU處理器,操作系統(tǒng)為Ubuntu 16.04,代碼環(huán)境為Python 3.8。
3.1.2 數(shù)據(jù)集與數(shù)據(jù)預(yù)處理
基于2個(gè)公開網(wǎng)絡(luò)流量分類數(shù)據(jù)集ISCXTor2016[28]和ISCXVPN2016[29],以及由真實(shí)校園網(wǎng)流量合成的小樣本數(shù)據(jù)集XJTU-FSTC[30]和公開數(shù)據(jù)集CSTNET-TLS 1.3[31]合成的小樣本數(shù)據(jù)集開展相關(guān)實(shí)驗(yàn)。
(1)ISCXTor2016數(shù)據(jù)集從18種具有代表性的網(wǎng)絡(luò)應(yīng)用(Facebook、Spotify、Gmail等)中,收集了包含郵件、聊天、音頻、文件傳輸?shù)?種常用網(wǎng)絡(luò)服務(wù)的流量,并且根據(jù)流量是否通過Tor瀏覽器代理,將采集到流量分為Tor和Non-Tor兩類,數(shù)據(jù)集共計(jì)16類標(biāo)簽。
(2)ISCXVPN2016數(shù)據(jù)集從Facebook、Skype、Spotify、YouTube等16種網(wǎng)絡(luò)應(yīng)用中采集了包含聊天、郵件、文件傳輸?shù)?種常用網(wǎng)絡(luò)服務(wù)的流量,并且根據(jù)流量是否通過VPN隧道代理,將每種服務(wù)的流量分為VPN和Non-VPN兩類,數(shù)據(jù)集包含Application classification和Service classification兩個(gè)分類任務(wù),分別包含16類標(biāo)簽和12類標(biāo)簽。
(3)XJTU-FSTC小樣本數(shù)據(jù)集根據(jù)實(shí)驗(yàn)室收集的真實(shí)校園網(wǎng)流量合成,包含BitTorrent、YOUKU、QQLive、TikTok等64種網(wǎng)絡(luò)應(yīng)用產(chǎn)生的流量,經(jīng)過濾、合并、標(biāo)注等一系列預(yù)處理工作后,每類應(yīng)用包含50個(gè)流量樣本,每個(gè)樣本由應(yīng)用會(huì)話的前256個(gè)數(shù)據(jù)包構(gòu)成。選取其中50類應(yīng)用用于構(gòu)建訓(xùn)練任務(wù),剩余14類應(yīng)用構(gòu)建測(cè)試任務(wù)。
(4)CSTNET小樣本數(shù)據(jù)集由公開數(shù)據(jù)集CSTNET-TLS 1.3合成得到,數(shù)據(jù)集包含120類應(yīng)用標(biāo)簽,每類標(biāo)簽包含50個(gè)流量樣本,每個(gè)樣本由應(yīng)用會(huì)話前30個(gè)數(shù)據(jù)包構(gòu)成。選取其中96類應(yīng)用用于構(gòu)建訓(xùn)練任務(wù),剩余24類應(yīng)用用于構(gòu)建測(cè)試任務(wù)。
數(shù)據(jù)集詳細(xì)的統(tǒng)計(jì)信息如表1所示,在預(yù)處理過程中,按照相同五元組從原始pcap文件中篩選出網(wǎng)絡(luò)流并保留每條流的前N個(gè)數(shù)據(jù)包,移除數(shù)據(jù)包中鏈路層包頭、傳輸層包頭中源IP地址、目的IP地址、端口號(hào)等,得到網(wǎng)絡(luò)流序列樣本并標(biāo)注。提取序列中數(shù)據(jù)包包長(zhǎng)、TTL、時(shí)間窗口大小、Flags、包間隔到達(dá)時(shí)間等作為候選特征集合。
表1 實(shí)驗(yàn)所用數(shù)據(jù)集統(tǒng)計(jì)信息
3.1.3 實(shí)驗(yàn)細(xì)節(jié)
采用Pytorch深度學(xué)習(xí)框架實(shí)現(xiàn)實(shí)驗(yàn)代碼,使用Scapy和nfstream工具庫(kù)解析原始pcap文件,得到序列長(zhǎng)度為30的數(shù)據(jù)包包長(zhǎng)序列。在ISCXTor2016和ISCXVPN2016公開數(shù)據(jù)集上按照6∶2∶2的比例劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集。在XJTU-FSTC數(shù)據(jù)集上按照8∶2的比例劃分已知應(yīng)用和未知應(yīng)用,并構(gòu)建5類K樣本和10類K樣本小樣本學(xué)習(xí)任務(wù)。設(shè)置FAIN模型的編碼層數(shù)為3,自注意力模塊頭數(shù)為8,初始嵌入維度為128,采用ReLU激活函數(shù)。在預(yù)訓(xùn)練階段,采集大規(guī)模已知應(yīng)用流量樣本對(duì)模型進(jìn)行預(yù)訓(xùn)練,采用Radam優(yōu)化器,學(xué)習(xí)率設(shè)為10-3,最大訓(xùn)練輪數(shù)為200,批樣本數(shù)量為32,訓(xùn)練過程中采用早停機(jī)制防止過擬合。在小樣本學(xué)習(xí)階段,從訓(xùn)練集中隨機(jī)采樣5 000個(gè)訓(xùn)練任務(wù)進(jìn)行訓(xùn)練,元訓(xùn)練階段采用SGD優(yōu)化器,學(xué)習(xí)率10-4,迭代步數(shù)為5,元更新階段采用Adam優(yōu)化器,學(xué)習(xí)率為10-5。
3.2.1 基線方法
為驗(yàn)證所提方法的有效性,本文選取了6個(gè)網(wǎng)絡(luò)流量分類方法作為基線進(jìn)行對(duì)比試驗(yàn),包括packet-level方法:BSNN和DeepPacket,以及flow-level方法:AppScanner、AWF、DeepFinger和FSNet。
(1)DeepPacket[13]。利用數(shù)據(jù)包負(fù)載字節(jié)信息,基于堆疊自動(dòng)編碼器(SAE)和一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)構(gòu)建的流量分類模型。
(2)BSNN[15]。將數(shù)據(jù)包負(fù)載中的字節(jié)序列分割成多個(gè)片段,基于LSTM和GRU循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)建編碼器提取片段內(nèi)和不同片段之間時(shí)序特征。
(3)AppScanner[32]。使用數(shù)據(jù)包包長(zhǎng)序列和40余類序列統(tǒng)計(jì)特征作為輸入,結(jié)合SVC和隨機(jī)森林算法,實(shí)現(xiàn)手機(jī)App流量分類。
(4)AWF[33]?;诰矸e神經(jīng)網(wǎng)絡(luò)構(gòu)建特征提取器,用于自動(dòng)檢測(cè)網(wǎng)站指紋攻擊流量。
(5)DeepFinger[34]。在AWF基礎(chǔ)上改進(jìn)網(wǎng)絡(luò)框架,用于深度檢測(cè)增加防御策略后的Tor瀏覽器流量。
(6)FS-Net[14]。提取流中的數(shù)據(jù)包包長(zhǎng)序列作為輸入,基于Bi-GRU循環(huán)神經(jīng)構(gòu)建流量特征提取器,并引入重構(gòu)損失保證所編碼特征的有效性。
3.2.2 評(píng)價(jià)指標(biāo)
本文采用召回率(R)、精準(zhǔn)率(P)、準(zhǔn)確率(A)和F1值來評(píng)估所提方法在各個(gè)分類任務(wù)上的性能。
(14)
(15)
(16)
(17)
式中:TP表示正確分類正樣本;FP表示將負(fù)樣本分類為正樣本;FN表示將正樣本分類為負(fù)樣本;TN表示正確分類負(fù)樣本??紤]到數(shù)據(jù)集中存在的樣本不均衡問題,本文采用加權(quán)平均計(jì)算分類結(jié)果。
3.3.1 公開數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
本文與現(xiàn)有基于深度學(xué)習(xí)的packet-level流量分類方法DeepPcaket和BSNN,以及flow-level流量分類方法AppScanner、AWF、DeepFinger和FS-Net,在ISCXTor2016和ISCXVPN2016公開數(shù)據(jù)集的3個(gè)分類任務(wù)上進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。
表2 ISCXTor2016和ISCXVPN2016公開數(shù)據(jù)集對(duì)比實(shí)驗(yàn)結(jié)果
由表2可知,在ISCXTor和ISCXVPN-Service分類任務(wù)上,FAIN相較其余baseline方法,在3個(gè)評(píng)價(jià)指標(biāo)上均排名第一。
(1)在ISCXTor任務(wù)上,FAIN的F1值相較于DeepPacket和FS-Net分別提升了1.74%和1.62%;對(duì)于ISCXVPN-Service分類任務(wù),FAIN的F1值相較于DeepPacket和FS-Net分別提升了0.76%和1.98%。
(2)在ISCXVPN-Application分類任務(wù)上,FAIN相較于次優(yōu)flow-level方法FS-Net,其F1值提升了1.13%。但是,在該任務(wù)上FAIN的表現(xiàn)不及packet-level方法DeepPacket和BSNN。
實(shí)驗(yàn)結(jié)果表明,本文提出的基于Transformer-encoder框架的流量分類模型FAIN,能夠從原始流量中有效地挖掘流量序列的時(shí)序特征,并構(gòu)建具有可分辨性的表示向量用于流量分類。
在ISCXVPN-Application分類任務(wù)上,FAIN模型表現(xiàn)不及packet-level方法BSNN和DeepPacket,這是由于ISCXVPN2016數(shù)據(jù)集提供的是原始pcap文件,packet-level方法提取pacp文件中每個(gè)數(shù)據(jù)包的字節(jié)序列生成訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,而作為flow-level方法的FAIN是提取pacp文件中每條流的包長(zhǎng)序列生成訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集。由于樣本形式不同,導(dǎo)致這兩類方法的數(shù)據(jù)集樣本數(shù)量和標(biāo)簽分布存在差異。如圖2所示,packet-level方法的訓(xùn)練集從樣本數(shù)量和樣本均衡度上均遠(yuǎn)好于flow-level方法的訓(xùn)練集,導(dǎo)致FAIN在該任務(wù)上的表現(xiàn)不及BSNN和DeepPacket。
圖2 ISCXVPN-App任務(wù)訓(xùn)練集數(shù)據(jù)分布Fig.2 The distribution of ISCXVPN-App training set
3.3.2 小樣本數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
在小樣本實(shí)驗(yàn)中,本文選取5種flow-level流量分類方法AWF、AppScanner、DeepFinger、BiLSTM和FS-Net作為主干網(wǎng)絡(luò),分別結(jié)合FOMAML和Reptile梯度元學(xué)習(xí)算法作為baseline模型,同時(shí)也和當(dāng)前較為常用的小樣本學(xué)習(xí)方法Prototypical Network、Relation Network進(jìn)行了對(duì)比。表3和表4分別展示了上述方法與本文方法在XJTU-FSTC以及CSTNET小樣本流量分類數(shù)據(jù)集上的對(duì)比結(jié)果。其中,XJTU-FSTC數(shù)據(jù)集對(duì)比實(shí)驗(yàn)結(jié)果表明,本文方法在所有設(shè)置的小樣本分類任務(wù)中效果最優(yōu)。
表3 XJTU-FSTC數(shù)據(jù)集對(duì)比實(shí)驗(yàn)結(jié)果
表4 CSTNET數(shù)據(jù)集對(duì)比實(shí)驗(yàn)結(jié)果
(1)在5類1、5、10樣本任務(wù)上分別取得了68.80%、79.52%和87.63%的分類準(zhǔn)確率,在10類1、5、10樣本任務(wù)上分別取得了45.26%、72.84%和78.67%的分類準(zhǔn)確率。
(2)值得注意的是,當(dāng)不使用預(yù)訓(xùn)練參數(shù)對(duì)FAIN的模型特征提取模塊進(jìn)行初始化時(shí),FAIN分類準(zhǔn)確率在5類1、5、10樣本任務(wù)上降低了26.16%、10.12%以及10.52%,在10類1、5、10樣本任務(wù)上,分類準(zhǔn)確率分別降低了12.74%,9.41%和8.39%,而且在5類1樣本和10類1樣本條件下不及FOMAML+FsNe和Prototypical Network方法。因?yàn)橄啾扔贔OMAML+FsNet 和Prototypical Network,本文使用了參數(shù)量更大的Transformer-based流量特征提取模塊,所以在樣本稀缺場(chǎng)景下,模型難以進(jìn)行有效學(xué)習(xí);但是隨著樣本數(shù)目增加,在5類 5、10樣本和10類 5、10樣本條件下,即使不使用預(yù)訓(xùn)練參數(shù)進(jìn)行模型初始化,本文方法依舊取得了最優(yōu)結(jié)果,表明了FAIN模型在流量表示學(xué)習(xí)方面的優(yōu)越性。
CSTNET數(shù)據(jù)集對(duì)比實(shí)驗(yàn)結(jié)果同樣表明,本文方法在所有設(shè)置的小樣本分類任務(wù)上綜合表現(xiàn)優(yōu)于其余對(duì)比方法。
(1)除了在5類 1樣本條件下準(zhǔn)確率低于Prototypical Network,在其余的5類5、10樣本和10類1、5、10樣本任務(wù)上,均取得了最優(yōu)的準(zhǔn)確率,其值分別為88.74%、90.12%、48.13%、75.82%和80.54%。
(2)當(dāng)不使用預(yù)訓(xùn)練參數(shù)對(duì)FAIN模型的特征提取模塊進(jìn)行初始化時(shí),CSTNET數(shù)據(jù)集上的對(duì)比結(jié)果與XJTU-FSTC數(shù)據(jù)集上結(jié)果表現(xiàn)出相同的規(guī)律。FAIN分類準(zhǔn)確率在5類1、5、10樣本任務(wù)上分別降低了11.57%、5.22%、2.58%,在10類 1、5、10樣本任務(wù)上,分類準(zhǔn)確率分別降低了8.24%、4.81%、3.29%、在5類1樣本和10類1樣本條件下不及FOMAML+FsNe和Prototypical Network方法。
總的來看,由于流量的數(shù)據(jù)包序列不包含明顯語(yǔ)義信息,因此基于深度學(xué)習(xí)的流量分類方法往往需要大量訓(xùn)練樣本來學(xué)習(xí)不同應(yīng)用的時(shí)序特征,而當(dāng)訓(xùn)練樣本稀缺時(shí),就要求模型具備更強(qiáng)的表示學(xué)習(xí)能力以及泛化能力。在XJTU-FSTC和CSTNET小樣本流量分類數(shù)據(jù)集上的對(duì)比結(jié)果表明,本文提出的流量分類模型FAIN經(jīng)過小樣本學(xué)習(xí)后的綜合表現(xiàn)優(yōu)于其余方法,充分體現(xiàn)了基于自注意力機(jī)制的表示學(xué)習(xí)模塊在流量時(shí)序特征提取方面的有效性。同時(shí),使用預(yù)訓(xùn)練參數(shù)作為元學(xué)習(xí)的初始化參數(shù)能夠顯著提升FAIN的性能,說明使用大量已知應(yīng)用樣本對(duì)FAIN進(jìn)行預(yù)訓(xùn)練,能夠賦予模型參數(shù)關(guān)于流量時(shí)序特征的通用領(lǐng)域知識(shí)。將預(yù)訓(xùn)參數(shù)作為FAIN在元學(xué)習(xí)過程的初始化參數(shù),這些領(lǐng)域知識(shí)將作為先驗(yàn)知識(shí),引導(dǎo)整個(gè)元學(xué)習(xí)過程中參數(shù)的梯度更新方向,能夠有效提升訓(xùn)練穩(wěn)定性,避免訓(xùn)練過程陷入局部最優(yōu),從而使得模型獲得最優(yōu)性能。
3.3.3 公開數(shù)據(jù)集細(xì)粒度分類結(jié)果
本文對(duì)比了同為flow-level方法的FAIN和FS-Net在不同分類任務(wù)上對(duì)每類標(biāo)簽的分類準(zhǔn)確率。圖3(a)、(c)、(e)展示了FAIN在ISCXTor、ISCXVPN-Appliction和ISCXVPN-Service任務(wù)上的混淆矩陣,圖3(b)、(d)、(f)展示了FS-Net的結(jié)果。可以看出,在各個(gè)分類任務(wù)上,FAIN對(duì)于絕大多數(shù)標(biāo)簽的分類準(zhǔn)確率均優(yōu)于FS-Net。證明了FAIN在流量時(shí)序特征提取方面具有更強(qiáng)的魯棒性和泛化能力,能更好地適用于不同的應(yīng)用分類場(chǎng)景。同時(shí),FAIN和FS-Net在ISCXTor任務(wù)上對(duì)Tor Browsing、Tor Chat、Tor File-Transfer、Tor Email這幾類標(biāo)簽的分類錯(cuò)誤率較高,說明經(jīng)由Tor瀏覽器轉(zhuǎn)發(fā)的流量,其數(shù)據(jù)包之間的時(shí)序特征變得更加模糊難以被提取,這可能與Tor瀏覽器的路由機(jī)制有關(guān)。
(a)Tor任務(wù)上FAIN混淆矩陣
(b)Tor任務(wù)上FS-Net混淆矩陣
(c)VPN-App任務(wù)上FAIN混淆矩陣
(f)VPN-Service任務(wù)上FS-Net混淆矩陣
為了評(píng)估超參數(shù)對(duì)FAIN分類性能的影響,在ISCXTor數(shù)據(jù)集上分別對(duì)序列長(zhǎng)度、編碼層數(shù)、嵌入維度以及小樣本學(xué)習(xí)過程內(nèi)循環(huán)步數(shù)α進(jìn)行參數(shù)分析,其中序列長(zhǎng)度取值范圍為{10, 20, 30, 60, 90, 120},編碼層數(shù)取值范圍為{2, 3, 4, 5, 6},嵌入維度取值范圍為{16, 32, 64, 128, 256, 512},內(nèi)循環(huán)步數(shù)的取值范圍為{3, 4, 5, 6, 7, 8}。為保證實(shí)驗(yàn)公平性,其余參數(shù)不做更改。
圖4展示了序列長(zhǎng)度對(duì)FAIN的各項(xiàng)評(píng)價(jià)指標(biāo)的影響??梢钥闯?當(dāng)序列長(zhǎng)度小于30時(shí),模型性能隨著序列長(zhǎng)度的增加呈線性提升,當(dāng)序列長(zhǎng)度大于30時(shí),模型性能不再明顯提升,各項(xiàng)評(píng)價(jià)指標(biāo)趨于穩(wěn)定。這一結(jié)果說明,對(duì)于流量序列而言,前30個(gè)數(shù)據(jù)包相較于其余數(shù)據(jù)包蘊(yùn)含更為重要的序列特征信息。
圖4 序列長(zhǎng)度對(duì)FAIN分類性能的影響Fig.4 Effect of sequence length on FAIN performance
表示向量的維度對(duì)于分類效果有著重要影響,增加嵌入維度使得模型能夠感知更加高維的隱式特征,但同時(shí)意味著特征空間更加稀疏,而且模型容易受到噪聲和異常值的影響導(dǎo)致過擬合。圖5展示了模型性能隨嵌入維度的變化趨勢(shì)??梢钥闯?隨著嵌入維度的增加,FAIN的各項(xiàng)評(píng)價(jià)指標(biāo)緩慢提升,而當(dāng)嵌入維度大于128時(shí),模型性能有了明顯下降,當(dāng)嵌入維度從128增至512時(shí),F1值下降了24.83%。
圖5 編碼維度對(duì)FAIN分類性能的影響Fig.5 Effect of embedding dimension on FAIN performance
圖6展示了編碼層數(shù)對(duì)模型性能的影響。當(dāng)編碼層數(shù)小于4時(shí),隨著層數(shù)的不斷增加,各項(xiàng)評(píng)價(jià)指標(biāo)沒有發(fā)生明顯變化,而當(dāng)層數(shù)從4層增至6層時(shí),F1值下降了19.68%。這一結(jié)果說明,基于自注意力機(jī)制構(gòu)建的編碼層具有良好的序列建模能力,即使是淺層網(wǎng)絡(luò),依然可以學(xué)習(xí)到豐富的特征信息,而加深編碼層數(shù)會(huì)使得模型參數(shù)呈指數(shù)增加,當(dāng)訓(xùn)練樣本不足時(shí)就會(huì)引起過擬合,導(dǎo)致模型性能劣化。
圖6 編碼層數(shù)對(duì)FAIN分類性能的影響Fig.6 Effect of encoder layer on FAIN performance
圖7展示了5類1、5樣本和10類1、5樣本條件下小樣本學(xué)習(xí)過程中內(nèi)循環(huán)更新步數(shù)對(duì)模型準(zhǔn)確率的影響。為排除先驗(yàn)知識(shí)的影響,步數(shù)分析時(shí)不對(duì)模型進(jìn)行預(yù)訓(xùn)練。從圖中可以看出,隨著內(nèi)循環(huán)更新步數(shù)的不斷增加,在5類5樣本和10類5樣本條件下,模型的準(zhǔn)確率呈現(xiàn)緩慢上升趨勢(shì),模型準(zhǔn)確率最高提升2%;而在5類1樣本和10類1樣本條件下,模型的準(zhǔn)確率呈現(xiàn)先緩慢上升之后下降的現(xiàn)象。總體來看,相較于其他參數(shù),小樣本學(xué)習(xí)過程中內(nèi)循環(huán)更新步數(shù)對(duì)模型性能的影響有限。
圖7 小樣本學(xué)習(xí)中內(nèi)循環(huán)更新步數(shù)對(duì)模型準(zhǔn)確率的影響Fig.7 Effect of update steps of inner loop in few-shot learning on accuracy
(1)本文提出的FAIN流量分類模型在公開數(shù)據(jù)集上綜合性能優(yōu)于現(xiàn)有方法,且細(xì)粒度分類結(jié)果表明,FAIN模型在流量時(shí)序特征提取方面具有更強(qiáng)的魯棒性和泛化能力,能更好地適用于不同的應(yīng)用分類場(chǎng)景。
(2)優(yōu)化后的FAIN模型在小樣本數(shù)據(jù)集上的綜合性能優(yōu)于對(duì)比方法,其中在XJTU-FSTC數(shù)據(jù)集的5類和10類分類任務(wù)上準(zhǔn)確率最高分別提升了16.75%、10.08%和11.57%、8.24%。這表明使用預(yù)訓(xùn)練參數(shù)作為元學(xué)習(xí)的初始化參數(shù)能夠顯著提升FAIN模型在樣本稀缺場(chǎng)景下的性能。
未來,將會(huì)考慮在計(jì)算資源有限的邊緣網(wǎng)絡(luò)設(shè)備上,部署能夠?qū)崟r(shí)分類流量的輕量化模型,進(jìn)一步提升對(duì)網(wǎng)絡(luò)空間的管理能力。