郭旭東 李小敏 敬如雪 高玉琢
摘 要:針對傳統(tǒng)淺層的入侵檢測方法無法有效解決高維網絡入侵數據的問題,提出了一種基于堆疊稀疏去噪自編碼器(SSDA)網絡的入侵檢測方法。首先,利用堆疊稀疏去噪自編碼器網絡SSDA對入侵數據進行降維操作;然后,將高度抽象后的低維數據作為輸入,利用softmax分類器進行入侵檢測;最后,又在SSDA方法的基礎之上提出了一種改進模型(ISSDA),即在傳統(tǒng)稀疏去噪自編碼器的基礎上增加新的約束條件,以此來提高深度網絡對原始入侵數據的解碼能力以及模型的入侵檢測性能。實驗結果證明,ISSDA方法與SSDA方法相比,對4種類型的攻擊的檢測準確率提高了將近5%,也有效地降低了誤報率。
關鍵詞:自編碼網絡;稀疏去噪;入侵檢測;特征降維;softmax
中圖分類號: TP393
文獻標志碼:A
文章編號:1001-9081(2019)03-0769-05
Abstract: In order to solve the problem that traditional intrusion detection methods can not effectively solve instrusion data in high-dimensional networks, an intrusion detection method based on Stacked Sparse Denosing Autoencoder (SSDA) network was proposed. Firstly, a stacked sparse denoising autoencoderSSDA was used to perform dimensionality reduction on the intrusion data. Then, the highly abstracted low-dimensional data was used as input data of softmax classifier to realize intrusion detection. Finally, in order to improve original intrusion data decoding ability of the network and intrusion detection ability of the model, an Improved model based on SSDA (ISSDA) was proposed, with new constraints added to the autoencoder. The experimental results show that compared with SSDA, ISSAD's detection accuracy of four types of attacks was improved by about 5%, and the false positive rate of ISSAD was also effectively reduced.
Key words: autoencoder network;sparse denoising;intrusion detection;feature reduction;softmax
0 引言
自2015年起,深度學習逐步應用于網絡空間安全(Cyberspace Security)的研究,引起了學術界的廣泛關注。深度學習應用于網絡空間安全,主要在惡意代碼檢測和入侵檢測兩個領域[1-8]。傳統(tǒng)的機器學習方法,依賴于特征工程,無法避免人工提取特征帶來的錯誤。深度學習由于其特殊的層級結構可以自主識別攻擊特征,提高了檢測效率,降低了誤報率。Deng等[9]將深度學習模型分為:生成模型(Generative Model)、識別模型(Discriminative Model)和混合模型(Hybrid Model)。生成模型是通過學習數據的高階相關性來生成新的數據,包括循環(huán)神經網絡(Recurrent Neural Network, RNN)、深度信念網絡(Deep Belief Net, DBN)和自編碼器(AutoEncoder, AE)等,其中DBN和AE是主要的特征提取方法。自編碼網絡是Hinton在2006年提出的,該方法已經成為大數據和人工智能的一個熱潮。2014年,李春林博士等[5]將自編碼網絡模型應用到入侵檢測領域,實現(xiàn)對網絡特征的提取,通過softmax分類器對特征數據進行分類,驗證了該方法的有效性。 文獻[6]先采用AE進行降維,然后采用DBN進行分類。Niyaz等[7]首先使用1-to-n encoding方法進行特征編碼得到121維特征,然后采用稀疏自編碼進行無監(jiān)督的降維,最后通過softmax回歸來訓練分類器。高妮等[8]提出了一種基于自編碼網絡的支持向量機(Support Vector Machine, SVM)入侵檢測模型,該模型采用多層無監(jiān)督的限制玻爾茲曼機建立高維空間和低維空間的雙向映射的自編碼網絡結構,然后用基于反向傳播網絡的自編網絡進行權值微調,最后用SVM算法進行入侵識別。
傳統(tǒng)的自編碼網絡通過最小化重構誤差來逼近真實數據,僅僅考慮了輸入和輸出的整體近似性,沒有考慮輸入和輸出的局部近似性,降低了解碼數據的準確性。受文獻[10]提出融合梯度差信息的稀疏去噪自編碼網絡(Sparse Denoising AutoEncoder, Sparse DAE)用于異常行為檢測的啟發(fā),本文通過改進傳統(tǒng)的自編碼網絡,強調解碼階段的局部相似性來提高自編碼網絡對入侵數據的解碼準確性,從而提高入侵識別的性能。
1 稀疏去噪自編碼網絡
自編碼器可以看作是由兩個部分組成:一個由函數f(x)表示的編碼器和一個生成重構的解碼器g(x)。如圖1所示的自編碼網絡架構,包含一個可見層、一個隱含層和一個輸出層。從可見層到隱含層的轉換是f(x)表示的編碼過程(encoder),從隱含層到輸出層的轉換是g(x)表示的解碼過程(decoder)。自編碼經過訓練后只是簡單地嘗試將輸入復制到輸出,保留原始數據的信息,并不能確保獲得有用的特征表示。編碼和解碼過程可由以下式子表示:
實際應用中,為了減小權重的幅度,防止模型過擬合,損失函數一般要加入懲罰項,如式(6)加入系數正則項后的損失函數:
為了不讓自編碼器去嘗試逼近一個沒有什么特別用處的恒等函數,通常需要向自編碼器強加一些約束,讓它只能夠近似地復制訓練數據相似的輸入。這些約束強制模型考慮輸入數據的哪些部分需要被優(yōu)先復制,因此它往往能學習到數據的有用特征表示。自編碼神經網絡的隱藏神經元的數量較大(可能比輸入數據的維度還多)時,施加一些限制條件(如稀疏限制),那么自編碼網絡即使在隱藏神經元較多的情況下仍然可以發(fā)現(xiàn)輸入數據中的一些有趣的結構。自編碼的稀疏性要求是受生物醫(yī)學的啟發(fā),在生物神經網絡中,大量部分神經在同一時刻都是處于抑制狀態(tài),只有少量神經網絡才被激發(fā)。假設自編碼網絡中激活函數為sigmoid函數,那么當神經元的輸出接近于1的時候是激活狀態(tài),而輸出接近于0時是抑制狀態(tài)。如果激活函數是tanh函數,那么當神經元的輸出為-1時是被抑制的。如式(7)表示隱藏神經元j的平均活躍度(在訓練集上取平均):
為了使得自編碼器可以學到一個有用的結果,除了像稀疏自編碼器一樣給代價函數添加額外的懲罰項,還可以通過改變重構誤差項來達到目的。Vincent等[11]在稀疏自編碼的基礎上提出了降噪自編碼,去噪自編碼器(Denoising AutoEncoder, DAE)是通過引入一個損壞過程,得到受損數據作為輸入,并訓練來預測原始未被損壞數據作為輸出的自編碼器。DAE的訓練過程如圖2所示。從訓練樣本中采集一個訓練樣本x,經獲得編碼器的輸入,h為編碼后的結果,r為解碼后結果,即x的重構。去噪自編碼器的損失函數仍是對原始輸入x與輸出r的重構誤差L(x,r)。
2 基于堆疊稀疏去噪自編碼器的入侵檢測
堆疊稀疏去噪自編碼器(Stacked Sparse Denoising Autoencoder, SSDA)是由多個稀疏去噪自編碼堆疊組合而成,前一層的隱藏層輸出作為下一層的輸入。Hinton等[12]提出了一種新的貪婪逐層非監(jiān)督算法來初始化深度學習網絡,Vincent等[11]使用此算法來初始化基于降噪自編碼器的堆疊去噪自編碼器(Stacked Denoising Autoencoder, SDA)。SDA初始化方法的有效性在多個數據集上得到了驗證[13]。本文采用逐層貪婪算法進行無監(jiān)督預訓練,然后在網絡的最后一層添加softmax分類器,使得整個網絡成為具有分層特征提取和數據分類的多重感知器。對構建的具有分類功能的神經網絡,采用基于梯度下降的算法進行有監(jiān)督的微調,最小化預測誤差,不斷調整整個網絡的參數。
2.1 入侵檢測模型設計
基于堆疊稀疏去噪自編碼器的入侵檢測模型的架構如圖3所示,包含3個階段:數據預處理、基于堆疊稀疏去噪自編碼器的特征提取和基于softmax分類器的入侵識別。
數據處理階段:包含兩個步驟,分別是采用屬性映射的方法進行數據集的符號數值化、數據的最小最大規(guī)范化處理。詳見4.1和4.2節(jié)內容。
基于堆疊稀疏去噪自編碼器的特征提取階段:文獻[8]詳細討論了網絡深度、隱藏層節(jié)點數、輸出層節(jié)點數等對入侵檢測性能的影響。本文采用該文提出的5層深度結構,即輸入層節(jié)點數為122,第一隱藏層為110,之后的層數依次為80、50、25和5。
基于softmax的入侵識別:softmax分類器的原理及實現(xiàn)本文不作詳細闡述。基于softmax的入侵識別模型,是將特征提取模型提取的5維高度抽象數據作為輸入,進行分類檢測,從而實現(xiàn)入侵識別。
2.2 檢測模型的訓練
在堆疊稀疏去噪自編碼器的最后一層加入softmax分類器,組合成一個具有分層特征提取和分類識別的多重感知器。特征提取模塊采用逐層無監(jiān)督訓練,softmax分類器利用特征提取模塊的最后一隱藏層的輸出和原始數據標簽作為輸入進行有監(jiān)督的訓練。最終將逐層訓練和有監(jiān)督訓練得到的參數作為整個深度網絡的初始參數,然后對整個網絡采用有監(jiān)督的方式進行微調。這個逐層貪婪過程被證明比隨機初始化權值更能產生一個較好的局部極值,在某些任務上達到了較好的泛化性能。
基于堆疊稀疏去噪自編碼器的入侵檢測模型的訓練算法如下:
輸入:經過高維映射和歸一化的122維數據x,加入一定噪聲比例ρ的數據。
輸出:網絡最優(yōu)參數值θ1、θ2、θ3、θ4、θ5和θ6。
步驟1 基于堆疊稀疏去噪自編碼器的特征提取模型,網絡結構為122-110-80-50-25-5。將訓練數據作為輸入,利用圖2 表示的訓練過程采用基于梯度下降的優(yōu)化方法,最小化式(10)進行訓練,得到第一層的網絡參數θ1,最后利用原始數據x和參數θ1計算第一隱藏層輸出h1。
步驟2 將步驟1得到的輸出h1加入一定噪聲比例ρ后得到的數據作為第二層的輸入,然后同樣訓練方法進行訓練,得到第二層的網絡參數θ2,并利用h1和θ2計算第二隱藏層輸出h2。
步驟3 重復步驟1步驟2,逐層訓練得到權值參數θ1、θ2、θ3、θ4和θ5。然后利用h5和原始數據標簽作為softmax分類器的輸入,對分類器進行有監(jiān)督的訓練從而得到參數θ6。
步驟4 將上述步驟得到的權值參數θ1~θ6作為整個網絡的初始參數,即預訓練此深度網絡,并將原始未添加噪聲的訓練數據作為輸入,計算預測值與目標的損失函數,利用各種優(yōu)化方法計算最小值附近的參數,作為整個網絡的最優(yōu)參數。
3 基于改進的堆疊稀疏去噪自編碼器網絡入侵檢測(Improved Stacked Sparse Denoising Autoencoder, ISSDA)基于ISSDA的入侵檢測基于改進堆疊稀疏去噪自編碼器網絡入侵檢測基于ISSDA的網絡入侵檢測
網絡攻擊行為往往伴隨著多個緊密聯(lián)系的入侵特征信息,如本文采用的KDD '99[14]數據集中41項特征屬性,前9項屬性包含了一些連接的基本屬性,10~22為內容特征,23~31為基于時間的網絡流量統(tǒng)計特征,最后10項為基于主機的網絡流量統(tǒng)計特征。基于稀疏DAE自編碼網絡的對入侵特征進行抽取時,沒有充分考慮到屬性特征間特有的關系。本文提出一種改進的稀疏DAE改進的堆疊稀疏去噪自編碼器(Improved Stacked Sparse Denoising Autoencoder, ISSDA)網絡,將反映屬性特征關系的信息項作為懲罰項加入到損失函數中提高自編碼網絡的解碼性能。設D=Ax為原始數據x的特征關系矩陣,D′=Ar為輸出數據r的特征關系矩陣,A本質為表達線性操作的矩陣,所以
為特征關系信息項,此時的代價函數由式(10)變?yōu)椋?/p>
如圖4所示,本文提出的基于改進的堆疊稀疏去噪自編碼模型較原來的堆疊稀疏去噪自編碼模型不同之處在于,堆疊稀疏去噪自編碼網絡的第一層代價函數為式(12),其余幾層的代價函數仍為式(10)。其預訓練訓練方式仍采用無監(jiān)督的逐層貪婪訓練和有監(jiān)督的整體網絡微調。
4 實驗分析
4.1 實驗數據
本文采用KDD '99數據集作為模型原始數據,KDD '99數據集是目前入侵檢測領域比較權威的測試數據集,它是由麻省理工學院林肯(Lincon)實驗室模擬美國空軍局域網環(huán)境而建立的網絡流量測試數據集。本文采用的10%的KDD '99數據集包含494021個實例訓練數據和311029個測試數據。主要包括四種類型的攻擊:拒絕服務攻擊(Denial of Service, DoS)、遠程到本地攻擊(Remote to Local, R2L)、未經授權且試圖獲取超級用戶個root權限訪問(User to Root, U2R)以及端口監(jiān)視或掃描(Probe)。數據集的每條數據有42項屬性記錄,其中前41個為屬性特征,最后一個為類標簽屬性。41個屬性特征中包含38個數字屬性特征和3個符號型數據特征。
為了驗證本文提出的改進方法的有效性,隨機選擇三組數據樣本集,如表1。
4.2 數據預處理
本文采用高維映射方法進行符號數值化處理。符號型屬性特征protocol_type含有3種類型:tcp、udp和icmp,將其分別映射成[1,0,0],[0,1,0]和[0,0,1]。符號型屬性特征service有70種符號取值,flag有11種符號取值,可以通過建立符號值與其相應數值的映射關系從而實現(xiàn)數值化。照此方式進行數值化,將原本的41維特征數據變換為122維,增加特征的可識別性。
為了消除各屬性之間的量綱影響,還需作歸一化處理。本文采用最大最小化規(guī)范對訓練數據和測試數據進行歸一化處理,即將數據歸一化到[0,1]范圍。公式如下:
4.3 實驗結果分析
為驗證本文提出的改進模型的有效性,為此設計了以下實驗:
實驗1 模型改進前后的性能對比分析。
實驗2 分析改進模型較原始模型對入侵檢測性能的影響,以及和其他模型的對比。
4.3.1 模型的性能比較
改進的稀疏去噪自編碼器模型是通過加入新的約束項來提高網絡的解碼性能。在入侵檢測的應用中,本文加入屬性特性信息約束項,提高原始入侵數據與重構數據的局部近似性,從而盡可能得到更加有效的高層特征抽象表示?;诟倪M的堆疊稀疏去砸自編碼器的特征提取模型,是將改進后的稀疏去噪自編碼器作為堆疊模型的第一層,來得到更加有效首次約簡特征。第一層隱藏層的表達能力決定了上層的特征抽取能力。神經元節(jié)點數的增多會提高網絡的非線性逼近能力,但也會降低網絡的泛化能力[15]。文獻[8]討論了第一層隱藏層節(jié)點數對入侵識別性能的影響,本文采用該論文提出的第一層最優(yōu)節(jié)點數來分析比較網絡改進前后的解碼效果。如圖5為改進后的稀疏DAE與稀疏DAE損失值達到收斂后的對比分析。
如表2所示,表中對比分析了基于ISSDA的入侵檢測模型和基于SSDA入侵檢測模型的入侵識別性能。
由圖5和表2可以看出,改進的稀疏去噪自編碼器在算法達到收斂時損失值低于稀疏去噪自編碼器。由三組數據的分類準確率(Accuracy,AC)和檢測率(Detection Rate,DR)可以看出,基于改進的稀疏去噪自編碼器的檢測模型(ISSDA)相對于基于稀疏去噪自編碼器的檢測模型(SSDA)在不同數據集上整體的檢測性能都有所提高,這也證明了改進方法的有效性。
4.3.2 與其他模型比較
文獻[16]已經驗證了基于約簡后的特征子集的分類器整體性能高于基于所有特征集的分類器。所以本文的實驗分析只對基于特征降維算法的入侵檢測模型作了分析比較,如表3所示,本文設置實驗在數據集S1上分析比較了不同分類模型對于不同攻擊類別的檢測率DR和誤報率(False Alarm Rate, FAR)。實驗結果表示本文提出的基于ISSDA的改進模型的分類性能優(yōu)于基于SSDA的模型,對4種類型的攻擊的檢測準確率整體提升了將近5%,誤報率也明顯降低。與AN5-SVM-5模型[8]相比,在R2L、U2L和Probe攻擊類型上性能較優(yōu)于該模型,而在Normal和DoS攻擊類別上基本持平。
基于特征降維算法的入侵檢測方法在準確率和誤報率上有所提升和下降,但是在考慮模型的檢測率的同時,也必須要考慮模型的訓練時間和測試時間。所以,本文進行了不同模型的訓練時間和測試時間的對比分析實驗。
如圖6所示,其中訓練時間是特征降維模塊的訓練時間,ISSDA方法相對SSDA方法額外增加了屬性特征信息的計算環(huán)節(jié)和約束,所以ISSDA方法的三組數據集的訓練時間均高于SSDA方法。與其他兩種檢測方法相比,ISSDA方法與AN5-SVM-5方法的訓練時間沒有特別顯著的差異,但是卻要低于KPCA-GA-SVM方法。
圖7所示的是不同分類方法在測試數據集上進行攻擊檢測的消耗時間的對比。從圖中可以看出,ISSDA方法檢測時間高于SSDA方法和AN5-SVM-5方法,低于KCPA-GA-SVM方法。
綜上,雖然ISSDA訓練時間和測試時間有所上升,但是相對于改進方法帶來的檢測準確率的提升和誤報率的下降,模型的整體性能還是有著不可忽視的提升。
5 結語
本文首先介紹了基于堆疊稀疏去噪自編碼網絡的入侵檢測模型的原理及模型的設計實現(xiàn)。其次,又針對利用傳統(tǒng)的自編碼器進行高維網絡攻擊數據的降維操作,并不能有效學習到網絡攻擊數據屬性特征間的關系信息的問題,提出了一種改進方法,即在傳統(tǒng)的稀疏去噪自編碼網絡的基礎上,通過加入新的約束項,盡可能提高網絡的局部近似性的學習能力,提高網絡的解碼能力,從而提高模型的入侵檢測性能。實驗結果證明加入特征信息約束項后的自編碼器相對于原始自編碼提高了整個模型的入侵檢測性能,同時也提供了一種研究思路,即如何能提高高維網絡入侵數據的降維準確性。最后,本文提出的檢測方法屬于監(jiān)督學習的范疇,而實際中出現(xiàn)的新型未知攻擊,在沒有其標記數據的情況下,本文提出的檢測方法不具有檢測該攻擊的能力,所以這也正是今后進一步的研究方向之一。
參考文獻 (References)
[1] PASCANU R, STOKES J W, SANOSSIAN H, et al. Malware classification with recurrent networks [C]// Proceedings of the 2015 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ: IEEE, 2015: 1916-1920.
[2] WANG X, YIU S M. A multi-task learning model for malware classification with useful file access pattern from API call sequence [EB/OL]. [2018-07-04]. https://arxiv.org/pdf/1610.05945.
[3] RHODE M, BURNAP P, JONES K. Early-stage malware prediction using recurrent neural networks [EB/OL]. [2018-07-04]. https://arxiv.org/pdf/1708.03513.
[4] YUAN Z, LU Y Q, WANG Z, et al. Droid-Sec: deep learning in android malware detection [J]. ACM SIGCOMM Computer Communication Review, 2014, 44(4): 371-372.
[5] 李春林,黃月江,王宏,等. 一種基于深度學習的網絡入侵檢測方法[J].信息安全與通信保密,2014(10):68-71.(LI C L, HUANG Y J, WANG H, et al. Detection of network intrusion based on deep learning [J]. Information Security and Communications Privacy, 2014(10): 68-71.)
[6] LI Y, MA R, JIAO R. A hybrid malicious code detection method based on deep learning [J]. International Journal of Software Engineering and Its Applications, 2015, 9(5): 205-216.
[7] JAVAID A, NIYAZ Q, SUN W, et al. A deep learning approach for network intrusion detection system [C]// Proceedings of the 9th EAI International Conference on Bio-inspired Information and Communications Technologies. New York: BICT. 2016: 21-26.
[8] 高妮,高嶺,賀毅岳,等. 基于自編碼網絡特征降維的輕量級入侵檢測模型[J].電子學報,2017,45(3):730-739.(GAO N, GAO L, HE Y Y, et al. A lightweight intrusion detection model based on autoencoder network with feature reduction [J]. Acta Electronica Sinica, 2017,45(3):730-739.)
[9] DENG L, YU D. Deep learning: methods and applications [J]. Foundations and Trends in Signal Processing, 2014, 7(3/4): 197-387.
[10] 袁靜,章毓晉.融合梯度信息的稀疏去噪自編碼網絡在異常行為檢測中的應用[J].自動化學報,2017,43(4):604-610.(YUAN J, ZHANG Y J. Application of sparse denoising auto encoder network with gradient difference information for abnormal action detection[J]. Acta Automatica Sinica, 2017, 43(3): 604-610.)
[11] DENG L, YU D. Deep learning: methods and applications [J]. Foundations and Trends in Signal Processing, 2014, 7(3/4): 197-387.【和9一樣?
[11] VINCENT P, LAROCHELLE H, BENGIO Y, et al. Extracting and composing robust features with denoising autoencoders [C]// Proceedings of the 25th International Conference on Machine Learning. New York:ACM, 2008: 1096-1103.
[12] HINTON G,OSINDERO S,TEH Y W. A fast learning algorithm for deep belief nets [J]. Neural Computation, 2006,18(7): 1527-1554.
[13] BENGIO Y, LAMBLIN P, POPOVICI D, et al. Greedy layer-wise training of deep networks [C]// Proceedings of the 19th International Conference on Neural Information Processing Systems. Cambridge, MA: MIT Press, 2006: 153-160.
[14] University of California. KDD Cup 99[DB/OL]. [2018-07-18]. http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.
[15] LAROCHELLE H, BENGIO Y, LOURADOUR J, et al. Exploring strategies for training deep neural networks [J]. Journal of Machine Learning Research, 2009, 10(6): 1-40.
[16] KUANG F,XU W,ZHANG S. A novel hybrid KPCA and SVM with GA model for intrusion detection [J]. Applied Soft Computing, 2014, 18(4): 178-184.