◆蔡洪民 王慶香
(廣州中醫藥大學醫學信息工程學院 廣東 510006)
基于深度學習的入侵檢測技術研究
◆蔡洪民 王慶香
(廣州中醫藥大學醫學信息工程學院 廣東 510006)
大數據時代網絡安全形勢日趨嚴峻,本文提出了一種基于深度學習的異常入侵檢測模型。首先,將網絡流量數據進行數據預處理:針對網絡流量數據的高維特征影響檢測效率的問題,使用PCA等方法進行數據降維;其次,使用深度神經網絡方法對預處理后的網絡流量數據進行訓練和類別預測;最后,使用混淆矩陣對模型輸出結果進行評估,并與KNN和SVM兩種經典算法進行對比。經過實驗對比,本文模型均優于 KNN 算法和SVM算法,在準確率、召回率、F1-Score方面相比KNN和SVM的檢測率提高2%。因此,本文模型有效提高了異常入侵檢測的檢測率,加強了網絡安全。
異常入侵檢測;深度學習;K近鄰;支持向量機
互聯網的飛速發展一方面推動了人類社會的日新月異的進步,另一方面網絡安全事件頻發給社會和人民生活帶來重大安全問題。傳統的計算機安全理論已不能適應動態變化的、多維互聯的網絡空間。隨著物聯網、云計算等技術的發展和大數據時代的來臨,全球網絡安全形勢更加嚴峻。因此,通過機器學習的方法對網絡大流量數據進行分析來識別入侵行為,成為加強網絡安全的重要手段。
日趨復雜的網絡環境使得簡單的機器學習方法已經很難很好的解決實際問題。自2006年多倫多大學Geoffrey Hinton教授提出了深度學習網絡以來,深度學習技術的發展對信號和信息處理方面的研究產生了廣泛的影響。深度學習大大地拓展了機器學習研究領域,并推動人工智能的迅猛發展。因其強大的特征表達能力,基于深度神經網絡的機器學習模型已在語音識別、圖像識別和自然語言處理等領域取得突破性進展,越來越受到國內外學者的重視。國外已有研究者將其用于入侵檢測上:文獻[1]使用混合聚類和神經網絡的方法實現了入侵檢測;文獻[2]將基于聚類的隨機化數據用于檢測僵尸網絡上;文獻[3]將深度神經網絡用于車聯網的安全上;文獻[4]實現了基于深度信念網絡的入侵檢測。國內基于深度神經網絡研究入侵檢測的較少,文獻[5]闡述了深度神經網絡在大數據分析上的應用;文獻[6]利用兩層的限制玻爾茲曼機進行結構降維,用BP神經網絡獲得原始數據的最優表示,再利用SVM對數據進行入侵識別;文獻[7]針對異常入侵檢測中數據的高維特征會影響檢測率的問題,提出基于信息增益特征選擇的檢測模型將隨機森林分類器的檢測率提高 0.2% ;文獻[8]將ML-KNN算法應用于入侵檢測并在KDD-CUP99數據集上的進行仿真,獲得了高檢測率和低誤報率;文獻[9]提出了一種基于多標記學習的入侵檢測算法并在KDD CUP99數據集上進行仿真,有效提高了入侵檢測系統的性能。
針對大數據時代網絡流量的多維、復雜等特點,本文提出一種基于深度神經網絡的異常入侵檢測模型,經過網絡流量數據集采集、數據預處理、特征選擇、深度神經網絡訓練和預測等一系列步驟來識別網絡中的異常流量,從而加強了網絡安全。
深度學習使用多層人工神經網絡,從大數據集中學習訓練,最終可對新的數據樣本做出智能識別和準確預測。與傳統的淺層神經網絡模型相比,深度學習模型的多層網絡結構能夠更加有效地表達復雜函數,從而學習到更準確的特征。可以說,深度學習已經拓展為機器學習和人工智能研究的主要方面[10]。
Keras是一個開源的深度學習庫,其本質上是高層神經網絡庫。Keras由純Python編寫并基于Tensorflow或Theano。Keras 為支持快速實驗而生,可以迅速將算法思想轉換為程序運行結果。Keras深度學習庫具有高度模塊化、極簡和可擴充等特性,并且支持CNN、RNN或二者的結合,可無縫在CPU和GPU之間切換。Keras的核心數據結構是模型,模型是一種組織網絡層的方式。Keras中主要的模型是Sequential模型,Sequential是一系列網絡層按順序構成的棧。本文模型就是基于 Keras深度學習庫中的Sequential模型來實現的。
Python的多線程并非真正的多線程,為了充分使用多核CPU的資源,在Python中多數情況需要使用多進程。Python提供了好用的多進程包 multiprocessing。借助此包,可以輕松完成從單進程到并發執行的轉換。multiprocessing支持子進程、通信和共享數據、執行不同形式的同步,提供了Process、Queue、Pipe、Lock等組件。為了提高模型運行效率,本文模型就是基于Python的多進程技術實現的。
本文提出一種基于深度學習的異常流量檢測模型,該模型有效地提高了網絡異常流量的檢測率。整個模型分為數據預處理器、特征選擇器和深度神經網絡分類器三部分,其中深度神經網絡分類器是整個模型的核心模塊[7]。本文模型的工作流程如圖1所示。
圖1 模型的工作流程
(1)數據預處理器分別讀取訓練數據集和測試數據集以及各自類別,然后進行規范化處理。
(2)特征選擇器將經過預處理的訓練集數據和測試集數據使用PCA算法和VarianceThreshold方法進行降維處理,去掉冗余數據,形成網絡流量數據特征集。
(3)將訓練集的數據特征和類別載入深度神經網絡分類器,經過深度神經網絡的訓練,然后載入測試集的特征對其類別進行預測,得到測試集的數據分類預測結果。然后讀取網絡流量數據測試集中已有的類別標記進行對比,評估模型的優劣。
數據預處理器的主要目標是對網絡流量數據進行規范化。具體來說,分別載入訓練集數據和測試集數據,然后對其中異常數據進行檢測與處理,例如清理丟失或錯誤的數據,添加、插入和刪除無關數據等,最后進行數據分組和轉換,以獲得新的、有意義的新數據[11]。本文模型中此部分依據 Python數據分析包Pandas實現的。
數據經過預處理后進入特征選擇器。特征選擇器的作用是依據網絡流量原始數據集創建新的數據特征。本文模型使用 PCA和VarianceThreshold方法進行數據維度約簡形成新的數據集;然后選擇合適的特征集進入深度神經網絡分類器進行訓練和分類預測[12]。
本文模型采用深度神經網絡方法進行分類預測,深度神經網絡算法主要分為輸入層、隱含層、輸出層三個部分。本文模型中設置多個隱含層,并且中間采用不同的激勵函數來計算。本文模型中分類器的工作流程如下:
(1)分別將訓練數據和測試數據載入本文模型的分類器中,其中訓練數據進入深度神經網絡分類器的訓練模塊,測試數據進入深度神經網絡分類器的測試模塊。
(2)訓練數據經過深度神經網絡分類器訓練之后得到有效結果,然后載入測試數據,然后根據訓練有效結果對測試數據集類別進行預測。得到預測結果,即完成一次分類預測過程。
(3)載入測試集類別標記與深度神經網絡分類器預測值進行對比,根據混淆矩陣等方法進行模型性能評估,判斷檢測算法的優劣。
(4)重復相同步驟,分別使用KNN和SVM算法對同一網絡流量數據集進行類似處理。最終根據三種機器學習方法的實驗結果進行對比,得出三種算法針對本數據集的性能優劣。
實驗部分包括實驗環境與數據、實驗過程與結果分析兩部分內容。
本文以Windows Server 2008下的Anaconda作為實驗平臺,使用綜合性的網絡入侵檢測系統數據集 UNSW-NB15作為實驗數據集。在入侵檢測領域,研究者們廣泛使用 KDD CUP99和NSLKDD等數據集,這些數據集的使用時間都已經超過10年,已無法全面反映當今環境下的復雜網絡流量特征[13]。UNSW-NB15數據集是綜合性的網絡攻擊流量數據集,包括訓練數據和測試數據,被廣泛應用于異常入侵檢測。UNSW-NB15數據集由一種正常流量和八種異常流量組成,八種異常流量類型分別為Reconnaissance、Analysis、Generic、Fuzzers、Backdoor、Exploits、Shellcode、DoS和 Worms。該數據集共有約 40 維特征,實驗中使用該數據集的一個子集。為保證實驗結果的準確性和隨機性,本文模型從中提取 IPv4網絡中常見協議的網絡流量數據集,包括73222 條訓練數據和 145938條測試數據。UNSW-NB15數據集各類型比例如表1所示,數據集特征如表2所示。
表1 實驗所用UNSW-NB15數據集
?
表2 UNSW-NB15數據特征
混淆矩陣是數據科學、數據分析和機器學習中總結分類模型預測結果的情形分析表,是對分類模型進行性能評價的重要工具。它以矩陣形式將數據集中的記錄按照真實的類別與分類模型作出的分類預測進行判斷。由混淆矩陣可以計算真陽性率、假陽性率、真陰性率、假陰性率、準確率、精確率和F指標等各種評價指標。在機器學習領域,混淆矩陣是可視化工具,特別用于監督學習。本文模型就是采用混淆矩陣來解釋異常入侵檢測常用的準確率、召回率、F1-Score三項指標來評估本文實驗模型的[14]。
本文模型實驗在某大學校園網環境中一臺 Windows Server 2008服務器上進行。整個實驗過程包括兩步:首先對本文提出的深度神經網絡分類模型進行分類預測實驗,然后將其實驗結果與經典的有監督學習分類算法KNN分類器和SVM分類器分別進行對比,實驗結果如圖2和圖3所示。由圖可知,本文方法比KNN分類器和SVM分類器的分類預測效果都要好:針對本實驗數據,在選取的三種分類方法中,KNN算法要優于SVM算法。當訓練輪數為60次和80次時,深度神經網絡方法的檢測率與KNN算法基本相同。當訓練輪數為200以上時,深度神經網絡方法明顯優于KNN算法,準確率、召回率、F1得分分別提高了4%,2%,2%。
圖2 深度神經網絡算法訓練迭代過程
圖3 三種分類算法檢測率對比
綜合以上實驗結果,可以看出三類算法在檢測率上都能達到75%以上;與 KNN算法和SVM算法相比,本文模型在準確率、召回率和F1-Score三項指標上均優于其他兩種算法,檢測率提高約2%。
針對高維數據對異常入侵檢測的檢測率和檢測時間產生不利影響的問題,本文提出一種基于深度神經網絡的異常流量檢測模型,經過數據規范化后使用PCA算法和VarianceThreshold方法對數據進行維度約簡,然后載入深度神經網絡分類器進行分類預測,最終提高了分類的準確度。本文模型實驗過程中采用Python多進程技術提高了檢測效率,大大縮短了模型運行時間。實驗結果表明,本文方法優于KNN算法和SVM算法,在準確率、召回率和F1-Score三項指標上均比KNN算法和SVM算法提高了約2%。
本文研究過程中使用 UNSW-NB15綜合數據集進行研究和分析,UNSW-NB15綜合數據集很好地反映了當今網絡環境下的流量特征。下一步的研究將進一步優化本文提出的深度神經網絡分類器并且針對采集現網數據進行研究[15]。
[1] Ma Tao,Wang Fen,Cheng Jianjun. A Hybrid Spectral Clustering and Deep Neural Network Ensemble Algorithm for Intrusion Detection in Sensor Networks. Sensors(Basel ,Switzerland),2016.
[2] Al-Jarrah Omar Y,Alhussein Omar,Yoo,Paul D. Data Randomization and Cluster-Based Partitioning for Botnet Intrusion Detection.IEEE TRANSACTIONS ON CYBERNETICS,2016.
[3] Kang Min-Joo,Kang Je-Won.Intrusion Detection System Using Deep Neural Network for In-Vehicle Network Security.PLOS ONE2016.
[4] Kamran Raza,Syed Hasan Adil.Intrusion Detection using Deep Belief Network.
[5] 張蕾, 章毅.大數據分析的無限深度神經網絡方法.計算機研究與發展, 2016.
[6] 楊昆朋.基于深度信念網絡的入侵檢測模型.現代計算機,2015.
[7] 劉汝雋,賈斌,辛陽.基于信息增益特征選擇的異常入侵檢測模型.計算機應用,2016.
[8] 錢燕燕,李永忠,余西亞.基于多標記與半監督學習的入侵檢測方法研究.計算機科學,2015.
[9] 錢燕燕,李永忠,章雷,余西亞.一種多標記學習入侵檢測算法,合肥工業大學學報(自 然 科 學 版 ),2015.
[10] 李春林,黃月江,王宏,牛長喜.一種深度學習的網絡入侵檢測方法. 信息安全與通信保密,2014.
[11] 賈慧敏.基于 ML 改進技術的 IDS 的設計與實現.計算機技術與發展,2015.
[12] 馬鉦然,張博鋒,王勇軍.基于主題模型的網絡異常行為分類學習方法研究.計算機科學,2016.
[13] 石云,陳鐘,孫兵.基于均值聚類分析和多層核心集凝聚算法相融合的網絡入侵檢測.計算機應用研究,2016.
[14] 袁琴琴,呂林濤.基于改進蟻群算法與遺傳算法組合的網絡入侵檢測.重慶郵電大學學報( 自然科學版),2017.
[15] Ghosh Abhrajit,Gottlieb Yitzchak M,Naidu Aditya.Managing High Volume Data for Network Attack Detection Using Real-Time Flow Filtering.CHINA COMMUNICATIONS,2013.