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