, , , ,
(1.石家莊鐵道大學(xué) 信息科學(xué)與技術(shù)學(xué)院,河北 石家莊 050043;2.河北省科學(xué)院 應(yīng)用數(shù)學(xué)研究所,河北 石家莊 050081)
截至2016年6月,我國網(wǎng)民規(guī)模達(dá)7.10億,互聯(lián)網(wǎng)普及率達(dá)到51.7%[1]。網(wǎng)絡(luò)的快速發(fā)展給社會(huì)帶來巨大的進(jìn)步,但是其安全問題也造成了巨大的損失,如何保證網(wǎng)絡(luò)的安全一直是人們關(guān)注的焦點(diǎn)。網(wǎng)絡(luò)安全是由防護(hù)、檢測、反應(yīng)和恢復(fù)4 個(gè)層次構(gòu)成的一種綜合防御體系[2]。入侵檢測(Intrusion detection)作為防御體系的第二道防線,它是防火墻的合理補(bǔ)充,幫助系統(tǒng)應(yīng)對(duì)網(wǎng)絡(luò)攻擊,是網(wǎng)絡(luò)安全防護(hù)的重要技術(shù)之一?,F(xiàn)有的入侵檢測方法主要有以下幾種:貝葉斯網(wǎng)絡(luò)、馬爾科夫模型、人工免疫原理、人工神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、極限學(xué)習(xí)機(jī)以及級(jí)聯(lián)入侵檢測等[3]。其中人工神經(jīng)網(wǎng)絡(luò)因其具有獨(dú)特的結(jié)構(gòu),非線性模擬能力、強(qiáng)大的學(xué)習(xí)能力和自適應(yīng)能力,在入侵檢測系統(tǒng)中得到廣泛應(yīng)用。
雖然神經(jīng)網(wǎng)絡(luò)功能強(qiáng)大,在入侵檢測的應(yīng)用中仍然存在一些缺點(diǎn)。比如文獻(xiàn)[4]采用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)用于入侵檢測,雖然利用可變學(xué)習(xí)速率算法、動(dòng)量和批處理技術(shù)來提高網(wǎng)絡(luò)的性能,但是數(shù)據(jù)的維數(shù)是復(fù)雜多變的,如果數(shù)據(jù)維數(shù)過高的話會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)的計(jì)算復(fù)雜度大幅度增加。又比如文獻(xiàn)[5]利用遺傳算法來解決神經(jīng)網(wǎng)絡(luò)收斂速度慢和陷入局部最優(yōu)的問題,但是遺傳算法搜索問題的解空間的大小跟網(wǎng)絡(luò)參數(shù)的個(gè)數(shù)有關(guān),這無疑會(huì)增加網(wǎng)絡(luò)的訓(xùn)練時(shí)間,另外遺傳算法處理高緯度的數(shù)據(jù)具有局限性。深度學(xué)習(xí)的出現(xiàn)使得解決復(fù)雜攻擊數(shù)據(jù)有了新的解決思路,其通過組合低層數(shù)據(jù)特征形成更加抽象的高層特征來表示屬性或者類別[6],不同于淺層神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)有多達(dá)5~6層,甚至10多層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。比如文獻(xiàn)[7]采用了深度學(xué)習(xí)中的自編碼網(wǎng)絡(luò)模型實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)特征的提取,通過softmax分類器對(duì)特征數(shù)據(jù)進(jìn)行分類。雖然保證了識(shí)別率,但是由于深度學(xué)習(xí)獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu),其訓(xùn)練速度比較慢。
針對(duì)以上問題,提出一種基于主成分分析和概率神經(jīng)網(wǎng)絡(luò)入侵檢測方法。首先使用PCA對(duì)數(shù)據(jù)進(jìn)行特征降維,消除冗余信息;然后使用概率神經(jīng)網(wǎng)絡(luò)(PNN)建立入侵檢測模型;其次,使用粒子群算法(PSO)優(yōu)化概率神經(jīng)網(wǎng)絡(luò)的參數(shù);最后使用KDD99數(shù)據(jù)集對(duì)該模型進(jìn)行測試。
主成分分析(PCA)是統(tǒng)計(jì)學(xué)中對(duì)數(shù)據(jù)分析的有力工具,將高維數(shù)據(jù)集變換到低維空間,保留最多的原始數(shù)據(jù)信息[8]。PCA的基本原理如下:假設(shè)空間中存在p個(gè)具有相關(guān)性的變量,通過線性組合等方法消除其相關(guān)性,使其變成一組線性無關(guān)的變量,新變量要盡可能準(zhǔn)確地反映原始變量的信息而且新變量的個(gè)數(shù)要少于原始變量。在這里用方差來度量信息,通常線性組合的方法有很多種,為了準(zhǔn)確反映原始變量的信息,將方差最大的那組線性組合作為第一主成分,以此類推分別建立第二、三等主成分。需要注意的是,各個(gè)主成分之間是線性無關(guān)的。具體步驟如下:
第一步:將樣本數(shù)據(jù)組成的矩陣進(jìn)行標(biāo)準(zhǔn)化,目的是消除量綱對(duì)數(shù)據(jù)的干擾
(1)
第二步:計(jì)算協(xié)方差矩陣CX
(2)
第三步:采用雅克比方法計(jì)算協(xié)方差矩陣的特征值(λ1,λ2,…,λp)與相應(yīng)的特征向量a1,a2,…,ap;
第四步:選擇重要的主成分,并計(jì)算主成分的貢獻(xiàn)率η和累計(jì)貢獻(xiàn)率∑η
(3)
(4)
第五步:根據(jù)累計(jì)貢獻(xiàn)率,一般累計(jì)貢獻(xiàn)率大于85%以上就可以滿足需求,這時(shí)取前k個(gè)特征值對(duì)應(yīng)的特征向量(a1,a2,…,ak)組成變換矩陣Q(p×k)。
第六步:計(jì)算降維后的新樣本矩陣Y。
(5)
圖1 概率神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
概率神經(jīng)網(wǎng)絡(luò)是由徑向基神經(jīng)網(wǎng)絡(luò)發(fā)展而來的一種前饋型神經(jīng)網(wǎng)絡(luò),其理論依據(jù)是貝葉斯最小風(fēng)險(xiǎn)規(guī)則(貝葉斯決策理論)[9]。不同于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的Sigmoid函數(shù),它通常采用高斯函數(shù)作為網(wǎng)絡(luò)的激活函數(shù)。其層次模型,由輸入層、模式層、求和層、輸出層共4層組成。網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖1所示。
輸入層將樣本數(shù)據(jù)輸入到網(wǎng)絡(luò)中,其神經(jīng)元的個(gè)數(shù)同樣本數(shù)據(jù)的維數(shù)相等。模式層神經(jīng)元個(gè)數(shù)等于樣本數(shù)據(jù)的總數(shù)目。假設(shè)樣本數(shù)據(jù)為X(x1,x2,…,xn),模式層的第i個(gè)神經(jīng)元與輸入層的權(quán)值矩陣為Wi則該神經(jīng)元的輸出si為
(6)
式中,δ是一個(gè)很重要的參數(shù),稱為擴(kuò)散常數(shù)或者散布常數(shù)。這個(gè)參數(shù)需要在實(shí)驗(yàn)中進(jìn)行調(diào)整,過大或者過小都會(huì)影響網(wǎng)絡(luò)的性能。
求和層單元只和屬于某個(gè)類別的神經(jīng)元相連,并將其概率累加并傳到輸出層。輸出層的每個(gè)神經(jīng)元對(duì)應(yīng)一種類別,它根據(jù)求和層傳來的各個(gè)類別的概率密度函數(shù),將概率密度函數(shù)最大的那個(gè)神經(jīng)元輸出為1,其它神經(jīng)元輸出為0,輸出為1的神經(jīng)元對(duì)應(yīng)的類別即為網(wǎng)絡(luò)識(shí)別出的類。
粒子群優(yōu)化算法(PSO)是一種進(jìn)化計(jì)算技術(shù)(Evolutionary Computation),1995 年由Eberhart 博士和Kennedy 博士提出[10]。該算法是一種群智能算法,它通過研究鳥群搜索食物過程中的行為,從中發(fā)現(xiàn)個(gè)體與群體之間存在的協(xié)作和信息共享的規(guī)律,并利用這種規(guī)律對(duì)問題的解空間進(jìn)行搜索,以求獲得最優(yōu)解。
粒子群算法是一種并行算法,具有容易實(shí)現(xiàn)、精度高、收斂快等優(yōu)點(diǎn)。針對(duì)研究問題的解空間,粒子群算法首先在該空間內(nèi)初始化一些隨機(jī)解,這些解就是一些粒子,粒子的狀態(tài)包括粒子的速度和位置兩個(gè)方面。然后使用適應(yīng)度函數(shù)評(píng)價(jià)粒子所處位置是否最優(yōu),使用兩個(gè)全局變量pbest和gbest來記錄粒子個(gè)體和群體所尋找過的最優(yōu)位置。對(duì)于每個(gè)粒子,計(jì)算其適應(yīng)值,若優(yōu)于pbest就將其作為pbest,若優(yōu)于gbest就將其作為gbest, 接著更新粒子的速度和位置。粒子速度和位置的更新規(guī)則如下
Vi=wVi+c1×c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi)
(7)
xi=xi+Vi
(8)
式中,Vi是粒子的速度;rand()是介于0和1之間的隨機(jī)數(shù);xi是粒子的當(dāng)前位置。c1和c2是學(xué)習(xí)因子 。
如果粒子的速度或者位置超出搜索的范圍就將其設(shè)定為最大速度或者邊界位置。粒子更新完畢后如果沒有找到滿足要求的最優(yōu)解就繼續(xù)迭代搜索。搜索最優(yōu)解的停止條件一般選為最大迭代次數(shù)或者粒子群搜索到的最優(yōu)位置滿足預(yù)定最小適應(yīng)閾值。
圖2 基于PCA的概率神經(jīng)網(wǎng)絡(luò)入侵檢測模型
基于以上所做的工作,提出了一種基于PCA的概率神經(jīng)網(wǎng)絡(luò)入侵檢測模型(PCA-PNN)。如圖2所示。
該模型首先利用PCA對(duì)訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)進(jìn)行降維,在降維的時(shí)候先對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行降維,然后用降維產(chǎn)生的降維矩陣乘以測試數(shù)據(jù)就可以對(duì)測試數(shù)據(jù)進(jìn)行降維,以保證新的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)處在同一個(gè)基中;接著將數(shù)據(jù)輸入到PNN網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,采用粒子群算法對(duì)PNN網(wǎng)絡(luò)的散布常數(shù)Spread進(jìn)行優(yōu)化,最后測試PNN網(wǎng)絡(luò)的性能。
采用的實(shí)驗(yàn)工具是Matlab R2010a,為了衡量算法的優(yōu)劣,將未經(jīng)過粒子群算法優(yōu)化和特征降維的PNN網(wǎng)絡(luò)作為對(duì)比。為評(píng)價(jià)上文提出的入侵檢測模型,選用KDD99 數(shù)據(jù)集。該數(shù)據(jù)集是由麻省理工學(xué)院Lincoln 實(shí)驗(yàn)室仿真美國空軍局域網(wǎng)環(huán)境建立的網(wǎng)絡(luò)測試數(shù)據(jù)集,包含約500 萬條網(wǎng)絡(luò)連接記錄,除了正常的數(shù)據(jù)之外,還有Dos、R2L、U2R和Probe 4個(gè)大類的攻擊數(shù)據(jù)。在研究中通常使用該數(shù)據(jù)集中的10%訓(xùn)練數(shù)據(jù)集和10%測試數(shù)據(jù)集[11]。定義了幾個(gè)檢測指標(biāo),分別是:
檢測時(shí)間,完成預(yù)測所需的時(shí)間;
檢測精度,被正確分類的數(shù)據(jù)占總檢測數(shù)據(jù)的比例;
檢測率,被正確分類的入侵?jǐn)?shù)據(jù)占總?cè)肭謹(jǐn)?shù)據(jù)的比例;
誤報(bào)率,正常數(shù)據(jù)中被錯(cuò)誤分類的數(shù)據(jù)占總正常數(shù)據(jù)的比例。
為了模擬真實(shí)的網(wǎng)絡(luò)環(huán)境,分別在訓(xùn)練集和數(shù)據(jù)集的正常數(shù)據(jù)和4大類的攻擊數(shù)據(jù)中隨機(jī)取了10 000條數(shù)據(jù),其中正常數(shù)據(jù)占了96%,具體數(shù)據(jù)的分布見表1所示。
實(shí)驗(yàn)預(yù)處理:每個(gè)樣本有42個(gè)特征,其中有些是字符型的特征,因此必須要對(duì)樣本進(jìn)行預(yù)處理,將不同的字符型的數(shù)據(jù)替換為不同的數(shù)字。比如在網(wǎng)絡(luò)服務(wù)類型這項(xiàng)中令aol=1,auth=2,bgp=3,courier=4,以此類推。然后使用Matlab將樣本數(shù)據(jù)的排列順序打亂。接著將樣本中表示類別的特征提取出來,作為標(biāo)簽數(shù)據(jù),最后對(duì)樣本數(shù)據(jù)進(jìn)行L2范數(shù)歸一化。
表1 實(shí)驗(yàn)數(shù)據(jù)
數(shù)據(jù)降維:使用PCA算法對(duì)數(shù)據(jù)進(jìn)行降維。在PCA中,原始數(shù)據(jù)矩陣被轉(zhuǎn)換到新的矩陣中,這個(gè)新的矩陣的維度按照每個(gè)特征的貢獻(xiàn)率從左到右排列。新矩陣中每個(gè)維度的貢獻(xiàn)率見表2所示。
一般來說達(dá)到85%以上就能夠很好地包含所有的信息,本文將累計(jì)貢獻(xiàn)率設(shè)為98%,取維度為6。在降維的時(shí)候,要將訓(xùn)練集和測試集降到基相同的向量空間內(nèi)。
表2 PCA分析結(jié)果
表3 實(shí)驗(yàn)參數(shù)
然后對(duì)網(wǎng)絡(luò)模型進(jìn)行測試,并計(jì)算出上述的檢測指標(biāo)。對(duì)比實(shí)驗(yàn)的具體結(jié)果見表4所示。
表4 實(shí)驗(yàn)結(jié)果
在未優(yōu)化的網(wǎng)絡(luò)中,散布常數(shù)的上述取值是在眾多的逐個(gè)嘗試中取得的最好結(jié)果。從實(shí)驗(yàn)結(jié)果中可以看出,使用粒子群算法對(duì)PCA-PNN網(wǎng)絡(luò)進(jìn)行優(yōu)化,能夠找到散布常數(shù)的最優(yōu)值,從而提高網(wǎng)絡(luò)的性能,而且檢測時(shí)間明顯比未經(jīng)過降維的網(wǎng)絡(luò)短,因?yàn)榻档蛿?shù)據(jù)的維度之后網(wǎng)絡(luò)的運(yùn)算負(fù)擔(dān)就會(huì)減小很多,從而提高效率。從精確度、檢測率和誤報(bào)率這3個(gè)指標(biāo)來看,雖然PCA方法盡可能地保留了原始數(shù)據(jù)的完整性,仍然還是有一些信息的損失,因此其性能比優(yōu)化的傳統(tǒng)PNN網(wǎng)絡(luò)稍弱一些。
由于入侵?jǐn)?shù)據(jù)在總的數(shù)據(jù)中只占了很小的比例,在未優(yōu)化的PNN中,趨向于將數(shù)據(jù)分類到正常數(shù)據(jù)中,因此其檢測入侵?jǐn)?shù)據(jù)的檢測率不高,但是誤報(bào)率低。優(yōu)化的PCA-PNN比起傳統(tǒng)的PNN網(wǎng)絡(luò)來說,無論是性能還是檢測時(shí)間都有明顯的優(yōu)勢(shì)。
針對(duì)神經(jīng)網(wǎng)絡(luò)在入侵檢測的應(yīng)用中存在入侵?jǐn)?shù)據(jù)冗余信息多,數(shù)據(jù)量大,訓(xùn)練時(shí)間長,易陷入局部最優(yōu)等問題,提出了一種基于PCA的概率神經(jīng)網(wǎng)絡(luò)入侵檢測方法。該方法通過PCA消除了數(shù)據(jù)的冗余,降低了數(shù)據(jù)的維度,縮短了網(wǎng)絡(luò)訓(xùn)練的時(shí)間,使用粒子群算法提高了概率神經(jīng)網(wǎng)絡(luò)的性能。實(shí)驗(yàn)結(jié)果表明,將主成分分析的方法和粒子群優(yōu)化算法與概率神經(jīng)網(wǎng)絡(luò)結(jié)合是有效的,具有一定的推廣意義。但是本文是在公開數(shù)據(jù)集上所做的實(shí)驗(yàn),實(shí)際網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)比數(shù)據(jù)集更加真實(shí),也更加復(fù)雜。因此,下一步的工作是將該方法運(yùn)用到真實(shí)的網(wǎng)絡(luò)中,通過在網(wǎng)絡(luò)中得到的反饋來改進(jìn)該方法。
[1]中國互聯(lián)網(wǎng)絡(luò)信息中心. 第38次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[EB/OL].[2016-8-3].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201608/t20160803_54392.htm.
[2]卿斯?jié)h, 蔣建春, 馬恒太, 等. 入侵檢測技術(shù)研究綜述[J]. 通信學(xué)報(bào),2004,7:19-29.
[3]方向, 王麗娜, 賈穎. 智能化入侵檢測算法研究綜述[J]. 通信技術(shù),2015,12:1321-1328.
[4]丁玲, 趙小剛. 改進(jìn)BP神經(jīng)網(wǎng)絡(luò)用于入侵檢測[J]. 微計(jì)算機(jī)信息,2012,3:131-132,84.
[5]沈夏炯, 王龍, 韓道軍. 人工蜂群優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)在入侵檢測中的應(yīng)用[J]. 計(jì)算機(jī)工程,2016,2:190-194.
[6]尹寶才, 王文通, 王立春. 深度學(xué)習(xí)研究綜述[J]. 北京工業(yè)大學(xué)學(xué)報(bào),2015,1:48-59.
[7]李春林, 黃月江, 王宏, 等. 一種基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測方法[J]. 信息安全與通信保密,2014,10:68-71.
[8]苑津莎, 尚海昆. 基于主成分分析和概率神經(jīng)網(wǎng)絡(luò)的變壓器局部放電模式識(shí)別[J]. 電力自動(dòng)化設(shè)備,2013,6:27-31.
[9]蔣蕓,陳娜,明利特, 等. 基于Bagging的概率神經(jīng)網(wǎng)絡(luò)集成分類算法[J]. 計(jì)算機(jī)科學(xué),2013,5:242-246.
[10] Kennedy J. Small worlds and mega-minds: effects of neighborhood topology on particle swarm performance[M]// Evolutionary Computation, 1999. CEC 99. Proceedings of the 1999 Congress on[C]. Washington USA: IEEE, 1999.1945-1950.
[11]張新有, 曾華燊, 賈磊. 入侵檢測數(shù)據(jù)集KDD CUP99研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2010,22:4809-4812,4816.