楊 璇 ,鄔江興 ,趙 博
1 東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 南京 中國(guó) 211189
2 國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 鄭州 中國(guó) 450002
3 中國(guó)人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué) 鄭州 中國(guó) 450001
在當(dāng)今信息爆炸、網(wǎng)絡(luò)快速發(fā)展的時(shí)代,互聯(lián)網(wǎng)用戶日益增多,用戶數(shù)據(jù)成為虛擬資產(chǎn)廣泛存在于互聯(lián)網(wǎng)中,隨之而來的網(wǎng)絡(luò)攻擊與網(wǎng)絡(luò)威脅日益增多,且隨著時(shí)間與技術(shù)的發(fā)展,網(wǎng)絡(luò)攻擊與網(wǎng)絡(luò)威脅呈現(xiàn)出復(fù)雜化與多形態(tài)的趨勢(shì),網(wǎng)絡(luò)攻擊與網(wǎng)絡(luò)威脅已經(jīng)嚴(yán)重影響到了網(wǎng)絡(luò)空間的穩(wěn)定運(yùn)行,并且造成了不小的經(jīng)濟(jì)損失。承載著網(wǎng)絡(luò)攻擊與網(wǎng)絡(luò)威脅的流量是非正常的惡意流量,網(wǎng)絡(luò)流量異常檢測(cè)[1]作為一種有效的防護(hù)手段,是網(wǎng)絡(luò)安全防御中非常重要的一部分,能夠?qū)α髁窟M(jìn)行檢測(cè),識(shí)別出其中各類不正常的惡意流量,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)態(tài)勢(shì)的感知。
流量分類技術(shù)主要可以分為基于端口的流量分類方法、基于深度包檢測(cè)(Deep Packet Inspection,DPI)的流量分類方法、基于統(tǒng)計(jì)特征的流量分類方法以及基于深度學(xué)習(xí)的流量分類方法?;诙丝诘姆椒╗2]是基于TCP 或UDP 協(xié)議中的端口號(hào)進(jìn)行識(shí)別,在網(wǎng)絡(luò)中的流量都長(zhǎng)期使用固定端口號(hào)的情況下,才能發(fā)揮出較高的準(zhǔn)確率,但是,隨著惡意軟件使用動(dòng)態(tài)端口、隨機(jī)端口[3]、端口偽裝[4]等技術(shù)的發(fā)展,基于端口的檢測(cè)方法已經(jīng)不足以適用;基于DPI 的方法[5]通過分析數(shù)據(jù)包的包頭以及負(fù)載內(nèi)容,并使用模式匹配、簽名技術(shù)等來對(duì)流量進(jìn)行分類,雖然該類方法較之基于端口的方法準(zhǔn)確率更高,但是在面對(duì)數(shù)據(jù)特征不固定的流量時(shí),此類方法就沒有用武之地。
基于統(tǒng)計(jì)特征的方法將機(jī)器學(xué)習(xí)應(yīng)用到流量分類當(dāng)中,通過提取數(shù)據(jù)流的總字節(jié)數(shù)、數(shù)據(jù)流的持續(xù)時(shí)間、數(shù)據(jù)包間隔時(shí)間等統(tǒng)計(jì)特征,應(yīng)用隨機(jī)森林、支持向量機(jī)等機(jī)器學(xué)習(xí)算法對(duì)流量進(jìn)行識(shí)別和分類。相比于基于端口以及基于DPI 的方法,基于統(tǒng)計(jì)特征的方法可以應(yīng)用于加密流量,但是該類方法的性能不僅依賴于機(jī)器學(xué)習(xí)算法的模型以及模型參數(shù),還高度依賴于對(duì)流量數(shù)據(jù)的特征提取,不僅需要先驗(yàn)知識(shí),還耗時(shí)耗力;基于深度學(xué)習(xí)的流量識(shí)別方法將深度神經(jīng)網(wǎng)絡(luò)應(yīng)用于流量分類,深度神經(jīng)網(wǎng)絡(luò)能夠在訓(xùn)練過程中自動(dòng)提取流量數(shù)據(jù)中的可區(qū)分特征,最終對(duì)流量進(jìn)行準(zhǔn)確識(shí)別,然而在使用深度學(xué)習(xí)進(jìn)行流量分類時(shí),會(huì)對(duì)原始流量數(shù)據(jù)包進(jìn)行截?cái)嗷蛘哐a(bǔ)零操作,確保輸入到神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的數(shù)據(jù)分組保持固定長(zhǎng)度,但是截?cái)嘁约把a(bǔ)零操作會(huì)影響流量分類的精確度。
上述惡意流量分析方法面臨著幾個(gè)方面的問題,一方面是需要耗時(shí)耗力對(duì)數(shù)據(jù)進(jìn)行特征提取,在數(shù)據(jù)的各類特征均被很好提取的情況下,依舊會(huì)丟失部分信息;另一方面是對(duì)原始流量的補(bǔ)零以及截?cái)嗖僮鲿?huì)造成部分信息的丟失或者無用信息的引入。針對(duì)上述問題,本文提出了不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò)模型,使用原始數(shù)據(jù)分組進(jìn)行訓(xùn)練,通過實(shí)驗(yàn)結(jié)果證明,相比于使用相同數(shù)據(jù)集的其他工作,本文使用的模型具有更優(yōu)的性能。具體來說,本文貢獻(xiàn)如下:
(1) 本文提出了不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò)對(duì)惡意流量進(jìn)行分類,該方法能夠保留全部的流量信息,提取流量數(shù)據(jù)包中的空間特征,完成對(duì)惡意攻擊流量的精確分類;
(2) 本文在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理過程中無需進(jìn)行數(shù)據(jù)的截?cái)嗷蛘哐a(bǔ)零操作,避免了丟失部分流量信息、引入無用信息所帶來的影響;
(3) 文本使用的數(shù)據(jù)為原始數(shù)據(jù)包,無需進(jìn)行人工特征提取,省略了對(duì)網(wǎng)絡(luò)流量進(jìn)行特征提取的繁瑣過程;
(4) 本文使用CICIDS-2017[6]數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練以及測(cè)試,并通過精確率、召回率、F1-score 等性能指標(biāo)對(duì)其進(jìn)行性能評(píng)估。
本文結(jié)構(gòu)如下,第二部分介紹了流量分類的相關(guān)工作;第三部分詳細(xì)介紹了本文使用的惡意流量分類模型;第四部分詳細(xì)展示了在CICIDS-2017 數(shù)據(jù)集上進(jìn)行測(cè)試的實(shí)驗(yàn)結(jié)果并進(jìn)行了分析;最后對(duì)全文進(jìn)行了總結(jié)。
在流量識(shí)別問題的研究上,從基于端口的流量分類方法到基于深度學(xué)習(xí)的流量分類方法,學(xué)者們都做出了非常多的嘗試。在本節(jié)中,將主要回顧基于深度學(xué)習(xí)流量識(shí)別方法的主要研究以及不定長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)的研究。
基于深度學(xué)習(xí)的方法能夠在訓(xùn)練過程中自動(dòng)提取流量數(shù)據(jù)中的可區(qū)分特征,無需進(jìn)行人工特征選取,只需對(duì)流量進(jìn)行截?cái)嗷蛘哐a(bǔ)零等預(yù)處理即可。部分研究會(huì)使用單個(gè)深度學(xué)習(xí)模型進(jìn)行流量分類,單個(gè)的深度學(xué)習(xí)模型復(fù)雜度相對(duì)較低。Go J H 等人[7]使用ResNeXt[8]網(wǎng)絡(luò)進(jìn)行惡意軟件分類,將惡意軟件的二進(jìn)制執(zhí)行文件轉(zhuǎn)化成灰度圖輸入到ResNeXt 網(wǎng)絡(luò)進(jìn)行訓(xùn)練,取得了 0.9832 的準(zhǔn)確率,并且與ResNet 網(wǎng)絡(luò)[9]和Inception V4 網(wǎng)絡(luò)[10]進(jìn)行比較,在計(jì)算量相同的情況下,能達(dá)到更高的精確度;Pascanu等人[11]提出了基于動(dòng)態(tài)分析的兩層架構(gòu)的惡意軟件檢測(cè)系統(tǒng),第一層RNN 用于學(xué)習(xí)特征,第二層邏輯回歸分類器使用學(xué)習(xí)的特征進(jìn)行分類,然而誤報(bào)率較高,達(dá)到了10%;Wang 等人[12]采用基于1D-CNN的端到端的加密流量分類方法,將流量數(shù)據(jù)固定為784byte 的等長(zhǎng)數(shù)據(jù),輸入CNN 進(jìn)行分類,實(shí)驗(yàn)證明采用1D-CNN效果好于2D-CNN;Radford B J 等人[13]使用CICIDS-2017 數(shù)據(jù)集進(jìn)行惡意流量的分類研究,該文目標(biāo)是使用無監(jiān)督學(xué)習(xí)進(jìn)行未知惡意攻擊的識(shí)別,在文中使用LSTM 模型進(jìn)行建模,在端口號(hào)已知的情況下,最終準(zhǔn)確率能達(dá)到87%。
另外還有部分研究同時(shí)訓(xùn)練多個(gè)模型進(jìn)行流量分類,多個(gè)模型能夠同時(shí)學(xué)習(xí)數(shù)據(jù)的空間特征以及時(shí)序特征,但是模型復(fù)雜度會(huì)更高一些。吳迪等人[14]通過將CNN 與LSTM 結(jié)合,自動(dòng)學(xué)習(xí)數(shù)據(jù)流中的時(shí)間與空間特征,進(jìn)行惡意流量的分類,實(shí)驗(yàn)結(jié)果證明,該模型在F1-Score 上的分類準(zhǔn)確率能夠達(dá)到0.9976,但是該類結(jié)合模型復(fù)雜,運(yùn)行時(shí)間較長(zhǎng),在網(wǎng)絡(luò)流量急劇增大的情況下,不能夠達(dá)到實(shí)時(shí)檢測(cè)的效率; Zhang 等人[15]將改進(jìn)的LetNet-5 卷積神經(jīng)網(wǎng)絡(luò)與LSTM 神經(jīng)網(wǎng)絡(luò)組合成分層網(wǎng)絡(luò),其中卷積神經(jīng)網(wǎng)絡(luò)用來抓取流量的空間特征,LSTM 神經(jīng)網(wǎng)絡(luò)用來抓取流量的時(shí)間特征,基于原始數(shù)據(jù)流進(jìn)行惡意流量分類任務(wù),最終F1-Score 能達(dá)到0. 999161;Dong Y 等人[16]在文中設(shè)計(jì)了入侵檢測(cè)系統(tǒng),包括底層的數(shù)據(jù)抓取層、數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)處理計(jì)算層以及應(yīng)用層,在數(shù)據(jù)處理計(jì)算層的流量識(shí)別模型中,首先通過SAE 對(duì)數(shù)據(jù)進(jìn)行降維處理,然后使用ALEXNET 網(wǎng)絡(luò)[17]進(jìn)行分類,最終獲得了0.9432 的準(zhǔn)確率,但是該模型在適應(yīng)性方面不強(qiáng)。
雖然深度學(xué)習(xí)能夠自動(dòng)學(xué)習(xí)數(shù)據(jù)特征,但是部分研究也會(huì)基于特征數(shù)據(jù)集進(jìn)行流量分類,特征數(shù)據(jù)集的研究方法需要首先提取數(shù)據(jù)的特征。Zeng Y等人[18]分別使用了1D-CNN、LSTM、SAE 3 種深度學(xué)習(xí)算法實(shí)現(xiàn)加密流量識(shí)別以及入侵檢測(cè),并在兩類公開數(shù)據(jù)集上進(jìn)行了測(cè)試,ISCX VPN-nonVPN 數(shù)據(jù)集[19]以及ISCX 2012 IDS 數(shù)據(jù)集[20],前者用來測(cè)試算法模型對(duì)于加密流量分類的有效性,后者用來測(cè)試算法對(duì)于入侵檢測(cè)的有效性,其中最好的模型在加密流量識(shí)別上能達(dá)到99.85%的準(zhǔn)確率,在入侵檢測(cè)上能達(dá)到99.41%的準(zhǔn)確率;Prasse 等人[21]研究開發(fā)了基于LSTM 的惡意軟件檢測(cè)模型,該模型僅僅使用HTTPS 流量的握手階段信息,能夠識(shí)別網(wǎng)絡(luò)流中的大部分惡意軟件,包括以前未見過的惡意軟件;Nayyar S等人[22]提出了基于LSTM的檢測(cè)模型對(duì)DDoS 攻擊進(jìn)行檢測(cè),在CICIIDS-2017 數(shù)據(jù)集上能達(dá)到96.25%的精確率以及7 ms 預(yù)測(cè)時(shí);Torroledo 等人[23]專門進(jìn)行特征工程,分析總結(jié)了4 類40 個(gè)數(shù)據(jù)特征,用于識(shí)別惡意軟件和釣魚軟件簽名證書,實(shí)驗(yàn)中采用LSTM以及5折交叉驗(yàn)證進(jìn)行檢測(cè),結(jié)果表明具有較高的精度。
另外在不定長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)方面,2015 年He K等人[24]提出了金字塔池化(Spatial Pyramid Pooling,SPP),SPP 可以不限制輸入圖片的大小,將特征向量圖劃分為固定的區(qū)域數(shù),在每個(gè)區(qū)域進(jìn)行最大池化操作,最終生成固定長(zhǎng)度的特征向量,文獻(xiàn)表示在圖像分類上,SPP-net 相對(duì)于no SPP-net 可以提高分類精確度;而Zhang Y 等人[25]也將不定長(zhǎng)的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到了句子分類上,并對(duì)模型中卷積核大小、池化操作等的選擇進(jìn)行了實(shí)驗(yàn),以此來探尋各類參數(shù)對(duì)模型性能的具體影響;卓勤政[26]則使用上述文獻(xiàn)中的模型對(duì)網(wǎng)絡(luò)流量進(jìn)行分類,一種學(xué)習(xí)場(chǎng)景是對(duì)正常流量與惡意流量進(jìn)行二分類,另一種學(xué)習(xí)場(chǎng)景是對(duì)網(wǎng)絡(luò)流量進(jìn)行業(yè)務(wù)分類,在兩種學(xué)習(xí)場(chǎng)景下均可以達(dá)到98%的準(zhǔn)確率。
雖然現(xiàn)有的基于深度學(xué)習(xí)的分類模型均取得了不錯(cuò)的性能,但是對(duì)數(shù)據(jù)分組進(jìn)行截?cái)嗷蛘哐a(bǔ)零,在一定程度上會(huì)影響準(zhǔn)確率?;谝陨喜蛔?本課題提出了一種不定長(zhǎng)卷積神經(jīng)網(wǎng)絡(luò)ILCNN(Indefinite Length Convolutional Neural Network),使用不定長(zhǎng)的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行訓(xùn)練和流量分類,避免了補(bǔ)零或截?cái)嗖僮鲗?duì)準(zhǔn)確率帶來的影響。
因?yàn)槿B接層需要確定單元數(shù),所以卷積神經(jīng)網(wǎng)絡(luò)一般會(huì)固定輸入長(zhǎng)度。在過去將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于惡意流量分類時(shí),會(huì)對(duì)流量數(shù)據(jù)分組進(jìn)行補(bǔ)零或者截?cái)?將數(shù)據(jù)分組控制在固定的長(zhǎng)度。但是補(bǔ)零或者截?cái)喽紩?huì)對(duì)模型的訓(xùn)練產(chǎn)生一定的影響,在對(duì)數(shù)據(jù)分組進(jìn)行補(bǔ)零時(shí),補(bǔ)充的數(shù)據(jù)會(huì)參與到卷積計(jì)算中,影響到特征的抓取等,而對(duì)數(shù)據(jù)進(jìn)行截?cái)?會(huì)導(dǎo)致數(shù)據(jù)分組中的部分信息丟失,導(dǎo)致數(shù)據(jù)分組中的特征不能全部被學(xué)習(xí)到。因此,本文的工作主要是為了避免對(duì)流量數(shù)據(jù)分組進(jìn)行補(bǔ)零或者截?cái)嗨鶐淼挠绊?從而設(shè)計(jì)了不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò)。
卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn)在于一般采用原始信號(hào)直接作為網(wǎng)絡(luò)的輸入,避免了復(fù)雜的特征提取過程;卷積階段利用權(quán)值共享減少了權(quán)值的數(shù)量進(jìn)而降低了網(wǎng)絡(luò)模型的復(fù)雜度;同時(shí)池化操作利用圖像局部相關(guān)性的原理對(duì)特征圖進(jìn)行抽樣,在保留有用信息的同時(shí)有效的減少數(shù)據(jù)量。卷積神經(jīng)網(wǎng)絡(luò)當(dāng)中卷積操作對(duì)輸入的向量并沒有固定長(zhǎng)度的約束,只是全連接層對(duì)輸入向量有固定長(zhǎng)度的約束,若在全連接層前通過池化操作將不定長(zhǎng)的輸入向量轉(zhuǎn)化為定長(zhǎng)向量,那么不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò)是可行的,實(shí)驗(yàn)結(jié)果也表明了不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò)在惡意流量分類問題上是存在優(yōu)勢(shì)的。
雖然本文提出的模型不需要對(duì)流量數(shù)據(jù)分組進(jìn)行補(bǔ)零或者截?cái)?但是也需要對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的預(yù)處理,以保證數(shù)據(jù)分組以合適的格式輸入到模型中,保證模型訓(xùn)練以及使用模型進(jìn)行預(yù)測(cè)的順利進(jìn)行。關(guān)于數(shù)據(jù)預(yù)處理以及模型架構(gòu)的具體細(xì)節(jié),接下來將進(jìn)行詳細(xì)講解。
本文工作選取的是CICIDS-2017 數(shù)據(jù)集中的原始數(shù)據(jù)包,原始數(shù)據(jù)包的形式為PCAP 格式,但是PCAP 格式的原始數(shù)據(jù)包并不能直接輸入進(jìn)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí),需要經(jīng)過一系列的預(yù)處理,將數(shù)據(jù)分組處理成CSV 格式文件,通過讀取CSV 文件將數(shù)據(jù)分組轉(zhuǎn)化為Tensor。接下來將對(duì)原始數(shù)據(jù)流的預(yù)處理過程進(jìn)行詳細(xì)講解。數(shù)據(jù)的預(yù)處理流程如圖1 所示,具體講解如下:
(1) 輸入PCAP 原始數(shù)據(jù)包:在CICIDS-2017 數(shù)據(jù)集中,每一天收集到的所有數(shù)據(jù)分組為一個(gè)PCAP文件,根據(jù)PCAP 文件格式,去除掉PCAP 文件的頭部信息,開始循環(huán)讀取該文件流量樣本中的數(shù)據(jù)分組,直至讀取到最后一個(gè)數(shù)據(jù)分組;
(2) 數(shù)據(jù)分組過濾:在PCAP 文件中,不僅包含了本文當(dāng)中需要用到的惡意流量數(shù)據(jù)分組,還包括了一些其他數(shù)據(jù)分組,比如DHCP、APR 等數(shù)據(jù)包的數(shù)據(jù)分組,需要將此類數(shù)據(jù)分組進(jìn)行過濾,方便于后期模型的訓(xùn)練以及預(yù)測(cè);
(3) 數(shù)據(jù)分組信息處理:經(jīng)過過濾的數(shù)據(jù)分組均為惡意流量數(shù)據(jù)分組,但是需要去除每個(gè)數(shù)據(jù)分組中以太網(wǎng)協(xié)議的頭部信息以及IP 協(xié)議中的源和目的IP 地址,以太網(wǎng)協(xié)議的頭部信息對(duì)于數(shù)據(jù)分組的分類不能提供有用信息;在數(shù)據(jù)分組標(biāo)記中需要使用到IP 協(xié)議中的源和目的IP 地址,為了避免神經(jīng)網(wǎng)絡(luò)模型直接使用源和目的IP 地址進(jìn)行分類,刪除掉源和目的IP 地址避免影響;
(4) 標(biāo)記數(shù)據(jù)分組:在數(shù)據(jù)分組處理結(jié)束之后,需要對(duì)每個(gè)數(shù)據(jù)分組進(jìn)行攻擊類型的標(biāo)記。在CICIDS 的官方文檔中給出了每一類攻擊的具體描述(包括攻擊時(shí)間、攻擊方IP 地址、受害方的IP 地址等),可以據(jù)此對(duì)數(shù)據(jù)分組進(jìn)行標(biāo)記;
(5) 樣本類別不均衡處理:在每天的PCAP 文件經(jīng)過處理后,可以得到所有帶標(biāo)記的惡意流量數(shù)據(jù)分組。深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí),基于類別數(shù)據(jù)均衡的假設(shè)之下,但是在實(shí)際的網(wǎng)絡(luò)環(huán)境當(dāng)中,網(wǎng)絡(luò)中的各類攻擊流量分布并不均衡,因此本文將最小數(shù)據(jù)量的類別數(shù)量作為標(biāo)準(zhǔn),從各類攻擊流量中隨機(jī)選取相同數(shù)量的數(shù)據(jù)分組作為數(shù)據(jù)集,根據(jù)模型需要再分為訓(xùn)練數(shù)據(jù)集、驗(yàn)證數(shù)據(jù)集與測(cè)試數(shù)據(jù)集;
(6) 歸一化:網(wǎng)絡(luò)流量數(shù)據(jù)分組中的每一個(gè)字節(jié)由8bit 組成,大小分布于0~255,非常類似于灰度圖像中的一個(gè)像素點(diǎn),因此數(shù)據(jù)分組中的每個(gè)字節(jié)為一個(gè)像素點(diǎn),組成一個(gè)一維灰度圖像,并對(duì)每個(gè)像素點(diǎn)中的數(shù)據(jù)進(jìn)行歸一化,方便后續(xù)模型的訓(xùn)練及計(jì)算。
本文提出的不定長(zhǎng)輸入卷積神經(jīng)網(wǎng)絡(luò)ILCNN 主要包括三個(gè)部分。第一個(gè)部分是多層卷積;第二個(gè)部分是轉(zhuǎn)化層,將不定長(zhǎng)的向量轉(zhuǎn)化成定長(zhǎng)向量,包括一層卷積和一層池化,得到的結(jié)果進(jìn)行平鋪輸入到全連接層中;第三部分是多層的全連接層,最后接入softmax 分類器,完成對(duì)惡意流量的分類。網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2 所示,其中各種參數(shù)均為通過調(diào)參得到,接下來將進(jìn)行詳細(xì)講解。
第一部分是多層卷積,包括兩層不帶池化操作的卷積層,第一層卷積層濾波器大小為3,數(shù)量為64;第二層卷積層濾波器大小為4,數(shù)量為64,步長(zhǎng)均為1。輸入為經(jīng)過數(shù)據(jù)預(yù)處理的流量數(shù)據(jù)分組,經(jīng)過卷積運(yùn)算的向量再經(jīng)過激活函數(shù)Selu 進(jìn)行運(yùn)算,輸出為特征向量,Selu 運(yùn)算定義為:
其中scale和alpha為預(yù)先定義好的常數(shù),數(shù)值分別為1.05070098 和1.67326324。
第二部分是模型結(jié)構(gòu)中最重要的部分,如圖3所示,包括一層卷積和一層池化,從第三節(jié)對(duì)卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)介紹中可以知道,卷積神經(jīng)網(wǎng)絡(luò)中的卷積操作是權(quán)值共享的,需要進(jìn)行修改的權(quán)值是卷積核中的參數(shù),對(duì)輸入的向量并沒有固定長(zhǎng)度的約束,但是全連接層對(duì)輸入向量有固定長(zhǎng)度的約束,因此該部分使用全局最大池化操作將不定長(zhǎng)向量轉(zhuǎn)換成定長(zhǎng)向量。該部分模型的輸入為長(zhǎng)度為k的特征向量,通過與不同大小的卷積核(相關(guān)的卷積核參數(shù)如表1 所示)進(jìn)行卷積操作,分別能夠得到長(zhǎng)度為k–3+1、k–4+1、k–5+1 的特征向量,相比于使用單個(gè)大小的卷積核,使用多個(gè)大小的卷積核,能夠抓取流量數(shù)據(jù)分組中更多類型的特征。卷積運(yùn)算得到的結(jié)果經(jīng)過激活函數(shù)Selu 進(jìn)行運(yùn)算,輸出到池化層,池化層通過全局最大池化得到長(zhǎng)度為1 的特征向量,所有特征向量進(jìn)行連接,能夠得到長(zhǎng)度為32*3 的特征向量,該特征向量接下來將會(huì)輸入到全連接層中進(jìn)行分類。
表1 卷積核參數(shù)表Table 1 Convolution kernel parameter table
第三部分是全連接層與softmax 輸出層,全連接層神經(jīng)單元數(shù)量為32,softmax 輸出層神經(jīng)單元數(shù)量為8,使用的激活函數(shù)分別為Selu和softmax,softmax函數(shù)運(yùn)算定義為:
另外需要提到的是,在網(wǎng)絡(luò)模型的訓(xùn)練過程中使用的損失函數(shù)為交叉熵?fù)p失函數(shù)(Cross Entropy Loss function),其定義如下:
使用keras 作為深度學(xué)習(xí)庫(kù),并使用Tensorflow 2.1 GPU 版本,實(shí)現(xiàn)本文提出的卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)ILCNN。硬件平臺(tái)采用NVIDIA Tesla V100 32GB用于模型的訓(xùn)練和測(cè)試。為了驗(yàn)證網(wǎng)絡(luò)模型的性能,我們從CICIDS-2017 數(shù)據(jù)集中的原始數(shù)據(jù)包提取出適應(yīng)于深度學(xué)習(xí)的流量數(shù)據(jù)分組集,對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練及評(píng)估。
在網(wǎng)絡(luò)模型訓(xùn)練中,本文將數(shù)據(jù)集進(jìn)行隨機(jī)分配,大部分?jǐn)?shù)據(jù)繼續(xù)用于模型的訓(xùn)練,分割出小部分?jǐn)?shù)據(jù)用于對(duì)模型進(jìn)行驗(yàn)證,以得到具有更加穩(wěn)定性能的網(wǎng)絡(luò)模型。本文中將流量數(shù)據(jù)分組集劃分為三個(gè)部分,第一個(gè)部分占比數(shù)據(jù)集的70%,用于網(wǎng)絡(luò)模型的訓(xùn)練,第二個(gè)部分占比數(shù)據(jù)集的15%,用于網(wǎng)絡(luò)模型的驗(yàn)證,第三個(gè)部分占比數(shù)據(jù)集的15%,用于測(cè)試網(wǎng)絡(luò)模型的性能。另外本文使用了Early Stopping 策略,該策略是指在網(wǎng)絡(luò)模型的訓(xùn)練過程中,一直監(jiān)測(cè)驗(yàn)證集上損失函數(shù)的結(jié)果,如果在連續(xù)幾輪的訓(xùn)練過程中,驗(yàn)證集的loss沒有較明顯的變化(變化值通過自定義設(shè)置),訓(xùn)練過程就會(huì)提前停止,其目的是為了避免網(wǎng)絡(luò)模型出現(xiàn)過擬合的問題。
模型使用CICIDS-2017 數(shù)據(jù)集,該數(shù)據(jù)集是由加拿大網(wǎng)絡(luò)安全研究所提供的公開數(shù)據(jù)集,包含了良性的背景流量以及常見的攻擊流量。加拿大網(wǎng)絡(luò)安全研究所另外提供了CICIDS-2018 的數(shù)據(jù)集,該數(shù)據(jù)集與2017 數(shù)據(jù)集所包含的攻擊類型并無太大差異,且均為通過模擬攻擊對(duì)流量數(shù)據(jù)進(jìn)行捕獲,但是在研究中更多學(xué)者使用的是2017 數(shù)據(jù)集,為了方便進(jìn)行性能對(duì)比,本文使用2017 的數(shù)據(jù)集。數(shù)據(jù)集中捕獲的原始數(shù)據(jù)包是PCAP 文件,同時(shí)該數(shù)據(jù)集也提供了經(jīng)過特征提取、帶有標(biāo)記的CSV 文件,但是在本文中使用的是原始數(shù)據(jù)流,即PCAP 文件。
數(shù)據(jù)集的數(shù)據(jù)捕獲從2017 年7 月3 日周一9:00開始,一直到2017 年7 月7 日周五的17:00 結(jié)束,其中周一僅包括良性的背景流量,其余的4 天包含了各種攻擊流量,捕獲的數(shù)據(jù)集共約51.1G。該數(shù)據(jù)集捕獲的攻擊流量中包含Brute Force FTP,Brute Force SSH,DoS,Heartbleed,Web Attack,Infiltration,Botnet以及DDoS,涵蓋了基于2016 年McAfee 報(bào)告的最常見攻擊。
最好的評(píng)估流量分類模型的方法是將算法應(yīng)用到實(shí)際網(wǎng)絡(luò)環(huán)境中,但是因?yàn)樗璧拇鷥r(jià)太大,我們使用測(cè)試集上的網(wǎng)絡(luò)性能表現(xiàn)來評(píng)估網(wǎng)絡(luò)模型性能。在評(píng)估網(wǎng)絡(luò)模型性能時(shí)我們使用了以下指標(biāo),包括精確率(Precision),召回率(Recall)以及F1-score:
其中,True Positive(TP)表示檢測(cè)模型將攻擊類型正確識(shí)別為攻擊類型的樣本個(gè)數(shù),False Positive(FP)表示檢測(cè)模型將別的攻擊類型錯(cuò)誤識(shí)別為該類攻擊類型的樣本個(gè)數(shù),False Negative(FN)表示檢測(cè)模型將該類攻擊類型錯(cuò)誤識(shí)別為別的攻擊類型的樣本個(gè)數(shù)。
如第四節(jié)所述,為了找到一個(gè)最佳的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),本文依據(jù)實(shí)驗(yàn)結(jié)果,對(duì)卷積層的數(shù)量以及卷積核的大小進(jìn)行反復(fù)調(diào)整,以求得合適的超參數(shù)。由于計(jì)算硬件的限制,我們僅對(duì)超參數(shù)的部分可能值進(jìn)行了實(shí)驗(yàn),以得到在測(cè)試集上每一類攻擊類型的F1-score,以及整體測(cè)試集上的準(zhǔn)確度。由于最佳模型并沒有一個(gè)明確的定義,因此本文在對(duì)模型的選擇上考慮了F1-score、準(zhǔn)確度以及網(wǎng)絡(luò)復(fù)雜程度,但是這并不代表本文最終選擇的模型就一定是適合于惡意流量分類的最佳模型。
本文對(duì)網(wǎng)絡(luò)模型結(jié)構(gòu)中的濾波器大小以及卷積層數(shù)進(jìn)行了實(shí)驗(yàn),使用在測(cè)試集上的平均F1-score作為評(píng)價(jià)指標(biāo),圖4 對(duì)結(jié)果進(jìn)行了展示。
如圖4(a)所示是對(duì)將變長(zhǎng)向量轉(zhuǎn)換為定長(zhǎng)向量的卷積加池化層的濾波器大小進(jìn)行修改,濾波器大小分別是(3、4、5)、(4、5、6)、(5、6、7)、(6、7、8),隨著濾波器大小的增加,模型能夠具有更好的性能,濾波器大小從(3、4、5)增加到(4、5、6)時(shí),性能的提升比能夠達(dá)到7.5%,但是再繼續(xù)增加濾波器大小,性能的提升比只有0.9%左右,為了使模型具有較好的準(zhǔn)確率以及考慮到模型的復(fù)雜度,濾波器大小為4、5、6 是比較適合的參數(shù);如圖4(b)所示是對(duì)模型中第一部分卷積層層數(shù)的修改,具體的卷積層參數(shù)如表2 所示,卷積層層數(shù)的增加,使得網(wǎng)絡(luò)結(jié)構(gòu)能夠抓取更加深層次的流量特征,也使得網(wǎng)絡(luò)結(jié)構(gòu)的性能會(huì)更好,但是當(dāng)卷積層增加到一定層次后,性能的增加幾乎為零,這一方面可能與卷積層中濾波器大小選擇不當(dāng)有關(guān),但是由于計(jì)算機(jī)硬件限制本文沒有進(jìn)行更多的實(shí)驗(yàn),另一方面可能與網(wǎng)絡(luò)復(fù)雜程度增加有關(guān)。
表2 卷積層各層參數(shù)Table 2 Parameters of each layer of the convolutional layer
當(dāng)網(wǎng)絡(luò)復(fù)雜程度增加時(shí),能夠帶來更好的性能,但是當(dāng)網(wǎng)絡(luò)復(fù)雜程度持續(xù)增加時(shí),性能提升比會(huì)逐漸下降,甚至可能出現(xiàn)性能下降的現(xiàn)象,一方面是因?yàn)楫?dāng)網(wǎng)絡(luò)復(fù)雜程度增加時(shí),深度神經(jīng)網(wǎng)絡(luò)中需要訓(xùn)練的參數(shù)會(huì)增多,而在訓(xùn)練數(shù)據(jù)不變的情況下,很可能現(xiàn)有的訓(xùn)練數(shù)據(jù)不足以支持更復(fù)雜的網(wǎng)絡(luò)訓(xùn)練,第二方面是更復(fù)雜的網(wǎng)絡(luò)模型更有可能面臨梯度消失等問題,導(dǎo)致訓(xùn)練階段擬合不足。
表3 列出了本文中所得到的模型在測(cè)試集上進(jìn)行惡意流量分類所獲得的性能,該模型在惡意流量分類任務(wù)上平均F1-score 能夠達(dá)到0.9992,這表明本文中所提出的ILCNN 能夠從惡意流量的數(shù)據(jù)分組中訓(xùn)練出可區(qū)分的特征,并且能夠成功的對(duì)惡意流量的數(shù)據(jù)分組進(jìn)行分類。
表3 惡意流量分類性能Table 3 Malicious traffic classification performance
為了證明本文提出的不定長(zhǎng)輸入卷積神經(jīng)網(wǎng)絡(luò)的有效性,對(duì)神經(jīng)網(wǎng)絡(luò)模型中輸入到全連接層的特征向量進(jìn)行提取,使用t-SNE 對(duì)提取出的高維特征向量進(jìn)行降維處理,降維到二維便于可視化,從可視化圖中觀察特征向量的分布。從圖5 中可以看出,每一類惡意流量經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行提取的特征向量在降維處理后都分布在一處,不會(huì)過于分散;且不同類型惡意流量的簇之間不會(huì)相互有交集,因此可以認(rèn)為本文提出的模型能夠很好的學(xué)習(xí)惡意流量中的可區(qū)分特征,學(xué)習(xí)到的可區(qū)分特征能對(duì)不同類型的惡意流量進(jìn)行劃分,網(wǎng)絡(luò)結(jié)構(gòu)中后續(xù)的全連接層和softmax分類器可以根據(jù)這些良好的特征向量進(jìn)行惡意流量的分類。
另外使用CICIIDS-2017 數(shù)據(jù)集的工作有很多,Zhang 等人[15]將改進(jìn)的LetNet-5 卷積神經(jīng)網(wǎng)絡(luò)與LSTM 神經(jīng)網(wǎng)絡(luò)組合成分層網(wǎng)絡(luò),其中卷積神經(jīng)網(wǎng)絡(luò)用來抓取流量的空間特征,LSTM 神經(jīng)網(wǎng)絡(luò)用來抓取流量的時(shí)間特征,而ILCNN 使用不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)復(fù)雜度相對(duì)來說會(huì)更低;Zhang提出的方法是基于原始數(shù)據(jù)流進(jìn)行的惡意流量分類任務(wù),對(duì)每個(gè)數(shù)據(jù)包截取前160 個(gè)字節(jié),每個(gè)數(shù)據(jù)流選取前10 個(gè)數(shù)據(jù)包共1600 個(gè)字節(jié),處理成40*40 的二維矩陣進(jìn)行實(shí)驗(yàn),ILCNN 是基于原始數(shù)據(jù)包進(jìn)行的惡意流量分類任務(wù),無需對(duì)數(shù)據(jù)包進(jìn)行截?cái)嗷蛘哐a(bǔ)零操作,在數(shù)據(jù)預(yù)處理上會(huì)更節(jié)省步驟,也不會(huì)對(duì)數(shù)據(jù)加入一些對(duì)網(wǎng)絡(luò)訓(xùn)練無用的信息;最終實(shí)驗(yàn)結(jié)果對(duì)比如表4 所示,結(jié)果表明ILCNN 在性能上有細(xì)微的優(yōu)勢(shì),雖然召回率會(huì)略低于Zhang 提出的方法,但是準(zhǔn)確率能夠高出 1.14‰,F1-score 高出0.05‰。
表4 與其他工作的比較Table 4 Comparison with other work
Ferrag M A 等人[27]基于區(qū)塊鏈以及深度學(xué)習(xí)提出了智能電網(wǎng)能源框架,框架中使用循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了入侵檢測(cè)部分,使用的數(shù)據(jù)集包括CICIDS-2017 數(shù)據(jù)集、power system 數(shù)據(jù)集以及web robot (Bot)-Internet of Things (IoT)數(shù)據(jù)集,接下來的對(duì)比中只會(huì)討論CICIDS-2017 數(shù)據(jù)集部分。Ferrag M A 的方法使用的循環(huán)神經(jīng)網(wǎng)絡(luò)更善于抓取流量的時(shí)間特征,而本文中的卷積神經(jīng)網(wǎng)絡(luò)更善于抓取流量的空間特征;Ferrag M A 使用的是CICIDS-2017 的特征數(shù)據(jù)集,即對(duì)原始數(shù)據(jù)流經(jīng)過了特征提取,共包括79 個(gè)流量特征,而ILCNN 使用的是原始數(shù)據(jù)包,不需要經(jīng)過特征抓取,能夠省去人工進(jìn)行特征抓取的時(shí)間、精力消耗,另外也可以避免特征提取對(duì)流量分類結(jié)果的影響;最后在模型性能上,結(jié)果對(duì)比如表4 所示,表中“—”標(biāo)記表示相應(yīng)的性能指標(biāo)沒有給出,Ferrag M A 的方法在循環(huán)神經(jīng)網(wǎng)絡(luò)中的隱藏節(jié)點(diǎn)達(dá)到60 時(shí),能夠達(dá)到0.99811,ILCNN 能夠達(dá)到0.999249,高出Ferrag M A 的方法1.14‰。
本文提出了一種不定長(zhǎng)輸入的卷積神經(jīng)網(wǎng)絡(luò)ILCNN。其處理對(duì)象是原始流量數(shù)據(jù)包,不需要進(jìn)行人工特征抓取造成人工消耗,也不會(huì)造成流量信息損失從而影響分類準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明,ILCNN 可以以0.9992 的準(zhǔn)確率處理惡意流量分類任務(wù),性能優(yōu)于同樣使用CICIDS-2017 數(shù)據(jù)集的同類工作。
后續(xù)工作中,將考慮提高網(wǎng)絡(luò)模型的泛化能力,能夠檢測(cè)更多的攻擊類型,以及能夠通過小量樣本的訓(xùn)練檢測(cè)出低頻攻擊。