潘 嘉,翟江濤
(1.江蘇科技大學(xué)電子信息學(xué)院,江蘇鎮(zhèn)江 212003;2.南京信息工程大學(xué)計(jì)算機(jī)與軟件學(xué)院,江蘇南京 210044)
隨著5G 技術(shù)的快速發(fā)展,網(wǎng)絡(luò)流量也井噴式產(chǎn)生。與此同時(shí),黑客技術(shù)也不斷發(fā)展,各種網(wǎng)絡(luò)攻擊產(chǎn)生的惡意流量給網(wǎng)絡(luò)管理與服務(wù)帶來嚴(yán)峻挑戰(zhàn),嚴(yán)重威脅網(wǎng)絡(luò)安全。網(wǎng)絡(luò)流量分類技術(shù)作為網(wǎng)絡(luò)安全管理系統(tǒng)的重要組成部分之一,其中一個(gè)至關(guān)重要的問題即是如何檢測(cè)與識(shí)別惡意流量[1]。
目前網(wǎng)絡(luò)流量分類主要采用3 種方法:基于端口的識(shí)別分類方法[2]、基于深度包檢測(cè)的分類方法[3]與基于統(tǒng)計(jì)的分類方法?;诙丝诘淖R(shí)別分類方法是早期的網(wǎng)絡(luò)流量分類方法,通過數(shù)據(jù)包端口號(hào)區(qū)分網(wǎng)絡(luò)流量類型。早在1992 年,RFC(Request For Comments)制定了標(biāo)準(zhǔn)的端口空間,端口識(shí)別方法自此開始發(fā)展并得到了廣泛運(yùn)用[4]。然而,隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,動(dòng)態(tài)端口降低了端口識(shí)別技術(shù)的可用性[5]。為彌補(bǔ)端口識(shí)別方法的不足,基于深度包檢測(cè)的分類方法應(yīng)運(yùn)而生,該方法通過分析數(shù)據(jù)包是否含有網(wǎng)絡(luò)應(yīng)用所具有的獨(dú)特“指紋標(biāo)簽”進(jìn)行檢測(cè)。文獻(xiàn)[6]提出利用網(wǎng)絡(luò)流量的深度數(shù)據(jù)包進(jìn)行流量檢測(cè)分類,基于深度數(shù)據(jù)包的流量檢測(cè)方法識(shí)別效率高,同時(shí)一定程度上彌補(bǔ)了端口識(shí)別的缺陷,但對(duì)于加密網(wǎng)絡(luò)流量,自有協(xié)議無法做到有效識(shí)別。近年來網(wǎng)絡(luò)流量數(shù)據(jù)日益龐大,研究者將機(jī)器學(xué)習(xí)方法引入網(wǎng)絡(luò)流量分類工作中。文獻(xiàn)[7]通過使用相關(guān)向量機(jī)(Relevant Vector Machine,RVM)對(duì)網(wǎng)絡(luò)流量進(jìn)行分類,實(shí)驗(yàn)結(jié)果表明,RVM 的性能指標(biāo)優(yōu)于支持向量機(jī)(Support Vector Machine,SVM);文獻(xiàn)[8]采用多種機(jī)器學(xué)習(xí)算法進(jìn)行網(wǎng)絡(luò)流量分類的對(duì)比實(shí)驗(yàn),結(jié)果表明,決策樹算法性能優(yōu)于C4.5 及SVM 算法。然而,機(jī)器學(xué)習(xí)方法可移植性差,針對(duì)不同的流量數(shù)據(jù),機(jī)器學(xué)習(xí)方法需要通過人工重新提取特征并進(jìn)行訓(xùn)練。為實(shí)現(xiàn)端到端的網(wǎng)絡(luò)流量分類,可采用深度學(xué)習(xí)技術(shù)。深度學(xué)習(xí)在目標(biāo)檢測(cè)[9]、自然語言處理[10]等各領(lǐng)域都取得了突破性進(jìn)展,因此將深度學(xué)習(xí)應(yīng)用于網(wǎng)絡(luò)流量分類是當(dāng)前的研究熱點(diǎn)。文獻(xiàn)[11]首次提出利用一維和二維卷積神經(jīng)網(wǎng)絡(luò)用于惡意流量與普通流量分類,結(jié)果表明一維卷積神經(jīng)網(wǎng)絡(luò)分類效果更佳;文獻(xiàn)[12]將流量數(shù)據(jù)包處理成三維數(shù)據(jù)格式,利用三維卷積神經(jīng)網(wǎng)絡(luò)對(duì)流量進(jìn)行分類識(shí)別;文獻(xiàn)[4]進(jìn)一步利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)與循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的多種組合進(jìn)行網(wǎng)絡(luò)流量分類。然而,網(wǎng)絡(luò)流量樣本分布的不均衡性特點(diǎn)導(dǎo)致流量樣本分類具有難易差別,對(duì)于簡單的流量樣本,通常淺層的神經(jīng)網(wǎng)絡(luò)即能對(duì)其進(jìn)行精準(zhǔn)分類,而對(duì)于難樣本,則需要更深層的網(wǎng)絡(luò)資源。因此導(dǎo)致了一個(gè)問題:淺層的神經(jīng)網(wǎng)絡(luò)無法滿足難樣本的分類需求,而將深層網(wǎng)絡(luò)應(yīng)用于簡單樣本又會(huì)造成網(wǎng)絡(luò)資源浪費(fèi),降低運(yùn)算速度。針對(duì)此問題,本文提出一種基于自蒸餾的自適應(yīng)網(wǎng)絡(luò)流量分類算法,主要有以下兩方面貢獻(xiàn):
(1)針對(duì)網(wǎng)絡(luò)流量的時(shí)序特點(diǎn),設(shè)計(jì)基于自注意力機(jī)制的流量特征提取器SAC(Self-Attention-Convd)網(wǎng)絡(luò),同時(shí)引入流量的全局結(jié)點(diǎn)信息解決Self-Attention 的低秩瓶頸問題。
(2)設(shè)計(jì)分支網(wǎng)絡(luò)自適應(yīng)功能,通過利用主干網(wǎng)絡(luò)的教師分類器對(duì)分支網(wǎng)絡(luò)的學(xué)生分類器進(jìn)行自蒸餾訓(xùn)練,使分支網(wǎng)絡(luò)的學(xué)生分類器擬合教師分類器的概率分布,并使流量樣本自適應(yīng)選擇網(wǎng)絡(luò)層進(jìn)行輸出,以避免后續(xù)網(wǎng)絡(luò)不必要的推理過程。
本文首先對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,將預(yù)處理后的流量數(shù)據(jù)作為網(wǎng)絡(luò)模型的輸入。訓(xùn)練階段先訓(xùn)練主干網(wǎng)絡(luò)和教師分類器,之后凍結(jié)主干網(wǎng)絡(luò)和教師分類器參數(shù)。利用教師分類器作為軟標(biāo)簽對(duì)各分支網(wǎng)絡(luò)的學(xué)生分類器進(jìn)行自蒸餾指導(dǎo)訓(xùn)練。測(cè)試階段依據(jù)分支網(wǎng)絡(luò)計(jì)算流量樣本的熵值,若流量樣本在該分支網(wǎng)絡(luò)的熵值小于設(shè)定閾值,則流量樣本在該分支網(wǎng)絡(luò)提前返回;否則進(jìn)入下一層網(wǎng)絡(luò)進(jìn)行判別分類,以此類推。
數(shù)據(jù)集采用公開的USTC-TFC2016 數(shù)據(jù)集,數(shù)據(jù)集的流量格式為pcap[11]。一般網(wǎng)絡(luò)流量的切分方法分為5 種:TCP 連接、流、會(huì)話、服務(wù)、主機(jī)[13]。本文使用流的切分方法,將原始網(wǎng)絡(luò)流量切分成為五元組(源IP、源端口、目的IP、目的端口、傳輸層協(xié)議)的數(shù)據(jù)包。完整預(yù)處理流程如下:首先將原始網(wǎng)絡(luò)流量切分成多個(gè)獨(dú)立的網(wǎng)絡(luò)流,提取每條網(wǎng)絡(luò)流中的前n 個(gè)數(shù)據(jù)包,同時(shí)丟棄多余數(shù)據(jù)包,若網(wǎng)絡(luò)流不足n 個(gè)數(shù)據(jù)包,則進(jìn)行填充0 處理,并進(jìn)行流量清洗或匿名化處理[14],即去掉網(wǎng)絡(luò)協(xié)議層中的IP 地址和MAC 地址;其次截取每個(gè)包中前m 個(gè)字節(jié),并丟棄包中的多余字節(jié),若不足m 個(gè)字節(jié),則進(jìn)行填充處理;接下來對(duì)于每條網(wǎng)絡(luò)流共截取n*m 個(gè)字節(jié),在此基礎(chǔ)上截取前256 個(gè)字節(jié)(保證n*m 大于256),并將每一個(gè)字節(jié)轉(zhuǎn)化為0~255之間的十進(jìn)制數(shù)值;最后添加流量的類別標(biāo)簽,對(duì)每一條數(shù)據(jù)進(jìn)行實(shí)例歸一化處理后映射為網(wǎng)絡(luò)模型的輸入[15]。
本文的網(wǎng)絡(luò)模型架構(gòu)主要由主干網(wǎng)絡(luò)與分支網(wǎng)絡(luò)構(gòu)成。如圖1 所示,主干網(wǎng)絡(luò)由6 層相同的SAC 網(wǎng)絡(luò)層及教師分類器組成,其中SAC(Self-Attention-Convd)網(wǎng)絡(luò)層是本文針對(duì)流量數(shù)據(jù)特點(diǎn)所設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)層,主要架構(gòu)為多頭自注意力層及一維卷積神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)層的總體設(shè)計(jì)思路如下:首先輸入流量序列經(jīng)過多頭自注意力機(jī)制處理后,得到具有權(quán)值分布的流量序列,然后利用一維卷積神經(jīng)網(wǎng)絡(luò)提取流量分布的顯著特征作為后續(xù)網(wǎng)絡(luò)輸入。教師分類器由反瓶頸層及多頭自注意力層構(gòu)成,反瓶頸層首先擴(kuò)張?zhí)卣飨蛄?,然后由多頭自注意力層進(jìn)行計(jì)算,再將多頭自注意力層的計(jì)算結(jié)果進(jìn)行壓縮,最后由帶有Softmax激活函數(shù)的全連接層進(jìn)行輸出分類。分支網(wǎng)絡(luò)層結(jié)構(gòu)與教師分類器一致,作為每層SAC 網(wǎng)絡(luò)的額外輸出。
Fig.1 Network architecture圖1 網(wǎng)絡(luò)架構(gòu)
網(wǎng)絡(luò)流量序列本質(zhì)為時(shí)序數(shù)據(jù),RNN、LSTM(Long Short-Term Memory)等神經(jīng)網(wǎng)絡(luò)天然契合時(shí)序類數(shù)據(jù)的特點(diǎn),因此目前大多數(shù)文獻(xiàn)選擇此類神經(jīng)網(wǎng)絡(luò)作為基準(zhǔn)網(wǎng)絡(luò)進(jìn)行流量分類。但是RNN、LSTM 神經(jīng)網(wǎng)絡(luò)需依時(shí)序?qū)α髁啃蛄羞M(jìn)行計(jì)算,對(duì)于遠(yuǎn)距離的相互依賴特征,需要經(jīng)過若干時(shí)間步驟的信息積累才能將兩者相聯(lián)系,距離越遠(yuǎn),有效捕捉的可能性越小。Transformer 的Self-Attention 機(jī)制能夠?qū)⑤斎胄蛄兄械娜我鈨蓚€(gè)特征直接進(jìn)行聯(lián)系,更有利于遠(yuǎn)距離特征捕獲。然而,考慮到本文任務(wù)是對(duì)網(wǎng)絡(luò)流量序列進(jìn)行分類,分類任務(wù)更關(guān)注序列整體信息,因此本文在Self-Attention 中引入全局節(jié)點(diǎn)S 構(gòu)建序列的全局信息。原始的Self-Attention 計(jì)算步驟如下:
該公式描述了Q、K兩個(gè)向量之間的聯(lián)系,其中d為K向量維度。假設(shè)序列長度為n,則該分布共有n2個(gè)值。由于Transformer 中引入多頭注意力機(jī)制,使得建模存在瓶頸,h為多頭數(shù)量。當(dāng)Q、K分別投影至低維時(shí),總共參數(shù)量只有2n*(d/h),公式(1)相當(dāng)于用只有2n*(d/n)的參數(shù)量逼近本身有n2值的量,變相減弱了模型表達(dá)能力。如果要增加模型表達(dá)能力,直觀的想法就是增加2n*(d/h)參數(shù)量。由于多頭機(jī)制本身確實(shí)能夠使模型在不同位置關(guān)注不同子空間的信息,如果減少h的數(shù)量則會(huì)得不償失,因此本文選擇引入全局信息S融入Q、K向量,進(jìn)而增大d以解決低秩瓶頸問題。首先對(duì)輸入的query、key、value進(jìn)行線性映射,其次取映射向量Q的高斯分布作為全局信息S,并分別與Q、K向量進(jìn)行concat 融合操作,最后利用公式(1)進(jìn)行自注意力計(jì)算。
在多頭自注意機(jī)制中,多頭數(shù)目h會(huì)影響多頭自注意力層的性能。為針對(duì)流量分類任務(wù)選取合理的多頭數(shù)目,本文進(jìn)行了h的尋優(yōu)實(shí)驗(yàn):對(duì)單層的SAC 網(wǎng)絡(luò)進(jìn)行單次訓(xùn)練,期間僅改變多頭自注意力層中的多頭數(shù)目,分別觀察網(wǎng)絡(luò)的分類準(zhǔn)確率及損失變化,實(shí)驗(yàn)結(jié)果如圖2 所示。隨著多頭數(shù)目的增加,準(zhǔn)確率不斷上升,損失隨之下降。當(dāng)多頭數(shù)目達(dá)到4 時(shí),準(zhǔn)確率趨于穩(wěn)定,繼續(xù)增加多頭數(shù)目對(duì)于網(wǎng)絡(luò)性能基本無影響,因此本文在SAC 網(wǎng)絡(luò)層中選擇多頭數(shù)目h=4。此外,在實(shí)驗(yàn)中發(fā)現(xiàn)去除scale 操作更有利于顯著特征的提取,進(jìn)而可提升模型的整體準(zhǔn)確率。
SAC 網(wǎng)絡(luò)層的另一個(gè)核心架構(gòu)為一維卷積神經(jīng)網(wǎng)絡(luò)。流量數(shù)據(jù)的實(shí)質(zhì)為一維時(shí)序數(shù)據(jù),基于以上考慮,不同于Transformer 的前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),本文使用一維卷積神經(jīng)網(wǎng)絡(luò)及最大池化操作替代前饋神經(jīng)網(wǎng)絡(luò),以更好地捕獲流量數(shù)據(jù)特征。不同超參數(shù)會(huì)影響網(wǎng)絡(luò)性能,因此本文設(shè)計(jì)了參數(shù)尋優(yōu)實(shí)驗(yàn)。一維卷積神經(jīng)網(wǎng)絡(luò)的主要參數(shù)為卷積核尺寸及特征通道數(shù)。為選取合理的超參數(shù),設(shè)計(jì)了6 種候選模塊,如表1 所示。針對(duì)參數(shù)選擇有如下說明:①流量序列經(jīng)多頭自注意層力處理后維度為256,一般核尺度為3 或5,同時(shí)為避免邊緣信息丟失,引入Padding 以保持邊界信息;②對(duì)于流量數(shù)據(jù)所包含的信息,特征面一般不超過64,否則容易陷入局部最優(yōu)狀況,因此特征面一般設(shè)為8、16、32。
Fig.2 Accuracy of different heads圖2 不同head精度
Table 1 Candidate modules表1 候選模塊
將以上設(shè)計(jì)的6 種候選模塊分別嵌入單層SAC 網(wǎng)絡(luò),采用最大池化及平均池化進(jìn)行多次對(duì)比實(shí)驗(yàn)(單次訓(xùn)練epoch=1),分別對(duì)網(wǎng)絡(luò)的分類精度及時(shí)間開銷進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果如表2 所示。對(duì)比檢測(cè)結(jié)果可發(fā)現(xiàn),使用最大池化的模塊整體效果略優(yōu)于平均池化,特征通道變化對(duì)于精度影響不大,但花費(fèi)時(shí)間提升較為明顯,同時(shí)小尺度核精度更高。綜合以上實(shí)驗(yàn)分析,最終選擇1 號(hào)候選模塊的參數(shù)作為一維卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)。
Table 2 Results of experimental tests表2 檢測(cè)結(jié)果
Transformer 中對(duì)于兩兩子層之間使用Add 和Layer-Norm 操作,且使用Gelu 作為前饋神經(jīng)網(wǎng)絡(luò)層的激活函數(shù)[16]。本文所設(shè)計(jì)網(wǎng)絡(luò)層之間的操作不同于Transformer子層之間的操作,具體說明如下:對(duì)于殘差連接,可較大程度上減緩梯度消失問題,進(jìn)而可訓(xùn)練更深層次的神經(jīng)網(wǎng)絡(luò)。本文殘差操作表示如下:
其中,α表示殘差連接權(quán)值,該參數(shù)初始化為0,后續(xù)可由網(wǎng)絡(luò)層自行學(xué)習(xí)最優(yōu)參數(shù);Xi、Xi-1分別表示網(wǎng)絡(luò)層的兩兩子層;f表示子層的函數(shù)映射。這種殘差連接方式可訓(xùn)練更深的網(wǎng)絡(luò)層,且收斂速度更快[17]。
本文在模型延遲實(shí)驗(yàn)中發(fā)現(xiàn):在設(shè)計(jì)的網(wǎng)絡(luò)層中,LayerNorm 操作以及Gelu 激活函數(shù)占據(jù)了大量推理時(shí)間。為加速網(wǎng)絡(luò)的推理計(jì)算速度,在保證網(wǎng)絡(luò)準(zhǔn)確率的前提下,采用HadamardProduct 操作替代LayerNorm,同時(shí)使用Swish 激活函數(shù)替代Gelu 激活函數(shù)。不同架構(gòu)推理時(shí)間如表3 所示,分析得到LayerNorm 的推理時(shí)間幾乎是Hadamard Product 的3 倍,Swish 激活函數(shù)的推理時(shí)間遠(yuǎn)小于Gelu 激活函數(shù)?;谝陨辖Y(jié)果,最終選擇的架構(gòu)操作為HadamardProduct,激活函數(shù)為Swish。
Table 3 Reasoning time of different architectures表3 不同架構(gòu)推理時(shí)間
分支網(wǎng)絡(luò)(學(xué)生分類器)作為每層SAC 網(wǎng)絡(luò)的額外輸出,其網(wǎng)絡(luò)架構(gòu)與教師分類器結(jié)構(gòu)保持一致。由于網(wǎng)絡(luò)流量樣本分類有難易之分,對(duì)于簡單的流量樣本,通常單一的淺層網(wǎng)絡(luò)即能進(jìn)行區(qū)分,而對(duì)于難樣本,往往需要更深層次的網(wǎng)絡(luò),如果僅使用單層次的淺層或深層網(wǎng)絡(luò)則會(huì)導(dǎo)致誤分類、網(wǎng)絡(luò)資源浪費(fèi)等后果。因此,本文設(shè)計(jì)了分支網(wǎng)絡(luò),并使用自蒸餾的訓(xùn)練方法解決該問題。分支網(wǎng)絡(luò)總體設(shè)計(jì)思路如下:首先訓(xùn)練主干網(wǎng)絡(luò)及教師分類器,然后凍結(jié)主干網(wǎng)絡(luò)及教師分類器參數(shù),利用訓(xùn)練后的教師分類器作為軟標(biāo)簽指導(dǎo)學(xué)生分類器進(jìn)行自蒸餾訓(xùn)練。本文使用KL 散度表示教師分布與學(xué)生分布的損失:
其中,pt表示教師輸出概率分布,ps表示學(xué)生輸出概率分布,N表示流量類別數(shù)目。由于主干網(wǎng)絡(luò)由6 層SAC 網(wǎng)絡(luò)堆疊而成,所以自蒸餾的總損失可表示為:
其中,L代表網(wǎng)絡(luò)層數(shù),psi代表第i個(gè)分支網(wǎng)絡(luò)的輸出概率分布。流量樣本的自適應(yīng)網(wǎng)絡(luò)層采用分支網(wǎng)絡(luò)進(jìn)行處理:通過對(duì)流量樣本的熵值進(jìn)行判別,通常樣本熵值越低,代表樣本的置信度越高,分類準(zhǔn)確率越高。若樣本的熵值低于設(shè)定閾值,則流量樣本在該分支網(wǎng)絡(luò)提前返回,否則進(jìn)入下一層網(wǎng)絡(luò)進(jìn)行判別分類。網(wǎng)絡(luò)流量樣本的熵值定義如公式(5)所示,其中P(s)為分支網(wǎng)絡(luò)的輸出概率分布,N為流量類別數(shù)目。
實(shí)驗(yàn)使用基于Python3.7 環(huán)境的Pytorch1.2.0,操作系統(tǒng)為Ubuntu18.04,并采用英偉達(dá)1050TiGPU 進(jìn)行加速訓(xùn)練。其中,Mini_batch 大小為128,Epochs 為40 輪,初始學(xué)習(xí)率為0.001,訓(xùn)練過程中采用余弦退火方式更新學(xué)習(xí)率,模型評(píng)估指標(biāo)為準(zhǔn)確率、召回率及F1指數(shù)。
實(shí)驗(yàn)使用公開的USTC-TFC2016 數(shù)據(jù)集,該數(shù)據(jù)集由中國科技大學(xué)的Wang等[11]創(chuàng)建,主要由兩部分構(gòu)成:一部分是由捷克科技大學(xué)科研人員在真實(shí)環(huán)境中采集的10 種惡意流量,另一部分源于專業(yè)網(wǎng)絡(luò)流量仿真工具IXIA BPS仿真的10 種正常流量。該數(shù)據(jù)集格式與Wireshark 抓取原始流量的pcap 格式相同,數(shù)據(jù)集總量為3.71G。表4 顯示了該數(shù)據(jù)集中部分正常流量及惡意流量的屬性信息。
Table 4 Selected traffic attributes of the dataset表4 數(shù)據(jù)集部分流量屬性
本文實(shí)驗(yàn)主要由兩部分組成:第一部分為正常流量及惡意流量檢測(cè)對(duì)比實(shí)驗(yàn),以驗(yàn)證本文模型的可行性;第二部分為分支網(wǎng)絡(luò)自適應(yīng)實(shí)驗(yàn),利用測(cè)試樣本驗(yàn)證分支網(wǎng)絡(luò)是否具備自適應(yīng)網(wǎng)絡(luò)層的功能。其他部分超參數(shù)實(shí)驗(yàn)在本文1.3、1.4小節(jié),涉及模型參數(shù)尋優(yōu)及架構(gòu)優(yōu)化。
2.2.1 流量檢測(cè)實(shí)驗(yàn)
流量檢測(cè)識(shí)別不僅在于檢測(cè)惡意流量類別,對(duì)于正常流量的檢測(cè)識(shí)別也十分必要。因此,流量檢測(cè)實(shí)驗(yàn)分為兩部分:第一部分實(shí)驗(yàn)檢測(cè)混合流量(含有正常流量及惡意流量),由此得到模型對(duì)正常流量及惡意流量的檢測(cè)率;第二部分實(shí)驗(yàn)檢測(cè)惡意流量類別。本文選取USTC-TFC2016數(shù)據(jù)集中5 類正常流量與5 類惡意流量構(gòu)成的數(shù)據(jù)集進(jìn)行第一部分實(shí)驗(yàn)。為避免模型過擬合,本文采取5 折交叉驗(yàn)證方法進(jìn)行對(duì)比實(shí)驗(yàn),兩部分檢測(cè)實(shí)驗(yàn)對(duì)比對(duì)象分別為文獻(xiàn)[12]使用的三維卷積神經(jīng)網(wǎng)絡(luò)模型與文獻(xiàn)[11]使用的一維卷積神經(jīng)網(wǎng)絡(luò)模型。值得一提的是,文獻(xiàn)[11]首次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于惡意流量分類,后續(xù)很多研究也將卷積神經(jīng)網(wǎng)絡(luò)用于流量檢測(cè)分類,所以一維卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)在該領(lǐng)域的典型算法。表5 詳細(xì)對(duì)比了文獻(xiàn)[12]及本文模型在混合流量中的檢測(cè)指標(biāo)。
Table 5 Comparison of testing indicators表5 檢測(cè)指標(biāo)對(duì)比(%)
實(shí)驗(yàn)結(jié)果如下:無論是正常流量或惡意流量檢測(cè),本文模型的表現(xiàn)均優(yōu)于文獻(xiàn)[12]的模型。其中,對(duì)于正常流量的檢測(cè)表現(xiàn),兩者相差甚微,對(duì)于惡意流量的檢測(cè)表現(xiàn)卻相差甚大。文獻(xiàn)[12]利用三維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行流量特征提取,將流量數(shù)據(jù)歸一化至0~16 字段,并對(duì)每個(gè)字節(jié)進(jìn)行one-hot 編碼,之后轉(zhuǎn)化為三維數(shù)據(jù)。但流量本質(zhì)為一維時(shí)序數(shù)據(jù),三維卷積過程并不契合流量數(shù)據(jù)的特點(diǎn),且one-hot 編碼稀疏性較大,無法捕獲流量內(nèi)部的聯(lián)系。由表5 可進(jìn)一步看出文獻(xiàn)[12]的模型在檢測(cè)Neris 及Virut兩類樣本時(shí),檢測(cè)效果遠(yuǎn)不如本文模型。
為進(jìn)一步檢測(cè)惡意流量的具體類別,本文進(jìn)行了第二部分惡意流量類別檢測(cè)。對(duì)比模型為文獻(xiàn)[11]的一維卷積神經(jīng)網(wǎng)絡(luò),表6 詳細(xì)對(duì)比了文獻(xiàn)[11]及本文模型針對(duì)10類惡意流量的檢測(cè)指標(biāo)。在深度學(xué)習(xí)分類中,難易樣本的判定是由訓(xùn)練損失(loss)決定的,難樣本的訓(xùn)練損失較簡單樣本大的多,進(jìn)而會(huì)最終影響精度、召回率等檢測(cè)指標(biāo)。反映到具體指標(biāo)上,一般可由精度、召回率進(jìn)行判斷。由表6 可以看出,文獻(xiàn)[11]使用單一結(jié)構(gòu)的淺層一維卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)Gridex 及Nsis-ay 兩類簡單樣本時(shí)效果很好,然而對(duì)于Neris、Virut 兩類難樣本的檢測(cè)表現(xiàn)不佳,精度、召回率僅為93%左右。由之前實(shí)驗(yàn)得到文獻(xiàn)[12]使用的三維卷積神經(jīng)網(wǎng)絡(luò)在檢測(cè)Neris 及Virut 兩類難樣本時(shí),檢測(cè)效果也不佳。本文主干網(wǎng)絡(luò)針對(duì)Neris、Virut 兩類難樣本的檢測(cè)效果明顯優(yōu)于文獻(xiàn)[12]及文獻(xiàn)[11]的模型,各項(xiàng)檢測(cè)指標(biāo)提升了近5 個(gè)百分點(diǎn),總體樣本檢測(cè)率高達(dá)99.9%左右。由于本文模型中自注意力機(jī)制的存在,使網(wǎng)絡(luò)能夠?qū)W習(xí)流量序列的內(nèi)部特征聯(lián)系,同時(shí)主干網(wǎng)絡(luò)中的架構(gòu)優(yōu)化大大緩解了梯度衰減問題,從而使得主干網(wǎng)絡(luò)的分類效果更佳。
Table 6 Comparison of testing indicators表6 檢測(cè)指標(biāo)對(duì)比(%)
2.2.2 分支網(wǎng)絡(luò)自適應(yīng)實(shí)驗(yàn)
本文所設(shè)計(jì)的分支網(wǎng)絡(luò)層自適應(yīng)功能是目前網(wǎng)絡(luò)流量分類中所缺乏的,通過給予流量樣本自適應(yīng)功能,使流量樣本自適應(yīng)選擇網(wǎng)絡(luò)層進(jìn)行輸出,可避免后續(xù)不必要的計(jì)算推理。為驗(yàn)證分支網(wǎng)絡(luò)是否具備自適應(yīng)功能,本文從測(cè)試集的流量樣本中隨機(jī)均勻抽樣500 個(gè)樣本(各類別樣本數(shù)量相差不大),觀察各分支網(wǎng)絡(luò)的流量樣本輸出,如圖3 展示的測(cè)試樣本在各分支網(wǎng)絡(luò)的輸出分布。從實(shí)驗(yàn)結(jié)果可以看出,幾乎90%的流量樣本在第一層分支網(wǎng)絡(luò)輸出,從而避免了后續(xù)不必要的網(wǎng)絡(luò)層計(jì)算,加快了網(wǎng)絡(luò)推理速度。與此同時(shí),實(shí)驗(yàn)中發(fā)現(xiàn)第一層分支網(wǎng)絡(luò)輸出的流量樣本中Gridex 及Nsis-ay 等簡單樣本占88%,驗(yàn)證了主干網(wǎng)絡(luò)的對(duì)比實(shí)驗(yàn)結(jié)果。其余10%的流量樣本的輸出分布在第二層及第三層分支網(wǎng)絡(luò),10%的流量樣本為Neris、Virut兩類難樣本,可見難樣本需要更深層次的網(wǎng)絡(luò)來提取特征。
Fig.3 Layer distribution of the sample圖3 樣本的層分布
本文提出一種基于自蒸餾的自適應(yīng)惡意流量分類算法,可避免人為提取流量特征,實(shí)現(xiàn)了端到端的自我學(xué)習(xí),同時(shí)具備流量樣本自適應(yīng)網(wǎng)絡(luò)的功能。在網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)中,主干網(wǎng)絡(luò)首先采用自注意力機(jī)制構(gòu)建流量的權(quán)值分布,其次利用一維卷積神經(jīng)網(wǎng)絡(luò)提取權(quán)值流量分布中的顯著特征,最后經(jīng)過教師分類器輸出流量類別。分支網(wǎng)絡(luò)架構(gòu)與主干網(wǎng)絡(luò)的教師分類器保持一致,作為每層SAC 網(wǎng)絡(luò)層的額外輸出,分支網(wǎng)絡(luò)根據(jù)每個(gè)流量樣本的熵值自適應(yīng)選擇網(wǎng)絡(luò)。同時(shí)在網(wǎng)絡(luò)架構(gòu)的優(yōu)化中,設(shè)計(jì)帶權(quán)值的殘差連接減緩網(wǎng)絡(luò)梯度衰減問題,采用Hadamard Product 及Swish 激活函數(shù)降低網(wǎng)絡(luò)的推理延遲,進(jìn)而提升網(wǎng)絡(luò)的檢測(cè)率。通過對(duì)比實(shí)驗(yàn),驗(yàn)證了本文模型較現(xiàn)有方法的優(yōu)勢(shì)。由于實(shí)際流量數(shù)據(jù)具有多源化、分布不均衡等特點(diǎn),都會(huì)給分類算法帶來挑戰(zhàn),未來將針對(duì)該問題以及更高效的深度學(xué)習(xí)模型進(jìn)行研究。