劉海天,韓偉紅,賈 焰
(1. 國防科技大學(xué) 計算機(jī)學(xué)院,湖南 長沙 410073;2. 廣州大學(xué) 網(wǎng)絡(luò)空間先進(jìn)技術(shù)研究院,廣東 廣州 510006;3. 電子科技大學(xué) 廣東電子信息工程研究院, 廣東 東莞 523808)
網(wǎng)絡(luò)已成為我國重要的信息基礎(chǔ)設(shè)施,而近年來國內(nèi)頻繁發(fā)生的網(wǎng)絡(luò)安全事件對相關(guān)網(wǎng)絡(luò)軟硬件信息基礎(chǔ)設(shè)施帶來了嚴(yán)重威脅。在現(xiàn)有網(wǎng)絡(luò)安全基礎(chǔ)設(shè)施及技術(shù)基礎(chǔ)上,構(gòu)建大規(guī)模網(wǎng)絡(luò)安全態(tài)勢分析系統(tǒng),加強(qiáng)對網(wǎng)絡(luò)安全態(tài)勢掌控、分析、預(yù)測等處理已經(jīng)成為了當(dāng)前的迫切需求。網(wǎng)絡(luò)安全態(tài)勢評估(Network Security Situational Assessment,NSSA)技術(shù)應(yīng)運(yùn)而生,并迅速發(fā)展而成為“網(wǎng)絡(luò)信息安全領(lǐng)域”的一個新的研究熱點。
1999 年,Bass等人首次提出了網(wǎng)絡(luò)態(tài)勢感知概念[1],而于2005年,CMU/SEI領(lǐng)導(dǎo)的CERT/NetSA開發(fā)了SILK,旨在對大規(guī)模網(wǎng)絡(luò)安全態(tài)勢感知狀況進(jìn)行實時監(jiān)控。通過對現(xiàn)有文獻(xiàn)的研究,發(fā)現(xiàn)要準(zhǔn)確預(yù)測網(wǎng)絡(luò)安全態(tài)勢并非易事,研究人員在這方面做了大量的工作,已經(jīng)提出了類似“基于威脅傳播模型的網(wǎng)絡(luò)安全評估方法”[2]等有效模型,但并不完美。即便如此,也可以通過前人的經(jīng)驗,結(jié)合神經(jīng)網(wǎng)絡(luò)與網(wǎng)絡(luò)安全態(tài)勢評估技術(shù),以評估結(jié)果為指導(dǎo),提前將影響網(wǎng)絡(luò)安全的因素進(jìn)行優(yōu)化。
相關(guān)研究顯示,通過BP神經(jīng)網(wǎng)絡(luò)模型[3],可以有效地模擬人類思維模式,進(jìn)而有效地解決非線性問題?;贐P神經(jīng)網(wǎng)絡(luò)的模型構(gòu)建技術(shù)能夠很好地應(yīng)用于網(wǎng)絡(luò)管理系統(tǒng)中,而采用BP神經(jīng)網(wǎng)絡(luò)技術(shù)亦可以較好地對網(wǎng)絡(luò)的安全態(tài)勢進(jìn)行評估,而且其在相關(guān)研究領(lǐng)域更是具有一定的借鑒價值。因此本文將BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢評估之中,采用大量的實驗數(shù)據(jù)訓(xùn)練模型,并用部分?jǐn)?shù)據(jù)進(jìn)行測試,取得了較好的效果。
1.1.1網(wǎng)絡(luò)安全態(tài)勢綜合指數(shù)
為了全面反映網(wǎng)絡(luò)的安全態(tài)勢,本文采用定量描述的方法對脆弱指數(shù)、風(fēng)險指數(shù)和基礎(chǔ)運(yùn)行指數(shù)[4]進(jìn)行計算,這幾個指數(shù)代表網(wǎng)絡(luò)安全運(yùn)行所需要的幾個必要條件,而綜合安全指數(shù)則是指在一定時間段內(nèi)反映當(dāng)下網(wǎng)絡(luò)整體安全態(tài)勢的數(shù)值,它由脆弱指數(shù)、風(fēng)險指數(shù)和基礎(chǔ)運(yùn)行指數(shù)通過加權(quán)法獲得,如下圖1所示。
圖1 網(wǎng)絡(luò)安全態(tài)勢綜合指數(shù)圖
在此,先以基礎(chǔ)運(yùn)行指數(shù)作為唯一指標(biāo),對基礎(chǔ)運(yùn)行指數(shù)進(jìn)行進(jìn)一步細(xì)化,包括CPU利用率、內(nèi)存利用率、網(wǎng)絡(luò)帶寬利用率、端口峰值、丟包率、平均往返時延、傳輸率、吞吐率。選擇這8種指標(biāo)作為評價指,將網(wǎng)絡(luò)的安全態(tài)勢進(jìn)行分級,比如分為5個級別:Good、OK、 Warning、Bad、Critical,這 5 種狀態(tài)由高到低地標(biāo)示出整個網(wǎng)絡(luò)安全狀態(tài)。
1.1.2BP神經(jīng)網(wǎng)絡(luò)模型構(gòu)建
該模型由態(tài)勢數(shù)據(jù)輸入、態(tài)勢映射和態(tài)勢輸出部分組成,各部分的功能設(shè)計如下。
(1)態(tài)勢輸入部分:分時段收集網(wǎng)絡(luò)中節(jié)點的態(tài)勢相關(guān)數(shù)據(jù),作為態(tài)勢輸入部分的一組輸入數(shù)據(jù)。
(2)態(tài)勢映射部分:該部分由三層組成,包括輸入層、隱層和輸出層。
輸入層從態(tài)勢輸入部分獲取輸入數(shù)據(jù),這些數(shù)據(jù)經(jīng)過隱含層的運(yùn)算得到隱含層的輸出,然后經(jīng)過輸出層的運(yùn)算得到輸出層的輸出,態(tài)勢數(shù)據(jù)映射完成。
輸入層的節(jié)點數(shù)與輸入數(shù)據(jù)數(shù)相同;輸出層的節(jié)點數(shù)與態(tài)勢評估結(jié)果數(shù)相同,隱含層數(shù)可以根據(jù)需要進(jìn)行設(shè)置,但是層數(shù)越多、網(wǎng)絡(luò)越復(fù)雜,則訓(xùn)練時間越長。在此,默認(rèn)初始隱層節(jié)點數(shù)M為:
M=(N+l)1/2+δ
(1)
其中:N代表輸入層節(jié)點個數(shù);l代表輸出層節(jié)點個數(shù);δ代表0~10的常數(shù),默認(rèn)取值為1。
設(shè)輸入層有i個節(jié)點,隱含層有j個節(jié)點,輸出層有k個節(jié)點;輸入層到隱含層之間有連接權(quán)值wij,隱含層有閾值θj;隱含層到輸出層有連接權(quán)值vjk,輸出層有閾值rk;第j個隱含層節(jié)點的輸出值yj,第k個輸出層節(jié)點的輸出值為yk,則:
(2)
(3)
(3)態(tài)勢輸出部分:接收態(tài)勢映射部分傳遞過來的值。
BP神經(jīng)網(wǎng)絡(luò)態(tài)勢構(gòu)建流程[5],如圖2所示。
圖2 BP神經(jīng)網(wǎng)絡(luò)模型態(tài)勢流圖[5]
1.1.3網(wǎng)絡(luò)安全指標(biāo)體系模型運(yùn)行理論基礎(chǔ)
評測指標(biāo)個數(shù)與輸入層神經(jīng)元個數(shù)一一對應(yīng),若有8個評測指標(biāo),則網(wǎng)絡(luò)的輸入層有8個神經(jīng)元,輸出要求的評估等級為5,則輸出層的神經(jīng)元為5個,對應(yīng)的網(wǎng)絡(luò)輸出模式為(1,0,*,*,*)。而經(jīng)過實驗測試,可以進(jìn)行單一輸出元神經(jīng)輸出,隱含層的神經(jīng)元個數(shù)也要確定,默認(rèn)的取值原則為4個。
最后,經(jīng)過輸入層、隱層得出第一輸出層節(jié)點(第二隱層節(jié)點)。
模擬基礎(chǔ)運(yùn)行維,分別構(gòu)建脆弱維與風(fēng)險維的BP神經(jīng)網(wǎng)絡(luò),得到3×n個第二隱層節(jié)點,由此完成全局網(wǎng)絡(luò)的框架。
樣本數(shù)據(jù)m組,解決BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練問題,進(jìn)行學(xué)習(xí)訓(xùn)練,使用Eclipse平臺構(gòu)建神經(jīng)網(wǎng)絡(luò)作為平臺訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),初始化收斂權(quán)重并記錄,得出理想輸出。
各層神經(jīng)元之間采用全連接方式進(jìn)行連接,性能目標(biāo)設(shè)為0.1,訓(xùn)練步數(shù)設(shè)為n次一輸出,學(xué)習(xí)速率設(shè)為0.1~0.5,將m組訓(xùn)練數(shù)據(jù)代入,經(jīng)過多次迭代運(yùn)算后達(dá)到收斂目標(biāo),得出收斂權(quán)重。結(jié)束訓(xùn)練過程,保存訓(xùn)練好的網(wǎng)絡(luò),將5~500組不定測試數(shù)據(jù)代入網(wǎng)絡(luò)進(jìn)行評估。
BP模型在當(dāng)今的科學(xué)技術(shù)領(lǐng)域中有著相當(dāng)廣泛的應(yīng)用,其突出優(yōu)點是具有很強(qiáng)的非線性映射能力以及根據(jù)具體問題靈活處理的柔性的網(wǎng)絡(luò)結(jié)構(gòu)。但也正是由于BP模型建立了輸入與輸出之間非線性的函數(shù)關(guān)系,網(wǎng)絡(luò)誤差和網(wǎng)絡(luò)參數(shù)(權(quán)值和閾值)所構(gòu)成的必定是含有多極點的非線性多維空間。
BP模型采用誤差梯度下降法,不論是按標(biāo)準(zhǔn)誤差或者是按全局誤差,計算流程都是向誤差變小的方向進(jìn)展。由于空間是多極點的,因此計算過程往往滯留在局部極小點而“不能自拔”,又存在著大量的局部極小的“溝谷”,從而影響收斂速度,甚至難于收斂。其次是神經(jīng)元的傳輸函數(shù)引起的“假飽和現(xiàn)象”等,具體體現(xiàn)為無法收斂(上下波動)和收斂到非目標(biāo)收斂等現(xiàn)象。
2.1.1傳輸函數(shù)(激勵函數(shù))的選取
在BP神經(jīng)網(wǎng)絡(luò)中默認(rèn)使用logsig激勵函數(shù):
f(x)=1.0/(1.0+Math.exp(-x))
(4)
其中,x為所有輸入的加權(quán)和再減去偏置。
2.1.2誤差函數(shù)的選取
在BP神經(jīng)網(wǎng)絡(luò)中默認(rèn)使用以下激勵函數(shù):
ej(n)=dj(n)-yj(n)
(5)
(6)
其中,ej(n)為迭代n時的神經(jīng)元j輸出誤差;dj(n)為迭代n時的神經(jīng)元j的期待響應(yīng);yj(n). 為迭代n時神經(jīng)元j的實際響應(yīng);C為所有輸出單位的集合;E(n)為迭代n時的瞬間誤差平方和(或瞬間誤差能量和),對于n個訓(xùn)練集E(n)的平均值為平均誤差能量EA:
(7)
而在此,可以考慮使用另一個誤差計算公式更為簡單,也更常用:
(8)
2.1.3反向傳播流程推導(dǎo)基礎(chǔ)
用微分的鏈?zhǔn)揭?guī)則,E(n)對wji進(jìn)行求導(dǎo):
(9)
其中,wji為神經(jīng)元i到j(luò)的權(quán)值;vj(n)為神經(jīng)元j在迭代n時的函數(shù)激活信號,為突觸輸入的加權(quán)和減去偏執(zhí)。
可得反向傳播公式為:
(10)
在一種簡單情況下,j為一個輸出神經(jīng)元時:
(11)
其中,φ(x)為激活函數(shù)。
然后下面同樣分兩種情況討論:
(1)當(dāng)神經(jīng)元j為一個輸出神經(jīng)元時:
(12)
(2)當(dāng)神經(jīng)元j為一個隱層神經(jīng)元時:
(13)
(14)
其中,k為j右邊的節(jié)點。
2.2.1確定輸入和期望輸出(隨機(jī)擇取),反向傳播并確定權(quán)重,確認(rèn)收斂性能
實驗結(jié)論:
(1)當(dāng)輸入輸出組數(shù)過多時,需要更多的神經(jīng)元對神經(jīng)網(wǎng)絡(luò)的誤差進(jìn)行消減,確保神經(jīng)網(wǎng)絡(luò)的收斂性,在小數(shù)據(jù)范圍時,譬如各層神經(jīng)元比值為輸入層神經(jīng)元數(shù)=輸出層神經(jīng)元數(shù)=隱層神經(jīng)元數(shù),擬定10組輸入輸出,如果不收斂,可以適當(dāng)增加神經(jīng)元數(shù),如下圖3所示。
圖3 最終穩(wěn)定誤差值圖表
(2)數(shù)據(jù)模型正常運(yùn)行,在增大輸入神經(jīng)元或者減少輸出神經(jīng)元時可以在一定程度減少最終穩(wěn)定誤差,在進(jìn)行BP神經(jīng)網(wǎng)絡(luò)相關(guān)的網(wǎng)絡(luò)安全指標(biāo)體系構(gòu)建時,應(yīng)盡量確定單一輸出,優(yōu)化并合理提高輸入指標(biāo)數(shù)。相關(guān)數(shù)據(jù)如圖4所示。本文輸入輸出推薦使用8:1。
圖4 最終穩(wěn)定誤差值圖表
2.2.2確定輸入和初始權(quán)重,得出期望輸出,反向傳播并重新確定權(quán)重,確認(rèn)單一收斂
實驗結(jié)論:
(1)當(dāng)輸入輸出合理,已確定有合理權(quán)重的情況下肯定可以使BP神經(jīng)網(wǎng)絡(luò)收斂時,輸入輸出組數(shù)規(guī)模較小時,神經(jīng)元數(shù)不會影響神經(jīng)網(wǎng)絡(luò)收斂性,但實際權(quán)值與理想權(quán)值誤差則波動極大,如圖5所示。
圖5 當(dāng)輸入神經(jīng)元為4,隱層神經(jīng)元同為4時,最終穩(wěn)定誤差值和權(quán)重誤差值圖表
當(dāng)網(wǎng)絡(luò)安全指標(biāo)體系構(gòu)建時,應(yīng)該默認(rèn)合理權(quán)重存在,使BP神經(jīng)網(wǎng)絡(luò)完美收斂,而同一個BP神經(jīng)網(wǎng)絡(luò)可以通過不同的權(quán)重指標(biāo)進(jìn)行收斂,在構(gòu)建網(wǎng)絡(luò)安全指標(biāo)體系時,也可以考慮不同的權(quán)重指標(biāo)組可以代表不同的有效網(wǎng)絡(luò)安全體系指標(biāo)結(jié)構(gòu)構(gòu)建。在此,或許可以一定程度考慮忽略神經(jīng)元數(shù)對指標(biāo)體系構(gòu)建的影響,關(guān)于這一點,可以按實際情況討論。
(2)在數(shù)據(jù)模擬進(jìn)行模糊處理時效果極度不佳,在不進(jìn)行模糊處理時效果依舊有待改進(jìn),在實際考慮中應(yīng)該優(yōu)先考慮在P值足夠小的情況下便可滿足條件,而權(quán)重誤差值則是另一個靠慮課題,如圖6所示。
圖6 當(dāng)輸入神經(jīng)元為8:4:1時,對比模糊處理的權(quán)重誤差值圖表
如果考慮收效,不應(yīng)該墨守成規(guī),可以用實際值進(jìn)行測試。而在不進(jìn)行模糊處理時,效果依舊有待改進(jìn),則可視之無法收斂到唯一最優(yōu)解。
BP神經(jīng)網(wǎng)絡(luò)本質(zhì)上為一個基于梯度的技術(shù),其網(wǎng)絡(luò)結(jié)構(gòu)的選擇尚無統(tǒng)一且完善的理論指導(dǎo)體系,無法訪問內(nèi)在規(guī)律,基于簡單BP神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)安全指標(biāo)體系的構(gòu)建,根據(jù)指標(biāo)體系構(gòu)架的收斂問題,在此進(jìn)行相關(guān)的實驗與研究,通過一定量的測試,得出對于基于網(wǎng)絡(luò)安全指標(biāo)體系構(gòu)建時的相關(guān)參數(shù)的優(yōu)化改良方案,得到了一批可用的基本參數(shù),與改良結(jié)果的基礎(chǔ)數(shù)據(jù)結(jié)論對比,實現(xiàn)指標(biāo)體系的自我調(diào)節(jié)與改進(jìn)。
經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化法有隨機(jī)優(yōu)選法、改變誤差函數(shù)、變步長法、連接權(quán)重的選擇等[6],但在實際實驗中進(jìn)行嘗試,證明其效果寥寥,較為重點的發(fā)現(xiàn)有譬如可以將權(quán)重初值限制在[-0.5,0.5]區(qū)間內(nèi)隨機(jī)選取,可使收斂效果良好等,但結(jié)果仍舊不理想??偠灾疚拇篌w上實現(xiàn)了此次研究的目的與意義,但在此方向上仍需繼續(xù)努力。
關(guān)于網(wǎng)絡(luò)安全指標(biāo)體系的建模問題,對于基于BP神經(jīng)網(wǎng)絡(luò)的收斂問題為該研究的最核心課題,如何將一個基本的BP神經(jīng)網(wǎng)絡(luò)契合網(wǎng)絡(luò)安全指標(biāo)體系的構(gòu)建,然后讓網(wǎng)絡(luò)安全指標(biāo)體系框架進(jìn)行進(jìn)化升級,最終得出符合我們要求的神經(jīng)網(wǎng)絡(luò),在這里,提供三個大的方向:
(1)基于普通的梯度下降方法的改進(jìn),如隨機(jī)優(yōu)選法、動態(tài)算法、可變學(xué)習(xí)速率的自適應(yīng)調(diào)節(jié)算法、初始權(quán)重選取改進(jìn)算法等,本文提出的相關(guān)算法皆屬于第一種;
(2)基于數(shù)值計算的改進(jìn),如基本的LM算法、牛頓法、最小二乘法等;
(3)混合算法,如BP算法與遺傳算法、模糊算法等的結(jié)合算法。
參考文獻(xiàn)
[1] MURPHY P. The OSPF not-so-stubby area (NSSA) option[M]. RFC Editor, 2003.
[2] 陳鋒, 劉德輝, 張怡,等. 基于威脅傳播模型的層次化網(wǎng)絡(luò)安全評估方法[J]. 計算機(jī)研究與發(fā)展, 2011, 48(6):945-954.
[3] 蔣文科, 呂玉江, 化建寧. 神經(jīng)網(wǎng)絡(luò)BP模型的設(shè)計與實現(xiàn)[J]. 河北農(nóng)業(yè)大學(xué)學(xué)報, 2000, 23(1):88-90.
[4] 王志平. 基于指標(biāo)體系的網(wǎng)絡(luò)安全態(tài)勢評估研究[D]. 長沙:國防科技大學(xué), 2010.
[5] 唐金敏. 使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢評估[J]. 電腦知識與技術(shù), 2011, 7(14):3265-3266.
[6] 高洪深, 陶有德. BP神經(jīng)網(wǎng)絡(luò)模型的改進(jìn)[J]. 系統(tǒng)工程理論與實踐, 1996, 16(1):67-71.