劉輝
摘? 要:針對現有入侵檢測系統(tǒng)(Intrusion Detection System, IDS)檢測方法準確率低,泛化能力弱,收斂速度慢,易陷入局部最優(yōu)等問題,提出基于PCA(Principal Component Analysis)和多層感知機神經網絡(MLP)的入侵檢測模型。該模型首先對數據進行預處理和降維,然后使用該PCA-MLP模型進行訓練并使用測試集測試模型的準確率,最后優(yōu)化分類器的性能。實驗表明,該模型可以提高入侵檢測系統(tǒng)的準確率,具有很強的泛化能力。
關鍵詞:入侵檢測;主成分分析;神經網絡;PCA-MLP模型
中圖分類號:TP309? ? ?文獻標識碼:A
Abstract: Due to the low accuracy, weak generality, slow convergence and easily falling into local optimum of the existing intrusion detection system (IDS), an intrusion detection model based on PCA (Principal Component Analysis) and BP multilayer perceptron neural network is proposed. In this model, data preprocessing and dimension reduction are firstly conducted. Then, the PCA-MLP model is used for training and accuracy is tested. Finally, the performance of the classifier is optimized. The simulation results show that the model can improve the accuracy of intrusion detection system and has strong generality.
Keywords: intrusion detection; principal component analysis; neural network; PCA-MLP model
1? ?引言(Introduction)
隨著全球信息化浪潮的興起,截至2017年12月末我國互聯(lián)網用戶已達7.72億,然而網絡安全正面臨著巨大挑戰(zhàn)。近些年來世界各國面臨的網絡安全威脅度也在同步增加,例如“7號軍火庫”泄露,“棱鏡門”事件, “WannaCry勒索病毒”事件等。2014年2月27日,中央網絡安全和領導小組成立,2017年6月1日《中華人民共和國網絡安全法》開始施行,沒有網絡安全就沒有國家安全,表明網絡安全已經上升到國家戰(zhàn)略的高度。
入侵檢測系統(tǒng)(Intrusion Detection System,簡稱IDS)是一種在發(fā)現可疑傳輸時發(fā)出警報或者采取主動防御措施的網絡安全設備,它可以對網絡傳輸進行即時監(jiān)視,是防火墻之后的第二道防線[1]。隨著機器學習和深度學習研究的不斷深入,如何采用人工智能方法進行入侵檢測研究已成為網絡安全領域的研究熱點。文獻[2]提出了基于PCA和SVM(Support Vector Machines)的入侵檢測算法,但是針對個別攻擊類型準確率較低。文獻[3]提出了改進樸素貝葉斯算法,通過降低維度,巧妙地引入屬性加值算法,通過分類調控參數來提高效率和準確率。文獻[4]通過對數據特征降維和權值修正提出了一種PCA-BP神經網絡入侵檢測方法,改進了BP神經網絡收斂速度慢的缺點,提高了檢測性能。除此之外,如遺傳算法、神經網絡、K-means算法、隱馬爾可夫模型等也經常用于入侵檢測。
本文提出的基于主成分分析技術和多層感知機神經網絡的入侵檢測模型,首先對數據進行預處理,然后利用主成分分析技術進行降維,構建神經網絡模型,最后通過實驗驗證了該模型的準確率。
2? ?主成分分析(Principal component analysis)
在數據維數比較多的情況下,首先要做的工作就是對其進行降維。降維是一種映射關系,在保證原有數據本質盡量不變的前提下,將數據的維度降低[5]。常用的降維技術有奇異值分解(SVD)、因子分析(FA)、主成分分析(PCA)等。本文采用PCA技術進行降維操作,其目的是在“信息”損失較小的前提下,將高維的數據轉換到低維,從而減小計算量。樣本的“信息量”指的是樣本在特征方向上投影的方差。方差越大,則樣本在該特征上的差異就越大,因此該特征就越重要[6]。具體步驟如下:
(1)標準化處理數據集。
(2)計算樣本矩陣的相關系數矩陣。
(3)計算相關系數矩陣的特征值和相應的特征向量。
(4)選擇主成分,并寫出主成分表達式。
主成分分析可以得到p個主成分,并且各個主成分的方差是遞減的。根據主成分的累積貢獻率從p個主成分中選擇k個貢獻率較大的主成分,貢獻率是指某個主成分的方差占全部方差的比重[7]。貢獻率越大,該主成分所包含的原始變量的信息越強。
(5)計算主成分矩陣。
根據標準化的原始數據,分別代入主成分表達式,就可以得到各主成分下的各個樣品的新數據,即為主成分矩陣。
3? 多層感知機神經網絡(Multilayer perceptron neural network)
Keras是由Python編寫的基于Tensorflow的深度學習框架,使用該框架可以快速構建多層感知機神經網絡(MLP)。使用Keras構建神經網絡有以下步驟:首先可以通過一系列的層來定義神經網絡,網絡的第一層必須要定義預期輸入維數,輸出層激活函數決定了預測值的格式,如sigmoid、relu等激活函數;第二步編譯網絡,根據Keras的配置轉換成可執(zhí)行的格式,同時練設定一些參數;第三步訓練網絡,調整權重以擬合訓練數據集。將使用反向傳播算法對網絡進行訓練,并使用在編譯時制定的優(yōu)化算法以及損失函數來進行優(yōu)化。第四步評價網絡,使用全新的數據集來評估神經網絡的預測性能。評價模型將會評價所有測試集中的輸入輸出對的損失值,以及在模型編譯時指定的其他指標。
4? 基于主成分分析和多層感知機神經網絡的入侵檢測模型(Intrusion detection model based on principal component analysis and multilayer perceptron neural network)
基于主成分分析和多層感知機神經網絡的入侵檢測模型(PCA-MLP),如圖1所示。該模型首先對數據預處理,例如將非數字型字符轉換成數字型、歸一化處理和標準化處理,以便進行計算。然后利用主成分分析法對訓練數據和測試數據同時進行降維,以保證新的訓練數據和測試數據處在同一個基中;接著將數據輸入到PCA-MLP模型中進行訓練,并優(yōu)化各種指標,提高模型的準確率,最后測試PCA-MLP網絡的性能。
5? 實驗結果與分析(Experimental results and analysis)
5.1? ?實驗數據集
本實驗使用 KDD CUP 99數據集,該數據集包括全部訓練集、10%訓練集和corrected測試集。KDD CUP 99數據集中的每條記錄都有41個屬性和一個類別標簽。每條記錄被標記為一個正常類型或一個特定的攻擊類型。數據集中標識類型共有5大類,40個小類[8]。本文的訓練集和測試集分別為KDD CUP 99數據集中的10%訓練樣本和corrected的測試樣本,其中10%訓練集含494021條記錄,本文將該數據集按照一定比例分為訓練集和驗證集用于模型的訓練[9],分布情況如表1所示。10%訓練集中共出現22種攻擊類型,而剩下的17種只在測試集中出現,這樣設計的目的是檢驗分類器模型的泛化能力,對未知攻擊類型的檢測能力是評價入侵檢測模型的重要指標。
在實驗之前需對數據進行預處理,將文本行數據轉換成數值型數據,例如protocol_type字段,該字段有三種取值tcp、udp和icmp,轉換后的對應關系為tcp 1、udp 2和icmp 3,同時使用該方法處理service、flag、label等字段。
5.2? ?實驗過程
本實驗在硬件環(huán)境為8GB內存、i7 3.4GHz CPU、500G硬盤的Windows 10操作系統(tǒng)下進行,利用Python作為仿真環(huán)境,實驗采用 KDD CUP 99數據集,實驗步驟如下。
(1)數據集歸一化,由于個別字段的取值范圍相差較大,因此需要做歸一化處理以防止過擬合和收斂速度慢等問題的出現。使字段數據在[-1,1],然后進行標準化。
(2)去除數據集中冗余屬性,觀察可知個別屬性取值過于單一,全部取值為某一個固定值,刪除該類屬性。數據集的屬性相關性矩陣如圖2所示。
(3)特征提取,從數據集中提取有效特征,使用主成分分析技術對數據進行降維處理,根據特征的重要程度,達到對數據壓縮的效果,同時最大限度地保持原有數據的信息。通過因子分析,如圖3所示,當主因子為25個時較為合適。
(4)構建Sequential模型:采用三層神經網絡即輸入層、隱藏層、輸出層,為了防止過擬合加入dropout層,訓練過程中隨機丟掉一定比例的數據。
(5)編譯模型,在編譯之前,對模型進行設置,其中包括優(yōu)化器(Optimizer)選擇、損失函數設定及定義指示列表等。
(6)訓練模型,設置兩個參數batchsize和epoch。①batchsize:批大小,即每次訓練在訓練集中取batchsize個樣本訓練;②epoch:迭代次數,一個epoch等于使用訓練集中的全部樣本訓練一次。
(7)測試模型準確率和損失率,然后根據結果進行優(yōu)化。
5.3? ?優(yōu)化實驗結果
神經網絡模型在訓練的過程中,需要配置很多參數,才能達到比較優(yōu)的效果,這些參數的設置沒有固定的原則,可以根據經驗或者反復訓練來調優(yōu)。
如圖4所示訓練集上acc(準確率)處于上升趨勢,loss(損失率)處于下降狀態(tài),但是隨著epoch值得不斷增大,在第9次迭代時acc達到了最優(yōu),此時loss幾乎處于平穩(wěn)狀態(tài),而后面的acc反而有一定程度的下降,這是過擬合的一個表現。因此可以認為epoch值取9較為合適,可以終止訓練。
實驗采用的數據集是稀疏的,所以采用自適用方法進行優(yōu)化,常用的有 Adagrad、Adadelta、RMSprop、Adam。實驗結果如表2所示,隨著梯度變的稀疏,Adam比RMSprop效果會好,因此選擇Adam作為優(yōu)化器。
通過以上實驗我們得出PCA-MLP模型正在測試集上表現十分突出,測集上準確率高達98.53%,使用測試集評估只用了25s,而且具有很強的泛化能力。
為了評估本算法在入侵檢測上的性能,將其與趙廣振等人[10]提出的基于PCA-PNN算法、黃思慧等人[11]提出的基于PCA-ELM模型、劉珊珊等人[12]提出的基于PCA-PSO-BP算法模型、劉婷等人[7]提出的PCA-GMM模型進行對比。如圖5所示,本文所提出的PCA-MLP模型測試集準確率最高,優(yōu)于其他算法。
6? ?結論(Conclusion)
本文提出了一種基于PCA和MLP的入侵檢測模型。首先通過對數據集進行歸一化和標準化預處理,然后采用PCA算法對數據集進行特征降維,接著對該模型進行訓練,最后根據實驗結果進行優(yōu)化。實驗結果表明,該入侵檢測模型在測試集上表現良好,準確率高達98.53%,與其他常見算法相比準確率略有提升,但是存在一定的優(yōu)化空間。接下來的工作是進一步優(yōu)化算法,在保證高準確率的前提下進一步提高效率。
參考文獻(References)
[1] 戴遠飛,陳星,陳宏,等.基于特征選擇的網絡入侵檢測方法[J].計算機應用研究,2017,34(8):2429-2433.
[2] Guinde N B, Ziavras S G. Efficient hardware support for pattern matching in network intrusion detection[J]. Computers & Security, 2010, 29(7): 756-769.
[3] Xu X, Wang X. An adaptive network intrusion detection method based on PCA and support vector machines[C]. International Conference on Advanced Data Mining and Applications.Springer Berlin Heidelberg, 2005: 696-703.
[4] 王輝,陳泓予,劉淑芬.基于改進樸素貝葉斯算法的入侵檢測系統(tǒng)[J].計算機科學,2014,41(4):111-115.
[5] 梁辰,李成海,周來恩.PCA-BP神經網絡入侵檢測方法[J].空軍工程大學學報:自然科學版,2016,17(6):93-98.
[6] Shirbhate S V, Sherekar S S, Thakare V M. Performance Evaluation of PCA Filter In Clustered Based Intrusion Detection System[C]. International Conference on Electronic Systems, Signal Processing and Computing Technologies. IEEE, 2014: 217-221.
[7] 劉婷,劉曉潔,岳未然.基于主成分分析法的入侵檢測特征選擇方法[J].網絡新媒體技術,2017,6(2):28-32.
[8] Hashem S H. Efficiency of Svm and Pca to Enhance Intrusion Detection System[J]. Journal of Asian Scientific Research, 2013, 3(4): 381-395.
[9] 崔亞芬,解男男.一種基于特征選擇的入侵檢測方法[J].吉林大學學報(理學版),2015,53(1):112-116.
[10] 趙廣振,張翠肖,武輝林,等.基于主成分分析和概率神經網絡的入侵檢測方法[J].石家莊鐵道大學學報(自然科學版),2018(1):91-95.
[11] 黃思慧,陳萬忠,李晶.基于PCA和ELM的網絡入侵檢測技術[J].吉林大學學報(信息科學版),2017(5):576-583.
[12] 劉珊珊,謝曉堯,景鳳宣,等.基于PCA的PSO-BP入侵檢測研究[J].計算機應用研究,2016,33(9):2795-2798.
作者簡介:
劉? ?輝(1984-),男,碩士,初級工程師.研究領域:信息研究,網絡安全.