摘 要:當前網絡蠕蟲對Internet構成重要威脅,如何防范蠕蟲已經成為網絡安全的重要課題。由于蠕蟲傳播速度快、規模大,因此必須在蠕蟲傳播初期就能發現并對其采取相應措施進行隔離。全面分析了蠕蟲預警方面的最新研究進展,包括路由器級的蠕蟲檢測、基于行為的蠕蟲檢測、蠕蟲特征的自動提取,并對蠕蟲的特點進行了總結,最后對未來蠕蟲檢測的可能方向進行了展望。
關鍵詞:網絡安全; 蠕蟲; 預警技術
中圖法分類號:TP309.5 文獻標識碼:A 文章編號:1001-3695(2006)10-0014-03
Survey of Monitoring and Early Warning Technology for Internet Worms
XIE Feng1,2, MENG Qingfa1,2
(1.Software Division, Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100080, China; 2.Graduate School, Chinese Academy of Sciences, Beijing 100049, China)
Abstract:The threat of Internet worm against network security becomes increasingly serious. It is a vital issue to prevent the worm propagation. In view of the propagation scale and speed, worm should be detected and prevented at the beginning of spreading phase. This paper details the recent researches on monitoring and early warning for Internet worms, including routerbased worm detection, behaviorbased worm monitoring and the automatic feature extraction, then summarizes the characteristic of the worms, and finally discusses the research trends in this area.
Key words:Network Security; Worm; Monitoring and Early Warning Technology
隨著Internet應用的發展,蠕蟲對網絡安全的威脅日益增大,已成為網絡安全研究的一個熱點問題。許多研究人員從蠕蟲的功能結構、掃描策略、傳播模型等多個方面研究蠕蟲的特性。如圖1所示,通常蠕蟲傳播會經過慢速啟動、快速傳播和緩慢結束三個階段(這里采用Simple Epidemic Model傳播模型[1])。也就是說蠕蟲傳播初期速度通常比較慢,但隨著傳播的進行,其擴散速度將會急劇增大,最后隨著未被感染的主機數量減少,其傳播速度又會逐漸降低。由此可見,如果是在第二甚至是第三階段才采取措施對蠕蟲進行隔離,實際上對蠕蟲的大范圍傳播幾乎不會有太大影響,而且此時蠕蟲已經造成了巨大的破壞,因此只有在第一階段發現蠕蟲并進行隔離才能真正有效地限制其傳播。本文將全面分析目前蠕蟲預警的最新進展,并深入剖析各自的優缺點。
1 現有的蠕蟲預警技術分析
1.1 基于掃描的蠕蟲檢測
通常蠕蟲傳播是依靠隨機掃描方式(如CodeRed蠕蟲)。大范圍的隨機掃描往往是蠕蟲爆發時的征兆,因此收集這些掃描活動就能在一定程度上發現蠕蟲。Massachusetts大學的Zou等人正是利用這種思想,通過統計對未用IP地址進行的掃描來分析是否發生蠕蟲[3]。他們提出了一個蠕蟲預警系統模型,該模型主要包含兩個部分:蠕蟲預警中心和大量的監視器。這些監視器分布在Internet的各個位置上,主要是收集本地蠕蟲掃描的相關數據,然后將統計數據發送到預警中心。預警中心則綜合分析收到的數據。為了減少預警中心需要處理的數據量,在傳送到預警中心之前,需要對這些原始數據進行預處理(如數據融合),因此系統增加了多個數據混合器(Data Mixer)。整個系統可看作一個樹狀結構(圖2)。
監視器分為兩種,即入口監視器和出口監視器。其中,入口監視器在網絡的入口處監視輸入數據流,其目的就是檢測是否有對內部網絡未用IP的掃描活動;出口監視器設置在網絡的出口處,用來監視網絡輸出數據流,以發現對外的掃描。
監視器在每個時間間隔Δt內都會向預警中心發送自己收集到的信息,包括時刻t已經發現的感染主機數Ct、在Δt時間范圍內收到的掃描數據包個數Zt以及蠕蟲的掃描速率η等。預警中心收集這些數據后,采用下列步驟計算蠕蟲的感染率α、易感染主機數N和β:①根據η和Zt,利用Kalman過濾器得到掃描率的估計值;②根據公式N=α×Ω/η得到易感染主機數的估計值N^,這里假定是隨機掃描,所以Ω=232;③根據公式β=α/N,得到β^。
如果這些非法掃描不是蠕蟲引起的,那么感染率估計值會在0附近波動或沒有一個中心點;反之則會穩定在一個正數附近。通過對CodeRed蠕蟲和SQL Slammer蠕蟲的模擬試驗可以發現,和N^穩定時,感染主機所占的比例大約為5%,因此這種方法可以在蠕蟲剛開始傳播不久就進行預警。
該方法的一個主要缺點就是系統的監控范圍必須很廣,如監控的地址空間數為220,否則會導致很大的誤差。顯然,要維護這么一個規模龐大的防范體系,代價也會很高。
1.2 基于Honeypot的蠕蟲檢測
Honeypot是一種用來收集入侵行為信息并學習入侵過程的工具[6]。由于Honeypot沒有向外界提供真正有價值的服務,因此所有進出Honeypot的數據均被視為可疑數據,這樣就大大減少了所需要分析的數據量。劍橋大學的Kreibich等人提出使用Honeypot來自動提取蠕蟲的特征,然后將這些特征加入到現有的IDS特征庫。他們將該系統稱為Honeycomb[7]。其具體做法是:首先對進入Honeycomb的數據包進行協議解析;然后提取應用層數據,利用后綴樹算法(Suffix Tree)提取出最長的相同子串;最后將這些子串作為蠕蟲的特征加入到IDS的特征庫中。采用這種方法可以極大地減少人工操作,并且可以縮短蠕蟲發生到特征提取之間的時間,有助于在初期就發現蠕蟲。在試驗中,他們成功地發現了Slammer蠕蟲和CodeRed II蠕蟲的特征。
Georgia大學的Dagon等人采用了另一種系統HoneyStat[8]來識別蠕蟲,他們利用Vmware構成HoneyStat模擬多種操作系統,并將蠕蟲產生的事件分為三種:內存事件、網絡事件和磁盤事件。內存事件包括緩沖區溢出等操作,網絡事件包括下載蠕蟲代碼,磁盤事件包括對文件系統的修改等操作。HoneyStat最后采用Logisitic回歸方法來分析這些事件序列,從而判斷是否發生蠕蟲。
盡管利用Honeypot可減少需要分析的數據量,但它也有很大的不足:①在蠕蟲傳播初期,蠕蟲掃描的地址數量有限,因此Honeypot捕獲到蠕蟲的概率也很小,從而導致該方法難以在蠕蟲傳播的初期發揮作用;②目前蠕蟲主要是借助于某一個具有漏洞的服務來進行傳播。要想Honeypot能夠捕獲這種蠕蟲,就需要提供具有該漏洞的服務程序,這顯然很困難。
1.3 基于包匹配的蠕蟲檢測
Xuan Chen和Heidemann建立了一個基于路由器的蠕蟲檢測系統DEWP[9]來實現蠕蟲的檢測和過濾。其方法基于這樣的觀察現象:因為大多數蠕蟲都是針對某一個網絡服務的漏洞,因此當這種蠕蟲爆發時,在路由器的兩個方向上均會出現大量目的端口相同的網絡流量,并且不同目的地址數量急劇增加,當增長量超過一定閾值時就認為發生了蠕蟲。DEWP主要包含蠕蟲檢測模塊和包過濾模塊。蠕蟲檢測模塊進行目的端口匹配和目的地址計數,如果發現蠕蟲,就將可疑蠕蟲數據包的目的端口加入包過濾模塊中,從而限制其傳播(圖3)。
DEWP過程可以描述為:假定在Δt時間間隔內的某個目的端口的數據包數量為N,則發生蠕蟲的條件為
NN>1+δ(1)
其中,N為過去在Δt時間間隔內的數據包數量的平均值,δ反映了系統的靈敏度。δ越小,系統就越靈敏,但誤報率也會增加。每統計一次N,就對N采用下述公式進行更新,即
N=αN+(1-α)N(2)
其中,α是一個常數,表明了舊平均值的重要程度。
該方法的缺點在于:①僅僅根據目的端口和目的地址來判斷是否發生蠕蟲,容易產生誤報;②DEWP的布置位置會明顯影響檢測效果;③隔離策略過于簡單會導致具有相同目的端口的正常數據被過濾掉。
1.4 基于內容的蠕蟲檢測
通過仔細分析現有各種蠕蟲的特點可以發現,這些蠕蟲具有一個明顯的共性:蠕蟲數據包的內容是相似的。因此一些系統,如Autograph[10]和EarlyBird[2]均利用此性質來檢測蠕蟲并自動提取特征。其基本方法是:如果在一段時間內出現大量的重復數據包,則認為出現蠕蟲,并將重復部分作為蠕蟲特征。
目前Autograph只針對基于TCP方式的蠕蟲,其檢測過程如下:①將輸入的網絡數據分為正常數據和可疑數據,并將可疑數據放入緩沖池中進行流重組,形成基于TCP的連接會話;②對每一個連接會話的應用層數據,劃分出若干長度不一的子串;③統計所有子串在各個連接會話中出現的頻率,選出頻率較高的子串組成蠕蟲的特征,并將這些特征串加入到IDS特征庫中。
EarlyBird使用的方法與Autograph有所不同,主要表現在:①EarlyBird對輸入數據沒有預先過濾。它對每一個數據包均進行處理,處理對象不僅包括TCP流,而且還包括UDP流。②EarlyBird對TCP數據沒有進行流重組,而只是單獨處理每一個IP數據包。其優點是節省了大量的時間,缺點是難以發現以分片方式進行傳播的蠕蟲。③EarlyBird采用固定長度的滑動窗口來劃分序列(在原型系統中,窗口大小為39Bytes)。④檢測時,EarlyBird不僅考慮子串出現的頻率,還考慮所發現重復包的<源地址,目的地址>數量,這可以有效地減少誤報。
這類方法的最大優點在于可以自動提取蠕蟲特征,其缺點是:①深入分析數據的內容需要大量的時間和空間開銷,因此不適合在高速網絡環境中實時處理數據。②目前僅僅是利用字符串的出現頻率作為判斷依據,容易產生誤報。因此,這種方法可以作為蠕蟲檢測的一個輔助手段,得到可疑特征后再由安全專家進一步分析,從而得到蠕蟲準確的特征。③目前已經出現了蠕蟲與病毒結合的趨勢。一旦蠕蟲的編寫者進一步運用編寫病毒的某些技術,如多態和自我變異,將難以檢測出這類蠕蟲。
1.5 基于傳播行為的蠕蟲檢測
Ellis等人[4]指出蠕蟲在傳播過程中體現了下列三個特征:①傳播數據的相似性;②蠕蟲傳播呈類似樹狀結構(不考慮重復感染的情況);③主機感染蠕蟲后其行為發生變化,也稱為角色發生變化,即由攻擊的受害者變為攻擊的發起者。因此可以通過觀察網絡中是否出現上述模式來判斷蠕蟲是否發生。與此類似,Staniford等人提出了用活動圖的方式來檢測蠕蟲。他們設計了一個原型系統GrIDS[5],將網絡連接轉換成圖,然后觀察圖中是否出現傳播樹這種獨特的模式。
利用行為特征來發現蠕蟲的優點在于它利用了蠕蟲的傳播本性,與內容無關,因此能夠發現自我變異的蠕蟲;其主要缺點在于這種方法需要觀察所有的網絡活動,因此一般只適合于局部網絡。
2 蠕蟲傳播特點分析
通過分析上述蠕蟲預警技術,可以發現這些都或多或少利用了蠕蟲傳播的一些獨有的特點。我們進一步分析了現有蠕蟲的掃描策略和傳播模式,認為目前蠕蟲傳播一般具有下列幾個特點:
(1)蠕蟲在傳播過程中,其連接模式是相似的。這種相似性體現在:①傳播過程是相似的。同一個蠕蟲一般均采用相同步驟去感染目標主機。②Exploit代碼與蠕蟲代碼是相似的。同一個蠕蟲一般使用同一個目的端口,如CodeRed固定使用80端口;由于蠕蟲難以在每一次傳播時都改變Exploit和蠕蟲代碼,因此其傳播時所使用的Exploit與蠕蟲主體幾乎相同。
(2)蠕蟲在傳播過程中,連接呈現因果關系,并且傳播呈樹狀結構。主機被感染后,它會很快作為發起者去感染其他主機,這體現了明顯的因果關系。我們用這樣一個七元組來表示一個IP數據包:
這表示在TS時刻,有一個數據包從SrcIP的SrcPort端口發送到DestIP的DestPort端口,該數據包使用的傳輸層協議是protocol,包中內容是data。假定現在有兩個數據包,分別是
隨著傳播的進行,網絡中形成了多個傳播鏈,這些傳播鏈就構成了多個傳播樹(假定不考慮重復感染的情況)。
(3)蠕蟲在傳播過程中會出現大量的無效連接。通常蠕蟲都是采用隨機掃描方式,因此不可避免地會導致大量的無效連接。
(4)蠕蟲在傳播過程中,一般呈現一對多的模式。蠕蟲的一個本質特征就是傳播,為了能在短時間內感染盡可能多的主機,一臺感染主機一般會同時向多個目標主機發送蠕蟲數據,因此在傳播模式上必然表現出一對多的關系。
3 展望和總結
通過上述分析,我們認為相比其他網絡活動,蠕蟲傳播具有自己獨有的特點。如何充分利用這些特點來進行檢測是預警技術研究的一個極其重要的問題,我們認為未來的研究可能集中在以下幾個方面:
(1)在全球設立多個監控點,利用急劇增加的掃描活動來發現可能的蠕蟲爆發,并盡早提出預警。該方法的優點在于可以在較短時間內發現蠕蟲,對抑止蠕蟲傳播比較顯著。
(2)對現有骨干路由器進行修改,使其能夠過濾大量可疑的蠕蟲數據。因為僅依靠網絡下游來過濾蠕蟲(如防毒軟件),難以阻止蠕蟲對網絡資源的消耗。這需要路由器廠商的支持。
(3)基于局部網絡來檢測蠕蟲(如企業網)。首先將網絡數據轉換成網絡連接并構成網絡活動圖,然后分析該動態的網絡圖。如果出現了一定數量的呈現因果關系的連接,或者出現大量的一對多連接以及多對一連接(即活動圖中節點的出度和入度很大),就可以判斷是出現了蠕蟲。這種方法還可以發現網絡中感染的主機并進行隔離,從而有利于保護自身網絡的安全。
(4)利用蠕蟲內容的相似性來自動提取蠕蟲的特征。這種方法的關鍵就在于如何找到蠕蟲的本質特征。目前許多蠕蟲表現出內容相似的特點,但并不是所有重復內容均可作為蠕蟲特征。一個可能的做法就是從流行串的角度出發,與重復串不同,流行串更多地是一個增量概念。也就是說,不是頻度本身而是頻度的變化率決定一個串是否流行。蠕蟲爆發時,其特征就成了當前網絡的一個流行串。當然,如何計算頻度的變化率也是一個值得研究的問題。
總之,蠕蟲對當前網絡構成了重要威脅,只有從多個方面進行防護才能真正杜絕蠕蟲。
參考文獻:
[1]C C Zou, W Gong, D Towsley. On the Performance of Internet Worm Scanning Strategies[R].Electrical and Computer Engineering Department, University of Massachusetts, 2003.
[2]S Singh, C Estan, G Varghese, et al. Automated Worm Fingerprinting[C]. Proceedings of the 6th Symposium on Operating System Design and Implementation(OSDI), USENIX, 2004.45-60.
[3]C C Zou, L Gao, W Gong, et al. Monitoring and Early Warning for Internet Worms[C]. Proceedings of the 10th ACM Conference on Computer and Communications Security(CCS), New York: ACM Press, 2003.190199.
[4]D Ellis, Aiken, Attwood, et al. A Behavioral Approach to Worm Detection[C]. Proceedings of ACM Workshop on Rapid Malcode(WORM), New York: ACM Press, 2004.43-53.
[5]S Stanifor, S Cheung, R Crawford. GrIDS: A Graph Based Intrusion Detection System for Large Networks[C]. Proceedings of the 19th National Information Systems Security Conference, 1996.
[6]Niels Provos. A Virtual Honeypot Framework[R]. Center of Information Technology Integration, University of Michigan, 2003.
[7]Christian Kreibich, Jon Crowcroft. Honeycomb: Creating Intrusion Detection Signatures Using Honeypots[J]. ACM SIGCOMM Computer Communications Review, 2004,34(1):51-56.
[8]David Dagon, Xinzhou Qin, Guofei Gu. HoneyStat: Local Worm Detection Using Honeypots[C]. Proceedings of Recent Advances in Intrusion Detection(RAID), SpringerVerlag, 2004.39-58.
[9]Xuan Chen, John Heidemann. Detecting Early Worm Propagation through Packet Matching[R]. USC/Information Sciences Institute, 2004.
[10]HyangAh Kim, Brad Karp. Autograph: Toward Automated, Distributed Worm Signature Detection[C]. Proceedings of the 13th USENIX Security Symposium, 2004.
作者簡介:
謝豐(1977-),男,博士研究生,主要研究方向為網絡與信息安全;孟慶發(1976-),男,碩士研究生,主要研究方向為網絡與信息安全。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文