張榮葳
摘要:計算機網(wǎng)絡在給人們帶來極大便利的同時也存在著各種攻擊隱患,因此需要完善的異常檢測系統(tǒng)消除這些隱患。針對傳統(tǒng)的網(wǎng)絡異常檢測方法檢測效率低下、檢測率較低的問題,該文在深度神經(jīng)網(wǎng)絡的基礎上通過添加Simhash數(shù)據(jù)處理的方法構建了一種新的網(wǎng)絡異常檢測模型。實驗結果表明,相較于傳統(tǒng)的模型,新模型在保持神經(jīng)網(wǎng)絡使用相同長度輸入的條件下獲得更高的檢測率。
關鍵詞:網(wǎng)絡異常檢測;網(wǎng)絡安全;深度學習;人工神經(jīng)網(wǎng)絡;Simhash
中圖分類號:TP393.08? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)18-0224-03
Abstract: Computer network brings great convenience to people, but there are also various hidden dangers of attacks. Therefore, a perfect anomaly detection system is needed to eliminate these hidden dangers. Aiming at the problem of low efficiency and low detection rate of traditional network anomaly detection methods, a new network anomaly detection model is constructed by adding Simhash data processing method on the basis of deep neural network. The experimental results show that compared with the traditional model, the new model achieves higher detection rate while maintaining the same length input of the neural network.
Key words: network anomaly detection; network security; deep learning; artificial neural network; Simhash
1 引言
隨著計算機網(wǎng)絡技術的高速發(fā)展,互聯(lián)網(wǎng)已經(jīng)成為了人們生活中不可或缺的一部分。然而,由于其開放性,網(wǎng)絡中大量存在的各種攻擊行為已然成為了各聯(lián)網(wǎng)單位的心頭之患。在我國,眾多的科研項目涉及到國家秘密,涉密網(wǎng)絡中存有大量的涉密資料。由于內(nèi)部人員的誤操作或者是惡意竊取所導致的涉密文件失密或泄密可能對各科研院所乃至我國科研的相關領域造成不可估量的損失。縱然國家與各保密單位擁有嚴格的保密制度與紀律,但技術上的解決手段仍很有必要。
對于計算機網(wǎng)絡,網(wǎng)絡中各節(jié)點間的數(shù)據(jù)流量反映著網(wǎng)絡的總體情況與態(tài)勢。針對網(wǎng)絡流量進行分析、提取流量特征,并對得到的特征進行計算,最終就可以判斷網(wǎng)絡中是否存在異常行為。使用此種算法對網(wǎng)絡進行分析的方法被稱為異常檢測系統(tǒng)或基于異常的入侵監(jiān)測系統(tǒng)。與傳統(tǒng)的基于固定特征的檢測系統(tǒng)相比,異常檢測系統(tǒng)更易于檢測出未知的或是新的攻擊。但是,其檢測效果高度依賴于特征的選擇與檢測流程的設計,過于復雜的檢測算法導致檢測效率低下,其高昂的誤報率更是限制了異常檢測系統(tǒng)的應用場景。
為了解決以上的問題,本文以提升檢測效率為目標,設計了一種基于 Simhash 與神經(jīng)網(wǎng)絡的異常檢測算法模型。該模型將在保持檢測率基本不變的前提下大幅縮短計算時間,使其能夠在適用于數(shù)據(jù)流量更大的大型網(wǎng)絡之中。
2 模型中使用的有關算法介紹
2.1 Simhash算法
為了解決海量數(shù)據(jù)的去重與索引的問題,Google 公司雇員 Gurmeet Singh Manku 等人提出了一種局部敏感哈希(locality sensitive hash)算法[1]。其主要思想是將原先高維度的特征向量空間映射至低維度的特征向量空間,并盡力保證在原空間內(nèi)相近的兩個節(jié)點在新的空間內(nèi)距離也相近。這樣就可以通過比較生成的特征向量間的漢明距離來判斷原文章之間的相似程度。
Simhash算法的流程如下:
(1)根據(jù)輸入數(shù)據(jù)的內(nèi)在屬性,將其提取成為 N 個特征向量;
(2)對每一個特征向量分別使用傳統(tǒng)的哈希計算方法計算其哈希值;
(3)對得到的 N 個哈希值按位豎向累加。若哈希值中的某位為0則加 -1,若為1則加 1,最終得到每一位上的權重值;
(4)對于得到的權重值,若該位的值為負數(shù)則對應的哈希值中該位的值為0,否則為 1.
使用 Simhash 算法有以下兩個優(yōu)點。一是傳統(tǒng)的檢測方法僅取網(wǎng)絡數(shù)據(jù)包的前一部分字節(jié),對于特征位于會話后部的攻擊檢測效果較弱。使用局部敏感的 Simhash 算法,可以在盡可能保留數(shù)據(jù)相似特征的前提下將會話數(shù)據(jù)縮減到可以計算的范圍內(nèi),節(jié)約寶貴的計算資源。二是經(jīng)前人的研究,判別異常流量的過程中網(wǎng)絡數(shù)據(jù)包中網(wǎng)絡協(xié)議的部分所起到的作用要比數(shù)據(jù)包中上層數(shù)據(jù)的部分大,故使用 Simhash 算法可以將進行判別的計算資源更優(yōu)先地集中在數(shù)據(jù)包頭部的協(xié)議部分,從而以更小的輸入獲得更高的檢測率。
2.2 卷積神經(jīng)網(wǎng)絡與長短期記憶網(wǎng)絡
近些年來,隨著科技的不斷發(fā)展,獲得單位算力所需的價格不斷降低,人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)又重新成了機器學習領域的研究熱點。人工神經(jīng)網(wǎng)絡通過數(shù)學計算的方式模擬神經(jīng)網(wǎng)絡中神經(jīng)元間的興奮、抑制作用,從而實現(xiàn)網(wǎng)絡整體對某一特定特征的有效識別。多層神經(jīng)網(wǎng)絡通常由輸入層、隱藏層以及輸出層構成,每一層的神經(jīng)元節(jié)點接受前一層節(jié)點的輸入,并對其做非線性運算后得到的值傳遞給下一層。
相比于傳統(tǒng)的人工神經(jīng)網(wǎng)絡,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)利用某些特征識別任務中特征的平移不變性,在網(wǎng)絡中引入了卷積層和下采樣層。卷積層使用各種不同的卷積核對前一層網(wǎng)絡中的對應區(qū)域進行卷積運算,而下采樣層則對卷積層得到結果通過取平均值或者最大值的方式進行規(guī)整。與傳統(tǒng)的全連接網(wǎng)絡相比,卷積層和下采樣層的引入大大地簡化了網(wǎng)絡的復雜度,減少了所需的計算量。因此,卷積神經(jīng)網(wǎng)絡在醫(yī)學圖像識別[2]、語音識別[3]等領域得到了廣泛的應用,在網(wǎng)絡異常檢測[4-5]領域中也得到了較為充分的研究。
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)是一種用于處理有一定序列性的數(shù)據(jù)的神經(jīng)網(wǎng)絡[6]。在循環(huán)神經(jīng)網(wǎng)絡中,特定的隱藏層除接受前一層提供的輸入外,也將網(wǎng)絡接受前一時刻數(shù)據(jù)時此節(jié)點的值作為輸入。這樣通過在序列中每個時間點共享同樣的參數(shù),模型可以獲得更為強大的泛化能力。然而在某些任務中,傳統(tǒng)的RNN存在梯度消失與梯度爆炸的問題。為了解決此問題,Hochreiter和Schmidhuber在1997年引入了長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡,其通過引入“遺忘門”允許網(wǎng)絡在較長的時間范圍內(nèi)累積信息,并且累積的時間范圍可以動態(tài)改變。由于其優(yōu)良的檢測效果,LSTM廣泛應用于自然語言處理[7]等領域中。
3 實驗所用到的網(wǎng)絡模型
本實驗中所采用的神經(jīng)網(wǎng)絡架構如下圖1中所示。
如上圖,首先針對一個網(wǎng)絡會話中的每一個數(shù)據(jù)包分別進行處理。首先,根據(jù)數(shù)據(jù)包本身的特質(zhì)(即網(wǎng)絡協(xié)議棧的分層結構)將數(shù)據(jù)包分為頭部與載荷兩部分。然后再對載荷部分計算Simhash哈希值,以求不在損失過多信息的前提下將載荷部分歸一化為定長的輸入向量。
對于神經(jīng)網(wǎng)絡模型,本實驗選取了能夠同時提取時空兩種維度上信息的HAST-II模型[8]。該模型首先將輸入的數(shù)據(jù)進行獨熱編碼(One-Hot Encoding),轉換為元素只為零或一的二維稀疏矩陣。此后再將此矩陣作為二維圖像分別輸入兩個不同的擁有兩個隱層的卷積神經(jīng)網(wǎng)絡之中,再將得到的輸出合并,作為單個數(shù)據(jù)包的特征向量。
通常一個網(wǎng)絡會話是由多個數(shù)據(jù)包組成。模型對會話中的前幾個數(shù)據(jù)包進行上述處理后,將得到的特征向量依照網(wǎng)絡中的時間順序作為一段時序序列傳遞給LSTM網(wǎng)絡處理。最終,得到的結果即為該會話對應的特征向量。
4 實驗數(shù)據(jù)
數(shù)據(jù)集是對網(wǎng)絡模型進行訓練以及測試的數(shù)據(jù)樣本,對異常檢測模型的實用性影響很大。在網(wǎng)絡安全的研究領域有許多公開的數(shù)據(jù)集,譬如DARPA1998數(shù)據(jù)集、NSL-KDD數(shù)據(jù)集以及Kyoto2009數(shù)據(jù)集等。這些數(shù)據(jù)集往往形成時間較早,無法反映目前互聯(lián)網(wǎng)中存在的最新的威脅。因此,本文選取了較新的ISCX2012數(shù)據(jù)集。
2012年,位于加拿大的新布倫瑞克大學信息安全中心(Information Security Centre of Excellence,ISCX)發(fā)布了名為ISCX2012的網(wǎng)絡異常檢測數(shù)據(jù)集[9]。該數(shù)據(jù)集包含了七天時間跨度內(nèi)的所有原始數(shù)據(jù)流量。流量中包含正常流量以及四種不同種類的攻擊流量,分別為暴力SSH攻擊、滲透攻擊、HTTPDoS攻擊以及DDoS攻擊。將ISCX2012數(shù)據(jù)集中原始流量數(shù)據(jù)包組織成網(wǎng)絡會話,再與數(shù)據(jù)集中的標簽一一對應后得到的統(tǒng)計結果如下表所示。
5 實驗結果及分析
本實驗以Keras 2.2.2以及Tensorflow 1.12為主要的軟件環(huán)境,操作系統(tǒng)則為Arch Linux。硬件環(huán)境上,實驗運行在具有16GB內(nèi)存、Intel Core i5-8500 CPU以及NVIDIA GeForce GTX 1070 Ti 顯卡的臺式機上。此次實驗使用分批訓練的方式,每個批次訓練128個樣本;全部數(shù)據(jù)集訓練15輪。
然而在頭部大于35字節(jié)之后,添加Simhash與否并不會對模型的檢測率造成顯著的差異,各模型的檢測率均在99.60%上下浮動??梢哉J為在包頭部達到一定長度之后其自身就已經(jīng)包含分類所需的絕大多數(shù)信息,此時再添加Simhash僅僅是在浪費有限的計算資源。
6 總結
本文通過將Simhash與神經(jīng)網(wǎng)絡相結合,設計了一種新型的網(wǎng)絡模型。在數(shù)據(jù)量較小時,該模型可以大幅提高網(wǎng)絡中異常流量的檢測率。關于神經(jīng)網(wǎng)絡的研究前景廣闊,今后的研究工作將進一步探索不同網(wǎng)絡模型在網(wǎng)絡異常檢測中的應用,以求能夠更為快速準確地檢測網(wǎng)絡中可能存在的威脅。
參考文獻:
[1] Manku G S, Jain A, Das Sarma A. Detecting Near-duplicates for Web Crawling[C]//Proceedings of the 16th International Conference on World Wide Web. ACM,2007:141-149.
[2] 王巖.卷積神經(jīng)網(wǎng)絡在肝穿刺圖像分類中的應用[J].電腦知識與技術,2018,14(25):203-205.
[3] 楊洋,汪毓鐸.基于改進卷積神經(jīng)網(wǎng)絡算法的語音識別[J].應用聲學,2018,37(06):940-946.
[4] Vinayakumar R, Soman K P, Poornachandran P. Applying convolutional neural network for network intrusion detection[C]//2017 International Conference on Advances in Computing, Communications and Informatics (ICACCI). IEEE, 2017: 1222-1228.
[5] 劉月峰,王成,張亞斌,苑江浩.面向網(wǎng)絡入侵檢測系統(tǒng)的深度卷積神經(jīng)網(wǎng)絡模型[J].內(nèi)蒙古科技大學學報,2018,37(01):59-64.
[6] 楊麗,吳雨茜,王俊麗,劉義理.循環(huán)神經(jīng)網(wǎng)絡研究綜述[J].計算機應用,2018,38(S2):1-6+26.
[7] 胡榮磊,芮璐,齊筱,等.基于循環(huán)神經(jīng)網(wǎng)絡和注意力模型的文本情感分析[J/OL].計算機應用研究,2019,36(11). [2018-08-10]. http://www.arocmag.com/article/02-2019-11-025.html.
[8] Wang W , Sheng Y , Wang J , et al. HAST-IDS: Learning Hierarchical Spatial-Temporal Features using Deep Neural Networks to Improve Intrusion Detection[J]. IEEE Access, 2017:1-1.
[9] Shiravi A , Shiravi H , Tavallaee M , et al. Toward developing a systematic approach to generate benchmark datasets for intrusion detection[J]. Computers & Security, 2012, 31(3):357-374.
【通聯(lián)編輯:代影】