周麗娟
(山西財(cái)經(jīng)大學(xué)實(shí)驗(yàn)教學(xué)中心,山西太原030006)
隨著互聯(lián)網(wǎng)的飛速發(fā)展和網(wǎng)絡(luò)費(fèi)用的進(jìn)一步降低,網(wǎng)絡(luò)已經(jīng)深入幾乎每個(gè)家庭和社會(huì)的每個(gè)角落,直接影響了人們生活的健康和社會(huì)的安全[1]。網(wǎng)絡(luò)入侵檢測(cè)技術(shù)即通過(guò)對(duì)網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)監(jiān)控,通過(guò)從網(wǎng)絡(luò)節(jié)點(diǎn)處收集信息,來(lái)發(fā)現(xiàn)網(wǎng)絡(luò)中是否存在著違反安全策略以及攻擊的行為。
網(wǎng)絡(luò)入侵檢測(cè)方法根據(jù)檢測(cè)方法的不同可以誤用入侵檢測(cè)和異常入侵檢測(cè)兩類(lèi)方法[2]。誤用入侵檢測(cè)方法主要是通過(guò)對(duì)知識(shí)庫(kù)的檢測(cè)來(lái)匹配網(wǎng)絡(luò)入侵檢測(cè)行為,其缺點(diǎn)是當(dāng)知識(shí)庫(kù)中的知識(shí)存儲(chǔ)不完備時(shí),會(huì)存在一些無(wú)法被檢測(cè)的行為。異常入侵檢測(cè)是一種通過(guò)對(duì)可接受行為的描述來(lái)判斷其是否與正常行為存在偏差,當(dāng)該行為與正常行為存在較大偏差時(shí),就將該行為檢測(cè)為入侵行為[3]。異常入侵檢測(cè)方法能實(shí)現(xiàn)未知網(wǎng)絡(luò)的實(shí)時(shí)有效檢測(cè),目前已經(jīng)成為了網(wǎng)絡(luò)入侵檢測(cè)的研究熱點(diǎn)[4]。網(wǎng)絡(luò)入侵檢測(cè)的主要方法有:人工智能方法、統(tǒng)計(jì)類(lèi)方法和計(jì)算機(jī)免疫方法。劉珊珊等[5]提出了一種基于PCA 的PSO-BP 入侵檢測(cè)方法,能結(jié)合PCA 理論和BP 局部搜索理論和PSO 的全局搜索能力,并通過(guò)PCA來(lái)實(shí)現(xiàn)特征提取,作為BP網(wǎng)絡(luò)的輸入,以提高檢測(cè)的準(zhǔn)確率。高妮等[6]提出了一種基于自編碼網(wǎng)絡(luò)并基于支持向量機(jī)的入侵檢測(cè)模型,該模型采用多層無(wú)監(jiān)督的限制玻爾茲曼機(jī)來(lái)對(duì)原始數(shù)據(jù)進(jìn)行降維,建立高維空間和低維空間的網(wǎng)結(jié)構(gòu),實(shí)現(xiàn)低維數(shù)據(jù)的高維表示。張永良等[7]提出了一種基于改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)的周界的入侵檢測(cè)方法,在深層特征的基礎(chǔ)上融入淺層的特征,并利用softmax 進(jìn)行分類(lèi),并通過(guò)實(shí)驗(yàn)表明了改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)能具有較高的魯棒性。沈夏炯等[8]設(shè)計(jì)了一種基于人工蜂群優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)方法,在初始化神經(jīng)網(wǎng)絡(luò)參數(shù)時(shí),尤其是在權(quán)值和閾值的選擇上,盡量選擇適應(yīng)度更高的參數(shù),避免陷入局部最優(yōu)或者導(dǎo)致整個(gè)網(wǎng)絡(luò)的收斂速度過(guò)慢。
在以上工作的基礎(chǔ)上,提出了一種基于IMGA-BPNN 的網(wǎng)絡(luò)入侵監(jiān)測(cè)算法,能有效實(shí)現(xiàn)網(wǎng)絡(luò)的入侵檢測(cè),并能克服經(jīng)典神經(jīng)網(wǎng)絡(luò)的不足,并通過(guò)實(shí)驗(yàn)證明了文中方法的有效性。
BP 神經(jīng)網(wǎng)絡(luò)是 1986年由 Rumelhart 和 McCelland 提出的前饋型網(wǎng)絡(luò),它基于梯度下降算法,可以分為正向傳播和反向傳播兩個(gè)部分組成。BP 神經(jīng)網(wǎng)絡(luò)是由1 個(gè)輸入層、多個(gè)隱含層和1 個(gè)輸出層組成。三層的BP神經(jīng)網(wǎng)絡(luò)如圖1所示:
圖1 三層BP神經(jīng)網(wǎng)絡(luò)模型
BP 神經(jīng)網(wǎng)絡(luò)在進(jìn)行正向傳遞的過(guò)程中,將輸入信息輸入到輸入層,然后經(jīng)過(guò)若干隱含層的非線性變換,最后通過(guò)輸出層得到輸出結(jié)果。在反向傳遞的過(guò)程中,網(wǎng)絡(luò)的真實(shí)輸出值與標(biāo)簽值之間的差距為誤差信號(hào),將誤差信號(hào)經(jīng)過(guò)計(jì)算得到目標(biāo)函數(shù),并通過(guò)目標(biāo)函數(shù)對(duì)網(wǎng)絡(luò)權(quán)值和閾值進(jìn)行調(diào)整,直到誤差接近于0。
網(wǎng)絡(luò)設(shè)計(jì)的入侵檢測(cè)模型原理為:首先獲取訓(xùn)練樣本集,即在網(wǎng)絡(luò)上采集能對(duì)網(wǎng)絡(luò)入侵檢測(cè)的數(shù)據(jù),然后根據(jù)這些數(shù)據(jù)的種類(lèi)來(lái)確定神經(jīng)網(wǎng)絡(luò)輸入層神經(jīng)元的數(shù)量,同理,根據(jù)網(wǎng)絡(luò)可能產(chǎn)生的入侵類(lèi)型來(lái)確定網(wǎng)絡(luò)的輸出神經(jīng)元的個(gè)數(shù),而隱含層神經(jīng)元的數(shù)量以及層次則決定于樣本集的大小,當(dāng)樣本集很大時(shí),要設(shè)計(jì)較大的隱含層數(shù)量以及較多的神經(jīng)元數(shù)量,以使得網(wǎng)絡(luò)不容易陷入過(guò)擬合;同理,如果訓(xùn)練樣本集數(shù)量較少,網(wǎng)絡(luò)的隱含層神經(jīng)元的層次不宜過(guò)多,同時(shí)隱含層神經(jīng)元的個(gè)數(shù)不能太多,以防止網(wǎng)絡(luò)陷入欠擬合。
對(duì)于網(wǎng)絡(luò)的權(quán)值和閾值,除了采用訓(xùn)練樣本對(duì)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練,獲得一組訓(xùn)練后的最優(yōu)值,然后,再通過(guò)免疫遺傳算法對(duì)這些參數(shù)再次訓(xùn)練,得到一組最優(yōu)值,最后用于對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行初始化。
在網(wǎng)絡(luò)經(jīng)過(guò)訓(xùn)練,并采用免疫遺傳算法優(yōu)化后就得到了訓(xùn)練后的模型,將測(cè)試樣本輸入到訓(xùn)練后的模型后就能實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè)。
采用訓(xùn)練數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)的參數(shù)訓(xùn)練的過(guò)程就是:
(1) 建立網(wǎng)絡(luò)模型,根據(jù)訓(xùn)練數(shù)據(jù)來(lái)確定網(wǎng)絡(luò)的輸入層神經(jīng)元個(gè)數(shù)、隱含層神經(jīng)元層數(shù)以及對(duì)應(yīng)的神經(jīng)元個(gè)數(shù)以及輸出層的神經(jīng)元個(gè)數(shù);
(2)隨機(jī)初始化網(wǎng)絡(luò)的權(quán)值和閾值;
(3)根據(jù)訓(xùn)練數(shù)據(jù)得到網(wǎng)絡(luò)的輸出結(jié)果,計(jì)算輸出結(jié)果和標(biāo)簽值的差異來(lái)計(jì)算網(wǎng)絡(luò)的誤差平方和:
其中,訓(xùn)練樣本個(gè)數(shù)為N,網(wǎng)絡(luò)輸出的第i個(gè)樣本的第j個(gè)輸出值yij和真實(shí)值^yij;
(4) 采用反向傳播算法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,即從網(wǎng)絡(luò)的最后一層開(kāi)始從輸出層開(kāi)始向輸入層反向進(jìn)行傳播,各層的權(quán)值和閥值調(diào)整如下:
其中,參數(shù)學(xué)習(xí)率η、訓(xùn)練過(guò)程中的當(dāng)前迭代次數(shù)t以及當(dāng)前層r都需手動(dòng)設(shè)置。
免疫遺傳算法(GA)是將免疫算法和遺傳算法相結(jié)合的全局優(yōu)化算法,該算法通過(guò)不斷提高適應(yīng)度,即減少公式(1)對(duì)應(yīng)的預(yù)測(cè)誤差。在調(diào)整解的過(guò)程中,通過(guò)引入遺傳操作中的復(fù)制、選擇、交叉和變異操作來(lái)增加解的多樣性,防止算法盡早陷入局部最優(yōu),從而盡早獲取全劇最優(yōu)解。
基本的免疫遺傳算法的算法流程如圖2所示:
圖2 免役遺傳算法的算法流程
采用基于免疫遺傳神經(jīng)網(wǎng)絡(luò)(IM-GA-BPNN)算法的網(wǎng)絡(luò)入侵檢測(cè)算法,在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法的基礎(chǔ)上再次訓(xùn)練,而免疫算法和遺傳算法又利用各自的優(yōu)勢(shì)來(lái)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行再次的訓(xùn)練,因此,能更好地尋求到全局最優(yōu)解。
基于IM-GA-BPNN神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法
初始化:初始化當(dāng)前進(jìn)化代數(shù)λ=1 和迭代次數(shù)的最大值λmax,交叉概率pc和變異概率pm。
步驟1:在采用訓(xùn)練集訓(xùn)練了神經(jīng)網(wǎng)絡(luò)后得到的網(wǎng)絡(luò)參數(shù)來(lái)作為初始解,并在該初始解附近生成規(guī)模為M的初始抗體種群;
步驟2:種群中的每個(gè)個(gè)體的編碼方式為:編碼的長(zhǎng)度為所有權(quán)值和閾值數(shù)量總和,而每個(gè)的編碼的初始值為實(shí)數(shù),初始值為BP 算法訓(xùn)練后得到的參數(shù)值;
步驟3:計(jì)算每個(gè)樣本的個(gè)體適應(yīng)度,個(gè)體適應(yīng)度為公式(1)的倒數(shù)即:
步驟4:計(jì)算各抗體的親和度,并按照親和度的大小來(lái)選擇相應(yīng)數(shù)量的個(gè)體進(jìn)行復(fù)制,復(fù)制的數(shù)量為:
步驟5:對(duì)個(gè)體進(jìn)行交叉和變異,交叉和變異的概率分別為pc和pm,交叉操作即調(diào)整編碼中任意兩個(gè)位置的值,變異操作即隨機(jī)對(duì)某個(gè)位置的值進(jìn)行增減一個(gè)很小的數(shù);
步驟6:更新迭代次數(shù)λ=λ+1,直到迭代次數(shù)達(dá)到最大值λmax,此時(shí)將最優(yōu)解作為最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。
對(duì)方法進(jìn)行驗(yàn)證,將KDD99 CUP 入侵檢測(cè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)作為仿真數(shù)據(jù),該數(shù)據(jù)庫(kù)中的攻擊一共可以四種即使:
(1)拒絕服務(wù)攻擊(DOS);
(2)遠(yuǎn)程用戶(hù)未授權(quán)訪問(wèn)攻擊(R2L);
(3)本地用戶(hù)權(quán)限提升攻擊(U2R);
(4)探測(cè)攻擊(Probe)。
該數(shù)據(jù)庫(kù)中的數(shù)據(jù)一共有41 個(gè)特征。根據(jù)入侵的種類(lèi)和數(shù)據(jù)的特征種類(lèi),設(shè)計(jì)BP 神經(jīng)網(wǎng)絡(luò)的層數(shù)為4,輸入層的神經(jīng)元個(gè)數(shù)為41,輸出神經(jīng)元個(gè)數(shù)為4,第一層隱含層神經(jīng)元個(gè)數(shù)為20,第二層隱含層神經(jīng)元個(gè)數(shù)為8。選取KDD99 CUP 數(shù)據(jù)集中的2000 組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,訓(xùn)練的目標(biāo)是誤差達(dá)到0.002,在訓(xùn)練600 輪后,IM-GA-BPNN 模型得到的訓(xùn)練誤差仿真情況如圖3 所示:
圖3 訓(xùn)練結(jié)果
從圖3中可以看出,GA-BPNN 模型在大概300輪后,訓(xùn)練誤差就急速下降,到第750 輪時(shí),訓(xùn)練誤差就降低到了目標(biāo)值0.0001,而經(jīng)典BP 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差為接近0.08。
為了驗(yàn)證訓(xùn)練的效果,從訓(xùn)練的檢測(cè)率DR、誤檢率FPR和漏報(bào)率MR來(lái)進(jìn)一步驗(yàn)證本文所提方法的性能,它們的表達(dá)方式如下所示:
誤檢率FPR的計(jì)算為:
三種方法對(duì)應(yīng)的迭代次數(shù)、訓(xùn)練時(shí)間、檢測(cè)率DR和誤檢率FPR結(jié)果如表1所示:
表1 各類(lèi)方法比較結(jié)果
從表1中可以看出,基于免疫遺傳優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)模型具有最高的檢測(cè)率,即高達(dá)98.5%,而B(niǎo)P 神經(jīng)網(wǎng)絡(luò)、PCA-NN、PCA-PSO-NN方法得到的檢測(cè)率分別為79.5%、90.6%和91.8%,顯然,所提的模型較另外三種方法在檢測(cè)率上分別提高了9%、7.9%和6.7%。
為了實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)進(jìn)行有效的入侵檢測(cè),設(shè)計(jì)了一種基于免疫遺傳算法和BP 神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè)方法,首先采用訓(xùn)練數(shù)據(jù)對(duì)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后采用免疫遺傳算法對(duì)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行參數(shù)優(yōu)化,得到優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)。采用KDD99 CUP 入侵檢測(cè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)作為仿真數(shù)據(jù)實(shí)驗(yàn),結(jié)果表明文中方法能有效實(shí)現(xiàn)網(wǎng)絡(luò)的入侵檢測(cè),能達(dá)到較高的誤檢率,較其他方法相比,具有檢測(cè)率高和收斂速度快的優(yōu)點(diǎn)。