摘 要: 分析了蠕蟲(chóng)的繁殖原理和網(wǎng)絡(luò)行為特征,在此基礎(chǔ)上提出了基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)系統(tǒng),描述了系統(tǒng)采用的算法,討論了系統(tǒng)的優(yōu)缺點(diǎn)。
關(guān)鍵詞: 蠕蟲(chóng) 網(wǎng)絡(luò)行為 入侵檢測(cè) 檢測(cè)算法
近年來(lái),蠕蟲(chóng)憑借其強(qiáng)大的繁衍能力,已對(duì)互聯(lián)網(wǎng)的安全構(gòu)成了很大的威脅。蠕蟲(chóng)不僅大量占用主機(jī)內(nèi)存,而且會(huì)向外發(fā)送硬盤(pán)上的數(shù)據(jù)。并且蠕蟲(chóng)在繁衍過(guò)程中會(huì)向網(wǎng)絡(luò)發(fā)送大量的數(shù)據(jù)包,引起網(wǎng)絡(luò)堵塞。入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)作為一種安全工具,目前被用于檢測(cè)各種網(wǎng)絡(luò)攻擊。而正是1988年的Morris蠕蟲(chóng)攻擊事件導(dǎo)致了IDS系統(tǒng)的正式開(kāi)發(fā)。蠕蟲(chóng)有別于其他的網(wǎng)絡(luò)攻擊,如何利用蠕蟲(chóng)的網(wǎng)絡(luò)行為特點(diǎn)構(gòu)建有效的IDS,是一個(gè)值得研究的重要課題。
1 蠕蟲(chóng)的網(wǎng)絡(luò)行為分析
1.1 蠕蟲(chóng)的繁衍原理
當(dāng)蠕蟲(chóng)進(jìn)入有特定漏洞的主機(jī)系統(tǒng)后,會(huì)以一定方式產(chǎn)生IP地址列表,然后向列表中的主機(jī)發(fā)送偵察信息。當(dāng)發(fā)現(xiàn)目的主機(jī)存在特定漏洞時(shí),就會(huì)發(fā)送自身代碼,目的主機(jī)被感染后,重復(fù)上述過(guò)程,進(jìn)一步繁衍。
以繁衍能力極強(qiáng)的RedCode2為例,該蠕蟲(chóng)利用微軟IIS Web服務(wù)器的遠(yuǎn)程溢出漏洞進(jìn)入主機(jī),對(duì)于中文系統(tǒng)會(huì)產(chǎn)生600個(gè)線(xiàn)程探測(cè)其他主機(jī),每個(gè)線(xiàn)程產(chǎn)生一個(gè)隨機(jī)IP地址,并使用掩碼生成要探測(cè)的主機(jī)IP地址。被探測(cè)的主機(jī)地址中有1/8是隨機(jī)IP,3/8是在當(dāng)前主機(jī)IP的B類(lèi)地址范圍內(nèi)產(chǎn)生,1/2是在當(dāng)前主機(jī)IP的A類(lèi)地址范圍內(nèi)產(chǎn)生。當(dāng)探測(cè)信息顯示主機(jī)中存在相同漏洞時(shí),蠕蟲(chóng)程序發(fā)送自身代碼攻擊該主機(jī)。由于與被感染主機(jī)在同一網(wǎng)段或相近網(wǎng)段的主機(jī)通常會(huì)使用相同的服務(wù)和系統(tǒng),RedCode2采用這種繁衍機(jī)制使自身具有較高的繁衍速度。
1.2 蠕蟲(chóng)的網(wǎng)絡(luò)行為特征
蠕蟲(chóng)的自動(dòng)繁衍機(jī)制使蠕蟲(chóng)能主動(dòng)地傳染其他系統(tǒng),所以蠕蟲(chóng)在繁衍過(guò)程中的網(wǎng)絡(luò)行為表現(xiàn)出以下特征:
(1)網(wǎng)絡(luò)行為具有相似性。蠕蟲(chóng)在繁衍中會(huì)利用同一網(wǎng)段內(nèi)某些服務(wù)的相同的漏洞進(jìn)行攻擊。這種相似性表現(xiàn)為連接的目的端口是特定的,且特定數(shù)據(jù)段內(nèi)容一致。(2)網(wǎng)絡(luò)行為具有連續(xù)性。一個(gè)蠕蟲(chóng)節(jié)點(diǎn)在開(kāi)始感染其他節(jié)點(diǎn)前,必須首先被感染。這種連續(xù)性是蠕蟲(chóng)攻擊的一種跡象。(3)網(wǎng)絡(luò)中存在不可達(dá)的連接。蠕蟲(chóng)通過(guò)請(qǐng)求隨機(jī)IP上的特定服務(wù)來(lái)判定目的主機(jī)系統(tǒng)是否存在特定的漏洞。該IP不一定存在,而且,即使該IP存在,也不一定提供這種服務(wù)。
1.3 傳統(tǒng)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的不足
傳統(tǒng)NIDS(Network Intrusion Detection System)通過(guò)被動(dòng)地監(jiān)視網(wǎng)絡(luò)來(lái)查找入侵跡象。例如,NADIR[1](Network Anomaly Detection and Intrusion Reporter)和DIDS[2](Distributed Intrusion Detection System)通過(guò)收集一系列主機(jī)上的審計(jì)數(shù)據(jù)檢測(cè)是否存在對(duì)主機(jī)的協(xié)同攻擊,但是它們對(duì)網(wǎng)絡(luò)中的活動(dòng)模式并不進(jìn)行實(shí)時(shí)分析。相比之下,GRIDS[3](Graph-based Intrusion Detection System)能更有效地檢測(cè)蠕蟲(chóng)攻擊。但是GRIDS的蠕蟲(chóng)檢測(cè)是基于樹(shù)型(tree-like)模式,所以它不能檢測(cè)出按照其他模式[4]傳播的蠕蟲(chóng)。
本文提出一種基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)系統(tǒng)(Intrusion Detection System Based on the History of Network Behavior,HNBIDS)。該系統(tǒng)將根據(jù)蠕蟲(chóng)的網(wǎng)絡(luò)行為特征,綜合考慮其相似性、連續(xù)性和網(wǎng)絡(luò)中的不可達(dá)連接。當(dāng)網(wǎng)段內(nèi)有新連接時(shí),進(jìn)行實(shí)時(shí)分析,一旦發(fā)現(xiàn)有蠕蟲(chóng)攻擊,立即采取相應(yīng)措施,避免蠕蟲(chóng)的進(jìn)一步傳播。
2 基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)算法
基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)算法采用異常檢測(cè)方法,建立在一種組合模型之上,算法綜合考慮蠕蟲(chóng)網(wǎng)絡(luò)行為的3個(gè)特征,采用加權(quán)平均的方法,考慮各個(gè)連續(xù)性變量對(duì)整個(gè)系統(tǒng)的影響。
2.1 相關(guān)定義
定義1 連接(connection):用六元組C(ts,sa,sp,da,dp,data)表示源主機(jī)到目的主機(jī)的TCP會(huì)話(huà)。其中ts、sa、sp、da、dp、data分別代表連接開(kāi)始時(shí)間戳、源地址、源端口、目的地址、目的端口號(hào)以及傳送數(shù)據(jù)的前n個(gè)字節(jié),其中n可以設(shè)定。
定義2 連接集(connection set):一系列的連接,在連接集里根據(jù)連接發(fā)生的順序?yàn)槊總€(gè)連接分配編號(hào)i(i為正整數(shù))。
定義3 鏈(chain):連接集的子集。對(duì)長(zhǎng)度為l的鏈中所有的元素ci(1≤i≤l)必須滿(mǎn)足2個(gè)條件:①ci的目的地址是ci+1的源地址。②ci的時(shí)間戳小于ci+p(p>0)的時(shí)間戳。
定義4 鏈的終端(end):鏈中最后一個(gè)連接的目的地址。在長(zhǎng)度為l的鏈中,end=cl.da。
2.2 數(shù)據(jù)結(jié)構(gòu)
在分析連接歷史數(shù)據(jù)時(shí),為每個(gè)主機(jī)建立了以下數(shù)據(jù)結(jié)構(gòu)。
(1)連接歷史列表(Connection_history_list):保存目的地址為本機(jī)的所有連接。(2)無(wú)關(guān)事件列表(Ignore_list):保存與蠕蟲(chóng)攻擊無(wú)關(guān)的正常事件。這些事件的連接不需要記錄在連接歷史表中。這樣就可以減少連接歷史表中的數(shù)據(jù),減輕系統(tǒng)載荷。(3)連接陷阱列表(Connection_trap_list):保存所有終端是該主機(jī)的鏈的信息,以概括主機(jī)的連接歷史信息。(4)蠕蟲(chóng)模式池(Worm_pattern_pool):保存具有蠕蟲(chóng)特點(diǎn)的鏈。當(dāng)鏈的異常值(Anomalyvalue)大于給定閾值T時(shí),則認(rèn)為存在蠕蟲(chóng)攻擊。
如果某節(jié)點(diǎn)的一個(gè)外發(fā)連接匹配其連接陷阱表的任意元素,即該外發(fā)連接的端口號(hào)和內(nèi)容與連接陷阱表的一個(gè)元素相似,則認(rèn)為具有蠕蟲(chóng)攻擊特點(diǎn)。匹配該模式的鏈就被插入到外發(fā)連接目的節(jié)點(diǎn)的蠕蟲(chóng)模式池中。
2.3 異常值計(jì)算模型
蠕蟲(chóng)模式池中鏈的異常值可根據(jù)以下模型獲得:
anomalyvalue=repeatcount*rfactor+nehost*hfactoy+neservice*sfactor
其中,repeatcount是相似連接出現(xiàn)的次數(shù)。nehost是到不同的不可達(dá)主機(jī)的連接總數(shù),其連接特征(目的端口、內(nèi)容)必須已在當(dāng)前評(píng)估的鏈中出現(xiàn)。neservice是請(qǐng)求網(wǎng)絡(luò)中服務(wù)器上的不可達(dá)服務(wù)的連接總數(shù),其連接特征也必須出現(xiàn)在當(dāng)前評(píng)估的鏈中。rfactor、hfactory、sfactor是可以配置的權(quán),分別根據(jù)repeatcount、nehost、neservice的重要程度來(lái)配置。一般來(lái)說(shuō),sfactor比較小,因?yàn)楫?dāng)網(wǎng)絡(luò)負(fù)載較大時(shí),有些服務(wù)也不能獲得。
注意,在算法中,只有以該不可達(dá)連接為終端的鏈被監(jiān)控時(shí)才記錄不可達(dá)連接。否則,將被視為正常連接,不累加到蠕蟲(chóng)模式池中鏈的異常值中。
2.4 檢測(cè)算法流程
一旦網(wǎng)絡(luò)中有新的連接,入侵檢測(cè)系統(tǒng)會(huì)分析該連接并更新相應(yīng)列表。整個(gè)檢測(cè)算法流程如圖1所示。
3 基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)系統(tǒng)
3.1 系統(tǒng)目標(biāo)
HNBIDS主要實(shí)現(xiàn)以下功能目標(biāo)。
(1)捕獲網(wǎng)段中的連接數(shù)據(jù)包。(2)對(duì)數(shù)據(jù)包進(jìn)行處理,實(shí)現(xiàn)基于網(wǎng)絡(luò)行為歷史的檢測(cè)算法。(3)檢測(cè)到有蠕蟲(chóng)攻擊時(shí)自動(dòng)實(shí)施相應(yīng)對(duì)策。(4)向管理員提交檢測(cè)結(jié)果。(5)接受管理員的配置和管理。
3.2 系統(tǒng)設(shè)計(jì)
為了實(shí)現(xiàn)以上功能,HNBIDS采用模塊化體系結(jié)構(gòu),分為以下5大模塊。
(1)連接數(shù)據(jù)收集模塊:記錄最近的所有網(wǎng)絡(luò)數(shù)據(jù)流并進(jìn)行連接數(shù)據(jù)過(guò)濾。連接數(shù)據(jù)在網(wǎng)絡(luò)上的某臺(tái)主機(jī)上進(jìn)行采集。該主機(jī)的網(wǎng)卡被設(shè)置為混雜模式,這樣可以截獲同一個(gè)沖突域內(nèi)的所有數(shù)據(jù)包,并且不會(huì)影響網(wǎng)絡(luò)傳輸性能。在截獲新連接后,與無(wú)關(guān)事件表進(jìn)行比較,如果符合表中連接,則丟棄該連接,否則記錄連接。
(2)信息處理模塊:對(duì)連接進(jìn)行分析和預(yù)處理。當(dāng)網(wǎng)絡(luò)中有新的連接時(shí),要更新連接歷史列表和連接陷阱表,并試圖發(fā)現(xiàn)連接中的相似數(shù)據(jù)(包括目的地址、目的端口號(hào)和內(nèi)容)來(lái)更新蠕蟲(chóng)模式池。
(3)入侵判斷模塊:根據(jù)網(wǎng)絡(luò)歷史行為檢測(cè)算法判斷網(wǎng)絡(luò)中是否存在蠕蟲(chóng)攻擊。
(4)反應(yīng)模塊:一旦斷定有蠕蟲(chóng)攻擊,就采取相應(yīng)措施。通過(guò)廣播通知每個(gè)主機(jī)系統(tǒng)所檢測(cè)到的蠕蟲(chóng)的模式,修改未感染主機(jī)上的防火墻規(guī)則,防止被蠕蟲(chóng)感染。而且,經(jīng)證實(shí)已感染的主機(jī)也要修改其防火墻過(guò)濾規(guī)則,以阻止該主機(jī)向具有同樣漏洞的其他主機(jī)發(fā)送信息。
(5)管理模塊:管理員通過(guò)管理模塊對(duì)其他模塊進(jìn)行監(jiān)控和配置,并且可以獲得告警信息。
基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)系統(tǒng)結(jié)構(gòu)如圖2所示。
3.3 系統(tǒng)實(shí)現(xiàn)
設(shè)在一個(gè)網(wǎng)段內(nèi)有5個(gè)主機(jī),每個(gè)主機(jī)都裝有可以實(shí)時(shí)配置規(guī)則的防火墻。
在網(wǎng)段內(nèi),主機(jī)1上安裝網(wǎng)絡(luò)行為數(shù)據(jù)收集模塊,并把主機(jī)1的網(wǎng)卡設(shè)為混雜模式以接收該網(wǎng)段內(nèi)的所有數(shù)據(jù)包。截獲到的新連接經(jīng)過(guò)主機(jī)1的預(yù)處理就傳輸給信息處理模塊。
主機(jī)1上的網(wǎng)絡(luò)行為數(shù)據(jù)收集模塊獲得網(wǎng)段內(nèi)的連接信息并用六元組C(ts,sa,sp,da,dp,data)表示如下:
其中NS和NH分別表示不可達(dá)服務(wù)和不可達(dá)主機(jī)。
這些連接信息可以用一個(gè)有向圖表示,以直觀(guān)地得到連接的連續(xù)性。網(wǎng)絡(luò)行為歷史的有向圖如圖3所示。
圖3中主機(jī)1請(qǐng)求不可達(dá)服務(wù)的連接并不記錄,因?yàn)樵诖饲皼](méi)有目的主機(jī)為1的連接被監(jiān)控。主機(jī)1到4的連接和主機(jī)2到4的連接被記錄到主機(jī)4的連接歷史表和陷阱表中,主機(jī)4到3的連接因內(nèi)容與以前的連接(1到4或2到4)內(nèi)容不同,所以不會(huì)被記錄到主機(jī)3的蠕蟲(chóng)模式池中。主機(jī)3到2的連接不滿(mǎn)足時(shí)間戳規(guī)律,所以不追加到終端為主機(jī)3的鏈內(nèi),但包括在主機(jī)2的陷阱表中。主機(jī)3有到NS的連接,主機(jī)5和主機(jī)2有到NH的連接。此外,主機(jī)4到3的連接,主機(jī)5到NH的連接和主機(jī)5到2的連接相似。取rfactor=0.24,hfactor=0.16,sfactor=0.04,T=0.8。計(jì)算得到主機(jī)2的蠕蟲(chóng)模式池中鏈的差異值為:
Anomalyvalue=3×0.20+2×0.10+1×0.04=0.84>T=0.8
所以,系統(tǒng)判定該網(wǎng)段中存在蠕蟲(chóng)并得知蠕蟲(chóng)通過(guò)21和80端口繁衍。反應(yīng)模塊就立即通知網(wǎng)絡(luò)中的所有主機(jī)上的防火墻關(guān)閉21和80端口,以免蠕蟲(chóng)進(jìn)一步傳播。
3.4 系統(tǒng)的優(yōu)點(diǎn)和不足
基于網(wǎng)絡(luò)歷史行為的入侵檢測(cè)系統(tǒng)有以下優(yōu)點(diǎn)。
(1)同時(shí)考慮了網(wǎng)絡(luò)行為的相似性、連續(xù)性和不可達(dá)連接,可以避免只考慮單因素時(shí)產(chǎn)生的誤報(bào)警,減少誤報(bào)率。并且算法中的權(quán)值是根據(jù)網(wǎng)絡(luò)行為的相似性、連續(xù)性的不可達(dá)連接的重要程度來(lái)設(shè)定的,所以該系統(tǒng)具有可配置性。(2)一旦檢測(cè)出有蠕蟲(chóng),會(huì)自動(dòng)實(shí)施有效的對(duì)策。
基于網(wǎng)絡(luò)行為歷史的入侵檢測(cè)系統(tǒng)存在以下不足。
(1)IDS系統(tǒng)往往假設(shè)數(shù)據(jù)包采用明文形式,所以從內(nèi)容上很難判斷連接數(shù)據(jù)的相似性。(2)若蠕蟲(chóng)針對(duì)IDS本身攻擊成功,則系統(tǒng)會(huì)失效。
參考文獻(xiàn)
1 Jackson K,DuBois D.An Expert System Application for Network Intrusion Detection.In:Proceeding of the 14th Department of Energy Computer Security Group Conference,Seattle,1991
2 Snapp S.DIDS-motivation,Architecture and an Early Prototype.http://www.silicondefense.com/research/,1991
3 Chen S S,Cheng S.GrIDS-A Graph Based Intrusion Detection System For Large Networks.In:Proceedings of the 19th National Information Systems Security Conference,Baltimore,1996
4 Nazario J,Anderson J.The Future of Internet Worms. http://www.crimelabs.net/,2001
5 Toth T,Krugel C.Connection-history Based Anomaly Detection.In:Proceeding of the 2002 IEEE,NY,2002