梁發洵
(廣州城市職業學院,廣東廣州510405)
截止2014年6月,中國網民規模達6.32億,互聯網普及率為46.9%,中國IPv4地址數量為3.30億,域名總數為1915萬個。2014年6月,國家互聯網應急中心(CNCERT)檢測發現木馬或僵尸網絡控制服務器IP總數為11,168個,木馬或僵尸受控主機IP總數達117萬余個。通過對全球范圍內惡意代碼的捕獲和分析發現,僵尸網絡已經成為互聯網涉及范圍最廣、危害最大的威脅之一。它除了制造傳統上的DDoS(分布式拒絕服務)攻擊外,還被用于盜取銀行賬戶、傳播垃圾郵件,甚至實施APT(高級持續性威脅)攻擊。僵尸網絡借助加密協議、P2P協議等,使得傳統的基于模式匹配的檢測技術無能為力。僵尸網絡通過與蠕蟲病毒結合,使得僵尸網絡擴散速度更快,擴散范圍更廣,造成的破壞更大。
僵尸網絡是攻擊者(Botmaster)出于惡意目的,傳播僵尸程序控制大量主機并通過一對多的命令與控制信道所組成的網絡。僵尸網絡區別于其它網絡攻擊的特征是使用了一對多的命令與控制機制。僵尸網絡的組成如圖1所示。
圖1中的對象定義如下:
僵尸牧人(Botmaster):是指僵尸網絡的控制者和管理者,可以通過命令與控制信道向受控主機發送命令。
僵尸程序:是一種綜合了傳統木馬、蠕蟲等技術的計算機病毒,采用各類傳播手段秘密地植入受控主機,能夠自動地運行自身程序,并可以接收和執行遠程命令的惡意程序。
受控主機(Bot):受控主機是指攻擊者利用應用程序、操作系統漏洞或者其他社會工程學方式成功入注并安裝執行僵尸程序的網絡主機。
命令與控制(C&C)信道:命令與控制(C&C)信道是僵尸網絡的核心,用來向Bots發送各種預定義的命令以達到控制Bots的目的,同時可以用于接收Bots執行命令的返回信息。
僵尸網絡:由以上對象組成,是僵尸牧人出于惡意目的,通過各種手段傳播僵尸程序,實現通過一對多的命令與控制信道控制大量主機而構成的網絡。
僵尸網絡根據命令與控制機制使用的不同協議分為三類,分別為基于IRC協議的僵尸網絡、基于HTTP協議的僵尸網絡以及基于P2P協議的僵尸網絡。

圖1 僵尸網絡的組成

圖2 P2P僵尸網絡工作機制圖
圖2以P2P僵尸網絡發起一次DDoS攻擊為例,解釋P2P僵尸網絡的工作機制。
(1)僵尸網絡的控制者通過各種方法(利用漏洞、郵件等方式)傳播僵尸病毒,使受害主機感染僵尸病毒,使得第一次注入成功。
(2)第一次注入成功后,受害主機從特定的服務器或者P2P僵尸網絡中的某臺機器中下載第二輪注入相關的組件,然后進行安裝。
(3)第二輪注入成功后,僵尸程序開始在受害計算機上運行,受害主機感染僵尸病毒后便會開始加入到僵尸網絡中,不同的命令與控制信道加入僵尸網絡的方式不同。加入P2P僵尸網絡主要是通過發現對等端的方式。
(4)僵尸主機加入僵尸網絡后便隱藏自身,同時開放端口等待接收攻擊主機發出攻擊的命令。
(5)當僵尸網絡的控制者需要發送命令時,便通過一定的認證方式加入到P2P僵尸網絡,以便發送攻擊命令。
(6)攻擊主機向僵尸主機發出攻擊命令,常見的攻擊有DDoS攻擊、端口掃描、發送垃圾郵件、竊取敏感信息等。
(7)僵尸主機獲取到攻擊主機的攻擊命令。
(8)僵尸主機向目標主機發起DDoS攻擊。
目前,針對P2P僵尸網絡的檢測方法主要有兩種:一是基于主機行為的檢測方法;一是基于網絡流量的檢測方法。前者是在一個負責監控的主機內部部署傳感器用來監控和記錄僵尸程序的可疑活動行為;后者是通過分析P2P僵尸網絡通信行為在網絡層面表現出來的特征及變化規律,并利用這些特征來判斷網絡流量中是否存在P2P僵尸流量。
基于主機行為的檢測方法跟傳統的惡意代碼檢測類似,對僵尸程序的可疑行為進行檢測。IRC僵尸網絡和HTTP僵尸網絡屬于集中式僵尸網絡,而P2P僵尸網絡屬于分布式僵尸網絡,在規模上后者一般比前者小,控制時效性不高,但P2P僵尸網絡沒有固定的中心服務器,可以有效克服集中式僵尸網絡單點失效的致命弱點,在控制、傳播、生存等方面與集中式僵尸網絡相比都存在較大的優勢。在僵尸程序潛伏時期,P2P僵尸網絡融入在某個普通的P2P網絡中,使僵尸程序之間的通信隱藏于正常的P2P流量中,從而降低了僵尸程序被發現的概率,增強了隱蔽能力。
當P2P僵尸程序處于活躍時期,即處于融入僵尸網絡階段或實施攻擊行為等階段,僵尸主機的通信流量和僵尸程序進程行為都表現比較明顯的特征,為在主機端進行檢測提供較好的條件。此時從兩方面內容進行檢測。一方面,P2P僵尸程序和大部分正常的P2P應用一樣,都采用了P2P協議,在網絡通信上會體現出一些P2P流量特點,此方法通過對P2P流量的識別,初步判定P2P僵尸程序的存在范圍;另一方面,P2P僵尸程序跟其它惡意程序一樣,在活躍時期它們進程的行為會呈現出一些特點和規律性,此方法通過對指定的P2P進程行為進行分析,從而判斷是否為P2P僵尸程序。基于這兩方面內容,檢測方法主要由P2P通信識別和惡意行為檢測兩部分組成。P2P通信識別部分,主要通過統計分析截獲的網絡數據包信息,實現對P2P流量的識別。惡意行為檢測部分,主要通過監視進程API(應用程序接口)函數調用,獲取API函數序列,提取特征子串,再運用LDA(線性判別分析)算法分析區分良性與惡性的進程,實現P2P僵尸程序的檢測。
基于網絡流量的檢測方法主要是通過分析P2P僵尸網絡的各種通信行為在網絡流量層上表現出來的各種長期的或短期的規律,然后基于這些規律來檢測網絡流量中是否存在P2P僵尸網絡的流量。可以通過對局域網內的流量或者某些關鍵主機的流量進行實時檢測來發現規律。
現設計一個數據流檢測系統,從網絡中的某一關鍵節點捕獲數據流作為該系統的輸入數據。邏輯上把系統分為兩部分,一為僵尸網絡P2P流量的過濾模塊;一為僵尸網絡惡意行為檢測模塊。具體檢測流程如下:
(1)在關鍵節點捕獲局域網中的網絡流量;
(2)通過端口過濾,將流量分為四種情況:被剔除的會影響下階段檢測的流量、過濾出來的SMTP流量、使用固定端口的P2P流量、剩余流量;
(3)剩余流量通過應用層特征檢測和流量特征檢測進一步識別出其中的P2P流量;
(4)對所有識別出來的P2P流量進行P2P流量特征聚類,得到屬于同一P2P網絡的P2P群;
(5)對過濾出來的SMTP流量進行垃圾郵件檢測,得到發送垃圾郵件的節點;
(6)對原始數據流進行端口掃描檢測和DDoS攻擊檢測,得到進行端口掃描的節點和DDoS攻擊的節點;
(7)對得到的4個節點群(P2P節點、SMTP節點、端口掃描節點、DDoS攻擊節點)進行綜合,判斷是否屬于P2P僵尸網絡。
由于P2P僵尸網絡的隱蔽性比起IRC僵尸網絡和HTTP僵尸網絡要高得多,若通過基于主機行為的檢測方法則難以檢測出來,所以現在主要考慮使用基于網絡流量的檢測方法設計P2P僵尸網絡檢測系統。
通過對P2P僵尸網絡的工作機制研究發現,攻擊者通過命令與控制信道控制位于不同網絡位置的感染主機,完成攻擊者的各種攻擊行為。目前,這些攻擊行為主要是端口掃描、DDoS攻擊和發送垃圾郵件。
針對攻擊者的攻擊行為,檢測方法可以分為兩個部分:第一部分為命令與控制信道的檢測,第二部分為惡意行為的檢測。通過捕獲網絡中的流量,結合P2P僵尸網絡在網絡中的特點,分析數據流,設計一P2P僵尸網絡檢測系統,判斷網絡中是否存在P2P僵尸網絡。
如圖3所示,系統主要分為4個模塊,分別為流量捕獲模塊、P2P流量過濾模塊、惡意流量檢測模塊、整合判斷模塊。流量捕獲模塊負責捕獲網絡中的數據流,為下一階段的分析提供基礎;P2P流量過濾模塊負責提取出網絡流中的P2P流量,標記能夠識別出P2P協議類型的P2P流量,通過流量特征聚類識別出使用同一P2P網絡的節點,生成P2P節點群;惡意流量檢測模塊負責檢測端口掃描行為、DDoS攻擊行為和垃圾發送行為,并對檢測出來的具有上述三種行為的節點分別標記;整合判斷模塊負責整合P2P流量過濾模塊和惡意流量檢測模塊的檢測結果,綜合判斷網絡中是否存在P2P僵尸網絡。

圖3 P2P僵尸網絡檢測系統功能模塊圖
本文在對P2P僵尸網絡的工作機制、檢測方法的研究基礎上,提出了一個基于P2P僵尸網絡檢測系統的設計方案。但該系統并不能檢測出所有的P2P僵尸程序,還需要作進一步的研究,不斷提高檢測效率。
[1]中國互聯網絡信息中心.中國互聯網絡發展狀況統計報告[EB/O L].h t t p://w w w.c n n i c.n e t.c n/,2014.
[2]國家互聯網應急中心.C NC ER T互聯網安全威脅報告[EB/O L].h t t p://w w w.c e r t.o r g.c n/,2014.
[3]諸葛建偉,韓心慧,周勇林,等.僵尸網絡研究[J].軟件學報,2008,19(3):702-715.
[4]唐雅娟,柳雪娟.P2 P僵尸網絡的檢測方法[J].計算機安全,2013,13(9):32-36.
[5]王海龍,龔正虎,侯婕.僵尸網絡檢測技術研究進展[J],計算機研究與發展,2010,47(12):2038-2044.