周貴旺,孫 敏
(山西大學(xué) 計算機與信息技術(shù)學(xué)院,山西 太原 030006)
隨著Internet的飛速發(fā)展,網(wǎng)絡(luò)應(yīng)用的種類不斷增加,網(wǎng)絡(luò)入侵手段也不斷更新,網(wǎng)絡(luò)安全問題已經(jīng)成為信息社會所面臨的最重要的問題之一。入侵檢測作為網(wǎng)絡(luò)與信息安全技術(shù)中新的研究領(lǐng)域和成果之一,必將對保障網(wǎng)絡(luò)與信息的安全起到重要作用。目前國內(nèi)外IDS(Intrusion Detection System)研究中所涉及的一些技術(shù)和方法主要有:基于神經(jīng)網(wǎng)絡(luò)的入侵檢測技術(shù)、基于專家系統(tǒng)的入侵檢測技術(shù)、基于Agents的入侵檢測技術(shù)和基于模型推理的入侵檢測技術(shù)等。其中,基于神經(jīng)網(wǎng)絡(luò)的入侵檢測技術(shù)是近幾年網(wǎng)絡(luò)安全問題研究的熱點之一[1]。
在基于神經(jīng)網(wǎng)絡(luò)的入侵檢測技術(shù)中,反向傳播BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是比較常用的神經(jīng)網(wǎng)絡(luò)模型。BP算法本質(zhì)上屬于梯度下降算法,雖然具有自學(xué)習能力、尋優(yōu)精確等特點,但如果初始連接權(quán)值取值不當,就會導(dǎo)致網(wǎng)絡(luò)振蕩、收斂速度慢、容易陷入局部極值等問題。針對BP算法存在的這些缺點,目前有一種解決方法是用具有全局搜索能力的遺傳算法GA(Genetic Algorithm)優(yōu)化BP神經(jīng)網(wǎng)絡(luò),將其應(yīng)用于入侵檢測。
普通GA的適應(yīng)度函數(shù)不靈敏,其選擇方法易產(chǎn)生隨機誤差,通用性較差,影響算法的性能。本文對GA的適應(yīng)度函數(shù)和選擇方法進行改進,用其優(yōu)化BP神經(jīng)網(wǎng)絡(luò),并應(yīng)用在入侵檢測中。
BP神經(jīng)網(wǎng)絡(luò)模型是由一個輸入層、一個或多個隱含層和一個輸出層組成的一種多層前饋型網(wǎng)絡(luò),并用BP算法進行訓(xùn)練,是一種有導(dǎo)師的學(xué)習方法,利用梯度下降法對權(quán)值進行修正。在實際應(yīng)用和研究中通常一個隱含層就能滿足要求。
BP 算法的過程可以分為兩個階段。第一階段是由輸入層開始逐層計算各層神經(jīng)元的輸入和輸出,直到輸出層為止。第二階段是由輸出層開始逐層計算各層神經(jīng)元的輸出誤差,并根據(jù)誤差梯度下降原則來調(diào)節(jié)各層的連接權(quán)值和節(jié)點閾值,使修改后的網(wǎng)絡(luò)的最終輸出能接近期望值[2]。如果一次訓(xùn)練以后還達不到精度要求,可以重復(fù)訓(xùn)練,直到滿足訓(xùn)練精度為止。BP神經(jīng)網(wǎng)絡(luò)模型流程圖如圖1所示[3]。
圖1 BP算法流程圖
遺傳算法是由DARWIN的生物進化論和MENDEL的遺傳理論發(fā)展而來的一種高效的全局搜索算法,它模擬自然選擇和遺傳中發(fā)生的繁殖、交配和突變現(xiàn)象,從初始種群出發(fā),根據(jù)適應(yīng)度函數(shù)計算出的適應(yīng)度函數(shù)值,通過選擇、交叉和變異這3個操作,產(chǎn)生新的更適應(yīng)環(huán)境的個體(問題的解),使群體進化到搜索空間中越來越接近問題的最優(yōu)解的區(qū)域。這樣一代一代不斷進化,最后收斂到最適應(yīng)環(huán)境的個體上,即求得問題的最優(yōu)解。圖2為遺傳算法示意圖。
圖2 遺傳算法示意圖
在遺傳算法求解問題時,個體的優(yōu)劣程度是由適應(yīng)度函數(shù)值的大小來判定的。通常對高于平均適應(yīng)度值的個體做交叉,而對低于平均適應(yīng)度值的個體進行變異,從而一代一代地提高群體的平均適應(yīng)度值。對于同一種群而言,采用不同的適應(yīng)度函數(shù),平均適應(yīng)度值就會不同,優(yōu)于平均適應(yīng)度值的個體數(shù)目也不同,即求解問題的能力有差別。由此可見,適應(yīng)度函數(shù)在遺傳算法求解問題的過程中起著至關(guān)重要的作用。
遺傳算法中的選擇、交叉和變異這3個操作是實現(xiàn)優(yōu)勝劣汰進化的關(guān)鍵過程。理想情況下,如果每次選擇操作選取的都是最適合解決問題的那些解,那么最后得到的解即為最優(yōu)解。因而,選擇方法在遺傳算法優(yōu)化過程中是非常重要的。常見的選擇方法有輪盤賭選擇法、錦標賽選擇法和隨機遍歷選擇法,這些方法各有特點,按照收斂速度由快到慢依次為:錦標賽選擇法、隨機遍歷選擇法和輪盤賭選擇法。然而,錦標賽選擇法和隨機遍歷選擇法在選擇的時候由于具有很大的隨機性,容易產(chǎn)生隨機誤差,均不易找到全局最優(yōu)解而陷入局部最優(yōu)解。而輪盤賭選擇法雖能找到全局最優(yōu)解,但是收斂速度很慢。因此,遺傳算法有必要進行改進。
根據(jù)設(shè)計適應(yīng)度函數(shù)的規(guī)范性、合理性、計算量和通用性等規(guī)則,本文采用參考文獻[4]中設(shè)計的適應(yīng)度函數(shù):
在理想情況下,b的值是fmin(x)=y*,當適應(yīng)度值為0.5時,α是f(x)到fmin(x)的距離??紤]到適應(yīng)度函數(shù)的不同應(yīng)用場合,本文將β值取為2,將α值分別取為1、1.5、0.5。
式(1)中的a和b隨遺傳算法的下一代進化而不斷地修正。b可取當前第i代中的最小值,即b=f(x)×i,而a用公式:
基于種群交流的選擇方法就是利用兩種或兩種以上的選擇方法,綜合各種選擇方法的優(yōu)點,既能保證找到全局最優(yōu)解,又能保證以一個相對較快的速度收斂,所以其性能通常較好。本文采用的基于種群交流的選擇方法綜合運用輪盤賭選擇法和錦標賽選擇法。
以群體A和群體B為例詳細說明基于種群交流選擇方法的基本思想[5](如圖3所示)。群體A和群體B是兩個不同的種群。在進化中,群體A第一代中的a11與群體B第一代中的b12產(chǎn)生的后代a11′和 a12′進入到群體 A中的第二代;群體 B第一代中的b11與群體 A第一代中 a12產(chǎn)生的后代 b11′和 b12′進入到群體B中的第二代。而群體A第一代中剩余的個體進行輪盤賭選擇,群體B第一代中剩余的個體進行錦標賽選擇。以后的每一代都按照上述的方式進化,直至達到最大進化代數(shù)N[5]。
圖3 基于種群交流的選擇方法
從圖3中可以看出,在遺傳算法進化過程中如果對每一個種群的每一代都進行種群間交流,當最大進化代數(shù)N很大時會嚴重影響算法的執(zhí)行效率,而且效果也不一定好。所以在該方法具體應(yīng)用過程中,以一定的概率 (稱為種群交流概率)隨機對某兩個種群進化過程中的某些代進行交流。這樣既能發(fā)揮種群交流的優(yōu)點,又有助于提高算法的效率。
用遺傳算法來優(yōu)化神經(jīng)網(wǎng)絡(luò)可以分為三種:優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值、優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化神經(jīng)網(wǎng)絡(luò)學(xué)習規(guī)則。因為神經(jīng)網(wǎng)絡(luò)的全部思想都體現(xiàn)在權(quán)值上,所以采用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值,能夠更好地提高神經(jīng)網(wǎng)絡(luò)的整體性能。用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值的主要思想是改善神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和節(jié)點閾值[6]。
本文用改進的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值的主要思想是:初始化神經(jīng)網(wǎng)絡(luò)權(quán)值后,首先用BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,如果能滿足精度要求就結(jié)束;如果不能滿足精度,再用改進的遺傳算法對BP神經(jīng)網(wǎng)絡(luò)權(quán)值進行優(yōu)化,在解空間中找出一個較好、較小的搜索空間;然后,用BP算法在這個較小的解空間中搜索出最優(yōu)解[7]。該算法的主要步驟如下:
(1)初始化連接權(quán)值和節(jié)點閾值,先用BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。若滿足訓(xùn)練精度,則停止訓(xùn)練;否則,將這些初始權(quán)閾值初始化為一個初始種群,用改進的遺傳算法進行優(yōu)化。
(2)編碼,在遺傳算法中,編碼影響著算法的性能和種群的多樣性。二進制編碼和實數(shù)編碼相比較而言,二進制編碼比實數(shù)編碼搜索能力更強,而實數(shù)編碼在變異操作上能更好地保持種群的多樣性。本文采用這兩種編碼相結(jié)合的方式[8],對網(wǎng)絡(luò)結(jié)構(gòu)采用二進制編碼,對權(quán)閾值范圍、學(xué)習速率和動量因子采用實數(shù)編碼[9]。
(3)用適應(yīng)度函數(shù)計算出各初始種群對應(yīng)的適應(yīng)度函數(shù)值。
(4)選擇,采用基于種群交流的選擇方法。
(5)交叉,將選擇后得到的新的群體按照預(yù)先確定的交叉率用均勻交叉的方式進行交叉。
(6)變異,依據(jù)預(yù)先給定的變異率進行變異操作。
(7)重復(fù)進行步驟(4)、(5)、(6),直至滿足達到最大進化代數(shù)后結(jié)束。
(8)將得到的權(quán)值再次用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練判斷是否滿足精度要求。若滿足,則算法結(jié)束;否則,繼續(xù)對該權(quán)值進行訓(xùn)練,直至達到精度要求為止。算法流程圖如圖4所示。
圖4 遺傳神經(jīng)網(wǎng)絡(luò)算法流程圖
將本文提出的入侵檢測方法用Matlab 7.6進行仿真,驗證其性能。樣本數(shù)據(jù)采用美國麻省理工學(xué)院林肯實驗室提供的網(wǎng)絡(luò)攻擊評估數(shù)據(jù)[10]。數(shù)據(jù)集中的每條記錄包含了41個特征量,根據(jù)實驗環(huán)境和研究需要,選擇每條記錄的持續(xù)時間、協(xié)議類型、服務(wù)類型、目的端發(fā)送到源端的字節(jié)數(shù)、連接狀態(tài)等10個特征作為研究對象,共選取1 200條記錄。為了使神經(jīng)網(wǎng)絡(luò)能夠處理非數(shù)值型數(shù)據(jù),對數(shù)據(jù)特征中數(shù)值特征和非數(shù)值特征統(tǒng)一進行數(shù)值編碼,并進行歸一化處理。
整個神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點為10,隱含層節(jié)點為15,輸出層為1;隱含層傳遞函數(shù)為tansig,輸出層傳遞函數(shù)為 logsig,訓(xùn)練函數(shù)為 traingda,目標精度為 0.001,最大訓(xùn)練周期為1 000;遺傳算法初始種群大小為 200,最大進化代數(shù)為200,選擇概率為 0.9,交叉率為0.8,變異率為0.09,種群交流概率為 0.6。
將所選取的數(shù)據(jù)應(yīng)用到遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)和改進的遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò),并用Matlab 7.6對兩種神經(jīng)網(wǎng)絡(luò)分別進行入侵檢測仿真,所得結(jié)果如圖5和圖6所示。
圖5 基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測仿真結(jié)果
圖6 基于改進遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測的仿真結(jié)果
表1為對圖5和圖6的仿真結(jié)果進行的比較和分析,可以看出:基于改進遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測取得較好的效果。采用基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測在最初收斂很快,在50 Epochs后明顯變緩,在1 000 Epochs時仍未收斂,所用的時間比較長;而采用改進遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測在開始50 Epochs里收斂比較慢,但在50 Epochs后收斂速度明顯加快,在502 Epochs時收斂。在檢測效果上,由表1可以看出,基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測的檢測率為89.67%,而改進的遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)入侵檢測的檢測率為96.58%,其誤差、漏報率和誤報率也明顯提高。由此可見,采用改進遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的入侵檢測,訓(xùn)練精度、漏報率、誤報率和檢測率都明顯提高,時間也比前者縮短了一半以上,性能較好。
表1 仿真結(jié)果比較表
本文主要是對遺傳算法的適應(yīng)度函數(shù)和選擇方法進行改進,用改進的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),并將其應(yīng)用在入侵檢測中。有效克服了BP神經(jīng)網(wǎng)絡(luò)容易陷入局部極值和收斂速度慢等問題,增強了全局搜索能力,提高了訓(xùn)練精度、漏報率、誤報率和檢測率,縮短了訓(xùn)練時間,從而提升入侵檢測的性能。
[1]王永全.入侵檢測系統(tǒng)(IDS)的研究現(xiàn)狀和展望[J].通信技術(shù),2008,41(11):139-146.
[2]欒慶林,盧輝斌.基于神經(jīng)網(wǎng)絡(luò)與遺傳算法的入侵檢測研究[J].電子測量技術(shù),2008,31(5):70-74.
[3]戴天虹.基于遺傳神經(jīng)網(wǎng)絡(luò)的入侵檢測研究[J].中國安全科學(xué)學(xué)報,2006,16(2):103-108.
[4]劉英.遺傳算法中適應(yīng)長函數(shù)的研究[J].蘭州工業(yè)高等專科學(xué)校學(xué)報,2006,13(3):1-4.
[5]魏全新,劉賢鋒,黃鏘,等.遺傳算法選擇方法的比較分析[J].通信和計算機,2008,5(8):61-65.
[6]LAMHK.Tuningofthestructureandparametersofneuralnetwork using an improved genetic algorithm [C].Industrial Electronics Society,Denver,CO,USA: IECON’01,2001.
[7]欒慶林,盧輝斌.改進遺傳算法在神經(jīng)網(wǎng)絡(luò)權(quán)值優(yōu)化中的應(yīng)用研究[J].遙測遙控,2008,29(1):51-54.
[8]YE N G G,LU H.Hierarchical genetic algorithm based neuralnetwork design [C].2000 IEEE Symposium on Combinations ofEvolutionamy Computation and Neural Networks, 2000: 168-175.
[9]馬海峰,宋井峰,岳新.遺傳算法優(yōu)化的混合神經(jīng)網(wǎng)絡(luò)入侵檢測系統(tǒng)[J].通信技術(shù),2009,42(9):106-108.
[10]http://www.ll.mit.edu./IST/ideval/data/2000/LLS-DDOS-2.0.0.html.2001-06-01.