譚 寧
[摘要]設(shè)計一種Windows下的入侵檢測系統(tǒng),將入侵檢測系統(tǒng)的工作流程和工作模式進(jìn)行描述,并將Snort與其他工具進(jìn)行比較。
[關(guān)鍵詞]Snort 入侵檢測 系統(tǒng)
中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)0320022-01
目前,我國的局域網(wǎng)建設(shè)發(fā)展迅速,它已經(jīng)成為信息交流、信息共享和通信聯(lián)絡(luò)不可缺少的有力工具,但隨之而來的是局域網(wǎng)的安全問題越來越突出,如果無法解決好這一問題,局域網(wǎng)的積極作用將會受到極大的影響。而Snort作為目前較為成熟的輕量級網(wǎng)絡(luò)入侵檢測系統(tǒng),能夠較好的滿足網(wǎng)絡(luò)安全的需要。
一、系統(tǒng)工作流程
系統(tǒng)在Windows 2000 Server平臺下,以Snort為核心和基礎(chǔ),在MySQL、Apache、ACID等相關(guān)組件的共同支持下組建起來?;赟nort的入侵檢測系統(tǒng)可以分為三部分:網(wǎng)絡(luò)入侵檢測模塊主要實(shí)現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)包的實(shí)時捕獲、監(jiān)控和對數(shù)據(jù)進(jìn)行分析以找出可能存在的入侵;數(shù)據(jù)存儲模塊主要是從入侵檢測系統(tǒng)中收集報警數(shù)據(jù)并把它存入關(guān)系數(shù)據(jù)庫中,便于用戶日后查詢;分析員控制臺是IDS分析員的專用工作站,用來對報警日志信息進(jìn)行管理和查詢,它提供了很好的人機(jī)交互界面。
Snort首先利用winpcap組件捕獲并分析數(shù)據(jù),然后用output插件將數(shù)據(jù)儲存在MySQL數(shù)據(jù)庫中,Apache服務(wù)器在ACID等組件的幫助下使連接到服務(wù)器的用戶能夠通過瀏覽器查看數(shù)據(jù),用戶還可以在網(wǎng)頁上應(yīng)用不同的查詢來分析、備份、刪除數(shù)據(jù)或者顯示圖表。
二、Snort三種工作模式的應(yīng)用
Snort共有三種工作模式:嗅探器模式、數(shù)據(jù)包記錄器模式、網(wǎng)絡(luò)入侵檢測模式,而這三種模式均是通過不同的命
令來實(shí)現(xiàn)的。結(jié)合網(wǎng)中基于Snort的系統(tǒng),對以上三種模式分別進(jìn)行應(yīng)用與描述。
(一)利用Snort作為數(shù)據(jù)包嗅探器
利用Snort作為數(shù)據(jù)包嗅探器就是從網(wǎng)絡(luò)上讀出數(shù)據(jù)包然后顯示在你的控制臺上。從最基本的用法入手,如果只要把TCP/IP包頭信息打印在屏幕上,只需要在命令提示符的c:snortin路徑下輸入以下命令:snort-v
使用這個命令將使Snort只輸出IP和TCP/UDP/ICMP的包頭信息。如果要看到應(yīng)用層的數(shù)據(jù),可以使用命令:snort -vd
這條命令使Snort在輸出包頭信息的同時顯示包的數(shù)據(jù)信息。如果還要顯示數(shù)據(jù)鏈路層的信息,就使用命令:snort -vde
(二)利用Snort作為數(shù)據(jù)包記錄器
如果要把所有的數(shù)據(jù)包記錄到硬盤上,使用以下命令指定一個日志目錄,Snort就會自動記錄數(shù)據(jù)包:snort -dev -l c:snortlog
當(dāng)然,c:snortlog目錄必須存在,否則Snort就會報告錯誤信息并退出。當(dāng)Snort在這種模式下運(yùn)行時,它會記錄所有捕獲到的包并將其放到一個目錄中,這個目錄以數(shù)據(jù)包目的主機(jī)的IP地址命名。
如果只指定了命令選項,而沒有設(shè)置目錄名,Snort也可使用遠(yuǎn)程主機(jī)的IP地址作為目錄,或者會使用本地主機(jī) IP地址作為目錄名。為了對子網(wǎng)進(jìn)行日志,需要給出本地網(wǎng)絡(luò):snort -dev -l c:snortlog -h 10.3.2.0/24
這條命令告訴Snort把進(jìn)入其重要子網(wǎng)10.3.2.0/24的所有數(shù)據(jù)包的數(shù)據(jù)鏈路層、TCP/IP以及應(yīng)用層的數(shù)據(jù)記錄到目錄c:snortlog中。
如果網(wǎng)絡(luò)速度很快,或者想使日志更加緊湊,方便以后的分析,那么應(yīng)該使用二進(jìn)制的日志文件格式,即Tcpdump程序使用的格式。使用下面的命令可以把所有的數(shù)據(jù)包信息記錄到一個單一的二進(jìn)制文件中:snort -l c:snortlog-b
注意此處的命令行和上面的命令有很大不同。不需要指定本地網(wǎng)絡(luò),也不必使用-dev等功能選項,因?yàn)閿?shù)據(jù)包中的所有內(nèi)容都會被記錄到單一的二進(jìn)制日志文件中??梢允褂弥С諸cpdump二進(jìn)制格式的嗅探器程序從該文件中讀出數(shù)據(jù)包相關(guān)信息,例如Tcpdump或者Etherea1。
(三)利用Snort作為網(wǎng)絡(luò)入侵檢測系統(tǒng)
Snort最重要也是最常用的用途是作為網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS),可以使用以下命令行啟動這種工作模式:
snort -dev -l c:snortlog -h 10.3.2.0/24 -c c:snortetcsnort.conf
snort.conf是Snort的規(guī)則集文件,Snort會將每一個數(shù)據(jù)包與規(guī)則集文件進(jìn)行匹配,匹配成功便根據(jù)規(guī)則采取相應(yīng)的行動,同時將日志文件輸出到指定的目錄中。
由于準(zhǔn)備長期使用Snort作為重要子網(wǎng)入侵檢測系統(tǒng),為了提高Snort的處理速度,以免在向顯示器輸出的過程中丟棄某些數(shù)據(jù)包,可以不必使用功能選項-ve,因此可在c:snortin目錄下新增runsnort.bat文件并運(yùn)行。
三、Snort與其他工具的比較
Snort的主要用途就是網(wǎng)絡(luò)監(jiān)視、數(shù)據(jù)包的記錄和檢測入侵行為,經(jīng)過實(shí)際應(yīng)用,將Snort分別與具有上述兩種功能的典型工具進(jìn)行比較。
(一)Snort與Tcpdump的比較
Tcpdump是一種經(jīng)典的網(wǎng)絡(luò)嗅探工具,主要用于記錄網(wǎng)絡(luò)數(shù)據(jù)、網(wǎng)絡(luò)故障的探測診斷工具。Snort與它的最大的共同之處在于都是基于libpcap并且支持BPF過濾機(jī)制,所以本質(zhì)上都是調(diào)用數(shù)據(jù)包捕獲庫函數(shù),但是Snort的目的不僅僅在于記錄某個數(shù)據(jù)包,而是從安全的角度出發(fā)去解析它,同時Tcpdump主要通過分析第二層或者第三層的報文來進(jìn)行網(wǎng)絡(luò)故障診斷,而Snort則主要針對應(yīng)用層的數(shù)據(jù)進(jìn)行分析從而實(shí)現(xiàn)入侵檢測行為。除此之外,由于Tcpdump旨在快速完整地記錄流量,所以它制定了特殊的輸出格式,速度快但是不易讀懂,而Snort提供了更為友好的輸出格式,有利于系統(tǒng)管理員的直接分析。
(二)Snort與NFR的比較
NFR作為一種商用網(wǎng)絡(luò)入侵檢測工具,其綜合性能指數(shù)高于ISS公司的RealSecure和CA公司的SessionWall,代表了目前國際上IDS的最高水準(zhǔn),是一個比較成熟的商業(yè)產(chǎn)品。Snort的許多設(shè)計思想類似于NFR,當(dāng)然作為輕量級入侵檢測系統(tǒng),必然在某些方面會有不足之處,但是Snort的最大優(yōu)勢在于它是源代碼公開的軟件,全世界的愛好者都可以參與它的開發(fā)與升級工作,其發(fā)展前景是不可估量的。
參考文獻(xiàn):
[1]金衛(wèi),入侵檢測技術(shù)的研究[J].山東師范大學(xué)學(xué)報(自然科學(xué)版),2005.4.
[2]遲向陽、張華忠、楊玉鵬,稅務(wù)網(wǎng)絡(luò)安全系統(tǒng)的設(shè)計[J].計算機(jī)工程與設(shè)計,2007.2.
[3]婁志剛、張同光,Snort及其在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[J].軟件導(dǎo)刊,2007.13.
作者簡介:
譚寧,男,漢族,淄博職業(yè)學(xué)院信息工程系,副教授,研究方向:計算機(jī)網(wǎng)絡(luò)。