本發明涉及網絡安全檢測技術領域,特別涉及一種基于bp神經網絡的網絡節點安全態勢評估方法。
背景技術:
近年來,隨著互聯網的發展,網絡攻擊技術和手段日新月異,各種網絡安全事件充斥網絡空間;傳統的網絡安全設備往往只關注某一方面的安全問題,不能從整體上反映網絡的安全狀況。在此背景下,網絡安全態勢評估技術應運而生,它能在整體上感知網絡的安全狀況,為網絡管理人員提供決策幫助。
自base提出網絡安全態勢感知的概念以來,網絡安全態勢評估一直是態勢感知研究的重點,但相關理論仍不完善,還沒有一種態勢評估方法在實際網絡環境中發揮出至關重要的作用。因此,找出一種高效地態勢評估方法成為網絡安全態勢感知研究的重點。
keramati等提出一種使用通用漏洞評分系統的評分平均值和路徑長度的比值來計算攻擊可達性的評估方法,該方法可以定量分析網絡安全并計算網絡上的損失。汪永偉等提出基于改進證據理論的態勢評估方法,通過相異計算對證據重要性修正后進行態勢融合獲取網絡態勢值。szwed等提出基于模糊認知圖的評估方法,該方法利用模糊認知圖獲取網絡中重要資產的依賴關系并進行危害程度評估。上述方法具有較強的主觀性且數據來源較為單一,存在較大的虛假報警率且評估的誤差較大。
陳麗莎提出結合反向傳播(backpropagation,bp)神經網絡與查找法的態勢評估方法,運用bp神經網絡評估網絡的威脅性、穩定性、容災性和脆弱性,然后使用等級矩陣得到網絡的態勢等級。zhang等對比基于bp神經網絡和基于徑向基(radicalbasisfunction,rbf)網絡的態勢預測方法,實驗結果表明bp神經網絡的預測效率較高。黃亮亮提出基于粒子群(particleswarmoptimization,pso)優化rbf網絡的方法實現網絡安全態勢預測,設計pso-rbf網絡模型對歷史數據分析并映射出未來的網絡態勢值。上述方法均是基于神經網絡且數據來源多樣,使得研究結果客觀性較強,但網絡的訓練時間過長且評估結果的精度不足。
技術實現要素:
本發明的目的是提供一種基于bp神經網絡的網絡節點安全態勢評估方法。
為此,本發明技術方案如下:
一種基于bp神經網絡的網絡節點安全態勢評估方法,bp神經網絡包括輸入層、輸出層以及隱含層,輸入層獲取的輸入數據,經過隱含層的運算得到隱含層的輸出,然后經過輸出層的運算得到輸出層的輸出;
所述的基于bp神經網絡的網絡節點安全態勢評估方法包括下列步驟:
1)利用布谷鳥算法對bp神經網絡的權值和閾值進行優化;
2)選擇網絡節點的歷史態勢數據作為bp神經網絡模型的輸入層數據,將與該歷史態勢數據對應的態勢值作為bp神經網絡模型的輸出層數據,并利用步驟1)中優化好的權值和閾值對bp神經網絡模型進行訓練,完成態勢數據到態勢值的映射,得到優化后的bp神經網絡模型;
3)利用步驟2)中優化好的bp神經網絡模型對網絡節點安全態勢進行評估。
近一步的,所述的步驟1)中利用布谷鳥算法對bp神經網絡的權值和閾值進行優化的方法為:
a)隨機產生布谷鳥算法中的n個鳥巢x0=(x1(0),x2(0),...,xn(0))t,鳥巢代表的就是bp神經網絡中的權值和閾值,對n個鳥巢進行編碼,將獲取的歷史態勢數據代入適應度函數,得到鳥巢的適應度值,適應度函數為bp神經網絡的期望輸出與實際輸出的均方差,然后選出適應度值最優的鳥巢xi(0);
b)保留上一代最優的鳥巢xi(0),按照lévy飛行模式更新鳥巢位置得到新一代鳥巢,并計算新一代鳥巢的適應度值,找出適應度值最優的鳥巢;
c)隨機產生一個在[0,1]范圍內的小數m,比較小數m和設定的發現概率p的大小,如果m<p,則按照位置更新公式替換n*p個位置較差的鳥巢,生成相應數量的新鳥巢;如果m≥p,則保留原來的鳥巢;
d)判斷步驟b)中適應度最優的鳥巢是否滿足要求,如果是,則將最優鳥巢解碼獲取最優的權值和閾值,并將解碼得到的最優的權值和閾值賦給bp神經網絡模型,否則返回步驟b)。
進一步的,所述的態勢數據包括tcp包分布、tcp包字節數比重、udp包分布、udp包字節數比重、icmp包分布、icmp包字節數比重、流入流量變化率、流出流量變化率。
進一步的,所述的步驟c)中的位置更新公式為:
xit+1=xit+α⊕levy(λ)
α=o(l/10)是萊維飛行的步長大小和方向,l是搜索空間范圍,⊕是點對點乘積,xit是第t代的第i只布谷鳥的位置,levy(λ)是萊維分布。
進一步的,所述的步驟c)中發現概率p的取值為0.1。
更進一步的,所述的步驟a)中對n個鳥巢采用浮點數編碼,且適應度函數由目標函數自身疊加后取倒數再乘以相應的數量級得到。
更進一步的,鳥巢的浮點數編碼規則為:對于編碼成布谷鳥鳥巢的bp神經網絡,設輸入層的節點數為m,隱含層的節點數為i,輸出層的節點數為j,輸入層到隱含層矩陣為w,隱含層到輸出層權值矩陣為v,隱含層閾值矩陣為θ,輸出層閾值矩陣為r。所有權值和閾值共同編碼成一只布谷鳥,則布谷鳥鳥巢的編碼為:
w11w21...wm1v11v21...v1jθ1...w1iw2i...wmivi1vi2...vijθir1...rj。
與現有技術相比,本發明提供的基于bp神經網絡的網絡節點安全態勢評估方法具有較快的評估速度和較高的評估精度,從而宏觀地把握整個網絡的安全狀況,分析攻擊者的意圖,為管理決策提供重要的依據,幫助網絡安全管理員做出最佳響應。
附圖說明
圖1為本發明提出的基于bp神經網絡的網絡節點安全態勢評估方法的流程圖。
圖2為bp神經網絡的結構示意圖。
圖3為布谷鳥個體適應度值變化曲線仿真圖。
圖4為粒子群個體適應度值變化曲線仿真圖。
圖5為采用三種評估方法進行網絡安全態勢評估的對比圖。
具體實施方式
下面結合附圖及具體實施例對本發明做進一步的說明,但下述實施例絕非對本發明有任何限制。
如圖1-2所示,該基于bp神經網絡的網絡節點安全態勢評估方法包括下列步驟:
1)利用布谷鳥算法對bp神經網絡的權值和閾值進行優化;
a)在給定的空間范圍內隨機產生50個布谷鳥算法中的鳥巢,鳥巢的表示方法為x0=(x1(0),x2(0),...,x50(0))t,其中每個鳥巢代表一組將要優化的bp神經網絡的權值和閾值;對50個鳥巢依據浮點數編碼;
對于編碼成布谷鳥鳥巢的bp神經網絡,設輸入層的節點數為m,隱含層的節點數為i,輸出層的節點數為j,輸入層到隱含層權值矩陣為w,隱含層到輸出層權值矩陣為v,隱含層閾值矩陣為θ,輸出層閾值矩陣為r;所有權值和閾值共同編碼成一只布谷鳥,則布谷鳥鳥巢的編碼為:
w11w21...wm1v11v21...v1jθ1...w1iw2i...wmivi1vi2...vijθir1...rj;
本實施例中采用三層bp神經網絡,包括輸入層、輸出層以及隱含層,輸入層獲取的歷史態勢數據經過隱含層的運算得到隱含層的輸出,然后經過輸出層的運算得到輸出層的輸出;輸入層的節點數與輸入數據數相同;輸出層的節點數與態勢評估結果數相同;隱含層數可以根據需要進行設置,但是層數越多、網絡越復雜,則訓練時間越長,不能滿足實際應用的需求;因此,采用一個隱含層并增加隱含層節點個數的設計方式,既可滿足實際應用的需求又能提高網絡的準確度。采用試湊法設置隱含層節點的個數,首先使用經驗公式設置較少的隱含層節點,然后每次增加等量的隱含層節點,在使用同一樣本集的前提下,選取訓練誤差最小時對應的隱含層節點數,初始隱含層節點數m為:
公式(1)中:n代表輸入層節點個數;l代表輸出層節點個數;δ代表0~10之間的常數;當(n+l)的開方是小數時,在滿足精度要求的前提下,選取盡可能少的隱含層節點數m;
bp神經網絡輸入輸出的關系可表示為:
公式(2)中f(x)代表各層之間的傳遞函數,yk為一組與輸入對應的輸出,wmi為第m個輸入層節點與第i個隱含層節點的權值,xi為第i個輸入,θi為第i個隱含層節點的閾值,vij為第i個隱含層節點與第j個輸出層節點的權值,rk為第k個輸出層節點的閾值,j是隱含層節點總數,i是輸入層節點總數,設bp神經網絡的總誤差,即目標函數e的數值小于ε,第k個輸出層節點的期望輸出為dk,則目標函數e為:
在公式(3)的基礎上進行變換得到適應度函數為:
將獲取的歷史態勢數據代入公式(4)中,得到鳥巢的適應度值,然后選出適應度值最優的鳥巢xi(0);
b)保留上一代最優的鳥巢xi(0),按照lévy飛行模式更新鳥巢位置,設第t代鳥巢位置為xt=(x1(t),x2(t),...,xn(t))t,鳥巢的位置更新公式為:
xit+1=xit+α⊕levy(λ)(5)
公式(6)中,α=o(l/10)是lévy飛行的步長大小和方向,l是搜索空間范圍,⊕是點對點乘積,xit是第t代的第i只布谷鳥的位置,levy(λ)是萊維分布,可表示為:
levy(λ)~u=t-λ,(1<λ<3)(6)
同樣,計算這一代布谷鳥的適應度值,找到最優的布谷鳥個體xi(t);
并計算新一代鳥巢的適應度值,并找出適應度值最優的鳥巢xi(t+1);
c)隨機產生一個在[0,1]范圍內的小數m,比較小數m和設定的發現概率p的大小,發現概率p的取值為0.1,如果m<p,則按照位置更新公式替換n*p個位置較差的鳥巢,生成相應數量的新鳥巢;如果m≥p,則保留原來的鳥巢;
d)判斷步驟b)中適應度值最優鳥巢xi(t+1)是否滿足要求,如果是,則將最優鳥巢解碼獲取最優的權值和閾值,并將解碼得到的最優的權值和閾值賦給bp神經網絡,否則返回步驟b)。
2)使用snort入侵檢測系統收集網絡節點的數據,將數據解析并記錄在mysql數據庫中作為指標集,指標集如表1所示,包括tcp包分布、tcp包字節數比重、udp包分布、udp包字節數比重、icmp包分布、icmp包字節數比重、流入流量變化率、流出流量變化率;將snort入侵檢測系統收集網絡節點的數據作為bp神經網絡模型的輸入層數據,將與該網絡節點數據對應的態勢值作為bp神經網絡模型的輸出層數據,并利用步驟1)中優化好的權值和閾值對bp神經網絡模型進行訓練,完成態勢數據到態勢值的映射,得到優化后的bp神經網絡模型;
設輸入層有i個節點,隱含層有j個節點,輸出層有k個節點;輸入層到隱含層之間有連接權值wij,隱含層有閾值θj;隱含層到輸出層有連接權值vjk,輸出層有閾值rk;第j個隱含層節點的輸出值yj,第k個輸出層節點的輸出值yk,則:
上式中,f(x)為sigmoid函數,sigmoid函數是標準的bp神經網絡傳遞函數;xi為輸入層輸入,輸入的態勢數據包括8個指標,則設定輸入層節點數8,隱含層節點數選取4,經試湊得節點數6,輸出層輸出為態勢值,輸出節點數1,傳遞函數為標準的sigmoid函數,最大迭代次數設定為1000;利用步驟1)中由布谷鳥算法優化好的權值和閾值對bp神經網絡模型進行訓練,直到訓練次數達到1000為止;
3)利用步驟2)中優化好的bp神經網絡模型對網絡節點安全態勢進行評估。
所述的歷史態勢數據包括tcp包分布、tcp包字節數比重、udp包分布、udp包字節數比重、icmp包分布、icmp包字節數比重、流入流量變化率、流出流量變化率。
提取100個時段的100個樣本數據,隨機選擇80個用作訓練模型,20個用做驗證;在尋找最優解的過程中采用布谷鳥算法和粒子群算法搜索最優個體,搜索過程適應度的變化曲線如圖3-4所示,從圖3-4中可以看出,布谷鳥算法僅采用較小的種群規模,經迭代12次后,適應度值就收斂于最優,比粒子群算法迭代38次達到最優快了很多;這表明布谷鳥算法需要較少的迭代次數且消耗很小的資源,采用布谷鳥算法搜索最優個體時達到了預期的效果,是高效可行的。由于實驗網絡中加入了漏洞,因此可以使用漏洞的評分作為網絡真實的態勢值。在驗證階段,應用布谷鳥優化bp神經網絡、粒子群優化bp神經網絡、bp神經網絡三種方法對網絡安全態勢進行評估,評估結果如圖5所示,從圖5中可以看出除樣本8和樣本15外,本發明提供的基于bp神經網絡的網絡節點安全態勢評估方法對其他樣本的評估值更加接近網絡節點實際的態勢值,因此,該基于bp神經網絡的網絡節點安全態勢評估方法具有較快的評估速度和較高的精度,能有效解決現有網絡安全態勢評估方法效率低的問題。
表1