劉輝
摘? 要:針對現(xiàn)有入侵檢測系統(tǒng)(Intrusion Detection System, IDS)檢測方法準(zhǔn)確率低,泛化能力弱,收斂速度慢,易陷入局部最優(yōu)等問題,提出基于PCA(Principal Component Analysis)和多層感知機(jī)神經(jīng)網(wǎng)絡(luò)(MLP)的入侵檢測模型。該模型首先對數(shù)據(jù)進(jìn)行預(yù)處理和降維,然后使用該P(yáng)CA-MLP模型進(jìn)行訓(xùn)練并使用測試集測試模型的準(zhǔn)確率,最后優(yōu)化分類器的性能。實(shí)驗(yàn)表明,該模型可以提高入侵檢測系統(tǒng)的準(zhǔn)確率,具有很強(qiáng)的泛化能力。
關(guān)鍵詞:入侵檢測;主成分分析;神經(jīng)網(wǎng)絡(luò);PCA-MLP模型
中圖分類號:TP309? ? ?文獻(xiàn)標(biāo)識碼: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)網(wǎng)用戶已達(dá)7.72億,然而網(wǎng)絡(luò)安全正面臨著巨大挑戰(zhàn)。近些年來世界各國面臨的網(wǎng)絡(luò)安全威脅度也在同步增加,例如“7號軍火庫”泄露,“棱鏡門”事件, “WannaCry勒索病毒”事件等。2014年2月27日,中央網(wǎng)絡(luò)安全和領(lǐng)導(dǎo)小組成立,2017年6月1日《中華人民共和國網(wǎng)絡(luò)安全法》開始施行,沒有網(wǎng)絡(luò)安全就沒有國家安全,表明網(wǎng)絡(luò)安全已經(jīng)上升到國家戰(zhàn)略的高度。
入侵檢測系統(tǒng)(Intrusion Detection System,簡稱IDS)是一種在發(fā)現(xiàn)可疑傳輸時(shí)發(fā)出警報(bào)或者采取主動(dòng)防御措施的網(wǎng)絡(luò)安全設(shè)備,它可以對網(wǎng)絡(luò)傳輸進(jìn)行即時(shí)監(jiān)視,是防火墻之后的第二道防線[1]。隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)研究的不斷深入,如何采用人工智能方法進(jìn)行入侵檢測研究已成為網(wǎng)絡(luò)安全領(lǐng)域的研究熱點(diǎn)。文獻(xiàn)[2]提出了基于PCA和SVM(Support Vector Machines)的入侵檢測算法,但是針對個(gè)別攻擊類型準(zhǔn)確率較低。文獻(xiàn)[3]提出了改進(jìn)樸素貝葉斯算法,通過降低維度,巧妙地引入屬性加值算法,通過分類調(diào)控參數(shù)來提高效率和準(zhǔn)確率。文獻(xiàn)[4]通過對數(shù)據(jù)特征降維和權(quán)值修正提出了一種PCA-BP神經(jīng)網(wǎng)絡(luò)入侵檢測方法,改進(jìn)了BP神經(jīng)網(wǎng)絡(luò)收斂速度慢的缺點(diǎn),提高了檢測性能。除此之外,如遺傳算法、神經(jīng)網(wǎng)絡(luò)、K-means算法、隱馬爾可夫模型等也經(jīng)常用于入侵檢測。
本文提出的基于主成分分析技術(shù)和多層感知機(jī)神經(jīng)網(wǎng)絡(luò)的入侵檢測模型,首先對數(shù)據(jù)進(jìn)行預(yù)處理,然后利用主成分分析技術(shù)進(jìn)行降維,構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,最后通過實(shí)驗(yàn)驗(yàn)證了該模型的準(zhǔn)確率。
2? ?主成分分析(Principal component analysis)
在數(shù)據(jù)維數(shù)比較多的情況下,首先要做的工作就是對其進(jìn)行降維。降維是一種映射關(guān)系,在保證原有數(shù)據(jù)本質(zhì)盡量不變的前提下,將數(shù)據(jù)的維度降低[5]。常用的降維技術(shù)有奇異值分解(SVD)、因子分析(FA)、主成分分析(PCA)等。本文采用PCA技術(shù)進(jìn)行降維操作,其目的是在“信息”損失較小的前提下,將高維的數(shù)據(jù)轉(zhuǎn)換到低維,從而減小計(jì)算量。樣本的“信息量”指的是樣本在特征方向上投影的方差。方差越大,則樣本在該特征上的差異就越大,因此該特征就越重要[6]。具體步驟如下:
(1)標(biāo)準(zhǔn)化處理數(shù)據(jù)集。
(2)計(jì)算樣本矩陣的相關(guān)系數(shù)矩陣。
(3)計(jì)算相關(guān)系數(shù)矩陣的特征值和相應(yīng)的特征向量。
(4)選擇主成分,并寫出主成分表達(dá)式。
主成分分析可以得到p個(gè)主成分,并且各個(gè)主成分的方差是遞減的。根據(jù)主成分的累積貢獻(xiàn)率從p個(gè)主成分中選擇k個(gè)貢獻(xiàn)率較大的主成分,貢獻(xiàn)率是指某個(gè)主成分的方差占全部方差的比重[7]。貢獻(xiàn)率越大,該主成分所包含的原始變量的信息越強(qiáng)。
(5)計(jì)算主成分矩陣。
根據(jù)標(biāo)準(zhǔn)化的原始數(shù)據(jù),分別代入主成分表達(dá)式,就可以得到各主成分下的各個(gè)樣品的新數(shù)據(jù),即為主成分矩陣。
3? 多層感知機(jī)神經(jīng)網(wǎng)絡(luò)(Multilayer perceptron neural network)
Keras是由Python編寫的基于Tensorflow的深度學(xué)習(xí)框架,使用該框架可以快速構(gòu)建多層感知機(jī)神經(jīng)網(wǎng)絡(luò)(MLP)。使用Keras構(gòu)建神經(jīng)網(wǎng)絡(luò)有以下步驟:首先可以通過一系列的層來定義神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)的第一層必須要定義預(yù)期輸入維數(shù),輸出層激活函數(shù)決定了預(yù)測值的格式,如sigmoid、relu等激活函數(shù);第二步編譯網(wǎng)絡(luò),根據(jù)Keras的配置轉(zhuǎn)換成可執(zhí)行的格式,同時(shí)練設(shè)定一些參數(shù);第三步訓(xùn)練網(wǎng)絡(luò),調(diào)整權(quán)重以擬合訓(xùn)練數(shù)據(jù)集。將使用反向傳播算法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并使用在編譯時(shí)制定的優(yōu)化算法以及損失函數(shù)來進(jìn)行優(yōu)化。第四步評價(jià)網(wǎng)絡(luò),使用全新的數(shù)據(jù)集來評估神經(jīng)網(wǎng)絡(luò)的預(yù)測性能。評價(jià)模型將會評價(jià)所有測試集中的輸入輸出對的損失值,以及在模型編譯時(shí)指定的其他指標(biāo)。
4? 基于主成分分析和多層感知機(jī)神經(jīng)網(wǎng)絡(luò)的入侵檢測模型(Intrusion detection model based on principal component analysis and multilayer perceptron neural network)
基于主成分分析和多層感知機(jī)神經(jīng)網(wǎng)絡(luò)的入侵檢測模型(PCA-MLP),如圖1所示。該模型首先對數(shù)據(jù)預(yù)處理,例如將非數(shù)字型字符轉(zhuǎn)換成數(shù)字型、歸一化處理和標(biāo)準(zhǔn)化處理,以便進(jìn)行計(jì)算。然后利用主成分分析法對訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)同時(shí)進(jìn)行降維,以保證新的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)處在同一個(gè)基中;接著將數(shù)據(jù)輸入到PCA-MLP模型中進(jìn)行訓(xùn)練,并優(yōu)化各種指標(biāo),提高模型的準(zhǔn)確率,最后測試PCA-MLP網(wǎng)絡(luò)的性能。
5? 實(shí)驗(yàn)結(jié)果與分析(Experimental results and analysis)
5.1? ?實(shí)驗(yàn)數(shù)據(jù)集
本實(shí)驗(yàn)使用 KDD CUP 99數(shù)據(jù)集,該數(shù)據(jù)集包括全部訓(xùn)練集、10%訓(xùn)練集和corrected測試集。KDD CUP 99數(shù)據(jù)集中的每條記錄都有41個(gè)屬性和一個(gè)類別標(biāo)簽。每條記錄被標(biāo)記為一個(gè)正常類型或一個(gè)特定的攻擊類型。數(shù)據(jù)集中標(biāo)識類型共有5大類,40個(gè)小類[8]。本文的訓(xùn)練集和測試集分別為KDD CUP 99數(shù)據(jù)集中的10%訓(xùn)練樣本和corrected的測試樣本,其中10%訓(xùn)練集含494021條記錄,本文將該數(shù)據(jù)集按照一定比例分為訓(xùn)練集和驗(yàn)證集用于模型的訓(xùn)練[9],分布情況如表1所示。10%訓(xùn)練集中共出現(xiàn)22種攻擊類型,而剩下的17種只在測試集中出現(xiàn),這樣設(shè)計(jì)的目的是檢驗(yàn)分類器模型的泛化能力,對未知攻擊類型的檢測能力是評價(jià)入侵檢測模型的重要指標(biāo)。
在實(shí)驗(yàn)之前需對數(shù)據(jù)進(jìn)行預(yù)處理,將文本行數(shù)據(jù)轉(zhuǎn)換成數(shù)值型數(shù)據(jù),例如protocol_type字段,該字段有三種取值tcp、udp和icmp,轉(zhuǎn)換后的對應(yīng)關(guān)系為tcp 1、udp 2和icmp 3,同時(shí)使用該方法處理service、flag、label等字段。
5.2? ?實(shí)驗(yàn)過程
本實(shí)驗(yàn)在硬件環(huán)境為8GB內(nèi)存、i7 3.4GHz CPU、500G硬盤的Windows 10操作系統(tǒng)下進(jìn)行,利用Python作為仿真環(huán)境,實(shí)驗(yàn)采用 KDD CUP 99數(shù)據(jù)集,實(shí)驗(yàn)步驟如下。
(1)數(shù)據(jù)集歸一化,由于個(gè)別字段的取值范圍相差較大,因此需要做歸一化處理以防止過擬合和收斂速度慢等問題的出現(xiàn)。使字段數(shù)據(jù)在[-1,1],然后進(jìn)行標(biāo)準(zhǔn)化。
(2)去除數(shù)據(jù)集中冗余屬性,觀察可知個(gè)別屬性取值過于單一,全部取值為某一個(gè)固定值,刪除該類屬性。數(shù)據(jù)集的屬性相關(guān)性矩陣如圖2所示。
(3)特征提取,從數(shù)據(jù)集中提取有效特征,使用主成分分析技術(shù)對數(shù)據(jù)進(jìn)行降維處理,根據(jù)特征的重要程度,達(dá)到對數(shù)據(jù)壓縮的效果,同時(shí)最大限度地保持原有數(shù)據(jù)的信息。通過因子分析,如圖3所示,當(dāng)主因子為25個(gè)時(shí)較為合適。
(4)構(gòu)建Sequential模型:采用三層神經(jīng)網(wǎng)絡(luò)即輸入層、隱藏層、輸出層,為了防止過擬合加入dropout層,訓(xùn)練過程中隨機(jī)丟掉一定比例的數(shù)據(jù)。
(5)編譯模型,在編譯之前,對模型進(jìn)行設(shè)置,其中包括優(yōu)化器(Optimizer)選擇、損失函數(shù)設(shè)定及定義指示列表等。
(6)訓(xùn)練模型,設(shè)置兩個(gè)參數(shù)batchsize和epoch。①batchsize:批大小,即每次訓(xùn)練在訓(xùn)練集中取batchsize個(gè)樣本訓(xùn)練;②epoch:迭代次數(shù),一個(gè)epoch等于使用訓(xùn)練集中的全部樣本訓(xùn)練一次。
(7)測試模型準(zhǔn)確率和損失率,然后根據(jù)結(jié)果進(jìn)行優(yōu)化。
5.3? ?優(yōu)化實(shí)驗(yàn)結(jié)果
神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練的過程中,需要配置很多參數(shù),才能達(dá)到比較優(yōu)的效果,這些參數(shù)的設(shè)置沒有固定的原則,可以根據(jù)經(jīng)驗(yàn)或者反復(fù)訓(xùn)練來調(diào)優(yōu)。
如圖4所示訓(xùn)練集上acc(準(zhǔn)確率)處于上升趨勢,loss(損失率)處于下降狀態(tài),但是隨著epoch值得不斷增大,在第9次迭代時(shí)acc達(dá)到了最優(yōu),此時(shí)loss幾乎處于平穩(wěn)狀態(tài),而后面的acc反而有一定程度的下降,這是過擬合的一個(gè)表現(xiàn)。因此可以認(rèn)為epoch值取9較為合適,可以終止訓(xùn)練。
實(shí)驗(yàn)采用的數(shù)據(jù)集是稀疏的,所以采用自適用方法進(jìn)行優(yōu)化,常用的有 Adagrad、Adadelta、RMSprop、Adam。實(shí)驗(yàn)結(jié)果如表2所示,隨著梯度變的稀疏,Adam比RMSprop效果會好,因此選擇Adam作為優(yōu)化器。
通過以上實(shí)驗(yàn)我們得出PCA-MLP模型正在測試集上表現(xiàn)十分突出,測集上準(zhǔn)確率高達(dá)98.53%,使用測試集評估只用了25s,而且具有很強(qiáng)的泛化能力。
為了評估本算法在入侵檢測上的性能,將其與趙廣振等人[10]提出的基于PCA-PNN算法、黃思慧等人[11]提出的基于PCA-ELM模型、劉珊珊等人[12]提出的基于PCA-PSO-BP算法模型、劉婷等人[7]提出的PCA-GMM模型進(jìn)行對比。如圖5所示,本文所提出的PCA-MLP模型測試集準(zhǔn)確率最高,優(yōu)于其他算法。
6? ?結(jié)論(Conclusion)
本文提出了一種基于PCA和MLP的入侵檢測模型。首先通過對數(shù)據(jù)集進(jìn)行歸一化和標(biāo)準(zhǔn)化預(yù)處理,然后采用PCA算法對數(shù)據(jù)集進(jìn)行特征降維,接著對該模型進(jìn)行訓(xùn)練,最后根據(jù)實(shí)驗(yàn)結(jié)果進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明,該入侵檢測模型在測試集上表現(xiàn)良好,準(zhǔn)確率高達(dá)98.53%,與其他常見算法相比準(zhǔn)確率略有提升,但是存在一定的優(yōu)化空間。接下來的工作是進(jìn)一步優(yōu)化算法,在保證高準(zhǔn)確率的前提下進(jìn)一步提高效率。
參考文獻(xiàn)(References)
[1] 戴遠(yuǎn)飛,陳星,陳宏,等.基于特征選擇的網(wǎng)絡(luò)入侵檢測方法[J].計(jì)算機(jī)應(yīng)用研究,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] 王輝,陳泓予,劉淑芬.基于改進(jìn)樸素貝葉斯算法的入侵檢測系統(tǒng)[J].計(jì)算機(jī)科學(xué),2014,41(4):111-115.
[5] 梁辰,李成海,周來恩.PCA-BP神經(jīng)網(wǎng)絡(luò)入侵檢測方法[J].空軍工程大學(xué)學(xué)報(bào):自然科學(xué)版,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].網(wǎng)絡(luò)新媒體技術(shù),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].吉林大學(xué)學(xué)報(bào)(理學(xué)版),2015,53(1):112-116.
[10] 趙廣振,張翠肖,武輝林,等.基于主成分分析和概率神經(jīng)網(wǎng)絡(luò)的入侵檢測方法[J].石家莊鐵道大學(xué)學(xué)報(bào)(自然科學(xué)版),2018(1):91-95.
[11] 黃思慧,陳萬忠,李晶.基于PCA和ELM的網(wǎng)絡(luò)入侵檢測技術(shù)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2017(5):576-583.
[12] 劉珊珊,謝曉堯,景鳳宣,等.基于PCA的PSO-BP入侵檢測研究[J].計(jì)算機(jī)應(yīng)用研究,2016,33(9):2795-2798.
作者簡介:
劉? ?輝(1984-),男,碩士,初級工程師.研究領(lǐng)域:信息研究,網(wǎng)絡(luò)安全.