劉春
摘要:為了有效地檢測網(wǎng)絡(luò)入侵行為,提出一種人工魚群(AFSA)算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)(BPNN)入侵檢測模型。首先將BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值編碼為AFSA的人工魚狀態(tài),然后通過人工魚群覓食、聚群、追尾等行為,對BP神經(jīng)網(wǎng)絡(luò)的參數(shù)進行優(yōu)化,尋找到BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)參數(shù),最后利用建立的最優(yōu)BP神經(jīng)網(wǎng)絡(luò)模型,對網(wǎng)絡(luò)入侵行為進行檢測。在Windows XP操作系統(tǒng),Matlab 2012平臺上,采用KDD CUP 99數(shù)據(jù)集仿真測試,相對于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)模型,本文模型可以顯著提高網(wǎng)絡(luò)入侵檢測正確率,有著更加廣泛的應(yīng)用前景。
關(guān)鍵詞:網(wǎng)絡(luò)入侵;神經(jīng)網(wǎng)絡(luò);參數(shù)優(yōu)化;人工魚群算法
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-2163(2015)03-
Application of Back Propagation Neural Network Optimizing by Artificial Fish Swarm Algorithm in Network Intrusion Detection
LIU Chun
(Network Management Center , Sichuan College of Architectural Technology, Deyang Sichuan 618000, China)
Abstract: In order to detect the network intrusion effectively, an artificial fish swarm (AFSA) algorithm is proposed to optimize the BP neural network (BPNN) intrusion detection model. In this paper, firstly, weights and threshold coding state of BP neural network is artificial fish of the AFSA, followed by artificial fish swarm foraging, Poly Group, rear end, which is used to optimize the parameters of BP neural network, to find the optimal parameters of the BP neural network; After that, using the establishment of optimal BP neural network model, the behavior of the network intrusion are detected. In the Windows XP operating system, on the platform of MATLAB 2012 by the KDD cup 99 data set of simulation test, compared with the traditional BP neural network model, the proposed model can significantly improve the network intrusion detection accuracy and has a more extensive application prospects.
Keywords: Network Intrusion; Neural Network; Parameter Optimization; Artificial Fish Swarm Algorithm
0 引言
隨著互聯(lián)網(wǎng)規(guī)模越來越大,網(wǎng)絡(luò)的用途越來越廣泛,在網(wǎng)絡(luò)給人們生活帶來便利的同時,其受到入侵的可能性頁隨之增加,未經(jīng)授權(quán)用戶對計算機進行操作,可能竊取系統(tǒng)中的信息,給計算機系統(tǒng)造成一定的安全隱患,網(wǎng)絡(luò)安全問題日漸受到學(xué)界關(guān)注,在網(wǎng)絡(luò)安全防御研究領(lǐng)域,網(wǎng)絡(luò)入侵檢測已然成為迫切需要解決的一個重要課題[1-2]。
按照入侵檢測方式的不同,可將其分為誤用入侵檢測和異常入侵檢測[3]。其中,誤用入侵檢測方法主要是依據(jù)檢測知識庫,對網(wǎng)絡(luò)入侵行為進行匹配,如果檢測知識庫不完備,則可能存在某些未知的入侵行為無法檢測。而異常入侵檢測是通過對可接受行為進行描述,如果某項行為與正常行為存在偏差,則認為該行為是入侵行為,異常入侵檢測方法能夠?qū)ξ粗W(wǎng)絡(luò)攻擊行為進行有效檢測,從而成為當前網(wǎng)絡(luò)入侵研究的熱點研究內(nèi)容[4]。
網(wǎng)絡(luò)入侵檢測是依據(jù)網(wǎng)絡(luò)行為與正常行為進行比較,以判斷是否存在網(wǎng)絡(luò)入侵、攻擊行為,因此,可以將網(wǎng)絡(luò)入侵檢測認為是一個數(shù)據(jù)分類問題。網(wǎng)絡(luò)入侵檢測處理的分類數(shù)據(jù)屬于大樣本數(shù)據(jù),具有高維、復(fù)雜、非線性等特征;相應(yīng)地,傳統(tǒng)的數(shù)據(jù)分類檢測方法在實際應(yīng)用執(zhí)行時,即表現(xiàn)了計算速度慢、復(fù)雜、正確率低的結(jié)果現(xiàn)象[5]。近年來,隨著人工智能技術(shù)的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)被越來越多地用于數(shù)據(jù)分類問題。神經(jīng)網(wǎng)絡(luò)有多種類型,其中,BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)結(jié)構(gòu)簡單、學(xué)習(xí)能力強,切具有非線性逼近映射能力,相較于其它類型的神經(jīng)網(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò)的用途更為廣泛。但是,利用BP神經(jīng)網(wǎng)絡(luò)進行網(wǎng)絡(luò)入侵檢測,其檢測的準確率與網(wǎng)絡(luò)的初始權(quán)值、閾值等參數(shù)有關(guān),為了獲得較高的網(wǎng)絡(luò)入侵檢測正確率,就需要對BP神經(jīng)網(wǎng)絡(luò)進行參數(shù)優(yōu)化。即在利用學(xué)習(xí)樣本對BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練過程中,不是隨機產(chǎn)生BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,而是利用智能算法,如粒子群、遺傳、蟻群等算法等對BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值進行優(yōu)化,使BP神經(jīng)網(wǎng)絡(luò)避免陷入局部最優(yōu),并且找到全局最優(yōu)參數(shù),從而使BP神經(jīng)網(wǎng)絡(luò)分類精度更高,網(wǎng)絡(luò)入侵檢測性能也隨之提升[6-8]。在這些智能算法中,人工魚群算法(Artificial Fish Swarm Algorithm,AFSA)是近年來提出的一種新的智能仿生算法,該算法魯棒性強,可并行操作,同時便于實現(xiàn)[9]。利用AFSA算法來對BP神經(jīng)網(wǎng)絡(luò)參數(shù)進行尋優(yōu),能夠避免BP神經(jīng)網(wǎng)絡(luò)易陷入局部極小的缺陷,實現(xiàn)了BP神經(jīng)網(wǎng)絡(luò)參數(shù)的最優(yōu)獲取,因而可知這是一種非常適合BP神經(jīng)網(wǎng)絡(luò)參數(shù)尋優(yōu)的理想方法。同時,仿真試驗又對AFSA-BPNN(人工魚群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò))模型的網(wǎng)絡(luò)入侵檢測性能進行了有效驗證。
1 網(wǎng)絡(luò)入侵檢測數(shù)學(xué)模型
網(wǎng)絡(luò)入侵是指未經(jīng)授權(quán)的用戶實施的任何試圖以非法手段來獲取計算機資源的行為。進行網(wǎng)絡(luò)入侵檢測,主要是通過收集網(wǎng)絡(luò)或系統(tǒng)中的若干關(guān)鍵點的未經(jīng)授權(quán)用戶的訪問、操作等信息,并對這些信息進行對比分析,以確定系統(tǒng)中是否存在被攻擊的跡象[10]。
在計算機網(wǎng)絡(luò)中,存在兩種現(xiàn)象,一種為無入侵信號,一種為有入侵信號,用 表示無入侵信號, 表示有入侵信號,則網(wǎng)絡(luò)數(shù)據(jù)信號數(shù)學(xué)表達式:
(1)
其中, 表示收集到的所有信號, 表示在抽樣間隔中接收到的信號所有字節(jié)的長度; 表示網(wǎng)絡(luò)數(shù)據(jù)中的噪聲, 表示入侵信號。
在進行網(wǎng)絡(luò)入侵檢測時,存在噪聲,并且,接收到的信息還存在非線性的關(guān)系,為了保護網(wǎng)絡(luò)安全,有效地防范未經(jīng)授權(quán)用戶對網(wǎng)絡(luò)安全形成的潛在隱患,有必要對這些網(wǎng)絡(luò)訪問行為進行識別、檢測,由上可知,BP神經(jīng)網(wǎng)絡(luò)即可有效地進行網(wǎng)絡(luò)入侵檢測。
2 AFSA優(yōu)化BPNN的網(wǎng)絡(luò)入侵檢測模型
2.1 人工魚群算法
AFSA可以地對BP神經(jīng)網(wǎng)絡(luò)進行全面參數(shù)尋優(yōu),通過模擬魚群的覓食、聚群、追尾等典型行為,不斷地對BP神經(jīng)網(wǎng)絡(luò)參數(shù)進行優(yōu)化[11]。算法中典型行為的實現(xiàn)機理如下:
(1) 覓食行為。設(shè)Xi表示人工魚當前所處的位置,Xj表示一個隨機選擇的位置,對Xi和Xj的食物濃度進行比較,如果Xj處的食物濃度大于Xi處的食物濃度,則向Xj處前進,否則人工魚留在原處不動,而后,重新隨機選擇位置Xj,再對Xi和Xj的食物濃度進行判斷,反復(fù)試探nj次后,如果選取的位置處食物濃度仍然小于初始位置的食物濃度,則人工魚隨機前進一步。該行為的數(shù)學(xué)描述可如式(2)所示:
(2)
式中,Rand()表示一個(0,1)之間的隨機數(shù);Step表示人工魚移動的步長。
(2) 聚群行為。設(shè)nf表示人工魚視野范圍內(nèi)所有的伙伴數(shù)目,Xc表示所有魚群的中心位置,若Yc/nf>δYi(δ為擁擠度因子),則表明當前人工魚所處位置的食物濃度小于伙伴處的食物濃度,人工魚便朝伙伴中心前進一步,否則,人工魚繼續(xù)執(zhí)行覓食行為。這一行為的數(shù)學(xué)實現(xiàn)則如式(3)所示:
(3)
(3) 追尾行為。在人工魚視野范圍內(nèi),濃度最高Yj的人工魚位置為Xmax,若Yj/nf> Yi,則人工魚群向Xj處前進一步,否則人工魚執(zhí)行覓食行為。
(4)
(4) 隨機行為。人工魚沒有執(zhí)行明確的覓食或聚群行為,而是在視野范圍內(nèi)隨機選擇某個位置,隨后向其移動,該行為屬于人工魚覓食行為的一種缺省行為。
(5) 公告板。公告用于記錄食物濃度最高的人工魚的狀態(tài)。
2.2 BP神經(jīng)網(wǎng)絡(luò)模型
BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程如下[12]:
(1)確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。設(shè)輸入層、隱層和輸出層的神經(jīng)元數(shù)分別為N、L和M,網(wǎng)絡(luò)輸入向量為 ,隱含層輸出向量為 ,網(wǎng)絡(luò)實際輸出向量為 ,網(wǎng)絡(luò)輸入層神經(jīng)元節(jié)點 到隱含層神經(jīng)元節(jié)點 的權(quán)重系數(shù)表示為 ,隱含層神經(jīng)元節(jié)點 到輸出層神經(jīng)元節(jié)點 的權(quán)重系數(shù)表示為 ,訓(xùn)練集的目標輸出向量為 。此外,分別用 和 來表示輸出神經(jīng)元和隱神經(jīng)元的閾值,設(shè):
(5)
于是,得到隱含層各神經(jīng)元節(jié)點的輸出為:
(6)
同理,輸出層各神經(jīng)元節(jié)點為:
(7)
(2)將輸出神經(jīng)元 與目標向量 進行比較,計算出輸出誤差項:
(8)
(9)
(3)依次計算出各權(quán)重的調(diào)整量:
(10)
(11)
式中, 表示網(wǎng)絡(luò)的學(xué)習(xí)速率,其取值在0-1之間。
(4)調(diào)整網(wǎng)絡(luò)權(quán)重,公式如下:
(12)
(13)
(5)判斷是否達到最大迭代次數(shù),如果沒有,將網(wǎng)絡(luò)輸出值與期望值進行比較,如果大于誤差允許的范圍,返回步驟(1),繼續(xù)迭代,在每次迭代過程中,都進行判斷,誤差是否達到預(yù)定目標,或者是否達到最大迭代次數(shù),如果滿足終止條件,則停止迭代。
2.3 SAFSA-BPNN網(wǎng)絡(luò)入侵檢測流程
(1) 收集BP神經(jīng)網(wǎng)絡(luò)狀態(tài)信息,設(shè)置人工魚狀態(tài);
(2) 隨機生成n條人工魚,每一條人魚代表一組BP神經(jīng)網(wǎng)絡(luò)參數(shù),用passed_iterate表示BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練迭代的次數(shù);
(3) 登記每條人工魚所在位置的食物濃度,并對每條人工魚處的食物濃度進行排序登記,將食物濃度值最高處的人工魚個體的位置及食物濃度登記寫入公告板;
(4) 隨機選擇一條人工魚,對其覓食、追尾和聚群行為后所處位置的食物濃度進行判斷,將其所處位置的食物濃度與公告板中的所登記的食物濃度進行比較,如果該人工魚處的食物濃度高于公告板的食物濃度,則該人工魚向此方向前進一步。
(5) 更新公告板內(nèi)容,將步驟(4)中得到的最好人工魚的位置及食物濃度記入公告板。
(6) 判斷BP神經(jīng)網(wǎng)絡(luò)是否尋優(yōu)得到最優(yōu)參數(shù),或訓(xùn)練是否達到最大迭代次數(shù),如果沒有滿足上述情況,則人工繼續(xù)執(zhí)行覓食、追尾、聚群行為,passed_iterate=passed_iterate+1,并轉(zhuǎn)步驟(4)繼續(xù)迭代執(zhí)行,如果達到最大迭代次數(shù),則BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練尋優(yōu)結(jié)束,輸出公告板中的人工魚的位置及食物濃度;
(7) 根據(jù)尋優(yōu)結(jié)束后BP神經(jīng)網(wǎng)絡(luò)模型,進行網(wǎng)絡(luò)入侵檢測。
利用AFSA-BP神經(jīng)網(wǎng)絡(luò)模型,進行網(wǎng)絡(luò)入侵檢測流程如圖1所示。
圖1 AFSA優(yōu)化BPNN參數(shù)流程
Fig. 1 the flow chart of BPNN parameters optimized by AFSA
3 仿真測試
3.1 數(shù)據(jù)來源
為了驗證本文模型的網(wǎng)絡(luò)入侵檢測效果,利用KDD CUP 99的數(shù)據(jù)集進行仿真試驗,并在Windows XP,Matlab 2012 軟件平臺上執(zhí)行實現(xiàn)。由于BP神經(jīng)網(wǎng)絡(luò)不能直接對字符型數(shù)據(jù)進行處理,而在KDD CUP 99數(shù)據(jù)集中卻包含有大量的字符型數(shù)據(jù),因此,在進行實驗仿真之前,需將KDD CUP 99數(shù)據(jù)集中的字符型數(shù)據(jù)轉(zhuǎn)換成整型數(shù)據(jù)[13]。在利用BP神經(jīng)網(wǎng)絡(luò)進行網(wǎng)絡(luò)入侵檢測時,實質(zhì)上就是一個分類問題,因此,可將KDD CUP 99數(shù)據(jù)集的分類字段處理成五個類標識:1(“normal"),2("Probe"),3("DOS"),4("U2R"),5("R2L")。同時,為了有效地提高網(wǎng)絡(luò)入侵檢測正確率,有必要在BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練學(xué)習(xí)時,利用人工魚群算法對BP神經(jīng)網(wǎng)絡(luò)參數(shù)進行優(yōu)化,訓(xùn)練集來自于文件kddcup.data_10_percent.gz,從中隨機選取800條記錄,測試集數(shù)據(jù)則將隨機從文件corrected.g中選取300條記錄。
在KDD CUP 99數(shù)據(jù)集中,每一個數(shù)據(jù)集均包含了41個特征屬性,而且每一個數(shù)據(jù)集還對應(yīng)一種類型的網(wǎng)絡(luò)入侵行為,為此BP神經(jīng)網(wǎng)絡(luò)輸入層有41個神經(jīng)元,輸出層有一個神經(jīng)元,經(jīng)過反復(fù)試驗,當隱含層有22個神經(jīng)元時,網(wǎng)絡(luò)收斂速度最快,誤差最小,最終確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為41×22×1。利用訓(xùn)練集對BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,再用人工魚群算法對BP神經(jīng)網(wǎng)絡(luò)參數(shù)進行優(yōu)化,人工魚群參數(shù)可如表1所示。
表1 人工魚群算法參數(shù)設(shè)置
Tab. 1 parameter setting of artificial fish swarm algorithm
參數(shù)名 說明 值 參數(shù)名 說明 值
Visual 可視域 18 P 魚群規(guī)模 30
δ 擁擠因子 0.58 Step_max 迭代步長 0.6
N 迭代次數(shù) 5000
3.2 對比模型
為了證明AFSA-BPNN模型進行網(wǎng)絡(luò)入侵檢測的有效性,在同等情況下,利用傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)(BPNN)模型進行對比實驗。選擇了檢測率、誤報率和運行速度作為模型網(wǎng)絡(luò)入侵檢測性能的指標評價。在此,僅分別給出檢測率和誤報率的定義如下:
(14)
(15)
3.3 數(shù)據(jù)處理
在KDD CUP 99數(shù)據(jù)集中,每個數(shù)據(jù)集有41個特征屬性,對其中的字符型數(shù)據(jù)轉(zhuǎn)換成整型數(shù)據(jù),但由于這些數(shù)據(jù)集中的屬性量綱不同,為了有效地檢測出網(wǎng)絡(luò)入侵行為,即需對數(shù)據(jù)集進行歸一化處理,以減少量綱不同對網(wǎng)絡(luò)入侵檢測的影響。歸一化處理公式如下:
(16)
式中, 表示某屬性的最大值; 、 分別表示某屬性的最小值和最大值; 表示經(jīng)過歸一化處理后的某屬性。
3.4 結(jié)果與分析
3.4.1 檢測結(jié)果對比
采用BPNN作為對比模型,以驗證ASFA-BPNN模型進行網(wǎng)絡(luò)入侵檢測時的實際性能,首先編程利用同樣的訓(xùn)練集對兩種模型進行訓(xùn)練,過程中不同之處卻是,在AFSA-BPNN模型訓(xùn)練的同時,利用人工魚群算法對BPNN進行尋優(yōu);然后,分別利用測試集對訓(xùn)練后的模型進行驗證,兩種模型的檢測性能對比如表2所示。
表2 兩檢測模型的檢測性能對比
Tab2 performance comparison of two detection models
檢測模型 評價指標 DOS U2L U2R Probe
BPNN rate(%) 80.65 70.83 81.21 79.65
error(%) 19.35 29.17 18.79 20.35
AFSA-BPNN rate(%) 82.63 76.89 88.78 91.43
error(%) 17.37 23.11 11.22 8.57
3.4.2 運行速度對比
為了驗證兩種模型的網(wǎng)絡(luò)入侵檢測速度,選取測試集對模型的網(wǎng)絡(luò)入侵檢測時間作為衡量指標,兩種模型進行不同類型的入侵檢測時間(秒/s)如表3所示。從表3可知,相對于BPNN模型,AFSA-BPNN模型的檢測時間更少,說明了AFSA-BPNN模型進行網(wǎng)絡(luò)入侵檢測具有更高效率,因而實時性更強。
表3 兩種模型的檢測時間對比
Tab.3 detection time comparison of two models
模型 DOS U2L U2R Probe
BPNN 0.97 0.89 0.86 0.96
AFSA-BPNN 0.76 0.78 0.80 0.64
4 結(jié)束語
為了有效地對網(wǎng)絡(luò)入侵進行檢測,提出一種人工魚群算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測模型,在BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,利用人工魚群算法對BP神經(jīng)網(wǎng)絡(luò)參數(shù)進行優(yōu)化,獲得了BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)參數(shù),同時加快了BP神經(jīng)網(wǎng)絡(luò)的收斂速度。仿真結(jié)果表明,AFSA-BPNN模型比BPNN模型檢測率更高,誤檢率更低,同時檢測時間更少,這就說明了AFSA-BPNN模型堪稱為一種有效的網(wǎng)絡(luò)入侵檢測模型,其應(yīng)用前景也將更趨廣泛與廣闊。
參考文獻
[1] 戴英俠.系統(tǒng)安全與入侵檢測[M].北京:清華大學(xué)出版社, 2002.
[2] 何敏. 基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)實時入侵檢測體系結(jié)構(gòu)的研究[J]. 計算機與現(xiàn)代化, 2011, 193(9): 134-136.
[3] 姜春茂,張國印,李志聰. 基于遺傳算法優(yōu)化SVM的嵌入式網(wǎng)絡(luò)系統(tǒng)異常入侵檢測[J]. 計算機應(yīng)用與軟件,2011,28(2):287-289.
[4] 閆新娟,譚敏生,嚴亞周,等. 基于隱馬爾科夫模型和神經(jīng)網(wǎng)絡(luò)的入侵檢測研究[J]. 計算機應(yīng)用與軟件,2012,29(2):294–297.
[5] 牟琦,畢孝儒,庫向陽. 基于GQPSO算法的網(wǎng)絡(luò)入侵特征選擇方法[J]. 計算機工程,2011,37(14):103-16.
[6] 周敏.GARBF在網(wǎng)絡(luò)入侵檢測中的應(yīng)用研究[J].計算機仿真,2011.28(6):165-168.
[7] 趙俊忠. 入侵檢測系統(tǒng)中檢測技術(shù)的研究[J]. 計算機工程與應(yīng)用,2005,(2):11-13.
[8] 欒慶林,盧輝斌.自適應(yīng)遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的入侵檢測研究[J].計算機工程與設(shè)計,2008,29(12):3022-3024.
[9] 李曉磊.一種新型的智能優(yōu)化方法一人工魚群算法[D].杭州:浙江大學(xué),2003.
[10] 孫寧青. 基于神經(jīng)網(wǎng)絡(luò)和CFS特征選擇的網(wǎng)絡(luò)入侵檢測系統(tǒng)[J]. 計算機工程與科學(xué),2010,32(6):37-39.
[11] 江銘炎,袁東風(fēng). 人工魚群算法及其應(yīng)用[M]. 北京:科學(xué)出版社,2012.
[12] 夏淑華. 基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測系統(tǒng)設(shè)計 [J]. 計算機與現(xiàn)代化, 2011, 1(4): 47-49.
[13] 張新有,曾華燊,賈磊. 入侵檢測數(shù)據(jù)集KDD CUP99研究[J]. 計算機工程與設(shè)計, 2010,31(22): 4809-4816.