李金猛 王劍 唐朝京
摘 要: 梳理了P2P流量識別與基于流量分析的P2P僵尸網(wǎng)絡(luò)檢測的若干方法,在深入分析其各自優(yōu)點與局限性的基礎(chǔ)上提出了一種復(fù)合檢測系統(tǒng)模型CAID。CAID模型由捕獲、分析、識別和檢測四部分組成,該模型針對P2P僵尸網(wǎng)絡(luò),通過流量的獲取、識別與分析構(gòu)建了完整的檢測預(yù)警機(jī)制,為后續(xù)處理打下了堅實基礎(chǔ)。最后,對該模型進(jìn)行了實驗分析。
關(guān)鍵詞: 僵尸網(wǎng)絡(luò); 流量分析; 檢測模型; P2P
中圖分類號: TN711?34 文獻(xiàn)標(biāo)識碼: 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 引 言
僵尸網(wǎng)絡(luò)是攻擊者出于惡意目的,傳播僵尸程序控制大量主機(jī),并通過一對多的命令與控制信道所組成的網(wǎng)絡(luò)[1]。僵尸網(wǎng)絡(luò)為攻擊者提供了發(fā)送垃圾郵件、DDoS攻擊、竊取用戶信息、點擊欺詐、網(wǎng)絡(luò)仿冒、傳播惡意軟件與保存非法文件等多種攻擊方式的平臺,迅速發(fā)展成互聯(lián)網(wǎng)最嚴(yán)重的安全威脅之一。早期的僵尸網(wǎng)絡(luò)多是基于IRC聊天協(xié)議或是HTTP協(xié)議搭建集中式的命令與控制信道,盡管搭建簡單、可擴(kuò)展性強、命令傳遞效率高,但都存在單點失效的缺陷。
與傳統(tǒng)客戶機(jī)/服務(wù)器模式不同,P2P網(wǎng)絡(luò)采用分布式結(jié)構(gòu),利用網(wǎng)絡(luò)邊緣節(jié)點傳遞控制命令、管理信息和資源,網(wǎng)絡(luò)中每個節(jié)點既是客戶機(jī)又是服務(wù)器。P2P僵尸網(wǎng)絡(luò)作為新一代僵尸網(wǎng)絡(luò),采用P2P協(xié)議構(gòu)建其命令與控制機(jī)制使得它們更有隱蔽性和魯棒性,其功能和結(jié)構(gòu)不斷翻新,并通過十來年的發(fā)展已經(jīng)構(gòu)成了越來越大的網(wǎng)絡(luò)安全威脅,國內(nèi)外各研究機(jī)構(gòu)和反病毒廠商紛紛展開了對它的跟蹤與研究。
針對P2P僵尸網(wǎng)絡(luò)的檢測研究已經(jīng)在多個方面深入開展,但由于P2P僵尸網(wǎng)絡(luò)較強的個性特征,一直缺乏有效通用的檢測方法。當(dāng)前檢測方法主要分為基于流量分析的檢測方法和基于異常行為的檢測方法。本文主要探討基于流量分析的檢測方法。
基于流量分析的檢測方法通過分析P2P僵尸網(wǎng)絡(luò)在各個生命周期產(chǎn)生的特殊網(wǎng)絡(luò)數(shù)據(jù),找出P2P僵尸網(wǎng)絡(luò)的流量和行為特征并生成特征向量,然后用機(jī)器學(xué)習(xí)的方法對P2P僵尸網(wǎng)絡(luò)進(jìn)行檢測,以此來判斷網(wǎng)絡(luò)流量中是否存在P2P僵尸流量。
Thorsten Holz等人通過反匯編僵尸病毒的二進(jìn)制代碼,剖析其傳播機(jī)制、惡意行為與加密方式等特征,進(jìn)而實現(xiàn)對P2P僵尸網(wǎng)絡(luò)的跟蹤、檢測與反制[2]。
Saad等人從網(wǎng)絡(luò)流和通信模式中提取17種特征建立特征組,使用10倍交叉驗證技術(shù)來評估和比較5種常見的機(jī)器學(xué)習(xí)技術(shù),發(fā)現(xiàn)SVM的正確檢測率大約為97.8%,可用于構(gòu)建僵尸網(wǎng)絡(luò)檢測框架[3]。
Liu等定義一組指標(biāo)作為數(shù)據(jù)挖掘的參數(shù)來區(qū)分僵尸主機(jī)流量、正常P2P流量、游戲流量和一般網(wǎng)絡(luò)流量。分析和測試結(jié)果表明,數(shù)據(jù)挖掘技術(shù)可以在同一主機(jī)的各種混合流中發(fā)現(xiàn)Peacomm僵尸網(wǎng)絡(luò)流,檢測率在87%~98%之間[4]。該方法能檢測加密的P2P僵尸網(wǎng)絡(luò)流量,但需處理大量的流信息,復(fù)雜度高[5]。
文獻(xiàn)[6]提出基于TCP連接成功檢測算法動態(tài)分析快速定位僵尸網(wǎng)絡(luò),通過從交換機(jī)鏡像端口采集數(shù)據(jù),定義時間滑動窗口為100 s,很好地區(qū)分了P2P僵尸網(wǎng)絡(luò)、傳統(tǒng)應(yīng)用和P2P應(yīng)用三種不同流量[6]。然而問題是該實驗為定制環(huán)境,并未經(jīng)受實際網(wǎng)絡(luò)環(huán)境檢驗,所針對的也是個別僵尸網(wǎng)絡(luò),并且對數(shù)據(jù)采集有很高的要求。
本文著眼于利用P2P僵尸網(wǎng)絡(luò)不同生命周期階段中產(chǎn)生的特征流量來檢測P2P僵尸網(wǎng)絡(luò),基于豐富而有效的流量分析識別技術(shù),結(jié)合惡意網(wǎng)絡(luò)行為特征的檢測,構(gòu)建一種新的P2P僵尸網(wǎng)絡(luò)檢測系統(tǒng)模型并給予實驗驗證。
1 P2P流量分析與識別
到目前為止,已知的P2P網(wǎng)絡(luò)流量分析與識別方法主要有以下四種:基于固定端口識別、基于內(nèi)容特征識別、基于流行為特征識別以及基于機(jī)器學(xué)習(xí)識別。下面簡要說明各識別方法的相關(guān)特點。
(1) 基于固定端口識別方法
根據(jù)各個應(yīng)用協(xié)議在IANA(The Internet Assigned Numbers Authority)注冊的端口號來標(biāo)識協(xié)議,其基本原理是通過TCP/IP模型的傳輸層UDP數(shù)據(jù)包或者TCP數(shù)據(jù)包中的源、目的端口號來識別一些網(wǎng)絡(luò)流量。由于算法簡單、所需信息少,而且在第一代的集中式P2P網(wǎng)絡(luò)中,P2P應(yīng)用大多使用固定的端口進(jìn)行通信,因而端口識別成了最早的P2P流量識別方法。然而,隨著技術(shù)的發(fā)展,一些P2P應(yīng)用使用隨機(jī)端口或偽裝使用一些傳統(tǒng)應(yīng)用端口進(jìn)行通信,TCP/UDP端口識別方法的準(zhǔn)確率[7]已經(jīng)低于50%。endprint
(2) 基于內(nèi)容特征識別方法
即深度包檢測技術(shù)(Deep Packet Inspection,DPI),其主要原理是對P2P應(yīng)用載荷進(jìn)行報文特征分析,提取特征關(guān)鍵詞串,再對特征串根據(jù)應(yīng)用層協(xié)議進(jìn)行定義(定義的一般原則[8]為:選擇某一P2P協(xié)議特有的,在實際數(shù)據(jù)交互過程中必須出現(xiàn)且出現(xiàn)頻率最高的關(guān)鍵詞串),建立特征庫。然后對基于五元組的網(wǎng)絡(luò)數(shù)據(jù)流,采用模式匹配算法判斷其是否存在特征庫中的特征串,如果匹配成功,那么該網(wǎng)絡(luò)數(shù)據(jù)流就是P2P應(yīng)用的流量。該方法識別精準(zhǔn)、穩(wěn)定可靠,存在的問題是對未知或加密流量均無能為力,并且時空開銷也比較大。
(3) 基于流行為特征識別方法
該識別方法主要是通過節(jié)點之間的連接模式識別P2P流量,如通過節(jié)點角色、{源IP,目的IP}協(xié)議對、{IP,Port}對等檢測。該方法不需要檢測應(yīng)用載荷特征,其檢測對象主要是網(wǎng)絡(luò)中的節(jié)點,在P2P節(jié)點之間傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)流被認(rèn)為是P2P流。這種識別方法在實際應(yīng)用中面臨的問題主要有:僅能粗粒度地識別P2P和非P2P應(yīng)用,一般不能區(qū)分出具體的P2P應(yīng)用;提取P2P網(wǎng)絡(luò)行為特征的時間開銷和空間開銷較大[9]。
(4) 基于機(jī)器學(xué)習(xí)識別方法
首先觀測流量數(shù)據(jù)樣本(這些網(wǎng)絡(luò)流量應(yīng)當(dāng)是具有一些統(tǒng)計特征的,例如流的持續(xù)時間、數(shù)據(jù)包大小、數(shù)據(jù)包方差等統(tǒng)計信息,這些統(tǒng)計特征對某些特定的應(yīng)用來說是獨特并鮮明的,可以使不同的應(yīng)用互相區(qū)別開來)。然后,根據(jù)這些網(wǎng)絡(luò)流量的各種統(tǒng)計屬性特征進(jìn)行訓(xùn)練,構(gòu)建訓(xùn)練模型,最后通過學(xué)習(xí)和預(yù)測分類出新的數(shù)據(jù)類型。該方法具有良好的適應(yīng)性,不論是根據(jù)預(yù)定義還是聚類的方法設(shè)計出的識別分類系統(tǒng),在面對新的應(yīng)用時都能方便地獲得應(yīng)用特征。
基于以上分析,新的檢測系統(tǒng)模型在P2P流量識別這一步將綜合采用固定端口、內(nèi)容特征以及流行為特征識別方法,結(jié)合各方法的優(yōu)點,有效過濾出P2P網(wǎng)絡(luò)流量。P2P僵尸網(wǎng)絡(luò)檢測模塊采用基于機(jī)器學(xué)習(xí)識別方法,并選用支持向量機(jī)算法。
2 CAID檢測模型
CAID檢測模型由捕獲、分析、識別和檢測四部分組成,如圖1所示。通過捕獲從實時高速網(wǎng)絡(luò)環(huán)境中獲取數(shù)據(jù)包,通過分析將數(shù)據(jù)包按照五元組匯聚成流,通過識別過濾出P2P流量,通過對流量的分析最后檢測出P2P僵尸網(wǎng)絡(luò)。
2.1 CAID檢測模型的捕獲
模型的捕獲部分主要完成對實際高速網(wǎng)絡(luò)的實時抓包功能,采用Winpcap平臺將網(wǎng)卡設(shè)置為混雜模式或者直接利用交換機(jī)鏡像端口獲取實時網(wǎng)絡(luò)數(shù)據(jù)包。具體實現(xiàn)流程如圖2所示。
2.2 CAID檢測模型的分析
模型分析部分的主要工作是對捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行鏈路層、IP層和傳輸層的協(xié)議分析,提取出五元組信息,即源IP地址、目的IP地址、源端口號、目的端口號、協(xié)議類型,并以此將捕獲到的數(shù)據(jù)包匯聚成不同的數(shù)據(jù)流。其過程如圖3所示。
2.3 CAID檢測模型的識別
針對協(xié)議分析部分匯聚出的數(shù)據(jù)流,依次采用基于固定端口、內(nèi)容特征以及流行為特征識別方法識別出P2P流量,圖4為實現(xiàn)流程框圖。這種復(fù)合識別方法由簡入繁,有效發(fā)揮各種識別方法的優(yōu)點,高效利用了有限的計算資源,能較快地從實際網(wǎng)絡(luò)數(shù)據(jù)流中過濾出P2P流量。
2.4 CAID檢測模型的檢測
本部分在協(xié)議識別的基礎(chǔ)上,繼續(xù)分析P2P流量及其行為特征,運用支持向量機(jī)技術(shù)將結(jié)果判決為P2P僵尸網(wǎng)絡(luò)或者非僵尸網(wǎng)絡(luò)(一般合法P2P應(yīng)用)。支持向量機(jī)(SVM)在解決小樣本、非線性及高維模式識別中表現(xiàn)出許多特有的優(yōu)勢[10],其實現(xiàn)思想是通過非線性映射(核函數(shù))將非線性樣本問題轉(zhuǎn)化為某個高維空間中的線性問題,進(jìn)而在此變換空間構(gòu)造出分類超平面。
本模型采用在高維特征空間中實現(xiàn)最優(yōu)分類超平面的簡單兩層支持向量機(jī),如圖6表示。決策規(guī)則為[y=sgni=1naiyiKxi,x+b,]權(quán)值為[a1y1,a2y2,…,anyn]。
對于檢測出的P2P僵尸網(wǎng)絡(luò),系統(tǒng)會自動生成報告,以便進(jìn)一步采取測量甚至反制等安全對抗措施。
3 實驗分析
采用200臺高性能計算機(jī),樹形拓?fù)浣Y(jié)構(gòu)進(jìn)行模擬實驗。實驗環(huán)境配置為:硬件:CPU Intel 酷睿i5,內(nèi)存4 GB;軟件:各計算機(jī)應(yīng)用VMware虛擬機(jī)安裝5個操作系統(tǒng),均為WinXP,選用P2P僵尸程序為Peacomm,獨立進(jìn)行實驗10次。采集特征:單位時間內(nèi)數(shù)據(jù)包數(shù)(npps)、單位時間內(nèi)字節(jié)數(shù)(nbps)和單位數(shù)據(jù)包所含字節(jié)數(shù)(nbpp)。采用交叉驗證方法,應(yīng)用Libsvm工具,根據(jù)檢測成功率數(shù)據(jù)繪制的實驗結(jié)果如圖7所示。
實驗結(jié)果表明,CAID檢測模型的檢測成功率隨節(jié)點增加而逐漸下降,最后穩(wěn)定在85%左右,CAID模型檢測效果良好。
4 結(jié) 語
本文在流量分析識別的基礎(chǔ)上提出了CAID檢測模型,針對模型的捕獲、分析、識別與檢測等部分分別進(jìn)行設(shè)計和描述。模型運用Winpcap機(jī)制從實時網(wǎng)絡(luò)中捕獲數(shù)據(jù)包,經(jīng)協(xié)議分析匯聚成流,再通過一個復(fù)合識別機(jī)制過濾出P2P流量,最后將P2P流量提交檢測部分,采用支持向量機(jī)方法檢測出P2P僵尸網(wǎng)絡(luò)流量。通過模擬實驗的分析,模型檢測效果良好。進(jìn)一步的工作將是優(yōu)化識別與檢測算法,拓展并檢驗?zāi)P偷倪m用性。
參考文獻(xiàn)
[1] 諸葛建偉,韓心慧,周勇林,等.僵尸網(wǎng)絡(luò)研究[J].軟件學(xué)報,2008,19(3):702?715.
[2] 王明麗.基于主機(jī)的P2P僵尸病毒檢測技術(shù)研究[D].成都:電子科技大學(xué),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僵尸網(wǎng)絡(luò)的檢測方法[J].計算機(jī)安全,2013(9):32?36.
[6] 劉建波.基于流量分析的P2P僵尸網(wǎng)絡(luò)檢測[J].計算機(jī)與數(shù)字工程,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] 陳亮,龔儉,徐選.基于特征串的應(yīng)用層協(xié)議識別[J].計算機(jī)工程與應(yīng)用,2006(24):16?19.
[9] 龍濤.一種改進(jìn)的P2P流量識別方法的研究與實現(xiàn)[D].重慶:重慶郵電大學(xué),2013.
[10] 張學(xué)工.關(guān)于統(tǒng)計學(xué)習(xí)理論與支持向量機(jī)[J].自動化學(xué)報,2000,26(1):32?42.endprint