周麗娟
(山西財經(jīng)大學(xué)實驗教學(xué)中心,山西太原030006)
網(wǎng)絡(luò)的飛速發(fā)展給社會帶來了很大的進(jìn)步,但同時也帶來了很多的安全問題,出現(xiàn)了各類安全事件。因此,如何保證網(wǎng)絡(luò)的安全,以及避免各類網(wǎng)絡(luò)入侵事件的發(fā)生,是人類社會關(guān)注的焦點。由防護(hù)、檢測、反應(yīng)和恢復(fù)4個部分構(gòu)成了防御體系的第一道防線,而入侵檢測則是作為對第一道防線進(jìn)行補充的第二道防線,是網(wǎng)絡(luò)安全防護(hù)體系的重要方法和技術(shù)[1-4]。
現(xiàn)有的入侵檢測方法主要有:基于特征選擇的入侵檢測方法,基于AdaBoost的入侵檢測方法、基于聚類的入侵檢測方法和基于全局優(yōu)化算法的入侵檢測方法。文獻(xiàn)[5]提出了一種基于特征選擇的入侵檢測方法,利用不同的離散化和特征選擇算法構(gòu)成具有差異性的特征子集,并對特征子集進(jìn)行歸一化處理,然后分類算法對特征進(jìn)行建模。文獻(xiàn)[6]提出了一種結(jié)合主動學(xué)習(xí)和半監(jiān)督學(xué)習(xí)的入侵檢測方法。采用有標(biāo)記的樣本來訓(xùn)練2分類器,采用與2分類不一致的樣本和半監(jiān)督學(xué)習(xí)算法來學(xué)習(xí)分類器,直到所有樣本完畢。文獻(xiàn)[7]提出了一種改進(jìn)人工蜂群算法的異常入侵檢測方法,在蜜源階段采用不同編碼方式來編碼參數(shù)和特征值,通過兩種搜索策略來搜索,通過在適應(yīng)值函數(shù)中加入誤報率影響因子。文獻(xiàn)[8]提出了一種對監(jiān)控系統(tǒng)傳回的視頻圖像進(jìn)行目標(biāo)識別的入侵方法,提出了一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的行人檢測算法,通過將淺層特征融入深層特征,最后再利用Softmax來分類。
神經(jīng)網(wǎng)絡(luò)是一種利用生物進(jìn)化思想進(jìn)行模擬的反饋機制,具有分布式信息存儲、并行計算、自適應(yīng)學(xué)習(xí)等能力,適合被應(yīng)用于入侵檢測。但其也存在著一些問題,如收斂速度慢和陷入局部最優(yōu),這增加了網(wǎng)絡(luò)的訓(xùn)練時間。針對以上問題,提出了一種基于小生境和Elman網(wǎng)絡(luò)安全入侵檢測方法,最后再將所提方法在KDD99數(shù)據(jù)集上進(jìn)行驗證。
ELMAN是1990年提出的一種神經(jīng)網(wǎng)絡(luò)算法,該算法在傳統(tǒng)的3層的神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上加入了一個承接層,即增加了延時,使得系統(tǒng)具有記憶能力,能夠被應(yīng)用于具有復(fù)雜動態(tài)性的系統(tǒng)中,見圖1。
圖1 ELMAN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
從圖1中可以看出,ELMAN網(wǎng)絡(luò)主要包含四個層次:輸入層、隱藏層、承接層、輸出層。在EL?MAN網(wǎng)絡(luò)中,承接層存儲并延遲隱藏層的輸出結(jié)果,能建立隱藏層的輸入之間的自動關(guān)聯(lián),使得整個網(wǎng)絡(luò)對歷史數(shù)據(jù)均具有較高的敏感性,實現(xiàn)網(wǎng)絡(luò)的入侵檢測。
ELMAN網(wǎng)絡(luò)具有較強的記憶能力,但其非線性逼近能力和泛化能力均不強。徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)具有很強的非線性映射能力,且不容易陷入局部最優(yōu),能對網(wǎng)絡(luò)輸出的實時數(shù)據(jù)進(jìn)行分類,進(jìn)而判斷其對應(yīng)的攻擊入侵事件。因此,提出一種改進(jìn)的RBF-ELMAN網(wǎng)絡(luò)。該改進(jìn)的RBF網(wǎng)絡(luò)的輸出端的數(shù)量對應(yīng)著入侵檢測的類型數(shù)量,每個輸出連接一個ELMAN網(wǎng)絡(luò),不僅可以有效地存儲每個時間段發(fā)生的異常行為,提供網(wǎng)絡(luò)的泛化能力,也可以提高系統(tǒng)的檢測能力。該RBF-ELMAN的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示:
圖2 RBF-ELMAN神經(jīng)網(wǎng)絡(luò)
采用RBF-ELMAN網(wǎng)絡(luò)來實現(xiàn)網(wǎng)絡(luò)入侵檢測的流程可以分為下面幾個步驟:
(1)確定網(wǎng)絡(luò)結(jié)構(gòu):建立如圖2所示的網(wǎng)絡(luò)結(jié)構(gòu),在RBF輸出端端根據(jù)網(wǎng)絡(luò)入侵檢測的類型來確定ELMAN網(wǎng)絡(luò)的數(shù)量,采用(0,1)之間的隨機數(shù)來初始化RBF-ELMAN網(wǎng)絡(luò)的各權(quán)重和閾值;
(2)在任意一個時間步,將輸入向量輸入RBFELMAN,在RBF網(wǎng)絡(luò)的輸出部分可以得到輸出向量,通過設(shè)置閾值K,將大于K的值保留,然后將低于K的值設(shè)置為零;
(4)計算每個ELMAN的輸出,并將其與閾值向量進(jìn)行比較,當(dāng)輸出向量高于閾值向量時,說明發(fā)生了入侵事件;
(5)調(diào)整RBF-ELMAN網(wǎng)絡(luò)的結(jié)構(gòu),從輸出端不斷調(diào)整網(wǎng)絡(luò)的結(jié)構(gòu),直到樣本數(shù)據(jù)的輸出入侵類型和真實的入侵檢測類型相同;
(6)循環(huán)執(zhí)行步驟(2)~(5),直到所有樣本的檢測誤差均小于一定的閾值。
遺傳算法(Standard Gene algorithm,SGA)是1975年由Michigan大學(xué)提出的模擬生物進(jìn)化算法,目前已經(jīng)應(yīng)用于進(jìn)行全局尋優(yōu)。但是其在問題域和目標(biāo)復(fù)雜時,容易陷入局部最優(yōu)。小生境來源于自然界中相同物種共同生活繁衍后代的需求。小生境中的排擠技術(shù)則是提高整個種群整體個體適應(yīng)度的需要,通過設(shè)置小生境的半徑,且將個體之間的歐式距離小于小生境半徑時,則對其進(jìn)行懲罰,加快種群更快的進(jìn)化。任何兩個個體之間的歐式距離
在公式(1)中,d表示小生境的半徑,h為個體的編碼對應(yīng)的維度。
目標(biāo)函數(shù)是降低RBF-ELMAN網(wǎng)絡(luò)的誤差,而小生境遺傳算法的目標(biāo)是極可能地提高適應(yīng)度,因此其目標(biāo)函數(shù)為:
其中,樣本數(shù)為n,樣本輸出的檢測類型為m。
算法2小生境自適應(yīng)遺傳算法
輸入:規(guī)模種群N,初始個體數(shù)k,α,β,小生境半徑d,迭代次數(shù)最大值tmax;
輸出:RBF-ELMAN網(wǎng)絡(luò)的最優(yōu)參數(shù);
步驟1:將RBF-ELMAN訓(xùn)練過程得到的參數(shù)作為初始解,然后在初始解周圍隨機生成出200個解得到初始種群;
步驟2:計算初始種群中所有個體的適應(yīng)度:
其中,γ為子種群的規(guī)模;
步驟4:在步驟3產(chǎn)生的種群的基礎(chǔ)上,根據(jù)公式(4)和公式(5)來選擇個體進(jìn)行交叉和變異,構(gòu)成新的種群。
其中,fmax表示種群的最優(yōu)適應(yīng)度;favg表示種群的平均適應(yīng)度;fc表示交叉?zhèn)€體的適應(yīng)度;fm表示變異個體的適應(yīng)度;
步驟5:采用小生境排擠技術(shù)生成新一代的初始種群;
步驟6:判斷當(dāng)前迭代次數(shù)t是否已經(jīng)達(dá)到最大迭代次數(shù)tmax,則算法結(jié)束;否則當(dāng)前迭代次數(shù)t=t+1,并轉(zhuǎn)向步驟。
采用KDD99數(shù)據(jù)集作為仿真數(shù)據(jù),KDD99是由訓(xùn)練集和測試集組成的,訓(xùn)練集包含4900000條記錄,測試集包含311026條記錄。KDDCUP99的每條記錄都包含41個屬性,每條記錄都有一個標(biāo)記,即為正常類型或特定的攻擊類型,攻擊類型可以分為:
(1)Dos攻擊:這類攻擊是通過向計算機或者網(wǎng)絡(luò)發(fā)送大量消息,使得計算機或者網(wǎng)絡(luò)無法正常提供服務(wù),甚至導(dǎo)致網(wǎng)絡(luò)發(fā)生崩潰;
(2)Probing攻擊:這類攻擊是通過對掃描端口進(jìn)行攻擊;
(3)R2L攻擊:這類攻擊是通過利用漏洞來進(jìn)行遠(yuǎn)程攻擊,并利用攻擊來做一些違規(guī)操作;
本設(shè)計單片機模塊是由AT89S52單片機,晶振電路,復(fù)位電路組成的單片機最小系統(tǒng)。本設(shè)計的控制模塊原理如圖3所示。
(4)U2R攻擊:這類攻擊是通過漏洞來獲得用戶系統(tǒng)的訪問權(quán)限,對系統(tǒng)進(jìn)行訪問。
這4個攻擊分類加上正常類型,共5個大類。KDDCUP99每個大攻擊類型可以分為多個分類見表1。
表1 入侵種類的具體標(biāo)識
將檢測率、誤報率、漏報率作為入侵檢測技術(shù)的評價指標(biāo),如公式(6)~(8)所示:
ELMAN網(wǎng)絡(luò)的RBF網(wǎng)絡(luò)的輸入端共有41個神經(jīng)元,輸出端的神經(jīng)元個數(shù)為5,在RBF輸出端再連接ELMAN網(wǎng)絡(luò)。將測試集中隨機分為兩組,即測試集1和測試集2,對本文所提的方法進(jìn)行驗證,并與文獻(xiàn)[6]、文獻(xiàn)[7]和文獻(xiàn)[8]方法進(jìn)行比較,得到的方法檢測率如表2和表3所示:
三種方法在這兩個測試集上的結(jié)果如表2和表3所示:
表2 測試集1入侵檢測結(jié)果
表3 測試集2入侵檢測結(jié)果
從表2和表3中可以看出,在測試集1和測試集2上,本文方法均具有較高的檢測率。在測試集1上,文獻(xiàn)[8]方法具有較高的檢測率;在測試集2上,文獻(xiàn)[7]方法具有較高的檢測率。
將4種方法的檢測率,漏報率、誤報率和檢測時間進(jìn)行比較,得到的結(jié)果如表4所示:
表4 各種方法的指標(biāo)評價比較
從表4可以看出,本文方法不僅具有較高的檢測率和較低的漏檢率和誤檢率,同時具有較少的檢測時間,相比其它方法具有較高的優(yōu)越性。
入侵檢測則是作為對第一道防線進(jìn)行補充的第二道防線,是網(wǎng)絡(luò)安全防護(hù)體系的重要方法和技術(shù)。為了提高網(wǎng)絡(luò)入侵檢測的檢測率以及降低相應(yīng)的誤報率和漏報率,同時盡可能地減少檢測時間,提出另一種基于小生境和ELMAN神經(jīng)網(wǎng)絡(luò)的入侵檢測模型。首先結(jié)合RBF神經(jīng)網(wǎng)絡(luò)和ELMAN網(wǎng)絡(luò)各自的優(yōu)點,建立RBF-ELMAN網(wǎng)絡(luò)模型,然后給出了RBF-ELMAN網(wǎng)絡(luò)模型的訓(xùn)練方法。為了防止算法陷入局部最優(yōu),提出了一種基于小生境算法對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)一步優(yōu)化的算法。為了驗證本文方法的有效性,將本文方法與文獻(xiàn)[6]方法、文獻(xiàn)[7]方法和文獻(xiàn)[8]方法進(jìn)行比較,本文方法具有較高的檢測率和較低的漏報率和誤檢率,同時具有較高的檢測效率。