何欣峰 邢偉
摘 要:隨著計算機和網絡的發展,人們的生活已經逐漸離不開網絡了,網絡的出現為人們的生活、工作和出行帶來了極大的便利。在這種情況下,檢測網絡流量,實時偵探出網絡流量異常變得十分重要。文章針對傳統網絡異常流量檢測方法的缺陷即無法自動提取特征和無法體現時序性的問題,設計了一個基于改進RNN的網絡異常流量檢測模型。該模型可以較好地預測網絡流量并通過與真實流量做對比進行網絡流量預警。與歷史傳統方法相比,該模型減輕了人工量并且較少了網絡參數,減少了訓練時間。
關鍵詞:RNN;異常流量;檢測
1 常見的網絡異常檢測方法
隨著計算機和網絡的發展,人們的生活已經逐漸離不開網絡了,網絡的出現為人們的生活,工作和出行帶來了極大的便利[1-2]。據統計,截至2020年4月,中國網民使用網絡人數已經達9.04億,互聯網普及率已經達64.5%[3]。在這種情況下,檢測網絡流量,實時偵探出網絡流量異常變得十分重要。網絡異常分為網絡延遲、網絡掉包、網絡重發、數據篡改和網絡癱瘓等。據統計,2019年,網宿云安全平臺一共檢測并攔截了近12 178億次攻擊,其中,惡意爬蟲占據主要攻擊,超過三成來自于海外攻擊;分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊事件呈現了大流量、精準化趨勢;Web應用攻擊手段更加趨于自動化和智能化[4-5]。所謂網絡異常檢測就是通過對網絡流量數據進行分析和預測對比,檢測出網絡中是否存在攻擊。
常用的網絡異常檢測方法主要分為4類:(1)基于數值計算的網絡異常檢測方法,主要是基于閾值的異常檢測,簡單來說,就是對挑選出來的參數給定一個閾值,當值不在該閾值內時,系統就會報警,如恒定閾值檢測方法和自適應的閾值檢測方法等。該方法雖然易于實現,但是由于閾值的難確定性以及失去了時序性的考慮,所以報警準確率較低。(2)基于動態檢測的網絡異常檢測方法,主要是指觀察相鄰流量值之間的變化,當變化相差較大異常時判定為異常,系統會報警,如Amy方法等。該方法對理論要求嚴格較難且也沒有考慮時序性。(3)基于傳統機器學習的網絡異常檢測方法是指通過機器學習的方法對網絡流量數據進行研究分析然后進行異常預警服務,如最小二乘支持向量機、K-均值(K-means)算法等[6]。該方法對特征的依賴性極大,選取不同的特征對檢測的準確度影響很大。(4)基于深度學習的網絡異常檢測方法,是指通過深度學習的方法對網絡流量數據進行研究分析然后進行異常預警服務,如lstm等。該方法解決了傳統機器學習中對特征性依賴性過大的問題[7]。
本文將深度學習模型CNN,RNN與網絡異常流量檢測相結合,設計了一個基于改進RNN的網絡異常流量檢測模型。該模型可以較好地對網絡流量進行檢測與預警。
2 相關工作
2.1 網絡異常流量檢測
網絡異常流量檢測作為一種強有力的防護手段,能夠及時的發現網絡攻擊,對網絡提供重要的技術支持,近幾年來變得越來越重要。引起網絡流量異常的原因通常分為兩種[8]:(1)物理問題,特指網絡結構中出現的物理設備故障或者物理網絡設計不合理產生的網絡堵塞。物理問題造成的網絡流量異常是難以發現的,且解決必須人工。(2)安全問題,特指由于網絡攻擊行為產生的網絡流量異常,如蠕蟲病毒、DDoS攻擊等。安全問題造成的網絡流量異常是比較常見的。
常用的網絡異常檢測主要分為4類:基于數值計算的網絡異常檢測方法、基于動態檢測的網絡異常檢測方法、基于傳統機器學習的網絡異常檢測方法和基于深度學習的網絡異常檢測方法。這些方法的差異性如圖1所示。對于基于數值計算、基于動態檢測的網絡異常檢測方法都是人工設計的,不具備自主學習能力,而基于傳統機器學習和基于深度學習的網絡異常檢測方法在匹配特征上可以機器自動學習。對于基于數值計算、基于動態檢測和基于傳統機器學習的網絡異常檢測方法都使用了手工設計的程序具有主觀性,特征設計較困難,而深度學習方法卻可以較好的解決該問題。近幾年的實驗結果證明借助深度學習的獨特能力,可以克服以往方法的缺陷,進一步提高網絡異常流量檢測的能力[9-11]。
本文將深度學習算法與網絡異常流量檢測相結合,設計了一個基于改進RNN的網絡異常流量檢測方法。
2.2 時間序列模型
網絡流量是體現網絡運行狀態和性能狀態的關鍵指標,是隨時間變化的[12]。因此,可以將它砍成一個時間序列,用時間序列的分析方法去解決該問題[13]。時間序列是指按照時間順序排列、隨時間變化的且相互之間有關系的序列,而時間序列模型就是專門針對時間序列而設計的模型。針對預測變量的區別,可以分為單變量時間序列模型和多變量時間序列模型。

常用的時間序列模型包括:(1)自回歸模型(Autoregressive Model,AR),是假設數據是符合線性關系的,用回歸分析中的線性回歸方法來分析模擬。該方法需要的數據不多,利用自身的數據數列就可以進行預測,較方便,但必須預測與前期相關的序列。(2)移動平均模型(Moving Average Model,MA),其假設是指當前時刻的值是過去q階白噪聲的線性組合。該方法需要的數據不多,但是其當前時刻的數據也與歷史數據關聯性較大。(3)自回歸移動平均模型(Autoregressive Moving Average Model,ARMA),AR與MA混合而成的模型,可以解決很大一部分的實際問題。但是其當前時刻的數據也得與歷史數據有較大關聯性。
2.3 RNN
循環神經網絡(Recurrent Neural Network,RNN)的結果如圖2所示。該網絡中有一個特殊的單元即記憶單元,記憶單元是RNN的關鍵所在。RNN的記憶單元會保存隱藏層的狀態,即保存上一個時刻的狀態。然后在第t+1時刻的真實輸入是記憶單元中的內容和t+1時刻的輸入。RNN每個時刻隱藏層的輸出都會傳遞給下一時刻,因此每個時刻的網絡都會保留一定的來自之前時刻的歷史信息,并結合當前時刻的網絡狀態一并再傳給下一時刻。
RNN在理論上可以很好地解決序列數據模擬和預測問題。但是他存在梯度消失的問題,尤其是序列越長時梯度越容易消失[14-15]。

3 基于RNN的網絡異常流量檢測
3.1 總模型
本文的數據集是流量特征向量,每個特征之間不具備相關性。本文總模型結構如圖3所示,主要包含5個步驟。

步驟1:數據預處理。主要作用是將不同尺度的數據標準化映射到[0,1]。若不經過該步驟的話,不同尺度的數據對模型就會因為單位評價標準不同產生較大的影響。本文所采用的數據預處理算法如下:

步驟2:構建RNN模型。本文構造的RNN模型主要分為兩塊:CNN特征提取塊,RNN時序預測塊。
模塊1:CNN特征提取塊。本文構建CNN特征提取塊的目的是從原始特征向量中提取出與最終流量關聯性最大的特征。該模塊減少了算法復雜度和參數量。該塊的結構如圖4所示,即由卷積層、池化層和全連接層串聯而成。

模塊2:RNN時序預測塊。本文構建的RNN時序預測塊其核心如圖5所示,即當前時刻的輸出值取決于上一個時刻的狀態與當前時刻的值。第t個時刻的輸出為:

步驟3:訓練。根據最后預測到的結果與真實結果相比較計算其損失,通過反向傳播傳遞到前進行不斷的迭代訓練更新模型參數直到模型最終收斂。
步驟4:測試。當在訓練集合上模型訓練好了后,就將測試集的數據放入訓練好的模型進行預測。根據預測出來的預測值與真實值進行比較計算誤差,判斷該模型的性能。若效果好則停止整個過程,若效果不好,則將重新訓練。
步驟5:真實實時數據預警。當模型已經訓練好了之后,當真實實時數據進來時,將其輸入訓練好的模型預測下一個時刻的流量值,當下一個時刻的真實值進來時,比較其與預測值的大小,若相差較大,即預警;否則不做操作。
3.2 模型的有效性與優勢
本文使用的方法可以有效的體現網絡流量的時間序列性能。與此同時,該方法可以減少人工挑選特征的困難性,將原始的流量特征輸入模型,讓模型自主去選擇和學習各特征與流量值之間的關聯性。
4 結語
本文分析了網絡異常流量產生的原因與弊端,將深度學習模型能從原始數據中自動提取高層特征和RNN時序網絡相結合提出了一種基于改進RNN的網絡異常流量檢測模型。該模型可以較好的預測網絡流量當真實的網絡流量與預測值相差較大時,可直接判斷為異常流量進行預警。本文根據歷史模型無法體現流量時序性以及無法自動提取流量特征的問題,提出了一種較合理的網絡異常流量判斷模型。
[參考文獻]
[1]丁美美.基于主成分分析的網絡流量異常檢測研究[D].北京:北京交通大學,2017.
[2]張紅福.基于流量的網絡異常檢測方法研究[D].桂林:桂林電子科技大學,2018.
[3]中國互聯網研究中心.第45次《中國互聯網絡發展狀況統計報告》[EB/OL].(2018-08-20)[2021-11-23].http://www.cac.gov.cn/2020-04/27/c_1589535470378587.htm.
[4]杭夢鑫,陳偉,張仁杰.基于改進的一維卷積神經網絡的異常流量檢測[J].計算機應用,2021(2):433-440.
[5]孫友添.2019年中國互聯網網絡安全報告出爐[J].計算機與網絡,2020(20):16-19.
[6]張艷升,李喜旺,李丹,等.基于卷積神經網絡的工控網絡異常流量檢測[J].計算機應用,2019(5):1512-1517.
[7]蘇孟輝.基于時間序列的網絡流量檢測系統的設計與實現[D].廣州:華南理工大學,2015.
[8]PRESS C. Network anomaly detection:a machine learning perspective[J].Endocrinology,2013(45):455-463.
[9]陳冠衡,蘇金樹.基于深度神經網絡的異常流量檢測算法[J].信息網絡安全,2019(6):68-75.
[10]王軍峰.基于深度學習的網絡流量分類及異常檢測方法研究[J].締客世界,2019(1):1.
[11]黎佳玥,趙波,李想,等.基于深度學習的網絡流量異常預測方法[J].計算機工程與應用,2020(6):39-50.
[12]榮利.網絡流量的監測與控制方法的設計與實現[D].北京:北京郵電大學,2012.
[13]姜明,吳春明,張旻,等.網絡流量預測中的時間序列模型比較研究[J].電子學報,2009(11):2353-2358.
[14]蘇蘭瑩,劉桂霞,楊雅輝,等.采用結構與參數訓練相結合的RNN模型構建基因調控網絡[J].吉林大學學報(理學版),2010(2):134-140.
[15]潘麗敏,閆晗,羅森林,等.RNN模型的逐點損失估計優化方法:109961143A[P].2019.
(編輯 傅金睿)
Research on network abnormal traffic detection based on improved RNN
He Xinfeng, Xing Wei
(Jiangsu Golden Shield Detection Technology Co., Ltd., Nanjing 210042, China)
Abstract:With the development of computer and network, people’s life has been gradually inseparable from the network. The emergence of the network has brought great convenience to people’s life, work and travel. In this case, it is very important to detect network traffic and detect network traffic anomalies in real time. In this paper, aiming at the defects of traditional network abnormal traffic detection methods, that is, unable to extract features automatically and can not reflect the timing, a network abnormal traffic detection model based on improved RNN is designed. This model can better predict the network traffic and carry on the network traffic early warning by comparing with the real traffic. Compared with the traditional historical methods, this model reduces the amount of labor and network parameters, and reduces the training time.
Key words:RNN;abnormal flow;detection