一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法
【專利摘要】本發(fā)明結(jié)合現(xiàn)有的網(wǎng)絡(luò)入侵檢測(cè)技術(shù),針對(duì)基于簇的無(wú)線傳感器網(wǎng)絡(luò)(Cluster-based?Wireless?Sensor?Network,簡(jiǎn)稱CWSN)的簇頭節(jié)點(diǎn)(Cluster?Head,簡(jiǎn)稱CH)簡(jiǎn)單設(shè)計(jì)一種入侵檢測(cè)模型。充分考慮CH運(yùn)算速度慢,能量有限的特點(diǎn),所設(shè)計(jì)的模型結(jié)構(gòu)簡(jiǎn)單,由三大模塊構(gòu)成:誤用檢測(cè)模塊、異常檢測(cè)模塊、和決策模塊,其中誤用檢測(cè)模塊使用神經(jīng)網(wǎng)絡(luò)作為核心。由于現(xiàn)有神經(jīng)網(wǎng)絡(luò)種類繁多,各類神經(jīng)網(wǎng)絡(luò)都有其優(yōu)點(diǎn)和缺點(diǎn),為了得出哪種神經(jīng)網(wǎng)絡(luò)更適合針對(duì)WSN的IDS,本發(fā)明分別選取了BP神經(jīng)網(wǎng)絡(luò)、廣義回歸神經(jīng)網(wǎng)絡(luò)及基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)采用KDDCUP1999數(shù)據(jù)集,使用MATLAB進(jìn)行了仿真實(shí)驗(yàn)。
【專利說(shuō)明】—種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種無(wú)線傳感器網(wǎng)絡(luò)的入侵檢測(cè)算法,特別地,基于一種神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法。
【背景技術(shù)】
[0002]入侵檢測(cè)研究最早可追溯到1980年,James P.Anderson首先提出了入侵檢測(cè)的概念。1987年Dorothy Elizabeth Denning提出了入侵檢測(cè)系統(tǒng)的抽象模型,首先將入侵檢測(cè)的概念作為一種計(jì)算機(jī)系統(tǒng)安全防御的策略提出。與傳統(tǒng)加密和訪問(wèn)控制的方法相t匕,入侵檢測(cè)系統(tǒng)是全新的計(jì)算機(jī)安全策略。目前,國(guó)內(nèi)外入侵檢測(cè)技術(shù)主要有三種發(fā)展趨勢(shì):分布式入侵檢測(cè)、智能化入侵檢測(cè)以及與網(wǎng)絡(luò)安全技術(shù)相結(jié)合的趨勢(shì)。但是將入侵檢測(cè)技術(shù)應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)的研究在最近幾年才興起。但是由于無(wú)線傳感器網(wǎng)絡(luò)屬于新興領(lǐng)域,研究還處于起步階段,無(wú)線網(wǎng)絡(luò)安全方面的研究成果比較少,并且大多數(shù)都是基于AdHoc網(wǎng)絡(luò),針對(duì)無(wú)線傳感器網(wǎng)絡(luò)的安全防御研究更少。已有的一些針對(duì)無(wú)線傳感器網(wǎng)絡(luò)的入侵檢測(cè)技術(shù),大多也只是針對(duì)某種特定類型的入侵,比如針對(duì)耗盡攻擊,或針對(duì)黑洞攻擊的入侵檢測(cè)技術(shù)等;或者是針對(duì)某個(gè)具體操作的檢測(cè),比如針對(duì)路由和節(jié)點(diǎn)定位等操作的入侵檢測(cè)等。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的問(wèn)題是,針對(duì)目前無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)技術(shù)仍然缺少成熟的研究成果,不能很好地滿足無(wú)線傳感器網(wǎng)絡(luò)這種特殊網(wǎng)絡(luò)的特殊網(wǎng)絡(luò)的要求,提出適合無(wú)線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的入侵檢測(cè)算法。
【專利附圖】
【附圖說(shuō)明】
[0004]圖1遺傳算法過(guò)程
[0005]圖2神經(jīng)網(wǎng)絡(luò)構(gòu)建過(guò)程
[0006]圖3訓(xùn)練過(guò)程
[0007]圖4廣義神經(jīng)網(wǎng)絡(luò)算法過(guò)程
[0008]圖5改進(jìn)神經(jīng)網(wǎng)絡(luò)算法過(guò)程
【具體實(shí)施方式】
[0009](I) 一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法包括以下步驟:
[0010]對(duì)數(shù)據(jù)進(jìn)行預(yù)處理;
[0011]對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;
[0012]對(duì)廣義神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;
[0013]對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)并進(jìn)行訓(xùn)練。
[0014](2)如⑴所述中對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,其中主要步驟為以下幾步:[0015]步驟1:數(shù)據(jù)映射。該數(shù)據(jù)集每一行就是由TCPdump采集并處理的一條記錄,包含了 41個(gè)特征值和I個(gè)攻擊類型說(shuō)明,每一個(gè)特征之間用逗號(hào)分隔,最后用逗號(hào)分隔攻擊類型。是一個(gè)標(biāo)準(zhǔn)CSV文件。由于數(shù)據(jù)的類型比較復(fù)雜,有離散類型(比如協(xié)議類型TCP,UDP-)和連續(xù)類型(持續(xù)時(shí)間,發(fā)送包數(shù)量等),要分開(kāi)處理。首先進(jìn)行數(shù)據(jù)映射,將符號(hào)型的數(shù)據(jù)映射到數(shù)值型數(shù)據(jù)。如特征值中第二維TCP設(shè)為1,UDP設(shè)為2等。類型值如Normal設(shè)為1,U2R設(shè)為4等。
[0016]步驟2:選擇數(shù)據(jù)。
[0017]步驟3:數(shù)據(jù)歸一化。數(shù)據(jù)歸一化主要有兩種方法:最大最小化法和平均數(shù)方差發(fā)。本發(fā)明中對(duì)數(shù)據(jù)的歸一化處理使用了第一種方法:最大最小化法。因?yàn)楸景l(fā)明歸一化處理是在MATLAB中進(jìn)行,所以利用其自帶的mapminmaxO函數(shù)即可,使用方法如下式所示:
[0018][inputn, inputps] =mapminmax (input_train)
[0019]其中input_train是訓(xùn)練樣本輸入,inputn是歸一化后的數(shù)據(jù),inputps是數(shù)據(jù)歸一化后得到的結(jié)構(gòu)體,里面包含數(shù)據(jù)最大值、最小值和平均值等信息。默認(rèn)情況下,數(shù)據(jù)歸一化范圍為[_1,1]。
[0020](3)如(I)所述中對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,其中主要步驟為以下幾步:
[0021]步驟1:模型建立
[0022]基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)分類算法建模包括BP神經(jīng)網(wǎng)絡(luò)構(gòu)建、BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和BP神經(jīng)網(wǎng)絡(luò)分類入侵類別三步,算法流程如圖2所示。
[0023]BP神經(jīng)網(wǎng)絡(luò)構(gòu)建根據(jù)系統(tǒng)輸入輸出數(shù)據(jù)特點(diǎn)確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。訓(xùn)練樣本和測(cè)試樣本中每行數(shù)據(jù)都有41維的特征值和I維類型值,但是并不是所有的特征值都對(duì)網(wǎng)絡(luò)分類有效果,所以選擇前24維作為輸入特征值,所以輸入層神經(jīng)元個(gè)數(shù)為24。本發(fā)明使用誤用檢測(cè)方法,因此需要所設(shè)計(jì)的分類器得出準(zhǔn)確入侵類型,而數(shù)據(jù)集中總共有大的五類類型,包括四種異常類型和一種正常類型,所以輸出層神經(jīng)元個(gè)數(shù)為5。隱層的節(jié)點(diǎn)數(shù)目設(shè)計(jì)是一個(gè)十分復(fù)雜的問(wèn)題。目前沒(méi)有成熟、科學(xué)的理論可遵循。因此需要根據(jù)經(jīng)驗(yàn)和多次實(shí)驗(yàn)來(lái)確定,不存在理想的解析式來(lái)表示。隱含層單元的數(shù)目太多會(huì)導(dǎo)致學(xué)習(xí)時(shí)間過(guò)長(zhǎng)、誤差不一定最佳,也會(huì)導(dǎo)致容錯(cuò)性下降、不能識(shí)別以前沒(méi)看到的樣本,因此一定存在一個(gè)最佳的隱單元數(shù)。根據(jù)Kolmogorov定理,三層神經(jīng)網(wǎng)絡(luò)中,輸入層節(jié)點(diǎn)數(shù)與隱含層節(jié)點(diǎn)數(shù)之間的近似關(guān)系為:k=2m+l
[0024]因此隱含層個(gè)數(shù)設(shè)為30。這樣就設(shè)計(jì)好了一個(gè)24-30-5的BP神經(jīng)網(wǎng)絡(luò)。
[0025]步驟2:建立網(wǎng)絡(luò)。其中輸入層到隱含層所用激活函數(shù)為雙曲正切S型曲線,隱含層到輸出層的激活函數(shù)為對(duì)數(shù)S型曲線。訓(xùn)練算法為標(biāo)準(zhǔn)梯度下降算法。算法最大迭代15000此,誤差目標(biāo)精度為0.01,學(xué)習(xí)率為0.3。注意:在MATLAB中神經(jīng)網(wǎng)絡(luò)不能自己設(shè)定,只能由程序根據(jù)輸入數(shù)據(jù)的特征維數(shù)自行設(shè)定。
[0026]步驟3:訓(xùn)練網(wǎng)絡(luò)。訓(xùn)練過(guò)程如圖3所示。
[0027]步驟4:測(cè)試網(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)訓(xùn)練結(jié)束后,開(kāi)始測(cè)試網(wǎng)絡(luò),函數(shù)調(diào)用如下公式。
[0028]an=sim(net, inputn_test)
[0029](4)如(I)所述中對(duì)廣義神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,其中主要步驟為以下幾步:
[0030]步驟1:模型建立。算法流程如圖4所示。
[0031]步驟2:主要程序代碼[0032]本實(shí)驗(yàn)使用MATLAB自帶函數(shù)newgrnn建立GRNN神經(jīng)網(wǎng)絡(luò),其調(diào)用格式如下公式所示:
[0033]net=newgrnn (P, T, spread)
[0034](5)如(I)所述中對(duì)基于遺傳算法改進(jìn)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,其中主要步驟為以下幾步:
[0035]步驟1:種群初始化。個(gè)體編碼使用二進(jìn)制編碼,每個(gè)個(gè)體均為一個(gè)二進(jìn)制串,由輸入層與隱含層連接權(quán)值、隱含層閾值、隱含層與輸出層連接權(quán)值、輸出層閾值四部分組成,每個(gè)權(quán)值和閾值使用M位的二進(jìn)制編碼,將所有權(quán)值和閾值的編碼連接起來(lái)即為一個(gè)個(gè)體的編碼。例如本發(fā)明BP網(wǎng)絡(luò)的結(jié)構(gòu)是24-30-5,
[0036]假定權(quán)值和閾值的編碼均為10位二進(jìn)制數(shù),那么個(gè)體的二進(jìn)制編碼長(zhǎng)度為9050。其中前7200位輸入層與隱含層連接權(quán)值編碼;7201?7500位為隱含層閾值編碼;7501?9000位為隱含層與輸出層連接權(quán)值編碼;9000?9050位為輸出層閾值編碼。
[0037]步驟2:適應(yīng)度函數(shù)
[0038]本發(fā)明是為了使BP網(wǎng)絡(luò)在預(yù)測(cè)時(shí),預(yù)測(cè)值與期望值的殘差盡可能小,所以選擇預(yù)測(cè)樣本的預(yù)測(cè)值與期望值的誤差矩陣的范數(shù)作為目標(biāo)函數(shù)輸出。適應(yīng)度函數(shù)選擇工具箱中采用排序的適應(yīng)度分配函數(shù):
[0039]FinV=ranking (obj)
[0040]其中obj為目標(biāo)函數(shù)的輸出。
[0041]步驟3:選擇算子
[0042]選擇算子采用隨機(jī)遍歷抽樣(sus):
[0043]S elch=select (' sus1 , Chrom, FitnV, GGAP)
[0044]Chrom為種群編碼,GGAP為自設(shè)定的代溝。
[0045]步驟4:交叉算子
[0046]交叉算子采用最簡(jiǎn)單的單點(diǎn)交叉算子。
[0047]步驟5:變異算子
[0048]變異以一定概率產(chǎn)生變異基數(shù),用隨機(jī)方法選出發(fā)生變異的基因。如果所選用的基因的編碼為1,則變?yōu)? ;反之,則變?yōu)?.[0049]程序結(jié)構(gòu)如圖5所示。
[0050]其中BPfun.m的部分代碼如下所示,代碼主要作用為建立BP神經(jīng)網(wǎng)絡(luò)并對(duì)權(quán)值和閾值手動(dòng)賦值,其中使用的訓(xùn)練函數(shù)為trainlm(Levenberg-Marquardt算法)。訓(xùn)練迭代為5000次,誤差精度為0.001,學(xué)習(xí)率為0.3。
【權(quán)利要求】
1.一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法,采用KDDCUP99作為原始數(shù)據(jù)集,所述算法包含以下步驟: (1)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理; (2)對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練; (3)對(duì)廣義神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練; (4)對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)并進(jìn)行訓(xùn)練。
2.如權(quán)利要求1所述一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法,所述的步驟(1)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理包括以下步驟: (1)數(shù)據(jù)映射 該數(shù)據(jù)集每一行就是由TCPdump采集并處理的一條記錄,包含了 41個(gè)特征值和I個(gè)攻擊類型說(shuō)明,每一個(gè)特征之間用逗號(hào)分隔,最后用逗號(hào)分隔攻擊類型。是一個(gè)標(biāo)準(zhǔn)CSV文件。由于數(shù)據(jù)的類型比較復(fù)雜,有離散類型(比如協(xié)議類型TCP,UDP...)和連續(xù)類型(持續(xù)時(shí)間,發(fā)送包數(shù)量等),要分開(kāi)處理。首先進(jìn)行數(shù)據(jù)映射,將符號(hào)型的數(shù)據(jù)映射到數(shù)值型數(shù)據(jù)。 (2)選擇數(shù)據(jù) 在實(shí)驗(yàn)中從kddcup.data_10_percent.gz中隨機(jī)選出5000條數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),從corrected, gz中隨機(jī)選出3000作為測(cè)試數(shù)據(jù)。 (3)數(shù)據(jù)歸一化 歸一化就是要把你需要處理的數(shù)據(jù)經(jīng)過(guò)處理后限制在你需要的一定范圍內(nèi)。
3.如權(quán)利要求1所述一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法,所述的步驟(2)包括以下步驟: 步驟1:網(wǎng)絡(luò)初始化。根據(jù)系統(tǒng)輸入序列(X,Y)確定網(wǎng)絡(luò)輸入層節(jié)點(diǎn)數(shù)η、隱含層節(jié)點(diǎn)數(shù)1,輸出層節(jié)點(diǎn)數(shù)m,初始化輸入層、隱含層和輸出層神經(jīng)元之間的連接權(quán)值Wij,Wjk,初始化隱含層閾值a,輸出層閾值b,給定學(xué)習(xí)速率和神經(jīng)元激勵(lì)函數(shù); 步驟2:隱含層輸出計(jì)算。根據(jù)輸入向量X,輸出層和隱含層間連接權(quán)值以及隱含層a,計(jì)算隱含層輸出H;
4.如權(quán)利要求1所述一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法,所述的步驟⑶包括以下步驟: 步驟1:確定隱含層神經(jīng)元徑向基函數(shù)中心, 設(shè)訓(xùn)練集樣本輸入矩陣和P輸出T舉證分別為:
5.如權(quán)利要求1所述一種基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)入侵檢測(cè)算法,所述的步驟(4)包括以下步驟: 步驟1:選擇初始生命種群。確定種群規(guī)模(群體大小)N,交叉概率P。,變異概率Pm和終止進(jìn)化準(zhǔn)則(遺傳代數(shù)G等,通俗講就是最大循環(huán)多少次);得到初始種群; 步驟2:評(píng)價(jià)種群中的個(gè)體適應(yīng)度。計(jì)算評(píng)估種群中各個(gè)體的種群適應(yīng)度; 步驟3:種群進(jìn)化,具體如以下幾步: (1)選擇,從初始種群中選擇M/2對(duì)母體,(M>=N); (2)交叉,對(duì)所選擇的M/2對(duì)母體,以概率P。執(zhí)行交叉,形成M個(gè)中間個(gè)體; (3)變異,對(duì)M個(gè)中間個(gè)體分別獨(dú)立以概率Pni執(zhí)行變異,形成M個(gè)候選個(gè)體; (4)選擇(子代),從上述所形成的M個(gè)候選個(gè)體中依據(jù)適應(yīng)度選擇出N個(gè)體組成新一代種群; 步驟4:若以滿足終止條件則終止,則最后一代中適應(yīng)度最大的為最優(yōu)解,否則,則轉(zhuǎn)到步驟2繼續(xù)向下執(zhí)行; 改進(jìn)算法流程為圖1所示。
【文檔編號(hào)】H04W84/18GK103619021SQ201310682813
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2013年12月10日 優(yōu)先權(quán)日:2013年12月10日
【發(fā)明者】孫學(xué)梅, 張一鳴, 閆博 申請(qǐng)人:天津工業(yè)大學(xué)