摘要:入侵檢測是一種通過某種方法完成網絡系統中入侵行為檢測和報告的技術。鑒于目前校園網絡環境普遍存在的安全問題的現狀,該文主要討論如何在校園網中部署入侵檢測系統。
關鍵詞:網絡安全;入侵檢測系統;規則
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)24-6671-02
The Application of Intrusion Detection System on Campus Network
ZHANG Song-juan,LI Jin-ling
(Nanyang Institute of Technology,Nanyang 473004,China)
Abstract: Intrusions Detection is a technology through the completion of the network system intrusions detection and reporting. At present, because of their particular groups of users and existing network structure, the security of campus network has become a growing concern of the people.This report mainly discuss how to deploy an IDS System on the campus network.
Key words: network security; intrusions detection system; rules
隨著計算機網絡的快速發展,網絡安全日益引起了各行各業的重視,校園網中上網人數眾多,因而發生在校園網中的各種網絡安全事件也普遍發生。防火墻可以提高網絡的安全度,但是防火墻卻只能防護外來的入侵,對于來自內部的攻擊卻無能為力。而入侵檢測系統剛好可以彌補網絡中的這個缺陷。
1 入侵檢測系統概述
入侵檢測系統(IDS,Intrusion Detection System)是一種針對網絡中的入侵行為進行檢測的工具,根據網絡攻擊的特征或在系統日志下留下的痕跡,結合用戶權限與系統狀態等信息,采用通緝分析或智能分析算法等來監控系統或網絡的安全狀態[1]。入侵檢測并不能阻止某些入侵,但能幫助系統管理員阻止黑客的進一步攻擊,彌補了被動式網絡安全組件的不足之處。
如圖1所示,在實際網絡環境中,入侵檢測探測器一般都被放置在網絡的“旁路”,可以對網絡中的各種數據流行為進行監控和識別,一旦檢測到網絡入侵行為,就會向IDS控制臺發出警報[2]。
Snort是一個著名的基于規則的開源入侵檢測系統,由Martin Roesch編寫,并由遍布世界各地的眾多程序員共同維護升級,是目前最活躍的開源網絡入侵檢測項目。Snort定位于輕量級的入侵檢測系統,已經實現了網絡探測器和許多第三方的管理及日志分析工具,是事實上的工業標準。
Snort系統可以分為5個主要的組件,每個組件對入侵檢測都很關鍵。第一個是捕包裝置。Snort依賴一個外部捕包程序庫(libpacp)來抓包。在包被以原始狀態捕獲后,要送給包解碼器。解碼器是進入Snort自身體系的第一步,解碼器可以完成對捕獲的數據包進行逐層解碼,并存儲對每層解碼后的數據信息。包解碼器和解碼完成后,由預處理器處理流量,許多插入式預處理程序對包進行檢查或操作后將它們交給下一個組件:檢測引擎。檢測引擎對每個包的一個方面進行具體的規則匹配以判斷是否為入侵行為,如果是,就生成警報數據,最后一個組件就是輸出插件,它可以輸出可疑行為產生警報信息[3-4]。圖2是一個簡單的數據流程示意圖。
2 基于校園網的入侵檢測系統的設計與部署
雖然在大多數校園網中實施了不少安全措施,但是,因為網絡的攻擊無處不在、無時不在,特別是來自網絡內部的攻擊行為的存在,使得校園網變的異常脆弱。如何有效地提高校園網的安全防護能力,是許多網絡安全技術人員特別是校園網網絡管理員亟待考慮和研究的一個問題。
鑒于校園網的安全現狀,在校園網中加載入侵檢測系統可以有效地提高網絡安全。入侵檢測系統可以對來自網絡內外的各種數據流進行監控,并記錄異常的網絡行為,通過對記錄的入侵數據進行分析,網絡管理員可以更新網絡安全策略、增加系統漏洞補丁、發現可疑攻擊源頭等途徑來改善網絡安全狀況。
2.1Snort系統設計和整體部署方案
如圖3所示,該校園網通過一臺防火墻設備接入互聯網,在網絡的內部核心交換機設備上連接并部署一臺入侵檢測系統主機,通過配置交換機的端口鏡像功能,使入侵檢測主機可以監控所有來自網絡內部和外部的數據流量。并通過設置入侵檢測規則,完成對異常的網絡攻擊或入侵進行報警,對于報警的數據輸出到一個MySQL數據庫中,然后通過ACID進行處理,并把報警信息和其它相關信息生成圖形化網頁界面經過Web服務器發布到局域網內部。
最后,可以通過一臺入侵檢測分析控制臺對Snort的報警信息進行具體的分析和響應。
2.2 配置交換機的端口鏡像
校園網中,核心交換機設備為神州數碼DCRS-7504,該設備標配有48個10/100/1000Mbps自適應的以太網端口,其中e4/48端口連接防火墻設備,e4/20連接Snort主機。
以下是具體的設備配置清單:
net-centre(config)#mirror-port ethernet 4/48//設置48端口為被鏡像端口
net-centre(config)#interface ethernet 4/20//進入20端口
net-centre(config-if-e4/20)# monitor ethernet 4/48 //設置20端口監控48端口
2.3 部署Apache+PHP+MySQL環境
為了簡單起見,直接使用基于Windows操作系統的Apache+PHP+MySQL三合一安裝包,直接安裝即可。
部署完以后可以在Snort主機上打開IE瀏覽器,輸入:http://localhost進行具體的測試,關鍵是需要保證PHP可以正常運行。
2.4 部署基于Snort系統的MySQL數據庫
因為,Snort最終的檢測數據結果要通過MySQL插件輸入到MySQL類型的數據內。所以必須配置MySQL數據庫以配合Snort系統。
在本系統中,共有兩個數據庫需要配置,一個是存放Snort輸出檢測數據的數據庫,假設定義為snort;另外一個為ACID引擎使用的數據庫,假設定義為snort_archive 。訪問數據庫的帳戶和密碼為snort/test和acid/test,其中,snort帳戶主要完成snort數據庫的記錄添加,而acid則完成對snort數據庫的更改操作,包括:添加、修改、刪除等操作。
2.4.1創建snort和snort_archive數據
mysql>create database snort;
mysql>create database snort_archive;
2.4.2建立acid 和snort 用戶
mysql> grant usage on *.* to \"acid\"@\"localhost\" identified by \"test\";
mysql> grant usage on *.* to \"snort\"@localhost\" identified by \"test\";
2.4.3 對acid和snort用戶進行授權
mysql> grant select,insert,update,delete,create,alter on snort .* to \"acid\"@\"localhost\";
mysql> grant select,insert on snort .* to \"snort\"@\"localhost\";
mysql> grant select,insert,update,delete,create,alter on snort_archive .* to \"acid\"@\"localhost\";
2.4.4 Snort2.x規則的編寫
針對當前校園網絡頻繁遭遇的Nachi.worm(沖擊波殺手)攻擊[5],根據其特征可設置Snort入侵檢測規則如下:
alert icmp$HOME_NET any ->$EXTERNAL_NET any ( msg ”Nachi.Worm”; dsize:64; itype:8; reference:http://www.nyist.net; sid:483;)
針對ICMP的Smurf攻擊,設置Snort入侵檢測規則如下:
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:\"ICMP Broadscan Smurf Scanner\"; dsize:4; icmp_id:0; icmp_seq:0; itype:8; classtype:attempted-recon; sid:478; rev:4;)
針對Netbios的尼姆達攻擊,設置Snort入侵檢測規則如下:
alert tcp $EXTERNAL_NET any -> $HOME_NET 139 (msg:\"NETBIOS nimda RICHED20.DLL\"; flow:to_server,established; content:\"R|00|I|00|C|00|H|00|E|00|D|00|2|00|0|00|.|00|D|00|L|00|L\"; nocase; reference:url,www.f-secure.com/v-descs/nimda.shtml; classtype:bad-unknown; sid:1295; rev:10;)
針對基于UDP的DDoS攻擊行為,設置Snort入侵檢測規則如下:
alert udp $EXTERNAL_NET any -> $HOME_NET 31335 (msg:\"DDOS Trin00 Daemon to Master message detected\"; flow:to_server; content:\"l44\"; metadata:policy security-ips drop; reference:arachnids,186; reference:cve,2000-0138; classtype:attempted-dos; sid:231; rev:6;)
針對SubSeven的特洛伊木馬的攻擊行為,設置Snort入侵檢測規則如下:
alert tcp $EXTERNAL_NET 27374->$HOME_NET any(msg:”BACKDOOR SubSeven 22”; flag:A+;content:”|0d0a5b52504c5d3030320d0a|”; classtype:trojan-activity)
針對rpc.statd溢出攻擊,設置Snort入侵檢測規則如下:
alert udp any any -> any 32770:34000 (content:|00 00 00 01|”; distance:4;within:4;byte_jump:4,12,relative, align;byte_test:4,>,900,20,relative; msg:”statd format string buffer overflow”;)
針對校園CampusBug攻擊,設置Snort入侵檢測規則如下:
alert tcp $HOM_NET any -> any $HTTP_PORTS(msg:”SOCIAL NET CamPusBug”;flow:established;content:”Host\\:”;pcre:”/(Host\\:)(\\s[a-zA-Z0-9.-]+\\.|\\s)(campusbug.com)\\s\/”;)
針對Robot Co-op攻擊,設置Snort入侵檢測規則如下:
alert tcp $HOME_NET any -> any $HTTP_PORTS (msg:”SOCIAL NET-Robot Co-op”;flow:established;content:”Host\\:”;pcre:”/(Host\\:)(\\s[a-zA-Z0-9.-]+\\.|\\s)(43friends.com |43things.com)\\r\/”;)
針對Zorpia攻擊,設置Snort入侵檢測規則如下:
alert tcp $HOME_NET any -> any $HTTP_PORTS (msg:”SOCIAL NET-Robot Co-op”;flow:established;content:”Host\\:”;pcre:”/(Host\\:)(\\s[a-zA-Z0-9.-]+\\.|\\s) (zorpia.com)\\r\/”;)
當規則配置好以后,需要把規則文件保存為后綴名為.rules的文件,并且一定要保存在/snort/rules文件夾目錄中。以上自定義的規則分別保存的文件名為:Nachi.worm.rules、ICMP_Smurf.rules、Netbios_nimde.rules、UDP_DDoS.rules、SubSeven_Trojan.rules、rpc_statd.rules、CampusBug.rules、Robot.rules、Zorpia.rules。
最后,需要在snort.conf配置文件中引用這些自定義的入侵檢測規則。
針對其他情況的網絡攻擊類型可以按照上面的方法,方便地添加到Snort規則庫中,保持Snort規則的持續更新和升級,從而保證校園絡的安全。
當配置完規則后,就可以重新啟動Snort系統。具體命令如下:
Snort –c d:\\snort\\etc\\snort.conf –l d:\\snort\\log –v –i 2
該命令的具體意思是,使Snort在序號為2的網卡接口啟動,采用位于d:\\snort\\etc\\目錄下的snort.conf配置文件初始化,詳細地記錄并輸出各種報警的數據,并把入侵檢測的日志記錄寫入位于d:\\snort\\log目錄下。
通過以上的這些過程,一個基于校園網環境的入侵檢測系統就算是部署完畢了。
3 結論
這種入侵檢測系統一般都是“旁路”網絡中,監聽并分析著各種經過它的網絡數據包,并源源不斷地把警報數據記錄在數據庫中,同時也生成了一份日志文件,保存在Snort系統中的log目錄中。為網絡管理員對入侵警報信息進行進一步的分析和響應提供了必備的數據。
參考文獻:
[1] 宋勁松.網絡入侵檢測[M].長沙:國防工業出版社,2004:41-53.
[2] Jack Koziol.Intrusion Detection with Snort,Snort入侵檢測實用解決方案[M].吳溥峰,孫默,許誠,等,譯.北京:機械工業出版社,2005:59-116.
[3] 李曉芳,姚遠,入侵檢測工具Snort的研究與使用[J].計算機應用與軟件,2006(2):123-141.
[4] Caswell B,Beale J,Foster J C.Snort2.0入侵檢測[M].宋勁松,譯.北京:國防工業出版社,2004:21-45.
[5] Joel scambray,stuart McClure,George Kurtz.黑客大曝光匯[M].鐘向群,譯.北京:清華大學出版社.2002:146-186.