黃海燕 薛煥堂 張保龍
摘要:網(wǎng)絡(luò)已經(jīng)滲透到人們生活的各個(gè)領(lǐng)域,隨著網(wǎng)絡(luò)用戶的大幅度增長(zhǎng),受到攻擊的系統(tǒng)越來(lái)越多。網(wǎng)絡(luò)安全技術(shù)的研究已經(jīng)成為重點(diǎn)。入侵檢測(cè)能進(jìn)行安全審計(jì)、監(jiān)視網(wǎng)絡(luò)數(shù)據(jù),識(shí)別網(wǎng)絡(luò)攻擊,并能及時(shí)響應(yīng),但是誤報(bào)率高。神經(jīng)網(wǎng)絡(luò)具有很好的并行計(jì)算,自適應(yīng)計(jì)算,抗干擾和智能判斷的特征,可以準(zhǔn)確處理失真信號(hào)。這些特征能優(yōu)化現(xiàn)有的入侵檢測(cè)方法。分析了網(wǎng)絡(luò)攻擊的分類和入侵檢測(cè)原型總體結(jié)構(gòu),設(shè)計(jì)了入侵檢測(cè)原型的詳細(xì)設(shè)計(jì),規(guī)范了相關(guān)數(shù)據(jù)結(jié)構(gòu),根據(jù)特征對(duì)執(zhí)行流程進(jìn)行提取,指出了檢測(cè)網(wǎng)絡(luò)的攻擊范圍。提出神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程,概括了神經(jīng)網(wǎng)絡(luò)檢測(cè)的程序算法。
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò);入侵檢測(cè);模塊
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1009-3044(2015)13-0171-02
網(wǎng)絡(luò)給我們帶來(lái)巨大機(jī)會(huì)和發(fā)展的同時(shí)也給我們帶來(lái)了惡意入侵的危險(xiǎn)。就現(xiàn)在的整體情況來(lái)看,經(jīng)常使用的網(wǎng)絡(luò)安全技術(shù)還局限于防火墻等一些靜態(tài)的安全保護(hù)方式,要是沒有積極主動(dòng)的一些安全防護(hù)方式相配合,他的安全性能就是有殘缺的。開發(fā)一種主動(dòng)防御、及時(shí)控制的技術(shù)就很有必要。入侵檢測(cè)技術(shù)恰恰就是這樣的一種技術(shù)。入侵檢測(cè)在國(guó)內(nèi)有很多文獻(xiàn)進(jìn)行研究,目前入侵檢測(cè)存在的最大問題是檢測(cè)中誤報(bào)率較高。所以我們要提高入侵檢測(cè)的智能型。神經(jīng)網(wǎng)絡(luò)顧名思義模仿人的大腦,具有很好的并行計(jì)算,自適應(yīng)計(jì)算,抗干擾和智能判斷的特征,可以準(zhǔn)確處理失真信號(hào)。這些特征能優(yōu)化現(xiàn)有的入侵檢測(cè)方法,是發(fā)展的必然趨勢(shì)。
1網(wǎng)絡(luò)攻擊的分類
從攻擊的技術(shù)手段方面看,網(wǎng)絡(luò)攻擊分為兩大類。第一類分析攻擊行為,并在數(shù)據(jù)包的載荷部分把其特征隱藏。有字符串結(jié)合而成的,服務(wù)于系統(tǒng)的一些常用命令,沒有被顯示出來(lái)。但是一旦點(diǎn)擊包含此字符串的對(duì)象,入侵行為就被激活。這種利用計(jì)算機(jī)本身系統(tǒng)結(jié)構(gòu)特點(diǎn)和應(yīng)用層協(xié)議的一些漏洞產(chǎn)生的攻擊稱為高層網(wǎng)絡(luò)攻擊。第二類攻擊稱為低層網(wǎng)絡(luò)攻擊。主要攻擊發(fā)生在網(wǎng)絡(luò)連接的時(shí)間和數(shù)據(jù)流量上,這類攻擊主要是針對(duì)TCP/IP協(xié)議棧中的基礎(chǔ)協(xié)議的漏洞進(jìn)行攻擊。
2入侵檢測(cè)原型總體結(jié)構(gòu)
圖1描述了原型的總體結(jié)構(gòu)模型。對(duì)主要模塊的總體功能進(jìn)行如下介紹。
1)數(shù)據(jù)捕獲模塊,捕獲在系統(tǒng)中運(yùn)行的數(shù)據(jù)包,預(yù)處理模塊處理這些數(shù)據(jù)包。在實(shí)現(xiàn)時(shí),將網(wǎng)絡(luò)接口設(shè)成混雜模式,方便數(shù)據(jù)流通,并同時(shí)監(jiān)聽經(jīng)過(guò)設(shè)備的數(shù)據(jù)[1]。
2)數(shù)據(jù)預(yù)處理模塊分析網(wǎng)絡(luò)上獲得的信息,對(duì)數(shù)據(jù)包根據(jù)協(xié)議類型一層一層解析。記錄和計(jì)算TCP連接信息,半開連接信息,保護(hù)網(wǎng)絡(luò)主機(jī)不同端口連接信息和半開連接信息,并對(duì)SYN報(bào)文和FIN報(bào)文的鏈表狀態(tài)和鏈表結(jié)點(diǎn)進(jìn)行維護(hù)。IP協(xié)議處理函數(shù)中進(jìn)行碎片信息的處理和記錄,目的是把基于碎片的拒絕服務(wù)攻擊提供給神經(jīng)網(wǎng)絡(luò)模塊。總結(jié)信息并把信息轉(zhuǎn)化,進(jìn)行歸一化處理,結(jié)合TCP數(shù)據(jù)報(bào)的標(biāo)志位送入神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊,檢測(cè)攻擊的存在。最后把得到的特征用于ICMP協(xié)議的掃描或攻擊檢測(cè)。
3)數(shù)據(jù)預(yù)處理模塊把得到的特征傳給神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊,神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊負(fù)責(zé)計(jì)算輸出層的輸出結(jié)果,并根據(jù)結(jié)果判斷攻擊。神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊有三大模塊構(gòu)成。能檢測(cè)網(wǎng)絡(luò)漏洞掃描和TCP協(xié)議中拒絕服務(wù)攻擊的TCP神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊;能通過(guò)檢測(cè)到拒絕服務(wù)攻擊和ICMP的IP神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊;基于ICMP的主機(jī)活性掃描和拒絕服務(wù)攻擊的檢測(cè)被神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊實(shí)現(xiàn)。
4)神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊對(duì)己知的網(wǎng)絡(luò)攻擊離線訓(xùn)練,以矩陣形式將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)的各層連接權(quán)存入磁盤文件中,在系統(tǒng)開始運(yùn)行時(shí)神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊讀入磁盤中的權(quán)值到神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中。神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊也可分為TCP神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊、m神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊和ICMP神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊[1]。
5)響應(yīng)報(bào)警模塊報(bào)告當(dāng)前的被檢測(cè)數(shù)據(jù)對(duì)象是否存在攻擊的跡象,判斷依據(jù)是神經(jīng)網(wǎng)絡(luò)的輸出。
3基于神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)原型詳細(xì)設(shè)計(jì)
詳細(xì)設(shè)計(jì)分為數(shù)據(jù)捕獲模塊、數(shù)據(jù)預(yù)處理模塊、神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊、神經(jīng)網(wǎng)絡(luò)測(cè)試模塊、響應(yīng)報(bào)警模塊五個(gè)模塊。
數(shù)據(jù)捕獲模塊。網(wǎng)絡(luò)數(shù)據(jù)的捕獲通過(guò)Libpcap編程接口實(shí)現(xiàn)。這種接口是網(wǎng)絡(luò)數(shù)據(jù)包的標(biāo)準(zhǔn)捕獲接口,它效率高、獨(dú)立性和移植性強(qiáng)。使用具有快速的網(wǎng)絡(luò)數(shù)據(jù)包過(guò)濾功能的BPF數(shù)據(jù)包捕獲機(jī)制。數(shù)據(jù)捕獲過(guò)程中通過(guò)Libpcap截獲網(wǎng)絡(luò)數(shù)據(jù)包。
數(shù)據(jù)預(yù)處理模塊。數(shù)據(jù)預(yù)處理模塊接收網(wǎng)絡(luò)數(shù)據(jù)包,這些數(shù)據(jù)包由數(shù)據(jù)捕獲模塊送過(guò)來(lái)。接收后先處理這些數(shù)據(jù)包,并將處理的結(jié)果轉(zhuǎn)化為向量送入神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊檢測(cè)。數(shù)據(jù)預(yù)處理模塊處理的數(shù)據(jù)包分別針對(duì)三種協(xié)議:IP、TCP、ICMP。IP協(xié)議的預(yù)處理主要提取針對(duì)基于m碎片的攻擊特征;TCP協(xié)議的預(yù)處理針對(duì)基于TCP協(xié)議網(wǎng)絡(luò)掃描并對(duì)拒絕服務(wù)攻擊特征提取。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊。采用雙隱層BP神經(jīng)網(wǎng)絡(luò)作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊的網(wǎng)絡(luò)結(jié)構(gòu)。離線狀態(tài)下運(yùn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊。網(wǎng)絡(luò)攻擊和正常網(wǎng)絡(luò)流通的一些知識(shí),讓檢測(cè)模塊在對(duì)網(wǎng)絡(luò)攻擊事件進(jìn)行檢查入侵之前學(xué)會(huì)。提供給神經(jīng)網(wǎng)絡(luò)訓(xùn)練模塊已知攻擊的輸入特征向量和與之對(duì)應(yīng)的期望輸出向量由系統(tǒng)管理員負(fù)責(zé)。本原型輸入特征向量是預(yù)處理模塊得到的可描述攻擊行為的特征向量;期望輸出數(shù)據(jù)一般為一串二進(jìn)制0、1串指示了是何種具體的攻擊。本原型對(duì)基于IP、ICMP、TCP協(xié)議的網(wǎng)絡(luò)掃描和拒絕服務(wù)攻擊進(jìn)行檢測(cè),相應(yīng)定義了三種(IP、ICMP、TCP)神經(jīng)網(wǎng)絡(luò)[2]。
神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊。神經(jīng)網(wǎng)絡(luò)檢測(cè)模塊接受的特征向量是由預(yù)處理模塊送來(lái),這些特征向量做為神經(jīng)網(wǎng)絡(luò)的輸入向量,是由神經(jīng)網(wǎng)絡(luò)的各層計(jì)算出結(jié)果,然后把結(jié)果在輸出層輸出。輸出結(jié)果可能顯示的是正常的數(shù)據(jù)流,可能指示某一種網(wǎng)絡(luò)攻擊,也可能是未知的結(jié)果即這個(gè)結(jié)果在神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)沒有定義。針對(duì)這種情況,對(duì)于前兩種情況,系統(tǒng)管理員應(yīng)記錄下這時(shí)神經(jīng)網(wǎng)絡(luò)的輸入向量和輸出向量,在神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),加入這兩種情況。對(duì)于后一種情況,需要在進(jìn)行分析。
響應(yīng)報(bào)警模塊。響應(yīng)報(bào)警模塊對(duì)接受神經(jīng)網(wǎng)絡(luò)輸出向量,根據(jù)編碼的對(duì)應(yīng)關(guān)系,判斷攻擊行為。發(fā)現(xiàn)對(duì)應(yīng)的攻擊。就會(huì)有相應(yīng)的消息打印在屏幕上,并會(huì)有指示這種攻擊的全局變量在系統(tǒng)中設(shè)置;若沒有找到對(duì)應(yīng)攻擊,則不打印消息。理論上講訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),對(duì)輸出向量的編碼是0、1串。但真正的輸出不會(huì)嚴(yán)格的是0、1串,所以約定,數(shù)值大于0.7的按1對(duì)待,小于0.3的按0對(duì)待。
改進(jìn)后BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
4神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程
P代表樣本總數(shù)。
F代表不合格樣本數(shù)。
M代表正確率,設(shè)在1%-100%之間。
E為網(wǎng)絡(luò)訓(xùn)練后要達(dá)到的精度,設(shè)為小數(shù)。
5神經(jīng)網(wǎng)絡(luò)檢測(cè)
對(duì)參數(shù)和變量進(jìn)行初始化;
從記事本文件中讀取檢測(cè)樣本、期望值、權(quán)值、閾值;
for(n=1;n<=I;n++) /*n為樣本數(shù)量*/
{放入矩陣第一行;
{for(n=1;n<=I;n++)/*第二層樣本數(shù)*/
根據(jù)閾值和權(quán)值的到線性輸出,放入矩陣第二行;
…
}
if(小于正確率) 不合格樣本數(shù)++;
}
輸出該組數(shù)據(jù)的檢測(cè)結(jié)果;
end
正確率輸出結(jié)果越接近l,表明可能受到攻擊。
6 結(jié)束語(yǔ)
本文調(diào)研了常見的網(wǎng)絡(luò)攻擊手段,探討了入侵檢測(cè)技術(shù)的研究方法、入侵檢測(cè)的發(fā)展方向。根據(jù)神經(jīng)網(wǎng)絡(luò)的特點(diǎn),將神經(jīng)網(wǎng)絡(luò)與入侵檢測(cè)結(jié)合。設(shè)計(jì)了一個(gè)簡(jiǎn)化的基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè)原型。原型通過(guò)統(tǒng)計(jì)底層網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)流量信息數(shù)據(jù)包協(xié)議頭的信息,將這些信息預(yù)處理后送入已訓(xùn)練過(guò)的神經(jīng)網(wǎng)絡(luò)模塊,以此判斷當(dāng)前網(wǎng)絡(luò)數(shù)據(jù)流量存在的攻擊或掃描行為。此原型提出了具有更高檢測(cè)率并且能檢測(cè)變種攻擊的模塊設(shè)計(jì)。
參考文獻(xiàn):
[1] 張文修,梁怡.基于包含度的不確定推理[M]. 北京:清華大學(xué)出版社,2007.
[2] 馮立穎.改進(jìn)的BP神經(jīng)網(wǎng)路算法及其應(yīng)用[J]. 計(jì)算機(jī)仿真,2010(12):173-175.
[3] 張金梅.基于神經(jīng)網(wǎng)絡(luò)的高校教學(xué)質(zhì)量評(píng)價(jià)體系的設(shè)計(jì)與實(shí)現(xiàn)[D]. 太原:太原理工大學(xué), 2005.