孫海冰
提要本文介紹了一種局域網(wǎng)環(huán)境入侵檢測(cè)系統(tǒng)的實(shí)現(xiàn),對(duì)各技術(shù)模塊進(jìn)行了應(yīng)用分析。
關(guān)鍵詞:入侵檢測(cè);數(shù)據(jù);數(shù)據(jù)管理
中圖分類號(hào):F49文獻(xiàn)標(biāo)識(shí)碼:A
入侵檢測(cè)數(shù)據(jù)管理系統(tǒng)是入侵檢測(cè)系統(tǒng)實(shí)現(xiàn)的關(guān)鍵,是入侵檢測(cè)數(shù)據(jù)分析的基礎(chǔ)。本文所研究的入侵檢測(cè)數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)分三個(gè)部分:數(shù)據(jù)包捕獲模塊、數(shù)據(jù)提取模塊和事件分析數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。
一、數(shù)據(jù)包捕獲模塊實(shí)現(xiàn)
數(shù)據(jù)包捕獲模塊是進(jìn)行檢測(cè)和決策的基礎(chǔ),它的準(zhǔn)確性、可靠性和效率直接影響到整個(gè)系統(tǒng)的性能。數(shù)據(jù)包捕獲模塊的任務(wù)是利用數(shù)據(jù)包捕獲工具從網(wǎng)卡上捕獲網(wǎng)絡(luò)上的數(shù)據(jù)包,再將捕獲的數(shù)據(jù)包經(jīng)過(guò)解碼引擎填入到鏈路層協(xié)議的包結(jié)構(gòu)體中,以便對(duì)高層次的協(xié)議進(jìn)行解碼。
對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲機(jī)制。網(wǎng)絡(luò)數(shù)據(jù)包捕獲機(jī)制指通過(guò)捕獲整個(gè)網(wǎng)絡(luò)的所有信息流量,根據(jù)信息源主機(jī)、目標(biāo)主機(jī)、服務(wù)協(xié)議端口等信息簡(jiǎn)單過(guò)濾掉不關(guān)心的數(shù)據(jù),再將系統(tǒng)感興趣的數(shù)據(jù)發(fā)送給更上層的應(yīng)用程序進(jìn)行分析。網(wǎng)絡(luò)數(shù)據(jù)捕獲可以通過(guò)兩種方法實(shí)現(xiàn):一種是利用以太網(wǎng)絡(luò)的廣播特性;另一種方式是通過(guò)設(shè)置路由器的監(jiān)聽端口實(shí)現(xiàn)。
1、利用以太網(wǎng)絡(luò)的廣播特性進(jìn)行捕獲。以太網(wǎng)數(shù)據(jù)傳輸通過(guò)廣播實(shí)現(xiàn),但是在系統(tǒng)正常工作時(shí),應(yīng)用程序只能接收到以本主機(jī)為目標(biāo)主機(jī)的數(shù)據(jù)包,其他數(shù)據(jù)包將被丟棄不作處理,其數(shù)據(jù)包過(guò)濾機(jī)制分為鏈路層、網(wǎng)絡(luò)層和傳輸層幾個(gè)層次。鏈路層主要指網(wǎng)卡驅(qū)動(dòng)程序判斷所收到包的目標(biāo)MAC地址,如果不是自己網(wǎng)卡的MAC地址,又不是廣播地址和組播地址,將直接丟棄,不向上層提交。網(wǎng)絡(luò)層判斷目標(biāo)IP地址是否為本機(jī)所綁定IP地址,否則將不向上層提交。傳輸層如TCP層或者UDP層判斷目標(biāo)端口是否在本機(jī)已經(jīng)打開,如果沒(méi)有打開不作處理,并不向應(yīng)用層提交。
2、在交換環(huán)境中的網(wǎng)絡(luò)數(shù)據(jù)捕荻。在實(shí)際應(yīng)用中,存在很多非以太網(wǎng)接入的情況,如通過(guò)光纖接入等。
二、數(shù)據(jù)提取模塊實(shí)現(xiàn)
數(shù)據(jù)提取模塊是實(shí)現(xiàn)入侵檢測(cè)系統(tǒng)VIDS的基礎(chǔ),它為檢測(cè)模塊提供分析的數(shù)據(jù)。根據(jù)數(shù)據(jù)包和系統(tǒng)日志提取出相應(yīng)的特征數(shù)據(jù),并對(duì)其進(jìn)行規(guī)范化,以方便后面的數(shù)據(jù)分析。數(shù)據(jù)提取的三個(gè)過(guò)程是:協(xié)議解析、規(guī)則解析和數(shù)據(jù)預(yù)處理。
1、協(xié)議解析。數(shù)據(jù)包捕獲模塊把捕獲的數(shù)據(jù)提交給協(xié)議解析模塊后,協(xié)議解析模塊必須對(duì)這些數(shù)據(jù)進(jìn)行分析,根據(jù)相應(yīng)的協(xié)議把這些分析后的數(shù)據(jù)放到指定的數(shù)據(jù)結(jié)構(gòu)中,供上層模塊調(diào)用。協(xié)議解析模塊設(shè)計(jì)了一些對(duì)數(shù)據(jù)包進(jìn)行表述的數(shù)據(jù)結(jié)構(gòu),在這些數(shù)據(jù)結(jié)構(gòu)中,存放數(shù)據(jù)的Packet結(jié)構(gòu)是其中最為關(guān)鍵的一個(gè),數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)如下:在數(shù)據(jù)包解碼時(shí),首先判斷以太網(wǎng)封裝的協(xié)議是否為IP協(xié)議,如果不是,則直接返回;否則,首先解析出IP頭部,再根據(jù)所封裝的協(xié)議,并分別對(duì)TCP、UDP、ICMP解析,將各項(xiàng)值寫入Packet結(jié)構(gòu)中對(duì)應(yīng)的字段。
2、規(guī)則解析。在本系統(tǒng)中,采用了Snort的入侵行為描述方法。這種描述方法簡(jiǎn)單、易于實(shí)現(xiàn),能夠描述絕大多數(shù)的入侵行為。Snort的規(guī)則在邏輯上分為兩部分:規(guī)則頭和規(guī)則選項(xiàng)。規(guī)則頭部分包括:規(guī)則行為、協(xié)議、源/目的IP地址、子網(wǎng)掩碼以及源,目的端口。規(guī)則選項(xiàng)包含了所要顯示給用戶查看的警告信息,以及用來(lái)判定此報(bào)文是否為攻擊報(bào)文的其他信息(比如,TCP的Flag字段以及數(shù)據(jù)字段的內(nèi)容等)。
3、數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理模塊的作用就是對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行預(yù)先處理,從而方便隨后的檢測(cè)分析。另外,我們可以發(fā)現(xiàn),基于規(guī)則的檢測(cè)引擎并不能檢測(cè)所有的入侵,尤其是針對(duì)有效載荷的檢測(cè),而像端口掃描、SYN Flooding等攻擊,按照前面所述的方法很難對(duì)它們的特征進(jìn)行提取。因此,需要特殊情況特殊處理,而數(shù)據(jù)預(yù)處理就是一個(gè)很好的選擇。常用的預(yù)處理內(nèi)容如下:
(1)minfrag的格式。minfrag預(yù)處理檢查分組數(shù)據(jù)包的大小是否低于某一設(shè)定的閩值。數(shù)據(jù)包分組通常是由源和目的地址之間的路由器來(lái)進(jìn)行的。一般來(lái)講,商業(yè)網(wǎng)絡(luò)設(shè)備不會(huì)將數(shù)據(jù)包的分組大小設(shè)置于512字節(jié)。因此,能使用這個(gè)事實(shí)監(jiān)控小的數(shù)據(jù)包分組,這種小的分組數(shù)據(jù)一般說(shuō)明某些試圖在分組里隱藏它們的數(shù)據(jù)。
(2)HTTP Decode的格式。HTTP De-code用于處理HTTP URL地址字符串,并將串中的數(shù)據(jù)轉(zhuǎn)化為可讀的ASCII字串。這樣做的目的是為了檢測(cè)到躲避Web URL掃描的行為和攻擊,這些入侵行為常常會(huì)通過(guò)地址字符串中某些異常字符的設(shè)置,來(lái)躲避對(duì)HTrP通信可疑行為的內(nèi)容分析檢查。格式為:http_deeode:
(3)Portscan Detecto的格式。Portsean向標(biāo)準(zhǔn)日志設(shè)備中記錄從一個(gè)源IP地址所發(fā)出的端口掃描活動(dòng)的開始和結(jié)束。如果指定了一個(gè)日志文件,在記錄掃描類型的同時(shí)也記錄目的IP地址和端口號(hào)。端口掃描定義為在時(shí)間T(秒)之內(nèi)對(duì)超過(guò)P個(gè)端口的TCP連接嘗試,或者在時(shí)間T(秒)之內(nèi)對(duì)超過(guò)P個(gè)端口發(fā)送UDP數(shù)據(jù)包。端口掃描可以是對(duì)任一IP地址的多個(gè)端口,也可以是對(duì)多個(gè)IP地址的同一端口。Snortl,6版本可以處理單對(duì)單和單對(duì)多方式的端口掃描,而現(xiàn)在的版本可以處理分布式的端口掃描(多對(duì)一或多對(duì)多)。端口掃描也包括單一的“隱蔽掃描”數(shù)據(jù)包,比如NULL、FIN、SYN-FIN、XMAS等。如包括秘密掃描的話,端口掃描模塊會(huì)對(duì)每一個(gè)掃描數(shù)據(jù)包告警。
(4)stream4格式。Stream4模塊使snort具有TCP流重新組裝和狀態(tài)分析能力。強(qiáng)壯的流重組能力使得snort能夠忽視無(wú)“狀態(tài)”攻擊,例如,sfick粘滯位攻擊。Stream4也能夠給大量用戶提供超過(guò)256個(gè)TCP同步連接。Stream4缺省配置時(shí)能夠處理32,768個(gè)TCP同步連接。Stream4有兩個(gè)可配置的模塊,stream4 preprocessor和相關(guān)的stream4_reassemble插件。
從而,構(gòu)建一種入侵檢測(cè)系統(tǒng)為主,以防病毒軟件、防火墻為輔這樣一個(gè)多方位的安全保障體系,以確保整個(gè)局域網(wǎng)系統(tǒng)的安全。