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