從現(xiàn)實(shí)來看,市場上所大行其道的IDS產(chǎn)品價(jià)格從數(shù)十萬到數(shù)百萬不等,這種相對昂貴的奶酪被廣為詬病,所導(dǎo)致的結(jié)果就是:一般中小企業(yè)并不具備實(shí)施IDS產(chǎn)品的能力,它們的精力會(huì)放在路由器、防火墻以及3層以上交換機(jī)的加固上;大中型企業(yè)雖然很多已經(jīng)上了IDS產(chǎn)品,但I(xiàn)DS天然的缺陷導(dǎo)致其似乎無所作為,
Windows入門級IDS構(gòu)建過程詳說
。但我們還不能就此喜新厭舊,因?yàn)镮DS是必需的一個(gè)過程,具有IDS功能的IPS很可能在幾年后徹底取代單一性IDS的市場主導(dǎo)地位,從被動(dòng)應(yīng)戰(zhàn)到主動(dòng)防御是大勢所趨。其實(shí)IDS的技術(shù)手段并不很神秘接下來本文會(huì)用一種順藤摸瓜的脈絡(luò),給大家介紹一個(gè)較簡單的IDS入門級構(gòu)架。從市場分布、入手難易的角度來看,選擇NIDS作為范例進(jìn)行部署比較地恰當(dāng)。本文以完全的Windows平臺來貫穿整個(gè)入侵檢測流程,由于篇幅所限,以定性分析角度來陳述。
Windows入門級IDS構(gòu)建過程詳說
預(yù)備知識
IDS:Intrusion Detection System(入侵檢測系統(tǒng)),通過收集網(wǎng)絡(luò)系統(tǒng)信息來進(jìn)行入侵檢測分析的軟件與硬件的智能組合。
對IDS進(jìn)行標(biāo)準(zhǔn)化工作的兩個(gè)組織:作為國際互聯(lián)網(wǎng)標(biāo)準(zhǔn)的制定者IETF的Intrusion Detection Working Group(IDWG,入侵檢測工作組)和Common Intrusion Detection Framework(CIDF,通用入侵檢測框架)。
IDS分類:Network IDS(基于網(wǎng)絡(luò))、Host-based IDS(基于主機(jī))、Hybrid IDS(混合式)、Consoles IDS(控制臺)、File Integrity Checkers(文件完整性檢查器)、Honeypots(蜜罐)。
事件產(chǎn)生系統(tǒng)
根據(jù)CIDF闡述入侵檢測系統(tǒng)(IDS)的通用模型思想,具備所有要素、最簡單的入侵檢測組件如圖所示。
根據(jù)CIDF規(guī)范,將IDS需要分析的數(shù)據(jù)統(tǒng)稱為Event(事件),Event既可能是網(wǎng)絡(luò)中的Data Packets(數(shù)據(jù)包),也可能是從System Log等其他方式得到的Information(信息)。
沒有數(shù)據(jù)流進(jìn)(或數(shù)據(jù)被采集),IDS就是無根之木,完全無用武之地。
作為IDS的基層組織,事件產(chǎn)生系統(tǒng)大可施展拳腳,它收集被定義的所有事件,然后一股腦地傳到其它組件里。在Windows環(huán)境下,目前比較基本的做法是使用Winpcap和WinDump。
大家知道,對于事件產(chǎn)生和事件分析系統(tǒng)來說,眼下流行采用Linux和Unix平臺的軟件和程序;其實(shí)在Windows平臺中,也有類似Libpcap(是Unix或Linux從內(nèi)核捕獲網(wǎng)絡(luò)數(shù)據(jù)包的必備軟件)的工具即Winpcap。
Winpcap是一套免費(fèi)的, 基于Windows的網(wǎng)絡(luò)接口API,把網(wǎng)卡設(shè)置為混雜模式,然后循環(huán)處理網(wǎng)絡(luò)捕獲的數(shù)據(jù)包。其技術(shù)實(shí)現(xiàn)簡單,可移植性強(qiáng),與網(wǎng)卡無關(guān),但效率不高,適合在100 Mbps以下的網(wǎng)絡(luò)。
相應(yīng)的基于Windows的網(wǎng)絡(luò)嗅探工具是WinDump(是Linux/Unix平臺的Tcpdump在Windows上的移植版),這個(gè)軟件必須基于Winpcap接口(這里有人形象地稱Winpcap為:數(shù)據(jù)嗅探驅(qū)動(dòng)程序)。使用WinDump,它能把匹配規(guī)則的數(shù)據(jù)包的包頭給顯示出來。你能使用這個(gè)工具去查找網(wǎng)絡(luò)問題或者去監(jiān)視網(wǎng)絡(luò)上的狀況,可以在一定程度上有效監(jiān)控來自網(wǎng)絡(luò)上的安全和不安全的行為。
這兩個(gè)軟件在網(wǎng)上都可以免費(fèi)地找到,讀者還可以查看相關(guān)軟件使用教程。
下面大略介紹一下建立事件探測及采集的步驟:
1. 裝配軟件和硬件系統(tǒng)。根據(jù)網(wǎng)絡(luò)繁忙程度決定是否采用普通兼容機(jī)或性能較高的專用服務(wù)器;安裝NT核心的Windows操作系統(tǒng),推薦使用Windows Server 2003企業(yè)版,如果條件不滿足也可使用Windows 2000 Advanced Server。分區(qū)格式建議為NTFS格式。
2. 服務(wù)器的空間劃分要合理有效,執(zhí)行程序的安裝、數(shù)據(jù)日志的存儲(chǔ),兩者空間最好分別放置在不同分區(qū)。
3. Winpcap的簡單實(shí)現(xiàn)。首先安裝它的驅(qū)動(dòng)程序,可以到它的主頁或鏡像站點(diǎn)下載WinPcap auto-installer (Driver DLLs),直接安裝。
注:如果用Winpcap做開發(fā),還需要下載 Developer's pack。
WinPcap 包括三個(gè)模塊:第一個(gè)模塊NPF(Netgroup Packet Filter),是一個(gè)VxD(虛擬設(shè)備驅(qū)動(dòng)程序)文件。其功能是過濾數(shù)據(jù)包,并把這些包完好無損地傳給用戶態(tài)模塊,
電腦資料
《Windows入門級IDS構(gòu)建過程詳說》(http://www.szmdbiao.com)。第二個(gè)模塊packet.dll為Win32平臺提供了一個(gè)公共接口,架構(gòu)在packet.dll之上,提供了更方便、更直接的編程方法。第三個(gè)模塊 Wpcap.dll不依賴于任何操作系統(tǒng),是底層的動(dòng)態(tài)鏈接庫,提供了高層、抽象的函數(shù)。具體使用說明在各大網(wǎng)站上都有涉及,如何更好利用Winpcap需要較強(qiáng)的C環(huán)境編程能力。4. WinDump的創(chuàng)建。安裝后,在Windows命令提示符模式下運(yùn)行,用戶自己可以查看網(wǎng)絡(luò)狀態(tài),恕不贅述。
如果沒有軟件兼容性問題、安裝和配置正確的話,事件探測及采集已能實(shí)現(xiàn)。
事件分析系統(tǒng)
由于我們的網(wǎng)絡(luò)大都用交換式以太網(wǎng)交換機(jī)連接,所以建立事件分析系統(tǒng)的目的是實(shí)現(xiàn)對多種網(wǎng)絡(luò)防火墻設(shè)備的探測,以及多種采集方式(如基于Snmp、Syslog數(shù)據(jù)信息的采集)日志的支持,并提供一定的事件日志處理,統(tǒng)計(jì)、分析和查詢功能。
事件分析系統(tǒng)是IDS的核心模塊,主要功能是對各種事件進(jìn)行分析,從中發(fā)現(xiàn)違反安全策略的行為,如何建立是重點(diǎn)也是難點(diǎn)。如果自己能或與人合作編寫軟件系統(tǒng),就需要做好嚴(yán)謹(jǐn)?shù)那捌陂_發(fā)準(zhǔn)備,如對網(wǎng)絡(luò)協(xié)議、 攻擊、系統(tǒng)漏洞有著比較清晰的認(rèn)識,接著開始制定規(guī)則和策略,它應(yīng)該基于標(biāo)準(zhǔn)的技術(shù)標(biāo)準(zhǔn)和規(guī)范,然后優(yōu)化算法以提高執(zhí)行效率,建立檢測模型,可以模擬進(jìn)行攻擊及分析過程。
事件分析系統(tǒng)把檢測引擎駐留在監(jiān)視網(wǎng)段中,一般通過三種技術(shù)手段進(jìn)行分析:模式匹配、協(xié)議分析和行為分析。當(dāng)檢測到某種誤用模式時(shí),產(chǎn)生對應(yīng)的警告信息并發(fā)送給響應(yīng)系統(tǒng)。目前來看,使用協(xié)議分析是實(shí)時(shí)檢測的最好方式。
這個(gè)系統(tǒng)一種可能的方式是由協(xié)議分析器作為主體,可以在現(xiàn)成的、開放式的協(xié)議分析工具包基礎(chǔ)上來構(gòu)建;協(xié)議分析器可以顯示分組級網(wǎng)絡(luò)傳輸流,基于網(wǎng)絡(luò)協(xié)議規(guī)則的警告進(jìn)行自動(dòng)分析來快速探測攻擊的存在;由此,網(wǎng)絡(luò)程序員和管理員可監(jiān)控并分析網(wǎng)絡(luò)活動(dòng),從而主動(dòng)檢測并定位故障。用戶可以嘗試一下一個(gè)叫Ethereal的免費(fèi)網(wǎng)絡(luò)協(xié)議分析器,它支持Windows系統(tǒng)。用戶可以對由事件產(chǎn)生系統(tǒng)抓取后保存在硬盤上的數(shù)據(jù)進(jìn)行分析。你能交互式地瀏覽抓取到的數(shù)據(jù)包,查看每一個(gè)數(shù)據(jù)包的摘要和詳細(xì)信息。Ethereal有多種強(qiáng)大的特征,如支持幾乎所有的協(xié)議、豐富的過濾語言、易于查看TCP會(huì)話經(jīng)重構(gòu)后的數(shù)據(jù)流等。
響應(yīng)系統(tǒng)
響應(yīng)系統(tǒng)是面向人、物的交互系統(tǒng),可以說是整個(gè)系統(tǒng)的中轉(zhuǎn)站和協(xié)調(diào)站。人即是系統(tǒng)管理員、物是其他所有組件。
詳細(xì)說來,響應(yīng)系統(tǒng)這個(gè)協(xié)調(diào)員要做的事很多:按照預(yù)置定義的方式,記錄安全事件、產(chǎn)生報(bào)警信息(如E-mail形式)、記錄附加日志、隔離入侵者、終止進(jìn)程、禁止受害者的端口和服務(wù)、甚至反戈一擊;可以采取人工響應(yīng)和自動(dòng)響應(yīng)(基于機(jī)器的響應(yīng)),兩者結(jié)合起來會(huì)比較好。
響應(yīng)系統(tǒng)的設(shè)計(jì)要素:
1. 接受自事件產(chǎn)生系統(tǒng)經(jīng)事件分析系統(tǒng)過濾、分析、重建后的事件警報(bào)信息,然后交互給用戶(管理員)查詢并做出規(guī)則判斷和采取管理行為。
2. 給管理員提供管理事件數(shù)據(jù)庫系統(tǒng)的一個(gè)接口,可以修改規(guī)則庫、根據(jù)不同網(wǎng)絡(luò)環(huán)境情況配置安全策略、讀寫數(shù)據(jù)庫系統(tǒng)。
3. 作用于前端系統(tǒng)時(shí),可管理事件產(chǎn)生、分析系統(tǒng)(合稱事件探測器),對該系統(tǒng)采集、探測、分析的事件進(jìn)行分類、篩選,可針對不同安全狀況,重新對安全規(guī)則進(jìn)行洗牌。
響應(yīng)系統(tǒng)和事件探測器通常是以應(yīng)用程序的形式實(shí)現(xiàn)。
設(shè)計(jì)思路:響應(yīng)系統(tǒng)可分為兩個(gè)程序部分,監(jiān)聽和控制。 監(jiān)聽部分綁定某個(gè)空閑端口,接收從事件探測器發(fā)出的分析結(jié)果和其他信息,并轉(zhuǎn)化存儲(chǔ)文件到事件數(shù)據(jù)庫系統(tǒng)中,作為管理員可根據(jù)用戶權(quán)限調(diào)用來只讀、修改以及特別的操作?刂撇糠挚捎肎TK+來編寫GUI,開發(fā)出較為直觀的圖形用戶界面,目的主要是給用戶一個(gè)更方便友好的界面來瀏覽警告信息。
事件數(shù)據(jù)庫系統(tǒng)
在Windows平臺下,雖然Access更易掌握,但采用SQL Server 2000構(gòu)建會(huì)比Access有效,而且并不是很難入手,相關(guān)使用方法參見《Microsoft SQL Server 2000 聯(lián)機(jī)叢書中文版》(2004)。
此系統(tǒng)主要功能:記錄、存儲(chǔ)、重排事件信息,可供管理員調(diào)用查看和對攻擊審查取證使用。
此系統(tǒng)構(gòu)造相對簡單,只需利用到數(shù)據(jù)庫軟件的一些基本功能。
要協(xié)調(diào)各組件之間的有目的通信,各組件就必須能正確理解相互之間傳遞的各種數(shù)據(jù)的語義?蓞⒖糃IDF的通信機(jī)制,構(gòu)建3層模型。注意各個(gè)組件之間的互操作性,保證安全、高效、順暢。
整合在后續(xù)的工作中會(huì)不斷進(jìn)行,各個(gè)組件的功能也會(huì)不斷完善。一個(gè)基本的、基于Windows平臺的IDS框架就構(gòu)建完畢。滿足網(wǎng)絡(luò)條件的話,試試親手做做自己的奶酪吧,有一種不可名狀的勞作后的甜蜜。