閆曉宇 張靚 李志敏 唐雯煒
摘? 要:為解決網(wǎng)絡(luò)應(yīng)用層流量所帶來(lái)的安全隱患與傳統(tǒng)檢測(cè)方法極大地消耗設(shè)備性能的問(wèn)題,提出一種基于自編碼器算法的網(wǎng)絡(luò)正常流量過(guò)濾的解決方案。該方案對(duì)數(shù)據(jù)流量集進(jìn)行規(guī)則預(yù)處理后,提取流行為上的統(tǒng)計(jì)特征,對(duì)提取的特征進(jìn)行自編碼器算法的模型過(guò)濾。實(shí)驗(yàn)結(jié)果表明,該方案可過(guò)濾掉大部分網(wǎng)絡(luò)中的正常流量,相較于傳統(tǒng)的流量檢測(cè)方法,整體的過(guò)濾性能顯著提升。
關(guān)鍵詞:網(wǎng)絡(luò)正常流量;自編碼器算法;CICIDS2017數(shù)據(jù)集;Wireshark
中圖分類號(hào):TP393? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2021)17-0069-04
Abstract: In order to solve the hidden danger caused by network application layer traffic and the problem that traditional detection methods greatly consume equipment performance, a solution of network normal traffic filtering based on AutoEncoder algorithm is proposed. After the rule preprocessing of the data traffic set, statistical features on traffic behavior are extracted, and the extracted features are filtered by the model of the AutoEncoder algorithm. The experimental results show that this scheme can filter out most of normal traffic in the networks. Compared with the traditional traffic detection method, its overall filtration performance is improved greatly.
Keywords: network normal traffic; AutoEncoder algorithm; CICIDS2017 data set; Wireshark
0? 引? 言
隨著網(wǎng)絡(luò)應(yīng)用的普及與多元化,針對(duì)互聯(lián)網(wǎng)應(yīng)用層的攻擊層出不窮,網(wǎng)絡(luò)安全形勢(shì)逐漸惡化[1]。然而,傳統(tǒng)安全設(shè)備在進(jìn)行安全防御時(shí),采用深度包檢測(cè)方法,需要進(jìn)行大量無(wú)價(jià)值的解包動(dòng)作,這在很大程度上會(huì)消耗安全設(shè)備的檢測(cè)性能[2],這種全流量檢測(cè)模式是造成設(shè)備處理性能瓶頸的根本原因。
為此,本文提出一種基于自編碼器算法的網(wǎng)絡(luò)正常流量過(guò)濾的解決方案,旨在構(gòu)建一個(gè)準(zhǔn)確、高效的過(guò)濾網(wǎng)絡(luò)中大部分正常流量的模型,并在校園數(shù)據(jù)流量上進(jìn)行了驗(yàn)證,最終實(shí)現(xiàn)了過(guò)濾掉網(wǎng)絡(luò)中大部分正常流量,提高網(wǎng)絡(luò)安全檢測(cè)設(shè)備過(guò)濾效率的目的。
1? 總體設(shè)計(jì)
本文所提出的方案共使用兩個(gè)數(shù)據(jù)集,第一部分是校園真實(shí)數(shù)據(jù)集,第二部分是加拿大安全研究所公開(kāi)數(shù)據(jù)集CICIDS2017數(shù)據(jù)集[3]。第一部分可以反映校園里真實(shí)的流量使用情況,用于驗(yàn)證初步過(guò)濾的效果,但由于校園數(shù)據(jù)集沒(méi)有標(biāo)簽且難以獲得大量全面的惡意攻擊數(shù)據(jù),因此,在進(jìn)行模型過(guò)濾時(shí)使用第二部分?jǐn)?shù)據(jù)集,用于驗(yàn)證模型過(guò)濾訓(xùn)練與測(cè)試的效果。方案的實(shí)施框架如圖1所示。
2? 數(shù)據(jù)預(yù)處理
2.1? 數(shù)據(jù)源
2.1.1? 校園數(shù)據(jù)
本文使用的校園數(shù)據(jù)流量是通過(guò)鏡像端口數(shù)據(jù)導(dǎo)包而獲取的某校自2021年3月29日至2021年4月4日的真實(shí)數(shù)據(jù)。如表1所示,這一周總共產(chǎn)生的數(shù)據(jù)流量為151.2 T,其中視頻流量63.85 T,下載流量18.03 T,視頻流量連同下載流量約占總數(shù)據(jù)流量的54.15%。
2.1.2? CICIDS2017數(shù)據(jù)集
CICIDS2017數(shù)據(jù)集是由通信安全機(jī)構(gòu)(CSE)與加拿大安全研究所(CIC)合作建立的,它的數(shù)據(jù)采集時(shí)間是從2017年7月3日上午9點(diǎn)開(kāi)始,到7月7日下午5點(diǎn)結(jié)束,共計(jì)五天,每天取一小段時(shí)間來(lái)進(jìn)行流量收集。該數(shù)據(jù)集包含283萬(wàn)數(shù)據(jù)流量,其中包括55萬(wàn)的暴力FTP、暴力SSH、DoS、Heartbleed、Web攻擊、滲透、Bot攻擊和DDoS八大類異常攻擊流量和228萬(wàn)正常數(shù)據(jù)流量[4]。攻擊種類豐富且數(shù)據(jù)較新,能夠較好地還原真實(shí)的網(wǎng)絡(luò)攻擊環(huán)境。
2.2? 數(shù)據(jù)分析
通過(guò)對(duì)校園安全系統(tǒng)的攻擊日志分析發(fā)現(xiàn),絕大部分網(wǎng)絡(luò)上的攻擊在發(fā)動(dòng)之前都會(huì)進(jìn)行端口掃描,所以對(duì)端口掃描的識(shí)別率是一個(gè)重要指標(biāo)。在不同種類的攻擊中,sql注入攻擊會(huì)直接泄露數(shù)據(jù),是最嚴(yán)重的攻擊類型之一。而校園中發(fā)生的Bot攻擊,絕大多數(shù)都屬于挖礦行為,實(shí)際產(chǎn)生的危害較小。
2.3? 數(shù)據(jù)預(yù)處理——初步過(guò)濾
Wireshark的功能包括顯示網(wǎng)絡(luò)封包的信息以及提供多種過(guò)濾規(guī)則進(jìn)行報(bào)文過(guò)濾[5],其部分過(guò)濾規(guī)則如圖2所示。本文利用Wireshark規(guī)則進(jìn)行初步過(guò)濾,以達(dá)到縮減模型訓(xùn)練流量數(shù)據(jù)集的目標(biāo)。
由于校園數(shù)據(jù)集中含有不攜帶網(wǎng)絡(luò)層面攻擊的流量數(shù)據(jù)包,如占比很大的視頻包[6]與下載包。因此,在理解網(wǎng)絡(luò)協(xié)議的基礎(chǔ)上,使用pyshark庫(kù)中的對(duì)應(yīng)函數(shù),利用提前設(shè)定好的Wireshark過(guò)濾規(guī)則,過(guò)濾校園流量數(shù)據(jù)包中的下載包、視頻包、重復(fù)包、錯(cuò)誤包和無(wú)用包。
對(duì)于不同種類的數(shù)據(jù)包,所適用的過(guò)濾規(guī)則不同。對(duì)于視頻包,識(shí)別Web視頻包中的content-type參數(shù)聲明,或識(shí)別流量包是否為RTSP/TRCP/RTP協(xié)議;對(duì)于下載包,識(shí)別Web下載起始包和結(jié)束包中的content-disposition參數(shù)聲明;對(duì)于重復(fù)包、錯(cuò)誤包和無(wú)用包,直接根據(jù)Wireshark已提出的過(guò)濾規(guī)則進(jìn)行過(guò)濾。
本文通過(guò)抽樣實(shí)驗(yàn)來(lái)驗(yàn)證初步過(guò)濾的可行性,從一天的流量中隨機(jī)抽取574.1 MB流量進(jìn)行初步過(guò)濾,并進(jìn)行十次重復(fù)實(shí)驗(yàn),計(jì)算過(guò)濾結(jié)果的均值。結(jié)果顯示,此步過(guò)濾掉約56%的正常流量。
2.4? 特征提取與篩選
2.4.1? 特征提取
深度流檢測(cè)(DPI)是以流為基本研究對(duì)象,從龐大的網(wǎng)絡(luò)流數(shù)據(jù)中提取流的特征(如流大小、流速率等),籍此判斷一個(gè)流是否正常的技術(shù)。深度流檢測(cè)技術(shù)由于不用對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行深挖,只需提取流特征供以后做統(tǒng)計(jì)之用,故具有良好的性能,并且可以查出一些加密的異常。本文使用CICFlowMeter工具提取流的行為上的統(tǒng)計(jì)特征,例如流中數(shù)據(jù)包的總個(gè)數(shù)、流中數(shù)據(jù)包的總大小。
CICFlowMeter是由加拿大網(wǎng)絡(luò)安全研究室基于java開(kāi)發(fā)的一個(gè)開(kāi)源工具,該工具以一個(gè)TCP流或UDP流[7]為一個(gè)單位,提取輸入文件中信息的傳輸層的一些流的統(tǒng)計(jì)信息,經(jīng)初步過(guò)濾后得到的初始數(shù)據(jù)包以pcap格式保存,將這部分流量數(shù)據(jù)導(dǎo)入CICFlowMeter工具中進(jìn)行特征提取,得到流行為上的統(tǒng)計(jì)特征。該特征是以csv的形式輸出初始數(shù)據(jù)流量文件中每條流量所包含的流行為上的共85種統(tǒng)計(jì)特征信息。
2.4.2? 特征篩選
在模型所得到的特征中,可以分為有效特征和無(wú)效特征。無(wú)效特征是對(duì)算法產(chǎn)生錯(cuò)誤影響或無(wú)意義的特征。CICIDS2017數(shù)據(jù)集是模擬真實(shí)的數(shù)據(jù)集,其攻擊方式、攻擊時(shí)間、攻擊IP地址等都不具有實(shí)際的意義,若將其作為流量的特征則會(huì)對(duì)算法的結(jié)果造成負(fù)面影響,所以本文將IP地址、端口、時(shí)間等具有指向性的特征篩除。此外,對(duì)于相關(guān)度較低的特征和nan錯(cuò)誤數(shù)據(jù)部分也做了篩除處理。最終選取68種有效特征用于模型的建立與訓(xùn)練,特征提取后的數(shù)據(jù)以csv文件的形式輸出。
3? 模型深度過(guò)濾
3.1? 自編碼器算法介紹
網(wǎng)絡(luò)正常流量過(guò)濾的目的是將流量分類為正常流量和可疑流量的一個(gè)二分類問(wèn)題,且算法模型能夠?qū)W習(xí)正常流量的特征,識(shí)別出正常流量和異常流量。
自編碼器算法(AutoEncoder算法)是一種無(wú)監(jiān)督神經(jīng)網(wǎng)絡(luò)方法,由編碼器和解碼器兩部分組成,常用于特征降維領(lǐng)域[8]。如圖3所示,自編碼器算法有著多層神經(jīng)元結(jié)構(gòu),可以對(duì)數(shù)據(jù)的特征進(jìn)行非線性的降維表示,將流量特征數(shù)據(jù)輸入,經(jīng)過(guò)編碼器的壓縮和解碼器的還原后,計(jì)算得出的原始向量與還原后向量之間的誤差平方和(SSE)作為異常分?jǐn)?shù)[9]。由于只用正常流量的數(shù)據(jù)對(duì)自編碼器算法的模型進(jìn)行訓(xùn)練和擬合,而異常流量的特征與正常流量的差異比較大,會(huì)產(chǎn)生較大的重構(gòu)誤差[10],體現(xiàn)在結(jié)果上就是異常分?jǐn)?shù)很高。
3.2? 模型訓(xùn)練與調(diào)參
在建立模型的過(guò)程中,需要進(jìn)行優(yōu)化調(diào)參,尋找最優(yōu)的模型,在最優(yōu)模型上進(jìn)行結(jié)果分析。在此步中,需要進(jìn)行調(diào)整的參數(shù)包括隱藏層的數(shù)量、每一層的神經(jīng)元數(shù)量、激活函數(shù)和L2正則化項(xiàng),使用Tensorflow庫(kù)進(jìn)行實(shí)現(xiàn)。
利用自動(dòng)超參數(shù)優(yōu)化框架optuna[11],在規(guī)定模型各個(gè)參數(shù)的選取范圍后開(kāi)始自動(dòng)尋參,并生成多條結(jié)果,如圖4所示。從尋參結(jié)果的AUC值中選取效果最優(yōu)的自編碼器算法模型,其各項(xiàng)參數(shù)為,7層隱藏層:67、60、59、58、59、60、67;激活函數(shù)為relu,L2正則項(xiàng)為4.5590082589219E-09,標(biāo)準(zhǔn)化方式為quantile,epochs為16。
3.3? 模型過(guò)濾
對(duì)特征提取后的流量數(shù)據(jù)進(jìn)行處理后輸入建立好的自編碼器算法模型,根據(jù)模型結(jié)果計(jì)算其異常分?jǐn)?shù),將其視作統(tǒng)一結(jié)果的評(píng)價(jià)標(biāo)準(zhǔn)。異常分?jǐn)?shù)越高,則認(rèn)為偏離正常流量越遠(yuǎn),存在異常的概率越大;相反,異常分?jǐn)?shù)越低,存在異常的概率就越小。
通過(guò)算法模型得到每一條流量數(shù)據(jù)的異常分?jǐn)?shù),選取合適的閾值進(jìn)行正常流量和異常流量的類別劃分。將異常分?jǐn)?shù)小于閾值的流量數(shù)據(jù)視作正常流量,大于閾值的流量數(shù)據(jù)視作可疑流量。在盡量不漏掉惡意攻擊的前提下,遵循追求盡可能高的正常流量識(shí)別率的原則,根據(jù)算法的耗時(shí)與過(guò)濾效率,選取合適的閾值對(duì)流量數(shù)據(jù)進(jìn)行二分類。
如圖5所示,正常流量與異常流量在(0.5,1.5)之間存在著一個(gè)閾值,可以很好地將二者區(qū)分開(kāi)來(lái)。在選取的閾值為1.3的情況下,自編碼器算法模型的過(guò)濾效果為:在識(shí)別出94.5%的異常流量的同時(shí),深度過(guò)濾掉90.0%的正常流量。
4? 效果分析
不同種類的惡意攻擊對(duì)于算法的適應(yīng)度是不同的。如圖5所示,橫軸代表著異常分?jǐn)?shù),縱軸代表異常分?jǐn)?shù)累積,圖像中呈現(xiàn)明顯上升趨勢(shì)的部分是數(shù)據(jù)流量的主要分布范圍。
如圖6所示,自編碼器模型對(duì)于端口掃描、DDoS攻擊、暴力破解等大部分異常流量的識(shí)別率較為突出。但是對(duì)于Web的sql注入攻擊[12]和Bot攻擊這兩種攻擊的識(shí)別率比較低。經(jīng)過(guò)分析,Bot攻擊識(shí)別率較低的原因主要是CICIDS2017數(shù)據(jù)集中的此類攻擊是通過(guò)人為的遠(yuǎn)程控制來(lái)實(shí)現(xiàn)的,與正常行為較為相似。關(guān)于Web中sql注入識(shí)別率較差的問(wèn)題,主要是因?yàn)楸疚氖褂玫氖巧疃攘鳈z測(cè),分析的是流的統(tǒng)計(jì)特征,無(wú)法提取到包內(nèi)數(shù)據(jù)進(jìn)行識(shí)別,也無(wú)法對(duì)sql注入的sql語(yǔ)句關(guān)鍵字段進(jìn)行正則匹配。因此,在自編碼器模型過(guò)濾掉大部分正常流量的同時(shí),還能做到不漏掉絕大部分的異常流量,過(guò)濾效果突出。
此外,自編碼器模型總體內(nèi)存消耗小,CPU占比低,且對(duì)9 GB的pcap流量數(shù)據(jù)進(jìn)行正常流量過(guò)濾平均耗時(shí)僅為11 s。
由于自編碼器模型只學(xué)習(xí)正常流量的特征,在實(shí)際應(yīng)用場(chǎng)景中既能識(shí)別出如前所述的端口掃描、DDoS等已知的異常流量,也能識(shí)別出與正常流量差異很大的未知類別的異常流量。自編碼器算法適用于不同的應(yīng)用場(chǎng)景,可根據(jù)實(shí)際應(yīng)用場(chǎng)景中安全系統(tǒng)或異常處理系統(tǒng)所能承受的最大數(shù)據(jù)量進(jìn)行閾值調(diào)整。本模型在CICIDS2017數(shù)據(jù)集上表現(xiàn)良好,但是它不具有普適性,這是因?yàn)閷?duì)于不同的應(yīng)用場(chǎng)景,流行為上的統(tǒng)計(jì)特征是不同的,所以需要用該場(chǎng)景下正常流量進(jìn)行重新訓(xùn)練。
5? 結(jié)? 論
將本方案應(yīng)用在校園場(chǎng)景中,在數(shù)據(jù)預(yù)處理階段初步過(guò)濾掉約56%的正常流量后,對(duì)剩余44%的流量進(jìn)行模型深度過(guò)濾,可過(guò)濾掉其中90%的正常流量,總共過(guò)濾掉95.6%的正常流量,從而使安全檢測(cè)設(shè)備在可疑流量檢測(cè)方面更好地發(fā)揮性能。
通過(guò)對(duì)校園流量數(shù)據(jù)的分析,得知校園網(wǎng)絡(luò)流量使用峰值大約是4 GB/S,對(duì)其進(jìn)行初步規(guī)則過(guò)濾,在去除掉其中大約一半的視頻和下載流量之后,開(kāi)啟多個(gè)線程,使用建立好的自編碼器算法模型進(jìn)行并行計(jì)算,是完全可以滿足對(duì)校園網(wǎng)絡(luò)流量進(jìn)行實(shí)時(shí)處理的需求的。
參考文獻(xiàn):
[1] LIU H Y,LANG B. Machine Learning and Deep Learming Methods for Intrusion Detection Systems:A Survey [J].Applied Sciences,2019,9(20):4396-4420.
[2] YEGANEH S H,EFTEKHAR M,GANJALI Y,et al. CUTE:Traffic Classification Using Terms [C]//International Conference on Computer Communications & Networks.IEEE,2012.
[3] YADAV M S,KALPANA R. Data preprocessing for intrusion detection system using encoding and normalization approaches [C]//2019 11th International Conference on Advanced Computing(ICOAC).Chennai:IEEE,2019:265-269.
[4] PANIGRAHI R,Borah S. A Detailed Analysis of CICIDS2017 Dataset for Designing Intrusion Detection Systems [EB/OL].[2021-08-02].https://www.researchgate.net/publication/329045441_A_detailed_analysis_of_CICIDS2017_dataset_for_designing_Intrusion_Detection_Systems.
[5] 趙怡.利用Wireshark實(shí)現(xiàn)數(shù)據(jù)包分析的應(yīng)用案例 [J].電腦編程技巧與維護(hù),2018(5):106-108.
[6] 鄭聞堯.Web視頻流量分析與資源管理 [D].北京:北京郵電大學(xué),2019.
[7] MCGREGOR A, HALL M, LORIER P,et al. Flow Clustering Using Machine Learning Techniques [C]//International Passive & Active Network Measurement International Workshop.DBLP,2004.
[8] 王攀,陳雪嬌.基于堆棧式自動(dòng)編碼器的加密流量識(shí)別方法 [J].計(jì)算機(jī)工程,2018,44(11):140-147+153.
[9] 黎佳玥,趙波,李想,等.基于深度學(xué)習(xí)的網(wǎng)絡(luò)流量異常預(yù)測(cè)方法 [J].計(jì)算機(jī)工程與應(yīng)用,2020,56(6):39-50.
[10] 胡寧,方蘭婷,秦中元.基于隨機(jī)森林和深度自編碼高斯混合模型的無(wú)監(jiān)督入侵檢測(cè)方法 [J].網(wǎng)絡(luò)空間安全,2020,11(8):40-44+50.
[11] 翟寶峰.SQL注入攻擊的分析與防范 [J].遼寧工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,41(3):141-143+147.
[12] 郭彩霞.基于機(jī)器學(xué)習(xí)的HTTP-DDoS攻擊檢測(cè)方法研究 [D].揚(yáng)州:揚(yáng)州大學(xué),2020.
作者簡(jiǎn)介:閆曉宇(2001—),女,漢族,陜西咸陽(yáng)人,本科在讀,研究方向:網(wǎng)絡(luò)流量分析技術(shù);張靚(2000—),女,漢族,山西晉城人,本科在讀,研究方向:網(wǎng)絡(luò)流量分析技術(shù);李志敏(1975—),女,漢族,湖北黃岡人,副教授,碩士,研究方向:大數(shù)據(jù)處理與分析;通訊作者:唐雯煒(1984—),男,漢族,杭州富陽(yáng)人,實(shí)驗(yàn)師,學(xué)士學(xué)位,研究方向:網(wǎng)絡(luò)信息安全。