周麗娟
(山西財(cái)經(jīng)大學(xué) 實(shí)驗(yàn)教學(xué)中心, 山西 太原 030006)
隨著網(wǎng)絡(luò)應(yīng)用的普及和規(guī)模的擴(kuò)大,網(wǎng)絡(luò)入侵檢測(cè)已經(jīng)成為網(wǎng)絡(luò)安全領(lǐng)域迫切需要解決的課題[1-2].神經(jīng)網(wǎng)絡(luò)具有自適應(yīng)能力強(qiáng)、泛化能力強(qiáng)及高度并行性的優(yōu)點(diǎn),非常適合在環(huán)境多變的網(wǎng)絡(luò)環(huán)境中進(jìn)行入侵檢測(cè),但基于神經(jīng)網(wǎng)絡(luò)的方法仍存在一些不足,例如隨著網(wǎng)絡(luò)用戶的激增,大量的網(wǎng)絡(luò)記錄作為訓(xùn)練數(shù)據(jù)時(shí)需要增加大量標(biāo)簽,訓(xùn)練的難度及對(duì)機(jī)器的要求更高;現(xiàn)實(shí)環(huán)境中的大量數(shù)據(jù)都不包含屬性,因此,需要對(duì)數(shù)據(jù)標(biāo)記標(biāo)簽,由此帶來(lái)了巨大的開(kāi)銷(xiāo)[3-4].為了解決上述問(wèn)題,一些利用神經(jīng)網(wǎng)絡(luò)以外的方法被用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè).例如,康松林等[5]提出了一種基于深度多層極限學(xué)習(xí)機(jī)的入侵檢測(cè)算法,李昆侖等[6]提出了一種改進(jìn)的Kohenen網(wǎng)絡(luò)的DOS攻擊檢測(cè)算法來(lái)提高DOS攻擊檢測(cè)的準(zhǔn)確性,陳虹等[7]提出了一種基于優(yōu)化數(shù)據(jù)處理等深度信念網(wǎng)絡(luò)模型,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的入侵檢測(cè).在此基礎(chǔ)上,本研究設(shè)計(jì)了一種基于自組織映射的網(wǎng)絡(luò)入侵檢測(cè)算法,將映射值最大的輸出作為網(wǎng)絡(luò)的最終輸出,即對(duì)應(yīng)了最大概率對(duì)應(yīng)的攻擊類(lèi)別,并通過(guò)仿真實(shí)驗(yàn)證明了本算法的有效性.
自組織映射是一種由Kohenen提出的自動(dòng)聚類(lèi)算法,能實(shí)現(xiàn)無(wú)監(jiān)督的聚類(lèi).經(jīng)典的自組織映射模型如圖1所示.
圖1自組織映射模型圖
從圖1可知,自組織映射模型主要包含兩層網(wǎng)絡(luò)結(jié)構(gòu),即輸入層和輸出層.輸入層主要是用于接收數(shù)據(jù)輸入,其神經(jīng)元個(gè)數(shù)與輸入數(shù)據(jù)的維度相同.輸出層也叫競(jìng)爭(zhēng)層,該層的神經(jīng)元不僅與輸入層之間有前向的連接,同時(shí)與該層的其他神經(jīng)元之間通過(guò)同側(cè)抑制的方法進(jìn)行連接.
本研究提出的基于自組織映射的網(wǎng)絡(luò)模型如圖2所示.
從圖2可知,該組織映射網(wǎng)絡(luò)模型包含3層:輸入層、競(jìng)爭(zhēng)層和輸出層.自組織映射網(wǎng)絡(luò)模型是在自組織映射模型的基礎(chǔ)上加入輸出層,使得輸出層可以反映各種入侵攻擊類(lèi)型的發(fā)生概率.對(duì)于發(fā)生概率最大的攻擊類(lèi)型,定為數(shù)據(jù)對(duì)應(yīng)的攻擊類(lèi)型.
圖2基于自組織映射的網(wǎng)絡(luò)模型
本研究設(shè)計(jì)的基于自組織映射的網(wǎng)絡(luò)入侵檢測(cè)模型的主要原理為:首先建立自組織映射模型,然后采集訓(xùn)練樣本數(shù)據(jù),并對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理,將預(yù)處理后的樣本數(shù)據(jù)輸入到自組織映射網(wǎng)絡(luò),對(duì)建立的自組織映射網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使得整個(gè)網(wǎng)絡(luò)滿足訓(xùn)練數(shù)據(jù)攻擊類(lèi)型對(duì)應(yīng)的輸出端對(duì)應(yīng)的概率值最大.當(dāng)自組織映射網(wǎng)絡(luò)的訓(xùn)練誤差小于某預(yù)設(shè)的閾值時(shí),就停止訓(xùn)練.對(duì)測(cè)試數(shù)據(jù)經(jīng)過(guò)與訓(xùn)練數(shù)據(jù)相同的預(yù)處理操作后,輸入訓(xùn)練好的自組織網(wǎng)絡(luò),具有最大輸出值的攻擊類(lèi)型即為對(duì)應(yīng)的網(wǎng)絡(luò)入侵檢測(cè)結(jié)果.
在基于自組織映射模型的入侵檢測(cè)方法中,對(duì)于輸出層概率值最大的神經(jīng)元,即定義為獲勝神經(jīng)元.當(dāng)輸入向量為X={x1,x2,…,xn}時(shí),n為輸入神經(jīng)元個(gè)數(shù),m為輸出神經(jīng)元個(gè)數(shù).
計(jì)算輸入向量與所有輸出層神經(jīng)元j的距離為,
(1)
計(jì)算完所有輸入到所有輸出的距離Dij(t)后,選擇具有最小Dij(t)值的競(jìng)爭(zhēng)層神經(jīng)元j作為獲勝神經(jīng)元,
(2)
假設(shè)輸入層與競(jìng)爭(zhēng)層獲勝神經(jīng)元之間的權(quán)值Wij(t)(1),競(jìng)爭(zhēng)層獲勝神經(jīng)元與輸出層之間的權(quán)值鄰域的權(quán)值Wij(t)(2)的更新可以表示為,
Wij(t+1)(1)=Wij(t)(1)+η(t)(1)(xi-Wij(t)(1))
(3)
Wij(t+1)(2)=Wij(t)(2)+η(t)(2)(xi-Wij(t)(2))
(4)
式中,學(xué)習(xí)率η(t)可以更新為,
η(t+1)(1)=η(1)(1)(1-t/T)
(5)
η(t+1)(2)=η(1)(2)(1-t/T)
(6)
其中,η(1)為學(xué)習(xí)率的初始值.
由于自組織神經(jīng)網(wǎng)絡(luò)更新的權(quán)值是需要滿足一定鄰域要求的,為了加快自組織網(wǎng)絡(luò)學(xué)習(xí)的速度,通常希望已開(kāi)始從某個(gè)較小的鄰域內(nèi)對(duì)權(quán)值進(jìn)行更新,以加快鄰域的學(xué)習(xí)速率.而在算法后期,則希望鄰域的范圍更大一些,實(shí)現(xiàn)對(duì)算法的權(quán)值進(jìn)行更全局的更新.
假設(shè)輸入層與競(jìng)爭(zhēng)層獲勝神經(jīng)元之間的領(lǐng)域半徑為N(t)(1),競(jìng)爭(zhēng)層獲勝神經(jīng)元與輸出層之間的鄰域?yàn)镹(t)(2),則鄰域的更新可以表示為,
N(t+1)(1)=N(1)(1)(1-t/T)
(7)
N(t+1)(2)=N(1)(2)(1-t/T)
(8)
本研究提出的自組織映射網(wǎng)絡(luò)的入侵檢測(cè)算法可以描述為:先初始化輸入層與競(jìng)爭(zhēng)層獲勝神經(jīng)元之間的權(quán)值Wij(t)(1),競(jìng)爭(zhēng)層獲勝神經(jīng)元與輸出層之間的權(quán)值Wij(t)(2),兩層的學(xué)率初始值η(t)(1)和η(t)(2),以及兩層領(lǐng)域半徑N(t)(1)和N(t)(2),最大迭代次數(shù)T.
步驟1.對(duì)訓(xùn)練樣本集進(jìn)行歸一化處理,樣本的形式如X={x1,x2,…,xn},n為輸入神經(jīng)元個(gè)數(shù);
步驟2.根據(jù)式(1)計(jì)算輸入到輸出的距離Dij(t)后,并根據(jù)式(2)選擇具有最小Dij(t)值的競(jìng)爭(zhēng)層神經(jīng)元j作為獲勝神經(jīng)元;
步驟3.根據(jù)式(7)和式(8)來(lái)更新權(quán)值的鄰域;
步驟4.根據(jù)式(5)和式(6)來(lái)更新權(quán)值的學(xué)習(xí)率;
步驟5.根據(jù)式(3)和式(4)來(lái)更新鄰域的權(quán)值;
步驟6.更新當(dāng)前迭代次數(shù)t=t+1,判斷是否達(dá)到最大迭代次數(shù)T;
步驟7.判斷當(dāng)前迭代次數(shù)的值:如果達(dá)到最大迭代次數(shù),則算法停止,將具有最大輸出值的網(wǎng)絡(luò)攻擊行為作為入侵檢測(cè)的結(jié)果;更新當(dāng)前迭代次數(shù)t=t+1,判斷是否達(dá)到最大迭代次數(shù)T.如果未達(dá)到最大迭代次數(shù),則判斷輸出神經(jīng)元的輸出與訓(xùn)練數(shù)據(jù)的標(biāo)簽之間的誤差是否小于閾值,當(dāng)誤差小于某閾值時(shí),算法結(jié)束,否則繼續(xù)訓(xùn)練網(wǎng)絡(luò);
步驟8.將測(cè)試數(shù)據(jù)輸入訓(xùn)練好的網(wǎng)絡(luò)來(lái)獲得檢測(cè)的最終結(jié)果.
為了進(jìn)一步驗(yàn)證本研究所提方法的優(yōu)越性,采用KDDCUP99來(lái)進(jìn)行仿真.這個(gè)數(shù)據(jù)機(jī)是模擬美國(guó)空軍局域網(wǎng)在9個(gè)星期中的網(wǎng)絡(luò)連接數(shù)據(jù),包含一些有標(biāo)簽數(shù)據(jù)和一些無(wú)標(biāo)簽數(shù)據(jù).其中,攻擊類(lèi)型的種類(lèi)為22,進(jìn)一步又可以歸為5種類(lèi)型.
表1 KDDCUP99數(shù)據(jù)標(biāo)識(shí)
本研究從下面幾個(gè)角度來(lái)對(duì)系統(tǒng)的性能進(jìn)行評(píng)價(jià),即訓(xùn)練的檢測(cè)率DR、誤檢率FPR和漏報(bào)率MR,它們的表達(dá)方式如下,
(9)
(10)
(11)
誤檢率FPR為,
FPR=KR+MR
(12)
算法參數(shù)的設(shè)置為:將輸入層與競(jìng)爭(zhēng)層獲勝神經(jīng)元之間的權(quán)值Wij(t)(1)、競(jìng)爭(zhēng)層獲勝神經(jīng)元與輸出層之間的權(quán)值Wij(t)(2)、兩層的學(xué)率初始值η(t)(1)和η(t)(2)都初始化為[0,1]之間的值.設(shè)置兩層領(lǐng)域半徑N(t)(1)和η(t)(2)為3,最大迭代次數(shù)T=1 000.
訓(xùn)練數(shù)據(jù)一共2 000個(gè),測(cè)試數(shù)據(jù)一共1 000個(gè),測(cè)試數(shù)據(jù)分為5組,每組200個(gè).本實(shí)驗(yàn)應(yīng)用本研究所提的方法,輸入2 000個(gè)訓(xùn)練數(shù)據(jù)到網(wǎng)絡(luò)中,對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到訓(xùn)練好的模型,然后再輸入5組測(cè)試數(shù)據(jù)進(jìn)行測(cè)試.得到網(wǎng)絡(luò)入侵的檢測(cè)結(jié)果如表2所示.
表2 系統(tǒng)整體性能檢測(cè)
從表2可知,本研究的檢測(cè)算法在5組數(shù)據(jù)上均能有較高的檢測(cè)正確率,同時(shí)保持較低的誤報(bào)率和漏報(bào)率.
再次輸入1 000組測(cè)試數(shù)據(jù),將本研究的算法與文獻(xiàn)[6]和文獻(xiàn)[7]算法進(jìn)行比較,得到3種方法的網(wǎng)絡(luò)攻擊入侵檢測(cè)結(jié)果,如表3所示.
表3 各攻擊類(lèi)別檢測(cè)結(jié)果
從表3可知,5種攻擊中,本研究的算法獲得的檢測(cè)結(jié)果均較其他2種算法好,尤其是對(duì)于Normal攻擊和U2R攻擊的檢測(cè)率,遠(yuǎn)遠(yuǎn)高于另外2種算法.
隨著網(wǎng)絡(luò)應(yīng)用的普及和規(guī)模的急劇膨脹,網(wǎng)絡(luò)安全攻擊事件層出不窮,入侵檢測(cè)系統(tǒng)作為對(duì)網(wǎng)絡(luò)進(jìn)行安全保護(hù)的重要手段,已經(jīng)成為了計(jì)算機(jī)信息安全和網(wǎng)絡(luò)安全研究的關(guān)鍵領(lǐng)域.本研究提出了一種基于自組織映射網(wǎng)絡(luò)的入侵檢測(cè)算法,通過(guò)訓(xùn)練數(shù)據(jù)來(lái)對(duì)自組織映射網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到一個(gè)用于進(jìn)行入侵檢測(cè)的網(wǎng)絡(luò)安全檢測(cè)算法,并采用KDDCUP99進(jìn)行仿真來(lái)對(duì)本算法進(jìn)行了驗(yàn)證,且將具有最大概率的模型作為入侵檢測(cè)結(jié)果.仿真實(shí)驗(yàn)表明,本研究算法具有較好的有效性和可行性.
成都大學(xué)學(xué)報(bào)(自然科學(xué)版)2018年3期