王遠(yuǎn)志,高 標(biāo),陸文成
(安慶師范大學(xué)計(jì)算機(jī)與信息學(xué)院,安徽安慶246133)
隨著計(jì)算機(jī)信息技術(shù)的快速發(fā)展,信息安全問題也隨之而來(lái)。目前計(jì)算機(jī)系統(tǒng)的信息安全防御,主要借助于現(xiàn)有的病毒庫(kù),以一種對(duì)比識(shí)別查殺防御的方式來(lái)保護(hù)系統(tǒng)的安全。這種傳統(tǒng)的防御系統(tǒng)不具備主動(dòng)、高效、預(yù)先防御的能力,當(dāng)一種新型病毒出現(xiàn)后它不能夠馬上發(fā)現(xiàn)并作出反饋。對(duì)于這種情況,國(guó)內(nèi)外學(xué)者提出了許多行之有效的方法。趙冬梅[1]等基于BP神經(jīng)網(wǎng)絡(luò)提出一種信息安全評(píng)估模型,該模型針對(duì)系統(tǒng)的安全漏洞、病毒的傳播等信息安全的監(jiān)控有良好的效果,但其在異常數(shù)據(jù)的樣本數(shù)量以及正確性方面還有所欠缺;戚名鈺[2]等提出的基于主成分分析(PCA)的支持向量機(jī)檢測(cè)方法,該方法將高維的異常數(shù)據(jù)通過主成分分析降維后大大縮短了檢測(cè)時(shí)間、提高了檢測(cè)效率,但由于支持向量機(jī)算法是借助二次規(guī)劃來(lái)求解支持向量,因此對(duì)大樣本、高緯度訓(xùn)練樣本難以實(shí)施;Joo[3]等提出的基于非對(duì)稱代價(jià)的神經(jīng)網(wǎng)絡(luò)模型,考慮到假陰性和假陽(yáng)性誤差的非對(duì)稱代價(jià),此模型在入侵檢測(cè)時(shí)有較高的精度,但面對(duì)大樣本、高維度的訓(xùn)練樣本時(shí)具有同樣的問題。由于異常數(shù)據(jù)具有高維、海量的特點(diǎn),傳統(tǒng)的檢測(cè)方法針對(duì)異常數(shù)據(jù)檢測(cè)效率不高且對(duì)未知的異常數(shù)據(jù)識(shí)別率低。因此,本文提出一種基于PCA的BP神經(jīng)網(wǎng)絡(luò)在信息安全中的異常數(shù)據(jù)檢測(cè)方法。
PCA是統(tǒng)計(jì)學(xué)在保留原始數(shù)據(jù)基礎(chǔ)上可以降低數(shù)據(jù)維度的一種統(tǒng)計(jì)方法[4]。該方法是在原始變量正交線性組合中取一些方差最大的,將大量的相關(guān)變量變換為較少不相關(guān)變量,方差最大的作為第1主成分,方差第2的且與第1主成分正交的原始變量的線性組合為第2主成分,以此類推[5]。具體步驟如下:
1)假設(shè)數(shù)據(jù)集X中有m個(gè)數(shù)據(jù),而每個(gè)數(shù)據(jù)有p個(gè)特征屬性,用T表示向量的轉(zhuǎn)置,那么數(shù)據(jù)集可表示為X=(X1,X2,…,Xm)T,Xi=(xi1,xi2,…,xip)(i=1,2,…,m),將原始矩陣X進(jìn)行標(biāo)準(zhǔn)化操作:
2)通過特征方程(λI-Y)α=0,求得協(xié)方差矩陣Yp×p的各特征值λi(從小到大排列)和對(duì)應(yīng)的特征向量αi(i=1,2,…,p)。
3)計(jì)算主成分貢獻(xiàn)率及累計(jì)貢獻(xiàn)率。這里選取參數(shù)k,取得主成分Z1,Z2,…,Zk(k ≤p),分析對(duì)象由p維降為k 維[6]。主成分,Zi的貢獻(xiàn)率為主成分的累計(jì)貢獻(xiàn)率為
BP神經(jīng)網(wǎng)絡(luò)是模擬人類神經(jīng)元傳輸、存儲(chǔ)和處理信息的過程而提出的一種智能化具有自主學(xué)習(xí)能力的信息處理方法,是一種按照輸出誤差通過反向傳播修正權(quán)值訓(xùn)練的多層前饋網(wǎng)絡(luò)[7]。BP神經(jīng)網(wǎng)絡(luò)可以通過訓(xùn)練和學(xué)習(xí)過程來(lái)修改網(wǎng)絡(luò)的連接權(quán)值,達(dá)到一種從輸入到預(yù)想輸出的收斂狀態(tài)[8]。因此,BP神經(jīng)網(wǎng)絡(luò)具備容錯(cuò)處理的能力,針對(duì)網(wǎng)絡(luò)信息傳輸過程中出現(xiàn)的信息丟失不完整或者變形失真的情況,具有一定的概括抽象補(bǔ)全功能;同時(shí)BP神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的自主學(xué)習(xí)能力,通過對(duì)輸入正常樣本的不斷訓(xùn)練學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)不僅能夠識(shí)別出訓(xùn)練樣本中已知的異常數(shù)據(jù),而且對(duì)未知的異常數(shù)據(jù)以及已知的異常數(shù)據(jù)變形形式也有很好的識(shí)別效果[9];BP神經(jīng)網(wǎng)絡(luò)具有極高的執(zhí)行效率,BP神經(jīng)網(wǎng)絡(luò)的計(jì)算和數(shù)據(jù)存儲(chǔ)是統(tǒng)一的整體,各個(gè)神經(jīng)元之間的工作方式本質(zhì)上就是權(quán)值的傳遞過程,而權(quán)值傳遞的過程中,就同時(shí)完成了信息的存儲(chǔ)過程[10]。
BP神經(jīng)網(wǎng)絡(luò)的神經(jīng)元模型是仿照生物學(xué)上神經(jīng)元的結(jié)構(gòu)(如圖1所示)。樹突用來(lái)接收傳導(dǎo)過來(lái)的信號(hào),即輸入數(shù)據(jù)為神經(jīng)網(wǎng)絡(luò)連接權(quán)值,Wi0為閾值,細(xì)胞核是神經(jīng)元的核心模塊,用來(lái)處理傳入的信號(hào)(激勵(lì)函數(shù)f (e)),軸突是輸出信號(hào)單元(輸出yi)。
當(dāng)一組學(xué)習(xí)樣本從輸入層輸入網(wǎng)絡(luò)后,神經(jīng)元的激活值開始從輸入層到隱含層再向輸出層傳遞,各神經(jīng)元在輸出層獲得輸入響應(yīng)[11],如圖2所示。接下來(lái),按照減少目標(biāo),反向從輸出層到隱含層再到輸入層,一層一層地修正權(quán)值。由于這種反向誤差不停地修正,網(wǎng)絡(luò)對(duì)輸入模式響應(yīng)的正確率也不斷提高[12]。
BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練步驟示意圖如圖3所示,具體步驟如下。
第1步,隨機(jī)將入侵?jǐn)?shù)據(jù)集樣本[x1,x2,…,xn]提供給網(wǎng)絡(luò)。
第3步,由激勵(lì)函數(shù)映射出隱含層Y1=f1(W(x1)1x1+W(x2)1x2+W(x3)1x3)。
第5步,和預(yù)想值比較,計(jì)算誤差,如果誤差在理想的范圍內(nèi),則結(jié)束學(xué)習(xí),否則反向修正權(quán)值。
第6步,修正權(quán)值θ=z-y,直至輸出值和預(yù)想值誤差在理想的范圍內(nèi)[13]。
第7步,重新從學(xué)習(xí)樣本中選取輸入和目標(biāo)函數(shù),回到第3步,直至全局誤差小于預(yù)先設(shè)置的一個(gè)極小值,即收斂,直到所有樣本訓(xùn)練結(jié)束。
第8步,訓(xùn)練結(jié)束。
圖1 神經(jīng)元模型
圖2 BP神經(jīng)網(wǎng)絡(luò)模型
圖3 BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練示意圖
基于PCA的神經(jīng)網(wǎng)絡(luò)模型如圖4所示。
圖4 PCA結(jié)合BP神經(jīng)網(wǎng)絡(luò)檢測(cè)方法模型
此仿真實(shí)驗(yàn)中采用的是安全領(lǐng)域權(quán)威的kdd cup 99數(shù)據(jù)集。數(shù)據(jù)集總共由4 898 431條記錄構(gòu)成,它還提供了一個(gè)10%的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,本文基于10%的訓(xùn)練子集和測(cè)試子集完成實(shí)驗(yàn)。數(shù)據(jù)集中不僅包含正常數(shù)據(jù)(Normal),還包含多種異常數(shù)據(jù),這里異常數(shù)據(jù)包含4大類22小類入侵攻擊行為。其中每條數(shù)據(jù)都包含41個(gè)特征屬性,典型的數(shù)據(jù)格式:0,tcp,http,SF,54540,8314,0,0,0,2,0,1,1,0,0,0,0,0,0,0,0,0,3,3,0,0,0.33,0.33,1,0,0,96,96,1,0,0.01,0,0,0,0.16,0.16,back.
實(shí)驗(yàn)中所使用的kddcup.data_10_percent文件中共包含494 021條源數(shù)據(jù),使用SQL2012數(shù)據(jù)庫(kù)刪除其中重復(fù)的數(shù)據(jù),得到145 586 條有效數(shù)據(jù)。處理后由于U2R 中的loadmodule,perl,rootkit 以及R2L 中的spy數(shù)據(jù)過少,不足以給神經(jīng)網(wǎng)絡(luò)提供足夠多的訓(xùn)練樣本以及測(cè)試樣本,因此本仿真實(shí)驗(yàn)只對(duì)其攻擊類型條數(shù)在30條以上的攻擊類型進(jìn)行分類統(tǒng)計(jì),如表1所示。
表1 攻擊類型及數(shù)目
仿真中Matlab無(wú)法識(shí)別非數(shù)值化的數(shù)據(jù),此數(shù)據(jù)集的2,3,4維度為非數(shù)值化數(shù)據(jù),本文中用1代替,轉(zhuǎn)化后的數(shù)據(jù)格式:0,1,1,1,54540,8314,0,0,0,2,0,1,1,0,0,0,0,0,0,0,0,0,3,3,0,0,0.33,0.33,1,0,0,96,96,1,0,0.01,0,0,0,0.16,0.16,back.
對(duì)于某種攻擊類型進(jìn)行識(shí)別前,按9:1的比例從正常數(shù)據(jù)(Normal)和該類攻擊中隨機(jī)選取數(shù)據(jù),并按4:1的比例分別保存在Train.txt和Test.txt中。
對(duì)4大類22種攻擊類型中數(shù)據(jù)量大于30的12種攻擊類型進(jìn)行仿真實(shí)驗(yàn),仿真實(shí)驗(yàn)結(jié)果如表2所示。
表2 檢測(cè)結(jié)果
從表2可以看出,對(duì)于訓(xùn)練樣本多的異常數(shù)據(jù),基于PCA的BP神經(jīng)網(wǎng)絡(luò)的識(shí)別率都能達(dá)90%以上,漏報(bào)率在10%以下。對(duì)于訓(xùn)練樣本不足的異常數(shù)據(jù),漏報(bào)率基本上都在20%以上,因此訓(xùn)練樣本數(shù)量對(duì)本仿真實(shí)驗(yàn)結(jié)果會(huì)有一定的影響。
將本仿真實(shí)驗(yàn)與傳統(tǒng)的識(shí)別方法進(jìn)行對(duì)比,如表3所示,傳統(tǒng)的識(shí)別方法識(shí)別率為75%~85%[14],而基于PCA的BP神經(jīng)網(wǎng)絡(luò)除去樣本過少的類別,識(shí)別率都在90%以上,明顯高于傳統(tǒng)的識(shí)別率,因此在樣本充足的情況下,本方法較傳統(tǒng)的識(shí)別方法有明顯的優(yōu)勢(shì)。
表3 識(shí)別效果對(duì)比
本文提出的這種檢測(cè)模型,通過主成分分析處理后的數(shù)據(jù),在保留原始數(shù)據(jù)所有信息特征的基礎(chǔ)上減少數(shù)據(jù)總量,以少量的主分量作為BP神經(jīng)網(wǎng)絡(luò)的輸入,借助BP神經(jīng)網(wǎng)絡(luò)在非線性問題處理方面的優(yōu)勢(shì),使得系統(tǒng)的泛化能力和魯棒性得以提高,因此這種將統(tǒng)計(jì)方法和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的檢測(cè)方法相較于傳統(tǒng)的單種檢測(cè)方法在準(zhǔn)確率以及檢測(cè)性能方面得到大幅提高。
綜上所述,基于PCA的BP神經(jīng)網(wǎng)絡(luò)通過訓(xùn)練學(xué)習(xí)不但對(duì)已知的異常數(shù)據(jù)有很高的識(shí)別率,對(duì)未知的異常數(shù)據(jù)也有很好的識(shí)別效果。面對(duì)海量高維異常數(shù)據(jù),傳統(tǒng)的刪除一些維數(shù)造成數(shù)據(jù)不全的缺陷,通過主成分分析在保留原數(shù)據(jù)特性的基礎(chǔ)上,對(duì)數(shù)據(jù)達(dá)到一種降維的目的,簡(jiǎn)化了結(jié)構(gòu)、提升了異常數(shù)據(jù)識(shí)別效率,結(jié)合BP神經(jīng)網(wǎng)絡(luò),提升了異常數(shù)據(jù)識(shí)別的準(zhǔn)確率。
安慶師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2019年4期