李金猛 王劍 唐朝京
摘 要: 梳理了P2P流量識別與基于流量分析的P2P僵尸網絡檢測的若干方法,在深入分析其各自優點與局限性的基礎上提出了一種復合檢測系統模型CAID。CAID模型由捕獲、分析、識別和檢測四部分組成,該模型針對P2P僵尸網絡,通過流量的獲取、識別與分析構建了完整的檢測預警機制,為后續處理打下了堅實基礎。最后,對該模型進行了實驗分析。
關鍵詞: 僵尸網絡; 流量分析; 檢測模型; P2P
中圖分類號: TN711?34 文獻標識碼: A 文章編號: 1004?373X(2015)19?0106?04
Abstract: The methods of P2P flow identification and P2P botnet detection based on flow analysis are introduced. A composite detection system model CAID is put forward on the basis of analyzing the advantages and limitations of the methods. The model is consisted of capture, analysis, identification and detection. The integrated detection and early warning mechanism was constructed by flow acquisition, identification and analysis for P2P botnet, which builds a solid foundation for the subsequent processing. This model was conducted with experimental analysis.
Keywords: botnet; flow analysis; detection model; P2P
0 引 言
僵尸網絡是攻擊者出于惡意目的,傳播僵尸程序控制大量主機,并通過一對多的命令與控制信道所組成的網絡[1]。僵尸網絡為攻擊者提供了發送垃圾郵件、DDoS攻擊、竊取用戶信息、點擊欺詐、網絡仿冒、傳播惡意軟件與保存非法文件等多種攻擊方式的平臺,迅速發展成互聯網最嚴重的安全威脅之一。早期的僵尸網絡多是基于IRC聊天協議或是HTTP協議搭建集中式的命令與控制信道,盡管搭建簡單、可擴展性強、命令傳遞效率高,但都存在單點失效的缺陷。
與傳統客戶機/服務器模式不同,P2P網絡采用分布式結構,利用網絡邊緣節點傳遞控制命令、管理信息和資源,網絡中每個節點既是客戶機又是服務器。P2P僵尸網絡作為新一代僵尸網絡,采用P2P協議構建其命令與控制機制使得它們更有隱蔽性和魯棒性,其功能和結構不斷翻新,并通過十來年的發展已經構成了越來越大的網絡安全威脅,國內外各研究機構和反病毒廠商紛紛展開了對它的跟蹤與研究。
針對P2P僵尸網絡的檢測研究已經在多個方面深入開展,但由于P2P僵尸網絡較強的個性特征,一直缺乏有效通用的檢測方法。當前檢測方法主要分為基于流量分析的檢測方法和基于異常行為的檢測方法。本文主要探討基于流量分析的檢測方法。
基于流量分析的檢測方法通過分析P2P僵尸網絡在各個生命周期產生的特殊網絡數據,找出P2P僵尸網絡的流量和行為特征并生成特征向量,然后用機器學習的方法對P2P僵尸網絡進行檢測,以此來判斷網絡流量中是否存在P2P僵尸流量。
Thorsten Holz等人通過反匯編僵尸病毒的二進制代碼,剖析其傳播機制、惡意行為與加密方式等特征,進而實現對P2P僵尸網絡的跟蹤、檢測與反制[2]。
Saad等人從網絡流和通信模式中提取17種特征建立特征組,使用10倍交叉驗證技術來評估和比較5種常見的機器學習技術,發現SVM的正確檢測率大約為97.8%,可用于構建僵尸網絡檢測框架[3]。
Liu等定義一組指標作為數據挖掘的參數來區分僵尸主機流量、正常P2P流量、游戲流量和一般網絡流量。分析和測試結果表明,數據挖掘技術可以在同一主機的各種混合流中發現Peacomm僵尸網絡流,檢測率在87%~98%之間[4]。該方法能檢測加密的P2P僵尸網絡流量,但需處理大量的流信息,復雜度高[5]。
文獻[6]提出基于TCP連接成功檢測算法動態分析快速定位僵尸網絡,通過從交換機鏡像端口采集數據,定義時間滑動窗口為100 s,很好地區分了P2P僵尸網絡、傳統應用和P2P應用三種不同流量[6]。然而問題是該實驗為定制環境,并未經受實際網絡環境檢驗,所針對的也是個別僵尸網絡,并且對數據采集有很高的要求。
本文著眼于利用P2P僵尸網絡不同生命周期階段中產生的特征流量來檢測P2P僵尸網絡,基于豐富而有效的流量分析識別技術,結合惡意網絡行為特征的檢測,構建一種新的P2P僵尸網絡檢測系統模型并給予實驗驗證。
1 P2P流量分析與識別
到目前為止,已知的P2P網絡流量分析與識別方法主要有以下四種:基于固定端口識別、基于內容特征識別、基于流行為特征識別以及基于機器學習識別。下面簡要說明各識別方法的相關特點。
(1) 基于固定端口識別方法
根據各個應用協議在IANA(The Internet Assigned Numbers Authority)注冊的端口號來標識協議,其基本原理是通過TCP/IP模型的傳輸層UDP數據包或者TCP數據包中的源、目的端口號來識別一些網絡流量。由于算法簡單、所需信息少,而且在第一代的集中式P2P網絡中,P2P應用大多使用固定的端口進行通信,因而端口識別成了最早的P2P流量識別方法。然而,隨著技術的發展,一些P2P應用使用隨機端口或偽裝使用一些傳統應用端口進行通信,TCP/UDP端口識別方法的準確率[7]已經低于50%。endprint
(2) 基于內容特征識別方法
即深度包檢測技術(Deep Packet Inspection,DPI),其主要原理是對P2P應用載荷進行報文特征分析,提取特征關鍵詞串,再對特征串根據應用層協議進行定義(定義的一般原則[8]為:選擇某一P2P協議特有的,在實際數據交互過程中必須出現且出現頻率最高的關鍵詞串),建立特征庫。然后對基于五元組的網絡數據流,采用模式匹配算法判斷其是否存在特征庫中的特征串,如果匹配成功,那么該網絡數據流就是P2P應用的流量。該方法識別精準、穩定可靠,存在的問題是對未知或加密流量均無能為力,并且時空開銷也比較大。
(3) 基于流行為特征識別方法
該識別方法主要是通過節點之間的連接模式識別P2P流量,如通過節點角色、{源IP,目的IP}協議對、{IP,Port}對等檢測。該方法不需要檢測應用載荷特征,其檢測對象主要是網絡中的節點,在P2P節點之間傳輸的網絡數據流被認為是P2P流。這種識別方法在實際應用中面臨的問題主要有:僅能粗粒度地識別P2P和非P2P應用,一般不能區分出具體的P2P應用;提取P2P網絡行為特征的時間開銷和空間開銷較大[9]。
(4) 基于機器學習識別方法
首先觀測流量數據樣本(這些網絡流量應當是具有一些統計特征的,例如流的持續時間、數據包大小、數據包方差等統計信息,這些統計特征對某些特定的應用來說是獨特并鮮明的,可以使不同的應用互相區別開來)。然后,根據這些網絡流量的各種統計屬性特征進行訓練,構建訓練模型,最后通過學習和預測分類出新的數據類型。該方法具有良好的適應性,不論是根據預定義還是聚類的方法設計出的識別分類系統,在面對新的應用時都能方便地獲得應用特征。
基于以上分析,新的檢測系統模型在P2P流量識別這一步將綜合采用固定端口、內容特征以及流行為特征識別方法,結合各方法的優點,有效過濾出P2P網絡流量。P2P僵尸網絡檢測模塊采用基于機器學習識別方法,并選用支持向量機算法。
2 CAID檢測模型
CAID檢測模型由捕獲、分析、識別和檢測四部分組成,如圖1所示。通過捕獲從實時高速網絡環境中獲取數據包,通過分析將數據包按照五元組匯聚成流,通過識別過濾出P2P流量,通過對流量的分析最后檢測出P2P僵尸網絡。
2.1 CAID檢測模型的捕獲
模型的捕獲部分主要完成對實際高速網絡的實時抓包功能,采用Winpcap平臺將網卡設置為混雜模式或者直接利用交換機鏡像端口獲取實時網絡數據包。具體實現流程如圖2所示。
2.2 CAID檢測模型的分析
模型分析部分的主要工作是對捕獲的網絡數據包進行鏈路層、IP層和傳輸層的協議分析,提取出五元組信息,即源IP地址、目的IP地址、源端口號、目的端口號、協議類型,并以此將捕獲到的數據包匯聚成不同的數據流。其過程如圖3所示。
2.3 CAID檢測模型的識別
針對協議分析部分匯聚出的數據流,依次采用基于固定端口、內容特征以及流行為特征識別方法識別出P2P流量,圖4為實現流程框圖。這種復合識別方法由簡入繁,有效發揮各種識別方法的優點,高效利用了有限的計算資源,能較快地從實際網絡數據流中過濾出P2P流量。
2.4 CAID檢測模型的檢測
本部分在協議識別的基礎上,繼續分析P2P流量及其行為特征,運用支持向量機技術將結果判決為P2P僵尸網絡或者非僵尸網絡(一般合法P2P應用)。支持向量機(SVM)在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢[10],其實現思想是通過非線性映射(核函數)將非線性樣本問題轉化為某個高維空間中的線性問題,進而在此變換空間構造出分類超平面。
本模型采用在高維特征空間中實現最優分類超平面的簡單兩層支持向量機,如圖6表示。決策規則為[y=sgni=1naiyiKxi,x+b,]權值為[a1y1,a2y2,…,anyn]。
對于檢測出的P2P僵尸網絡,系統會自動生成報告,以便進一步采取測量甚至反制等安全對抗措施。
3 實驗分析
采用200臺高性能計算機,樹形拓撲結構進行模擬實驗。實驗環境配置為:硬件:CPU Intel 酷睿i5,內存4 GB;軟件:各計算機應用VMware虛擬機安裝5個操作系統,均為WinXP,選用P2P僵尸程序為Peacomm,獨立進行實驗10次。采集特征:單位時間內數據包數(npps)、單位時間內字節數(nbps)和單位數據包所含字節數(nbpp)。采用交叉驗證方法,應用Libsvm工具,根據檢測成功率數據繪制的實驗結果如圖7所示。
實驗結果表明,CAID檢測模型的檢測成功率隨節點增加而逐漸下降,最后穩定在85%左右,CAID模型檢測效果良好。
4 結 語
本文在流量分析識別的基礎上提出了CAID檢測模型,針對模型的捕獲、分析、識別與檢測等部分分別進行設計和描述。模型運用Winpcap機制從實時網絡中捕獲數據包,經協議分析匯聚成流,再通過一個復合識別機制過濾出P2P流量,最后將P2P流量提交檢測部分,采用支持向量機方法檢測出P2P僵尸網絡流量。通過模擬實驗的分析,模型檢測效果良好。進一步的工作將是優化識別與檢測算法,拓展并檢驗模型的適用性。
參考文獻
[1] 諸葛建偉,韓心慧,周勇林,等.僵尸網絡研究[J].軟件學報,2008,19(3):702?715.
[2] 王明麗.基于主機的P2P僵尸病毒檢測技術研究[D].成都:電子科技大學,2009.
[3] SAAD S, TRAORE I, GHORBANI A, et al. Detecting P2P botnets through network behavior analysis and machine learning [C]// Proceedings of 2011 the 9th IEEE Annual International Conference on Privacy, Security and Trust. Piscataway: IEEE, 2011: 174?180.
[4] LIU J, XIAO Y, GHABOOSI K, et al. Botnet: classification, attacks, detection, tracing, and preventive measures [J]. Eurasip Journal on Wireless Communications and Networking, 2009, 2009 (1): 53?56.
[5] 唐雅娟,柳雪娟.P2P僵尸網絡的檢測方法[J].計算機安全,2013(9):32?36.
[6] 劉建波.基于流量分析的P2P僵尸網絡檢測[J].計算機與數字工程,2011(3):90?91.
[7] ROUGHAN M, SUBHABRATA S, SPATSCHECK O, et al. Class?of?service mapping for QoS: a statistical signature?based approach to IP traffic classification [C]// Proceedings of 2004 ACM SIGCOMM Internet Measurement Conference. New York: ACM Press, 2004: 135?148.
[8] 陳亮,龔儉,徐選.基于特征串的應用層協議識別[J].計算機工程與應用,2006(24):16?19.
[9] 龍濤.一種改進的P2P流量識別方法的研究與實現[D].重慶:重慶郵電大學,2013.
[10] 張學工.關于統計學習理論與支持向量機[J].自動化學報,2000,26(1):32?42.endprint