吳 云
(衢州日?qǐng)?bào)社,324002)
入侵檢測(cè)系統(tǒng)(IDS)是防火墻之后的第二道安全閘門,它的主要功能特點(diǎn)是:檢測(cè)網(wǎng)絡(luò)用戶的行為和網(wǎng)絡(luò)的異常動(dòng)態(tài),分析和篩選出合法用戶和非法用戶的侵權(quán)、越權(quán)行為;通過(guò)核查和分析系統(tǒng)存在的漏洞來(lái)分析系統(tǒng)的安全性,并提示網(wǎng)絡(luò)管理員及時(shí)對(duì)漏洞進(jìn)行修補(bǔ)和修復(fù);分析各個(gè)系統(tǒng)數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)資源的完整性和統(tǒng)一性;攔截和識(shí)別存在的攻擊行為;分析和統(tǒng)計(jì)系統(tǒng)中存在的異常;對(duì)以上活動(dòng)產(chǎn)生的具體痕跡能進(jìn)行無(wú)一遺漏的記錄,對(duì)違法系統(tǒng)安全策略的用戶進(jìn)行準(zhǔn)確記錄。
DDoS是一種分布式的網(wǎng)絡(luò)攻擊方式,傳統(tǒng)的單機(jī)或集中示的入侵檢測(cè)技術(shù)已經(jīng)不能滿足新情況下網(wǎng)絡(luò)安全的需要,原因在于:
1)通過(guò)關(guān)鍵部分的數(shù)據(jù)分析得出系統(tǒng)漏洞。如果一個(gè)侵入者能夠設(shè)使運(yùn)行它的計(jì)算機(jī)軟硬件系統(tǒng)速度變慢或者奔潰,那么整個(gè)入侵檢測(cè)系統(tǒng)就起不了作用了。
2)整個(gè)系統(tǒng)的伸縮性受到一定限度的限制。如果對(duì)監(jiān)控的網(wǎng)絡(luò)出現(xiàn)范圍受限那么意味著一臺(tái)或者少量主機(jī)并不能滿足他的應(yīng)用。并且隨著網(wǎng)絡(luò)范圍和容量不斷擴(kuò)大,少量的處理器根本不能滿足系統(tǒng)的監(jiān)控和處理。
3)整個(gè)系統(tǒng)的擴(kuò)充和配置比較難。往往要通過(guò)增加軟件模塊或者增強(qiáng)硬件資源來(lái)擴(kuò)充系統(tǒng)能力,不能在線實(shí)時(shí)進(jìn)行掛接和上線。
4)單純地對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析有時(shí)會(huì)有缺陷。
基于以上原因,本文引入了基于分布式網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(DIDS)這一概念的新的系統(tǒng)結(jié)構(gòu)體系。該系統(tǒng)在結(jié)構(gòu)上與傳統(tǒng)意義上的IDS的最大區(qū)別在于:數(shù)據(jù)提取模塊分布在指定的若干臺(tái)路由器或交換機(jī)上,數(shù)據(jù)分析和結(jié)果處理模塊分布在某一臺(tái)位于防火墻后面的服務(wù)器上。簡(jiǎn)單地說(shuō),該系統(tǒng)就是一個(gè)分布式數(shù)據(jù)采集和集中式數(shù)據(jù)分析、結(jié)果處理和網(wǎng)絡(luò)監(jiān)管的結(jié)合體。
系統(tǒng)主要分成兩大塊:分布在NSH的NSP,負(fù)責(zé)過(guò)濾網(wǎng)絡(luò)接口信息,截獲非法數(shù)據(jù)包并以日志的形式記錄在數(shù)據(jù)庫(kù)中,將記錄的日志數(shù)據(jù)交給NAP;運(yùn)行在NAH上的NAP,進(jìn)行數(shù)據(jù)和結(jié)果處理,以及網(wǎng)絡(luò)監(jiān)管。
入侵檢測(cè)系統(tǒng)模型包括檢測(cè)檢測(cè)事件的分析、事件數(shù)據(jù)庫(kù)、響應(yīng)單元、事件的產(chǎn)生等主要部分。
通過(guò)對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)包或者網(wǎng)絡(luò)中系統(tǒng)和用戶留下的日志來(lái)分析,我們統(tǒng)稱為入侵檢測(cè)系統(tǒng)事件分析。通過(guò)事件產(chǎn)生器來(lái)獲得目前網(wǎng)絡(luò)中的時(shí)間,通過(guò)分析向其他信息系統(tǒng)傳遞此時(shí)間的內(nèi)容;通過(guò)時(shí)間分析器對(duì)事件的核心內(nèi)容進(jìn)行分析來(lái)得出結(jié)論和結(jié)果;數(shù)據(jù)庫(kù)用來(lái)存放各種中間和最終數(shù)據(jù);響應(yīng)單元?jiǎng)t是對(duì)分析結(jié)果做出反應(yīng);基于分布式的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(本系統(tǒng)),NAH從一個(gè)或多個(gè)NSH上收集反映該NSH系統(tǒng)不同方面活動(dòng)情況的檢測(cè)審計(jì)數(shù)據(jù),然后采用統(tǒng)計(jì)分析和基于規(guī)則的分析手段對(duì)這些審計(jì)數(shù)據(jù)進(jìn)行連續(xù)分析,并對(duì)分析結(jié)果進(jìn)行處理。系統(tǒng)服務(wù)模塊包括規(guī)則設(shè)置的規(guī)則服務(wù)器、分析服務(wù)器和處理服務(wù)器。
規(guī)則服務(wù)器發(fā)布數(shù)據(jù)檢測(cè)的基本規(guī)則,可以用文件方式傳輸給各個(gè)運(yùn)行NSP的NSH。NAH可根據(jù)統(tǒng)計(jì)分析數(shù)據(jù)決定對(duì)NSP所使用的規(guī)則做修改或增加NSH數(shù)量。
分析服務(wù)器可以對(duì)采集的數(shù)據(jù)進(jìn)行濫用檢測(cè)、異常檢測(cè)和完整性分析。本系統(tǒng)主要是對(duì)流量進(jìn)行了異常檢測(cè),本模塊做適當(dāng)增加可實(shí)現(xiàn)其他模式的檢測(cè)。
處理服務(wù)器目標(biāo)是對(duì)所有的NSP支持和管理,包括負(fù)責(zé)啟動(dòng)和停止各個(gè)NSP的監(jiān)測(cè),負(fù)責(zé)從NSP中獲取審計(jì)數(shù)據(jù)信息;存儲(chǔ)審計(jì)數(shù)據(jù)存儲(chǔ)過(guò)程,也可以停止或啟動(dòng)存儲(chǔ)的過(guò)程;按照規(guī)則統(tǒng)計(jì)分析審計(jì)數(shù)據(jù)文件和發(fā)送報(bào)警消息。
圖1 本系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)模型
首先給出幾個(gè)關(guān)鍵的用例圖:
圖2 網(wǎng)絡(luò)管理程序總框架用例圖
圖3 數(shù)據(jù)嗅探器功能用例圖
下面對(duì)以上幾個(gè)圖作簡(jiǎn)要的說(shuō)明:前三個(gè)用例圖可以形象地描述整個(gè)系統(tǒng)的功能;軟件結(jié)構(gòu)模型與網(wǎng)絡(luò)結(jié)構(gòu)模型相對(duì)應(yīng),更好地解釋了分布式網(wǎng)絡(luò)檢測(cè)系統(tǒng)的概念。
為了實(shí)現(xiàn)NAH與NSH之間的通信,必須要設(shè)計(jì)一套網(wǎng)絡(luò)傳輸協(xié)議,該協(xié)議位于TCP層之上,屬于應(yīng)用層協(xié)議。
協(xié)議使用字符串作為功能標(biāo)識(shí)的方式,具體說(shuō)明如下:
1)“START”――啟動(dòng)數(shù)據(jù)嗅探器服務(wù)。
2)“STOP”――停止數(shù)據(jù)嗅探器服務(wù)。
3)“REQCNT^n”――請(qǐng)求數(shù)據(jù)包統(tǒng)計(jì)數(shù)據(jù),其中n表示要統(tǒng)計(jì)n分鐘內(nèi)收到的各類數(shù)據(jù)包統(tǒng)計(jì)總量。
4)“REQHDR^n”――請(qǐng)求數(shù)據(jù)包的報(bào)頭信息,其中n表示要請(qǐng)求n分鐘內(nèi)收到的數(shù)據(jù)包的報(bào)頭信息。
5)“OK”――NAH收到所需的數(shù)據(jù)后回送給NSH的應(yīng)答。
6)NSH發(fā)送給NAH的數(shù)據(jù)也有一定的格式要求,在第3 章的3.3.4節(jié)中將作詳細(xì)說(shuō)明。
下面給出有關(guān)的協(xié)議通信模型(如圖4):
圖4 啟動(dòng)數(shù)據(jù)嗅探器通信模型
數(shù)據(jù)采集是IDS和DIDS的核心和最底數(shù)據(jù)層支持,是決定整個(gè)系統(tǒng)性能的主要因素,只有數(shù)據(jù)采集及時(shí)、準(zhǔn)確、有效、可靠、完整、消耗資源低,才能保證上層的數(shù)據(jù)分析和結(jié)果處理模塊正常工作。
數(shù)據(jù)采集方法從結(jié)構(gòu)上可以分成基于主機(jī)和基于網(wǎng)絡(luò)兩種。前者要求網(wǎng)絡(luò)中的每臺(tái)主機(jī)都必須運(yùn)行數(shù)據(jù)采集進(jìn)程;而后者只需要在關(guān)鍵性的主機(jī)(如路由器)上運(yùn)行數(shù)據(jù)采集進(jìn)程。
數(shù)據(jù)采集方法從數(shù)據(jù)來(lái)源上還可以分成直接和間接兩種。前者直接從產(chǎn)生它的對(duì)象或相關(guān)的對(duì)象獲得數(shù)據(jù);后者從某個(gè)數(shù)據(jù)源獲得數(shù)據(jù),該數(shù)據(jù)源反映了被監(jiān)視對(duì)象的行為。
本系統(tǒng)采用snort作為端口數(shù)據(jù)采集器。snort是一個(gè)用C語(yǔ)言編寫開(kāi)發(fā)的開(kāi)發(fā)源代碼軟件,符合GPL(GNU Public License)的要求,其作者為Martin Roesch,也是開(kāi)源軟件界的著名人士。
snort是一個(gè)基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包嗅探器和日志記錄工具,可以用于入侵檢測(cè),從入侵檢測(cè)分類上來(lái)看,它應(yīng)該算是一個(gè)基于網(wǎng)絡(luò)和誤用的入侵檢測(cè)軟件。
snort采用基于規(guī)則的網(wǎng)絡(luò)信息搜索機(jī)制,對(duì)數(shù)據(jù)包進(jìn)行內(nèi)容的模式匹配,從中發(fā)現(xiàn)入侵和探測(cè)行為,例如:buffer overflows、stealth port scans、CGI attacks和 SMB probes等。snort具有實(shí)時(shí)報(bào)警的能力,它的報(bào)警信息可以 發(fā) 往 syslog、Server Message Block(SMB)、WinPopup Messages或者單獨(dú)的alert文件。snort 可以通過(guò)命令行進(jìn)行交互,并對(duì)可選的BPF(Berkeley Packet Filter)命令進(jìn)行配置。
snort由三個(gè)重要的子系統(tǒng)構(gòu)成:數(shù)據(jù)包解碼器,檢測(cè)引擎、日志與報(bào)警系統(tǒng)。
1)數(shù)據(jù)包解碼器
數(shù)據(jù)包解碼器主要是對(duì)各種協(xié)議棧上的數(shù)據(jù)包進(jìn)行解析、預(yù)處理,以便提交給檢測(cè)引擎進(jìn)行規(guī)則匹配。
2)檢測(cè)引擎
snort用一個(gè)二維鏈表存儲(chǔ)它的檢測(cè)規(guī)則,其中一維稱為規(guī)則選項(xiàng),另一維稱為規(guī)則頭。規(guī)則選項(xiàng)中放置的是一些入侵特征,而規(guī)則頭中放置的是一些公共的屬性特征。采用遞歸的方式來(lái)匹配規(guī)則,整個(gè)檢測(cè)機(jī)制主要針對(duì)當(dāng)前建立的鏈表項(xiàng)中的數(shù)據(jù)包進(jìn)行檢測(cè)。當(dāng)通過(guò)滿足一個(gè)規(guī)則來(lái)出發(fā)系統(tǒng)的運(yùn)行。Snort檢測(cè)的方式和機(jī)制非常靈敏和靈活,系統(tǒng)用戶可以根據(jù)自己的具體需求很便捷的在規(guī)則鏈表中添加所需要的規(guī)則模塊。
3)報(bào)警子系統(tǒng)和日志
報(bào)警子系統(tǒng)和日志可以在系統(tǒng)運(yùn)行snort時(shí),以交互式命令的形式進(jìn)行實(shí)現(xiàn)。目前存在的日志形式主要是以下三種:tcpdump的二進(jìn)制形式、解碼后的文本形式或數(shù)據(jù)庫(kù)形式。報(bào)警形式有五種,由于本系統(tǒng)并未使用,所以這里略去。
[1]朱敏,朱之平.網(wǎng)絡(luò)入侵檢測(cè)技術(shù)[J].計(jì)算機(jī)應(yīng)用與軟件,2004,(06).
[2]陳瑾,羅敏,張煥國(guó).入侵檢測(cè)技術(shù)概述[J].計(jì)算機(jī)工程與應(yīng)用,2004,(02).
[3]張建忠,徐敬東,吳功宜,練書(shū)成,江罡.分布式入侵檢測(cè)系統(tǒng)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2004,(36).
[4]王世明.入侵檢測(cè)技術(shù)原理剖析及其應(yīng)用實(shí)例[J].燕山大學(xué)學(xué)報(bào),2004,(04).