袁珊珊
摘要:網(wǎng)絡(luò)應(yīng)用的普及在給人們帶來(lái)無(wú)窮便利的同時(shí)也使網(wǎng)絡(luò)安全問(wèn)題日益凸顯。對(duì)此,本文提出了基于Snort的高速網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的總體設(shè)計(jì)方案。為了適應(yīng)高速網(wǎng)絡(luò)環(huán)境,本文在研究入侵檢測(cè)技術(shù)的過(guò)程中,使用了PF_RING技術(shù)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)包的離速捕獲,通過(guò)對(duì)多個(gè)Snort進(jìn)程實(shí)現(xiàn)對(duì)數(shù)據(jù)包的高速處理。在設(shè)計(jì)入侵檢測(cè)查詢(xún)分析系統(tǒng)模塊中,可把警告數(shù)據(jù)方便的展示在用戶面前,實(shí)現(xiàn)警告數(shù)據(jù)的可視化顯示。經(jīng)過(guò)檢測(cè)發(fā)現(xiàn),增強(qiáng)了Snort對(duì)入侵攻擊的檢測(cè)能力。
關(guān)鍵詞:入侵檢測(cè);網(wǎng)絡(luò)安全
今天,網(wǎng)絡(luò)通信技術(shù)已經(jīng)滲透到社會(huì)經(jīng)濟(jì),文化和科學(xué)等各個(gè)領(lǐng)域,影響著人們工作和學(xué)習(xí)。從近年來(lái)互聯(lián)網(wǎng)用戶信息泄露的角度看,目前的形勢(shì)在令人震驚之余也讓人極為擔(dān)心,互聯(lián)網(wǎng)的安全問(wèn)題不僅影響到國(guó)家的經(jīng)濟(jì)發(fā)展,而且對(duì)國(guó)家安全影響很大。目前市場(chǎng)上已經(jīng)有大量的入侵檢測(cè)系統(tǒng)軟件,但還無(wú)法針對(duì)IPv6網(wǎng)絡(luò)數(shù)據(jù)包的特征進(jìn)行檢測(cè),還無(wú)法和好的解決IPv6網(wǎng)絡(luò)中的安全問(wèn)題。
1 入侵檢測(cè)系統(tǒng)
1.1 基于主機(jī)的入侵檢測(cè)系統(tǒng)
基于主機(jī)的入侵檢測(cè)系統(tǒng)用于保護(hù)運(yùn)行關(guān)鍵應(yīng)用程序的服務(wù)器。它監(jiān)視和分析主機(jī)審計(jì)記錄和日志文件以檢測(cè)入侵。日志包含系統(tǒng)中發(fā)生的異常和意外行為的證據(jù)。通過(guò)這些證據(jù),可以檢測(cè)并顯示、指出有人正在入侵或成功入侵系統(tǒng),并會(huì)迅速啟動(dòng)相應(yīng)的應(yīng)急響應(yīng)計(jì)劃[2]。
1.2 基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)
根據(jù)待監(jiān)測(cè)網(wǎng)絡(luò)入侵檢測(cè)包的內(nèi)容,基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)所做的工作主要包括原始數(shù)據(jù)源、網(wǎng)絡(luò)包,以及對(duì)可疑現(xiàn)象的分析等,通過(guò)監(jiān)聽(tīng)共享網(wǎng)絡(luò)上的通信數(shù)據(jù)收集數(shù)據(jù),主機(jī)無(wú)需提供嚴(yán)格的審計(jì),提供對(duì)網(wǎng)絡(luò)的全面保護(hù),而不必考慮異構(gòu)主機(jī)的不同體系結(jié)構(gòu)。
1.3 基于誤用入侵檢測(cè)系統(tǒng)
誤用式入侵檢測(cè)系統(tǒng)是基于網(wǎng)絡(luò)入侵或過(guò)去積累的系統(tǒng)缺陷建立的入侵規(guī)則來(lái)的檢測(cè)入侵系統(tǒng)。在此錯(cuò)誤使用檢測(cè)的基礎(chǔ)上,構(gòu)建基于已知攻擊方法的攻擊特征庫(kù),對(duì)所獲取的數(shù)據(jù)進(jìn)行處理后進(jìn)行特征驗(yàn)證,如果驗(yàn)證成功則認(rèn)為是侵入性的,否則為合法。盡管它意味著入侵行為。
這種入侵檢測(cè)系統(tǒng)開(kāi)發(fā)的優(yōu)點(diǎn)是準(zhǔn)確性高,效率高,誤報(bào)率低。檢測(cè)條件可以清楚地描述。缺點(diǎn)是只檢測(cè)模式庫(kù)中現(xiàn)有的攻擊類(lèi)型,并且攻擊特征庫(kù)很難收集和更新。因?yàn)樗Q于主機(jī)平臺(tái),所以便攜性較差。
2.Snort與網(wǎng)絡(luò)安全防護(hù)
2.1 Snort的體系結(jié)構(gòu)
so時(shí)主要包含五個(gè)基本功能模塊,嗅探器,解碼器,預(yù)處理器,檢測(cè)引擎和警報(bào)輸出。嗅探器是數(shù)據(jù)包的集合,是整個(gè)系統(tǒng)的基礎(chǔ),嗅探器必須保證高速數(shù)據(jù)包,并且丟包率低。這與硬件處理能力和軟件效率有關(guān)。解碼器和預(yù)處理插件可以預(yù)處理數(shù)據(jù),以便檢測(cè)引擎稍后可以檢測(cè)數(shù)據(jù)。檢測(cè)弓!擎是整個(gè)系統(tǒng)的核心。Snort的系統(tǒng)性能很大程度上取決于檢測(cè)引擎的準(zhǔn)確性和效率。警報(bào)輸出插件可以使用各種方法輸出警報(bào)信息。各個(gè)模塊可按照Snort提供的插件接口函數(shù)完成,可以根據(jù)實(shí)際需要?jiǎng)討B(tài)的加載或者刪除某個(gè)模塊,這樣既能保證插件程序和核心代碼的緊密相關(guān)性,又具有良好模塊化設(shè)計(jì)思想,使Snort整個(gè)體系結(jié)構(gòu)組織非常清晰,充分體現(xiàn)了追求性能、簡(jiǎn)單靈活和可擴(kuò)展性的設(shè)計(jì)思想[4]。
2.2 核心檢測(cè)模塊工作流程
通過(guò)研究Snort2.3.3源代碼,得出其核心檢測(cè)流程應(yīng)該分為兩部分:第一步是規(guī)則的解析流程,包括從規(guī)則文件中讀取規(guī)則和在內(nèi)存中組織規(guī)則;第二步是使用這些規(guī)則進(jìn)行匹配的檢測(cè)流程。
1、規(guī)則解析流程時(shí),首先讀取規(guī)則文件,緊接著讀取每一條規(guī)則;然后對(duì)其進(jìn)行分析,并用相應(yīng)的規(guī)則語(yǔ)法表示,建立規(guī)則語(yǔ)法樹(shù)。
2、檢測(cè)流程進(jìn)行時(shí),首先對(duì)收集到的數(shù)據(jù)報(bào)進(jìn)行解碼,然后調(diào)用預(yù)處理函數(shù)對(duì)解碼后的報(bào)文進(jìn)行預(yù)處理,再利用規(guī)則樹(shù)對(duì)數(shù)據(jù)報(bào)進(jìn)行匹配。在規(guī)則樹(shù)匹配過(guò)程中,Snort要對(duì)規(guī)則樹(shù)從上到下依次進(jìn)行匹配判斷,一直到規(guī)則選項(xiàng)節(jié)點(diǎn)。具體步驟如下:
數(shù)字?jǐn)?shù)據(jù)報(bào)解碼:主要在decode.c中調(diào)用各種解碼函數(shù)并分析獲取的消息。這些消息解碼函數(shù)是DecodeEthPkt,DeeodeFDDIPkt,DecodeICMP,DecodeTCP等等。
預(yù)處理器預(yù)處理器:在匹配解碼數(shù)據(jù)報(bào)之前,主要調(diào)用預(yù)處理功能列表中的函數(shù)。這些功能包括數(shù)據(jù)片段重構(gòu),流重組,代碼轉(zhuǎn)換周。
規(guī)則匹配規(guī)則:在Snort中,它被稱(chēng)為“二維空間函數(shù)指針鏈的遞歸檢測(cè)機(jī)制”,它主要通過(guò)使用先前構(gòu)建的規(guī)則語(yǔ)法樹(shù)來(lái)遞歸檢查數(shù)據(jù)報(bào),并入侵發(fā)現(xiàn)的。它分為三個(gè)步驟:鏈的第一次查找,規(guī)則頭的匹配以及規(guī)則選項(xiàng)的匹配。
TAG列表匹配:調(diào)用CheckTagList進(jìn)行TAG相關(guān)檢查,記錄必要的信息。通過(guò)分析,可以理解整個(gè)誤用檢測(cè)方法。
3.基于Snort入侵檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)體系結(jié)構(gòu)
本系統(tǒng)采用三次結(jié)構(gòu),包括:網(wǎng)絡(luò)入侵檢測(cè)層、數(shù)據(jù)庫(kù)服務(wù)層和數(shù)據(jù)分析控制層。
3.1.1 網(wǎng)絡(luò)入侵檢測(cè)層
Snort通過(guò)傳感器對(duì)捕獲的數(shù)據(jù)包進(jìn)行入侵檢測(cè),網(wǎng)絡(luò)入侵檢測(cè)層又叫傳感器層,傳感器可能有多個(gè)。傳感器安裝在需要監(jiān)控的網(wǎng)段中,傳感器上由兩塊網(wǎng)卡構(gòu)成,一塊用于捕獲接口,一塊用于管理接口。捕獲接口沒(méi)有IP地址,需要設(shè)置成混雜模式接受所有的數(shù)據(jù)包。管理接口需要與數(shù)據(jù)庫(kù)層直接通信,傳遞入侵報(bào)警的信息。
3.1.2 數(shù)據(jù)庫(kù)服務(wù)層
網(wǎng)絡(luò)入侵檢測(cè)層的管理接口的傳感器傳遞入侵報(bào)警信息會(huì)存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢(xún)、組織和管理。需要注意的是,用于管理接口的傳感器一定要能夠連接到數(shù)據(jù)庫(kù),打 開(kāi)防火墻的相關(guān)端口,防止和防火墻的安全策略沖突。
3.1.3 數(shù)據(jù)分析控制層
數(shù)據(jù)分析控制層顯示數(shù)據(jù),圖形化顯示使用了圖形類(lèi)庫(kù),數(shù)據(jù)分析控制功能更全面,更易于管理使用。用戶可通過(guò)瀏覽器如IE、Google Chrome等瀏覽器訪問(wèn)查看管理。
3.2 系統(tǒng)實(shí)現(xiàn)
3.2.1 軟件配置與安裝
WinPcap:WinPcap的安裝簡(jiǎn)單,只需按照提示安裝即可,無(wú)需其他設(shè)置。Snort將編譯好的Snort部署到C盤(pán)目錄下,然后添加配置規(guī)則庫(kù),將snortrules中的rules等規(guī)則文件夾復(fù)制到C:\Snort目錄下。修改Snort配置文件,設(shè)置規(guī)則庫(kù)的位置、檢測(cè)的網(wǎng)段、需要加載的引擎和預(yù)處理、數(shù)據(jù)庫(kù)的配置等,還需要將snortrules中的動(dòng)態(tài)規(guī)則加入到c:\snortVib目錄下的新建文件夾snort_dynamicrules中。運(yùn)行命令C:\Snort\bin>snort.exe.W可查看安裝是否成功。
Mysql:本系統(tǒng)采用Mysql數(shù)據(jù)庫(kù),Mysq]數(shù)據(jù)庫(kù)的安裝方便,使用靈活,選擇典型安裝,按照提示即可,為方便起見(jiàn),用戶名密碼均設(shè)置為了Snort。
3.2.2 系統(tǒng)實(shí)現(xiàn)界面
系統(tǒng)搭建完成,通過(guò)BASE登錄,Snort入侵檢測(cè)搭建配置完成后,將實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)包,并通過(guò)數(shù)據(jù)庫(kù)輸出接口將入侵日志傳送到Mysql數(shù)據(jù)庫(kù)中,數(shù)據(jù)分析控制臺(tái)則可以通過(guò)數(shù)據(jù)庫(kù)接口讀取數(shù)據(jù),并顯示在base上。
顯示的信息有:報(bào)警事件的總數(shù)量、每日新增加報(bào)警數(shù)量、攻擊源IP地址、對(duì)應(yīng)的端口號(hào)、不同協(xié)議類(lèi)型異常入侵所占的比例等。點(diǎn)擊鏈接,可以查看具體的報(bào)警日志數(shù)據(jù),如圖3.2所示具體部分報(bào)警日志數(shù)據(jù)。
參考文獻(xiàn)
[1]朱琨,張琪一機(jī)器學(xué)習(xí)在網(wǎng)絡(luò)入侵檢測(cè)中的應(yīng)用[J].數(shù)據(jù)采集與處理,2017,32(03):479-488.
[2]于源源.基于模糊聚類(lèi)分析的網(wǎng)絡(luò)入侵檢測(cè)研究[D].中國(guó)地質(zhì)大學(xué)(北京),2017.
[3]孫琦麟.墓于免疫克隆選擇加權(quán)樸素貝葉斯分類(lèi)器的網(wǎng)絡(luò)入侵檢測(cè)[D].蘭州理工大學(xué),2017.
[4]胡威.一種改進(jìn)的K-means算法在網(wǎng)絡(luò)入侵檢測(cè)中的應(yīng)用研究[D].合肥工業(yè)大學(xué),2017.
[5]王戰(zhàn)紅.特征和分類(lèi)器參數(shù)組合優(yōu)化的網(wǎng)絡(luò)入侵檢測(cè)[J].南京理工大學(xué)學(xué)報(bào),2017,41(01):59-64.
[6]袁琴琴,呂林濤.基于改進(jìn)蟻群算法與遺傳算法組合的網(wǎng)絡(luò)入侵檢測(cè)[J].重慶郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,29(01):84-89.
[7]封化民,李明偉,侯曉蓮,徐治理.基于SMOTE和GBDT的網(wǎng)絡(luò)入侵檢測(cè)方法研究[J].計(jì)算機(jī)應(yīng)用研究,2017,34(12):3745-3748.
[8]安攀峰.基于加權(quán)SVM的工業(yè)控制網(wǎng)絡(luò)入侵檢測(cè)算法研究[D].沈陽(yáng)理工大學(xué),2017.