摘 要:P2P僵尸網絡對Internet構成巨大的安全威脅。在基于主機的P2P流量檢測和惡意行為檢測的基礎上,提出一個P2P僵尸網絡的檢測模型。構建一個基于CHORD協議由監視節點組成的結構化P2P網絡,將同時具有P2P流量和惡意行為的主機信息上報監視節點。通過對P2P僵尸主機行為進行融合分析,具有相似性惡意行為的主機被認為處于一個P2P僵尸網絡中。
關鍵詞:P2P; 僵尸網絡; 網絡安全; CHORD協議
中圖分類號:TN919; TP309文獻標識碼:A
文章編號:1004-373X(2010)15-0132-04
P2P Botnet Detecting Model Based on Behavior Similarity
LI Xiang1, HU Hua-ping1,2, LIU Bo1, CHEN Xin1
(1. College of Computer, National University of Defense Technology, Changsha 410073, China; 2. Unit 61070 of PLA, Fuzhou 350003, China)
Abstract: P2P Botnet is a serious threat to Internet security. A P2P botnet detecting model is proposed based on P2P traffic detection and malicious behavior detection on the host. A structured P2P network which is composed of monitoring nodes based on Chord protocol is established, the information of the hosts which have malicious behavior and P2P traffic at the same time are reported to the monitoring nodes. The hosts which have similar maliciousact behavior belong to a P2P Botnet according to fusing and analyzing the hosts behavior of P2P Botnet.
Keywords: P2P; Botnet; network security; CHORD protocol
0 引 言
僵尸網絡(BOTNET)是當前網絡安全領域面臨的主要問題之一,它具有蠕蟲似的傳播特征,木馬似的后門特征,并往往采用變形、ROOTKIT等病毒技術,是惡意代碼技術的綜合。大量的DDOS攻擊,垃圾郵件發送都與僵尸網絡有關。攻擊者可以利用僵尸網絡構成一個攻擊平臺,利用這個平臺可以有效地發起各種各樣的攻擊行為,導致整個基礎信息網絡或者重要應用系統癱瘓,也可以導致大量機密或個人隱私泄漏,還可以用來從事網絡欺詐等其他違法犯罪活動以牟取經濟利益[1]。
早期僵尸網絡的命令與控制通道(COMMAND CONTROL)建立在IRC協議上,攻擊者借助IRC服務器對整個僵尸網絡進行控制,雖然易于部署和實現,但是這種集中的命令與控制使得它們容易被發現和破壞。在這種背景下,能夠隱藏其命令與控制信道的基于P2P協議的僵尸網絡也出現了。P2P僵尸網絡中不存在集中的中央命令與控制服務器,所有的僵尸主機都可以充當服務器和客戶端兩種角色,這就避免了單點失效的問題。P2P僵尸網絡的流量能夠隱藏到網絡中巨大的正常P2P流量中,這使得對其進行檢測更加困難[2]。
由于P2P僵尸網絡的這些特性,目前還沒有一個通用的P2P僵尸網絡檢測方法。荷蘭阿姆斯特丹大學的SCHOOF等人針對P2P僵尸網絡的特點,提出了檢測P2P僵尸網絡的可能方向[3],P2P僵尸網絡會通過特定的端口進行通信,在尋找對端時會出現大量的ICMP報文等特征,通過靜態特征匹配和網絡流量的監控可以發現P2P僵尸網絡。在文獻[4]中提出了一種利用改進的蜜網來檢測P2P僵尸網絡的方法,通過在蜜網中運行BOTS樣本程序,對進出蜜網的流量進行分析,找到P2P僵尸網絡發送命令和建立連接的流,以及發送這個流的源端和接受這個流的終端。但這種檢測方式具有一定的局限性,不能通過蜜網獲得完整的僵尸網絡活動情況。文獻[5]中提出了一種基于主動探測的P2P僵尸網絡檢測方法,把僵尸程序修改成爬蟲程序,它會像普通節點一樣加入P2P僵尸網絡,根據P2P網絡中的節點的響應情況來判定該節點是否為P2P僵尸網絡節點。但該方法需要相當的先驗知識,而且是針對特定應用的測量,通用性較差。
本文在對P2P僵尸程序在主機上的異常行為以及對等端之間的通信特征的研究基礎上,提出一種基于異常行為相似性的P2P僵尸網絡檢測方法。
1 檢測模型
僵尸網絡中的受控主機表現出來的異常行為不可避免地存在相似性[6]。在網絡中的主機節點上部署探測器,用于檢測P2P僵尸主機的行為,分析僵尸主機的通信流量,并上報到上一級監視節點。監視節點部署于各自對應的邊界網絡的出口,收集被監視網絡中的上報P2P僵尸主機信息,各個監視節點將信息進行融合,通過對上報的可疑主機節點的異常行為相似性來進一步檢測P2P僵尸網絡。所有監視節點構建成一個結構化的P2P網絡。本文提出的P2P僵尸網絡檢測方法模型如圖1所示。
圖1 P2P僵尸網絡檢測模型
該模型中具有如下的特點:
(1) 該模型中基于主機的惡意行為檢測采用基于行為分析的技術,不僅能檢測已知的P2P僵尸程序,對于未知或是變形處理的P2P僵尸程序仍然具有較好的檢測效果。
(2) 將惡意行為檢測與P2P流量檢測技術相結合,能夠更加準確有效地定位P2P僵尸主機。
(3) 采用結構化的P2P網絡來實現信息融合與報警,能夠掌握整個P2P僵尸網絡的態勢和拓撲結構,進一步降低誤報率和漏報率。
2 檢測流程
該檢測模型的檢測流程如圖2所示。在主機節點層面對P2P流量和主機上的惡意行為進行檢測,在監視節點層面上進行信息的融合處理,生成僵尸網絡的報警。
2.1 P2P流量的檢測
對于主機的P2P流量的檢測可以利用原始套接字捕獲網絡數據包,采用端口匹配和協議特征碼匹配的方式進行檢測。還可以提取網絡數據包的行為特征,依據P2P連接行為特征模型將其與其他非P2P協議區分開。
圖2 P2P僵尸網絡檢測流程
針對幾種典型P2P軟件的實現過程,總結了P2P協議的行為特征[7]:
(1) 在許多P2P網絡架構中,用戶要設法向多個IP地址發起連接來尋找可以介入P2P網絡的節點,因此,在連接過程中出現大量源IP相同,目標不同的TCP SYN包。
(2) 如果在一段時間內,從某一IP的一個確定端口向多個不同的目標IP發起了UDP連接,則該端口對應的進程很大可能是P2P進程。
(3) 同時保持和許多IP地址的TCP包或UDP包交互。
(4) 在一段短時間內,某一個{源IP,目標IP}對之間交替出現TCP包和UDP包(即同時使用TCP和UDP作為傳輸協議),并且交替次數超過某個預先設定的閾值,則該{源IP,目標IP}對之間的通信流就很有可能屬于P2P流量。
通過記錄對捕獲的數據包的相關連接信息,與以上的行為特征匹配,對滿足其中一條或多條的,可以認為該數據包是基于P2P協議的。P2P流量檢測模塊流程如圖3所示。
圖3 P2P流量檢測模塊流程圖
2.2 惡意行為的檢測
P2P僵尸網絡中的受控主機的異常行為與傳統的惡意代碼的異常行為十分相似,主要表現為添加注冊表自啟動項、篡改重要文件、竊取敏感信息等,因此可以采用類似檢測惡意代碼的方法來檢測僵尸病毒。
以PHATBOT和PEACOMM這兩種僵尸病毒的工作過程為例來看僵尸病毒在主機上的一些行為:PHATBOT僵尸程序是在基于IRC協議構建命令與控制信道的AGOBOT基礎上,通過采用AOL的開源P2P協議WASTE重新實現其命令與控制模塊的。PHATBOT首先運行注入病毒的路徑下,然后將自身副本拷貝到系統目錄下,進行重命名操作后將其啟動,并關閉注入點進程。向注冊表添加注冊鍵以實現BOT程序的自啟動。循環等待攻擊者指令,若收到嗅探、掃描或者攻擊等指令,則啟動對應線程,執行相關操作。
PEACOMM僵尸網絡的命令與控制信道是OVERNET P2P協議,它通常以郵件附件方式感染主機,然后通過向系統驅動中添加“WINCOM32.SYS”的方式初始化僵尸程序。這個驅動被注入到“SERVICES.EXE”進程中,這個服務在接下來就扮演P2P客戶端的角色。該僵尸程序還會阻斷WINDOWS自帶的防火墻,開啟特定的TCP和UDP端口,通過這些端口向鄰居列表中的其他僵尸程序聯系[8]。
通過對以上P2P僵尸病毒的工作過程的分析可以知道,僵尸病毒在主機上的異常行為主要包括創建或修改文件,修改注冊表特殊表項,開啟端口等。將僵尸病毒的行為抽象為網絡異常行為、注冊表異常行為、文件異常行為、HOOK行為和其他異常行為。將行為定義一個多元組BEHAVIOR(TYPE,PN,ATTRIBUTER1,…,ATTRIBUTER N)。其中TYPE表示行為的類型,PN表示行為所對應的進程名,ATTRIBUTER N表示行為的某一個屬性[9]。通過監視主機上注冊表、文件、進程、關鍵API調用等相關行為,與異常行為庫中的行為相比較,對匹配的異常行為按照以上對行為的定義規整化及分類上報到監視節點。基本的流程如圖4所示。
圖4 惡意行為檢測模塊流程圖
2.3 基于行為相似性的P2P僵尸網絡的檢測
如果某一臺主機既產生了異常行為,而且又是基于P2P通信的,則可判定該主機是處于某一個P2P僵尸網絡之中。監視節點收到各自監控的局部網絡上報的P2P僵尸主機異常信息之后,將信息進行融合分析并產生報警。
兩個行為屬性的匹配程度就是行為之間的相似度,即匹配屬性的比率。對按分類上報的異常行為的屬性進行比較,如果某兩個異常行為的屬性完全匹配,則認為這兩個異常行為相似。由于僵尸網絡是一個協同性的群組,僵尸主機的異常行為必然相似,因此當具有相似異常行為的主機節點數超過一個閾值時,則認為這些主機節點處于同一個P2P僵尸網絡中。找出所有與此類異常行為相似的主機節點信息,即可以獲得整個P2P僵尸網絡的輪廓。如果具有相似惡意行為的主機節點數達不到此閾值,則只認為是松散的惡意代碼。
本文中的各個監視節點之間構成一個結構化的P2P網絡,選用CHORD[10]作為系統分布式哈希表協議,利用CHORD的關鍵字快速查找,迅速有效地實現各監視節點之間的信息融合。CHORD協議的核心是提供了一種基于分布式哈希表的查找算法,分布式哈希表是一個由廣域范圍大量節點共同維護的巨大哈希表,哈希表被分割成不連續的塊,每個節點被分配給一個屬于自己的哈希塊,并成為這個哈希塊的管理者。利用其分布式哈希表,可以實現關鍵字的快速查詢。CHORD協議提供了一個快速的分布式哈希功能的計算,把關鍵字映射到負責存儲它們的節點上去。
如圖5所示,在基于CHORD協議的監視節點組成的P2P網絡中,每個監視節點作為CHORD環中的一個節點,具有自己的ID。每個監視節點在收到局部網絡中P2P僵尸主機的報警信息后,利用CHORD協議中的一致性哈希算法將該主機的異常行為映射為一個關鍵字。如果主機上報異常行為相似,則通過哈希算法得出的關鍵字相同。利用CHORD算法得出關鍵字KEY所對應的監視節點ID(即負責存儲該異常行為的監視節點),將當前監視節點地址、異常行為、源地址組成的元組發送到該監視節點,并且一致性哈希會保證同一個關鍵字會映射到同一個監視節點,這樣就可以將所有監視節點收到的相似的異常行為存儲到一個監視節點上。而負責存儲的這一個監視節點就掌握了所有監視節點所控制的網絡中該異常行為的情況,當某一異常行為的不同目的地址數目超過閾值時就可以發出P2P僵尸網絡的預警。
2.4 小 結
該檢測模型創新性的從惡意行為分析和P2P流量識別兩個方面來對P2P僵尸主機進行探測,把檢測到的P2P僵尸主機信息進行融合,依據P2P僵尸主機惡意行為的相似性來對P2P僵尸網絡進行檢測。在該檢測模型的實施中,每一步都具有算法和實現上的可行性。
圖5 基于CHORD協議的監視節點網絡之間的信息融合
3 結 語
提出的檢測模型是基于對P2P僵尸網絡定義的把握,通過僵尸網絡中受控主機異常行為的相似性進行檢測。其中主機的異常行為檢測使用基于行為分析的檢測技術,對未知和變種的僵尸網絡也能進行有效的檢測。但是基于行為分析的檢測技術不能識別出僵尸網絡的類型和名稱,不利于進一步的響應和遏制。如果各個監視節點能進一步對僵尸網絡的準確特征進行提取,并將該特征導入入侵檢測、防火墻等系統,將能有效地遏制僵尸網絡的擴散。下一步的工作將對各個功能模塊進一步完善,提高該檢測模型的效能。
參考文獻
[1]GEER D. Malicious bots threaten network security[J]. IEEE Computer, 2005, 38(1): 18-20.
[2]HA D T, YAN Guan-hua. EIDENBENZ Stephan, et al. The effectiveness of structductural detection and defense against P2P-Based botnets[J]. IEEE Computer, 2009,34(2): 858-863.
[3]SCHOOF R.KONING R.Detecting peer-to-peer botnets[R/OL]. [2007-04-09]. http://www.eviloctal.com.
[4]諸葛建偉,韓心慧,周勇林,等.Honeybow:一個基于高交互式蜜罐技術的惡意代碼自動捕獲器[J].通信學報,2007,28(12):8-13.
[5]ZOU C, CUNNINGHAM R. Honeypot-aware advanced botnet construction and maintenance[C]//Proceedings of International Conference on Dependable Systems and Networks(DSN). [S.l.]: DSN, 2006:3-9.
[6]諸葛建偉,韓心慧,周勇林,等.僵尸網絡研究[J].軟件學報,2008,19(1):152-165.
[7]王明麗.基于主機的P2P僵尸病毒檢測技術研究[D]. 成都:電子科技大學,2009.
[8]GRIZZARD J B, SHARMA V, NUNNERY C. Peer-to-peer botnets: overview and case study[C]//Proc.of the 1st Workshop on Hot Topics in Understanding Botnets(HOTBOTS 2007). Boston: HUTBOTS, 2007: 13-15.
[9]楊柳.基于多級協同的惡意代碼檢測研究[D].長沙:國防科學技術大學,2009.
[10]STOCIA I, MORRI R, DAVID L N, et al. Chord: a scalable peer-to-peer lookup service for Internet applications[J]. Computer Communication Review, 2001,31(4):27-31.