国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Snort的入侵檢測(cè)系統(tǒng)的設(shè)計(jì)

2014-05-15 01:24:10吳體輝
關(guān)鍵詞:插件數(shù)據(jù)包預(yù)處理

吳體輝

(運(yùn)城學(xué)院物理與電子工程系,山西運(yùn)城044000)

0.引言

隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅猛發(fā)展,網(wǎng)絡(luò)安全問(wèn)題日益凸顯。隨著攻擊水平與攻擊手段的不斷提高,防火墻單一的只能屏蔽外部攻擊不能有效阻止內(nèi)部入侵的防護(hù)方式已經(jīng)不能滿足網(wǎng)絡(luò)安全的需要。為了加強(qiáng)對(duì)內(nèi)部入侵的防護(hù)能力,我們引入了入侵檢測(cè)系統(tǒng)。入侵檢測(cè)系統(tǒng)的檢測(cè)方式是:首先從網(wǎng)絡(luò)中提取信息,然后將提取的信息與庫(kù)中的信息進(jìn)行比較來(lái)判斷是否存在入侵的跡象。[1]入侵檢測(cè)系統(tǒng)能夠主動(dòng)的、實(shí)時(shí)的、動(dòng)態(tài)的阻止和攔截網(wǎng)絡(luò)中的內(nèi)、外攻擊行為,有效的彌補(bǔ)了靜態(tài)的防御工具防御能力不足的問(wèn)題。入侵檢測(cè)系統(tǒng)的核心是規(guī)則庫(kù),對(duì)于規(guī)則庫(kù)中不存在的入侵行為檢測(cè)能力較低。為了進(jìn)一步提高入侵檢測(cè)系統(tǒng)的檢測(cè)能力,我們將神經(jīng)網(wǎng)絡(luò)引入入侵檢測(cè)系統(tǒng)。引入神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)能夠通過(guò)自學(xué)習(xí)檢測(cè)出新的攻擊方式,[2]檢測(cè)系統(tǒng)的漏報(bào)率會(huì)明顯降低。因此,將人工神經(jīng)網(wǎng)絡(luò)技術(shù)應(yīng)用于入侵檢測(cè)系統(tǒng)已經(jīng)成為入侵檢測(cè)系統(tǒng)發(fā)展的方向。

1.入侵檢測(cè)系統(tǒng)總體框架設(shè)計(jì)

本系統(tǒng)主要包含兩個(gè)部:一是,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練部分。采用BP算法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練數(shù)據(jù)用KDD CUP 1999數(shù)據(jù)集。二是,Snort檢測(cè)部分。通過(guò)預(yù)處理插件將神經(jīng)網(wǎng)絡(luò)模塊接入Snort系統(tǒng)用以實(shí)現(xiàn)對(duì)數(shù)據(jù)的異常檢測(cè)。異常檢測(cè)完成后,正常數(shù)據(jù)流再由Snort系統(tǒng)中的誤用檢測(cè)模塊再次進(jìn)行檢測(cè)。檢測(cè)完畢后,通常報(bào)警輸出模塊對(duì)檢測(cè)到的異常進(jìn)行報(bào)警。Snort檢測(cè)部分是實(shí)時(shí)的,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練部分是離線的。系統(tǒng)總體構(gòu)架,如圖1所示。

圖1 系統(tǒng)總體構(gòu)架Fig.1 Overall system architecture

2.入侵檢測(cè)系統(tǒng)功能模塊設(shè)計(jì)

2.1 數(shù)據(jù)包捕獲模塊

數(shù)據(jù)包捕獲模塊是入侵檢測(cè)的基礎(chǔ),為整個(gè)入侵檢測(cè)系統(tǒng)提供數(shù)據(jù)來(lái)源,是Snort系統(tǒng)的重要組成部分。數(shù)據(jù)捕獲的效率、可靠性與準(zhǔn)確性決定了入侵檢測(cè)系統(tǒng)的整體性能。[3]

Snort系統(tǒng)數(shù)據(jù)包捕獲是基于Libpcap開發(fā)的,Libpcap通過(guò)調(diào)用庫(kù)函數(shù)來(lái)捕獲數(shù)據(jù)包,它是一個(gè)跨平臺(tái)的報(bào)文捕獲程序。本文設(shè)計(jì)的Snort系統(tǒng)是在Windows系統(tǒng)下運(yùn)行的,因此選擇WinPcap(Libpcap在Windows平臺(tái)下的版本)來(lái)捕獲數(shù)據(jù)包。Win-Pcap包含三個(gè)相對(duì)獨(dú)立的部分:網(wǎng)絡(luò)組包過(guò)濾器(NPF)、低級(jí)動(dòng)態(tài)鏈接庫(kù)(Packet.dll)與高級(jí)動(dòng)態(tài)鏈接庫(kù)Wpcap.dll。網(wǎng)絡(luò)組包過(guò)濾器(NPF)是一個(gè)虛擬設(shè)備驅(qū)動(dòng)器,它從將從網(wǎng)卡驅(qū)動(dòng)程序收集到的數(shù)據(jù)包轉(zhuǎn)發(fā)給過(guò)濾器進(jìn)行過(guò)濾。低級(jí)動(dòng)態(tài)鏈接庫(kù)(Packet.dll)是一個(gè)內(nèi)核級(jí)的包過(guò)濾動(dòng)態(tài)鏈接庫(kù),通過(guò)它可以直接訪問(wèn)網(wǎng)絡(luò)組包過(guò)濾器(NPF)驅(qū)動(dòng)程序的API來(lái)接收或發(fā)送數(shù)據(jù)包。高級(jí)動(dòng)態(tài)鏈接庫(kù)Wpcap.dll是一個(gè)與系統(tǒng)無(wú)關(guān)的、高級(jí)的動(dòng)態(tài)鏈接庫(kù),用于為應(yīng)用程序提供抽閑函數(shù)和監(jiān)聽接口。

Winpcap捕包與過(guò)濾的步驟設(shè)計(jì),流程如圖2所示。

(1)打開網(wǎng)卡,并將其設(shè)為混雜模式讓網(wǎng)卡接收所有流過(guò)網(wǎng)卡的幀。

(2)Network Tap(回調(diào)函數(shù))在獲取監(jiān)聽命令后,從網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序處收集數(shù)據(jù)包并將監(jiān)聽到的數(shù)據(jù)包送給過(guò)濾程序。

(3)在Packet filter監(jiān)聽到有數(shù)據(jù)包送達(dá)時(shí),中間驅(qū)動(dòng)程序調(diào)用分組驅(qū)動(dòng)程序?qū)?shù)據(jù)傳遞給所有參與進(jìn)程的分組過(guò)濾程序。

(4)再由Packet filter的過(guò)濾程序決定數(shù)據(jù)包的接收、丟棄與拷貝。

(5)分組過(guò)濾后,將未過(guò)濾掉的數(shù)據(jù)包送入核心緩沖區(qū)。在緩沖區(qū)滿了后,再將數(shù)據(jù)包拷貝到戶緩沖區(qū)。

(6)關(guān)閉網(wǎng)卡

圖2 Winpcap捕包與過(guò)濾流程Fig.2 Winpcap packet capture and filtering process

2.2 協(xié)議解析模塊

協(xié)議解析模塊是入侵檢測(cè)系統(tǒng)的基礎(chǔ),直接影響到入侵檢測(cè)系統(tǒng)的性能。該模塊通過(guò)對(duì)捕獲到的數(shù)據(jù)包進(jìn)行協(xié)議分析來(lái)檢測(cè)每個(gè)數(shù)據(jù)包的類型與特征。

在Snort內(nèi)定義了一個(gè)核心數(shù)據(jù)結(jié)構(gòu)——Packet數(shù)據(jù)結(jié)構(gòu)。Packet結(jié)構(gòu)通過(guò)將不同的指針指向捕獲包的各個(gè)協(xié)議層來(lái)完成對(duì)協(xié)議的解析。Snort的協(xié)議解析過(guò)程類似于Windows中協(xié)議棧的處理過(guò)程,即從數(shù)據(jù)鏈路層到網(wǎng)絡(luò)層再到傳輸層逐層地進(jìn)行解析。具體而言,當(dāng)捕獲到數(shù)據(jù)包后,首先由解析函數(shù)ProcessPackte()函數(shù)根據(jù)數(shù)據(jù)幀的類型調(diào)用相應(yīng)的鏈路層解析函數(shù)(DecodesilpPkt()),如由串行線上數(shù)據(jù)包解析函數(shù)(DecodesilpPkt())來(lái)對(duì)串行線上的數(shù)據(jù)包進(jìn)行解析。在DecodesilpPkt()解析函數(shù)中,進(jìn)一步調(diào)用IP協(xié)議解析函數(shù)(DecodeIP())對(duì)網(wǎng)絡(luò)層的IP協(xié)議進(jìn)行解析,最后調(diào)用傳輸層TCP解析函數(shù)對(duì)TCP數(shù)據(jù)包進(jìn)行解析,并將其解析結(jié)果存儲(chǔ)到相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。協(xié)議解析流程如圖3所示。

圖3 協(xié)議解析流程Fig.3 Protocol Analysis Process

2.3 數(shù)據(jù)預(yù)處理模塊

經(jīng)過(guò)協(xié)議分析后的數(shù)據(jù)包在進(jìn)入檢測(cè)模塊之前,需被送入預(yù)處理模塊進(jìn)行預(yù)處理。預(yù)處理模塊利用協(xié)議解析能將數(shù)據(jù)包分流到不同的規(guī)則庫(kù)中,使所需匹配的規(guī)則大大減少,從而進(jìn)一步提高檢測(cè)的準(zhǔn)確性與效率。具體處理過(guò)程如下:先調(diào)用輸出插件的初始化函數(shù)(InitOutputPlugins())對(duì)所有輸出插件進(jìn)行注冊(cè)。接著調(diào)用預(yù)處理插件初始化函數(shù)(InitPreprocessors())與插件初始化函數(shù)(InitPlugins())對(duì)檢測(cè)引擎插件與預(yù)處理插件進(jìn)行注冊(cè)與初始化。需初始化的插件與相對(duì)應(yīng)的功能如表1所示。

表1 需初始化的插件與相對(duì)應(yīng)的功能Table 1 Output plug-ins features

2.4 采用神經(jīng)網(wǎng)絡(luò)的異常檢測(cè)模塊

(1)神經(jīng)網(wǎng)絡(luò)參數(shù)

訓(xùn)練數(shù)據(jù)采用KDD CUP 1999數(shù)據(jù)集,輸出層神經(jīng)元數(shù)與輸入層神經(jīng)元數(shù)分別定為4個(gè)與10個(gè),隱含層神經(jīng)元由實(shí)驗(yàn)確定。神經(jīng)網(wǎng)絡(luò)訓(xùn)練后,將偏置與連接權(quán)值存儲(chǔ)到相應(yīng)的文件中,由異常檢測(cè)模塊讀取并且對(duì)這些參數(shù)進(jìn)行計(jì)算,最后根據(jù)輸出值與(0,1)的接近程度判斷是否存在異常。

(2)神經(jīng)網(wǎng)絡(luò)的插入

Snort系統(tǒng)內(nèi)含三種類型的插件:一是,以“spp_”開頭的預(yù)處理插件。該插件運(yùn)行在誤用檢測(cè)之前。二是,以“sp_”開頭的處理插件。該插件運(yùn)行在誤用檢測(cè)階段。三是,以“spo_”開頭的輸出插件。[4]該插件運(yùn)行在誤用檢測(cè)階段與檢測(cè)后。本設(shè)計(jì)將神經(jīng)網(wǎng)絡(luò)的異常檢測(cè)模塊設(shè)計(jì)成預(yù)處理插件。在誤用檢測(cè)之前的預(yù)處理模塊完成對(duì)數(shù)據(jù)的異常檢測(cè)。

2.5 誤用檢測(cè)模塊

Snort是基于特征的入侵檢測(cè)系統(tǒng),以鏈表的形式將數(shù)據(jù)包與規(guī)則進(jìn)行匹配來(lái)判斷數(shù)據(jù)是否存在異常,匹配工作由檢測(cè)引擎完成。檢測(cè)引擎將數(shù)據(jù)包與規(guī)則庫(kù)進(jìn)行分析、比較、匹配,若數(shù)據(jù)包數(shù)據(jù)與規(guī)則庫(kù)中的規(guī)則匹配成功,則表明該數(shù)據(jù)存在異常,此時(shí)由報(bào)警輸出模塊按指定的輸出格式報(bào)警,同時(shí)丟棄掉該數(shù)據(jù)包。檢測(cè)引擎具有兩個(gè)功能:一是,規(guī)則的建立與翻譯。Snort系統(tǒng)啟動(dòng)時(shí),系統(tǒng)先由ParseRulesFile()函數(shù)讀取規(guī)則文件,并且建立一個(gè)由指向檢測(cè)插件的指針、規(guī)則樹節(jié)點(diǎn)與選擇樹節(jié)點(diǎn)組成。二是,基于規(guī)則的檢測(cè)引擎。當(dāng)捕獲的數(shù)據(jù)包到達(dá)誤用檢測(cè)模塊時(shí),Snort系統(tǒng)首先將檢測(cè)規(guī)則頭部與 Activation、Dynamic、Alert、Pass、log 這 5 中規(guī)則類型依次進(jìn)行匹配。規(guī)則頭匹配完成后,再依次進(jìn)行規(guī)則樹節(jié)點(diǎn)與選項(xiàng)樹節(jié)點(diǎn)的匹配,若匹配成功,則按指定輸出格式報(bào)警。匹配過(guò)程如圖4所示。

圖4 匹配過(guò)程Fig.4 matching?process

2.6 輸出與報(bào)警模塊

該模塊的功能由輸出插件來(lái)實(shí)現(xiàn),輸出插件負(fù)責(zé)顯示與記錄所需要的信息,并對(duì)檢測(cè)到的異常數(shù)據(jù)包進(jìn)行報(bào)警。Snort系統(tǒng)中輸出插件與其他插件不同,進(jìn)去它的入口不止一個(gè),在不同的階段會(huì)有不同的部件使用輸出插件。Snort中輸出插件主要有:Alert_fast、Alert_unixsock、Alert- syslog、Alert_full、Log_tcpdump、數(shù)據(jù)庫(kù)輸出插件。[5]

表2 輸出插件功能介紹Table 2 Output plug-ins features

3.性能分析

3.1 試驗(yàn)設(shè)置

主機(jī):CPU 為 Core(TM)2 T6600 2.20GHz,硬盤:500 G,內(nèi)存:4GB。

運(yùn)行平臺(tái):Windows XP Professional,l0兆自適應(yīng)局域網(wǎng)。

測(cè)試數(shù)據(jù):訓(xùn)練數(shù)據(jù)用KDD CUP 1999數(shù)據(jù)集。隨機(jī)選取正常樣本54669條。各種攻擊類型一次攻擊中選取攻擊數(shù)據(jù)8341條。檢測(cè)樣本分布如表3所示。

表3 樣本分布Table 3 Distribution of samples

參數(shù)設(shè)定:

(1)訓(xùn)練速率設(shè)定為0.13

(2)允許誤差設(shè)定為0.002

(3)初始權(quán)值為一組非零隨機(jī)數(shù)

(4)初始閾值為一組非零隨機(jī)數(shù)

(5)輸入層神經(jīng)元個(gè)數(shù)為10

(6)輸出層神經(jīng)元個(gè)數(shù)為4

(7)隱含層神經(jīng)元個(gè)數(shù)由實(shí)驗(yàn)獲得

3.2 結(jié)果分析

表4 引入神經(jīng)網(wǎng)絡(luò)前后系統(tǒng)對(duì)各種攻擊的檢測(cè)率Table 4 Detection rate of system for various attack of before and after the introduction of neural network

實(shí)驗(yàn)結(jié)果表明,在入侵檢測(cè)系統(tǒng)中引入神經(jīng)網(wǎng)絡(luò)作為異常檢測(cè)模塊后,系統(tǒng)的漏報(bào)率低,并且對(duì)各種攻擊的檢測(cè)能力較強(qiáng)。同時(shí),隨著神經(jīng)網(wǎng)絡(luò)隱含神經(jīng)元的提高,系統(tǒng)的對(duì)各種攻擊的檢測(cè)能力明顯提高。

4.結(jié)論

本文是在Snort系統(tǒng)的基礎(chǔ)上設(shè)計(jì)的一款應(yīng)用于IPv6協(xié)議的入侵檢測(cè)系統(tǒng)。為了提高整個(gè)系統(tǒng)的檢測(cè)率,在Snort系統(tǒng)引入了神經(jīng)網(wǎng)絡(luò)模塊來(lái)對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行異常檢測(cè)。異常檢測(cè)后,將正常數(shù)據(jù)送到誤用檢測(cè)模塊再次進(jìn)行檢測(cè),這樣在提高檢測(cè)率的同時(shí)降低了系統(tǒng)的漏報(bào)率,使整個(gè)系統(tǒng)的性能得到顯著提高。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)對(duì)真實(shí)網(wǎng)絡(luò)環(huán)境具有較強(qiáng)的檢測(cè)監(jiān)控能力,能夠給用戶提供更強(qiáng)、更可靠的網(wǎng)絡(luò)安全防護(hù)。

[1]張勇,張德運(yùn).基于分布協(xié)作式代理的網(wǎng)絡(luò)入侵檢測(cè)技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)學(xué)報(bào),2001(7).

[2]楊瑞偉,閆懷志,李雨飛.從入侵檢測(cè)到入侵防護(hù)[J].計(jì)算機(jī)安全,2005(1).

[3]李鴻培,王新梅.基于神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)模型[J].西安電子科技大學(xué)學(xué)報(bào),1999(5).

[4]戴英俠,連一峰,王航.系統(tǒng)安全與入侵檢測(cè)[M].北京:清華大學(xué)出版社,2002.

[5]張楠.新一代入侵檢測(cè)技術(shù)及應(yīng)用——基于協(xié)議分析技術(shù)的入侵檢測(cè)系統(tǒng)模型研究[J].計(jì)算機(jī)安全,2004(12).

猜你喜歡
插件數(shù)據(jù)包預(yù)處理
自編插件完善App Inventor與樂(lè)高機(jī)器人通信
電子制作(2019年22期)2020-01-14 03:16:34
SmartSniff
基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
淺談PLC在預(yù)處理生產(chǎn)線自動(dòng)化改造中的應(yīng)用
MapWindowGIS插件機(jī)制及應(yīng)用
絡(luò)合萃取法預(yù)處理H酸廢水
基于Revit MEP的插件制作探討
基于自適應(yīng)預(yù)處理的改進(jìn)CPF-GMRES算法
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
視覺(jué)注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
正定县| 临桂县| 沈阳市| 姜堰市| 定襄县| 开远市| 公主岭市| 宁夏| 铜鼓县| 农安县| 南川市| 芮城县| 大田县| 霍山县| 黑河市| 三门县| 巩义市| 南平市| 辽阳县| 航空| 民和| 潼南县| 安丘市| 寿光市| 板桥市| 永善县| 德保县| 大石桥市| 庆阳市| 上杭县| 丹凤县| 肥城市| 丽江市| 杭锦旗| 河池市| 乌鲁木齐县| 乌鲁木齐市| 东台市| 邯郸市| 吉木萨尔县| 岳普湖县|