邵秀麗,蔣鴻玲,耿梅潔,李耀芳
(1. 南開大學(xué)信息技術(shù)科學(xué)學(xué)院,天津 3 00071;2. 天津城建大學(xué)計(jì)算機(jī)與信息工程學(xué)院,天津 30038 4)
基于關(guān)聯(lián)關(guān)系和MapReduce的僵尸網(wǎng)絡(luò)檢測(cè)
邵秀麗1,蔣鴻玲1,耿梅潔1,李耀芳2
(1. 南開大學(xué)信息技術(shù)科學(xué)學(xué)院,天津 3 00071;2. 天津城建大學(xué)計(jì)算機(jī)與信息工程學(xué)院,天津 30038 4)
現(xiàn)有僵尸網(wǎng)絡(luò)檢測(cè)方法的計(jì)算量較大,導(dǎo)致檢測(cè)效率低,而云計(jì)算的強(qiáng)大數(shù)據(jù)處理和分析能力為僵尸網(wǎng)絡(luò)的檢測(cè)提供了新的思路和解決方案。為此,設(shè)計(jì)并實(shí)現(xiàn)一種基于MapReduce模型的并行僵尸網(wǎng)絡(luò)檢測(cè)算法,基于云協(xié)同和流間關(guān)聯(lián)關(guān)系對(duì)僵尸網(wǎng)絡(luò)進(jìn)行檢測(cè)。提取流間關(guān)聯(lián)關(guān)系,將具有關(guān)聯(lián)關(guān)系的流聚集到同一個(gè)集合中,計(jì)算主機(jī)的分?jǐn)?shù),若分?jǐn)?shù)大于閾值則判斷為可疑的僵尸主機(jī)。實(shí)驗(yàn)結(jié)果表明,該算法對(duì)P2P僵尸網(wǎng)絡(luò)的檢測(cè)率能夠達(dá)到90%以上,誤報(bào)率控制在4%以下,并且隨著云服務(wù)器端計(jì)算節(jié)點(diǎn)的增多,其處理云客戶端上傳數(shù)據(jù)及檢測(cè)僵尸網(wǎng)絡(luò)的效率更高。
僵尸網(wǎng)絡(luò);云計(jì)算;關(guān)聯(lián)關(guān)系;MapReduce模型;Hadoop云平臺(tái)
僵尸網(wǎng)絡(luò)的日益健壯和隱蔽導(dǎo)致對(duì)其檢測(cè)難度加大,而網(wǎng)速的加速則造成流量數(shù)據(jù)越來越多,導(dǎo)致檢測(cè)僵尸網(wǎng)絡(luò)方法的計(jì)算量不斷增大。云計(jì)算具有強(qiáng)大的數(shù)據(jù)分析和處理能力,可為僵尸網(wǎng)絡(luò)檢測(cè)提供高效的解決方案。
目前,學(xué)術(shù)界對(duì)僵尸網(wǎng)絡(luò)檢測(cè)的研究成果主要有:文獻(xiàn)[1]描述了P2P技術(shù)在僵尸網(wǎng)絡(luò)中的應(yīng)用并說明未來僵尸網(wǎng)絡(luò)的發(fā)展方向;文獻(xiàn)[2]提出了一種利用云計(jì)算檢測(cè)僵尸網(wǎng)絡(luò)的方法;文獻(xiàn)[3]利用云計(jì)算建立和處理大規(guī)模圖數(shù)據(jù)以檢測(cè)出發(fā)送垃圾郵件的僵尸網(wǎng)絡(luò);文獻(xiàn)[4]利用云計(jì)算設(shè)計(jì)了并行PageRank算法檢測(cè)僵尸網(wǎng)絡(luò)。一些安全公司利用云計(jì)算提供安全服務(wù),如瑞星提出了“云安全”方案。瑞星客戶端監(jiān)控計(jì)算機(jī)發(fā)現(xiàn)有可疑程序運(yùn)行時(shí),就將其上傳到瑞星云服務(wù)器端。服務(wù)器端收集了各個(gè)客戶端的可疑程序樣本,在云服務(wù)器端進(jìn)行各種分析處理[5]。目前,國(guó)內(nèi)外各大安全廠商提出的基于云計(jì)算的病毒檢測(cè)方案一般由大量云客戶端和云服務(wù)端構(gòu)成。云客戶端上傳可疑的軟件樣本等到云服務(wù)器端,云服務(wù)器端對(duì)收集到的惡意軟件樣本進(jìn)行分析處理,判斷是否是病毒,并對(duì)各個(gè)客戶端發(fā)布病毒處理的解決方案[6]。
針對(duì)僵尸網(wǎng)絡(luò)檢測(cè)問題,本文提出一種MapReduce并行關(guān)聯(lián)關(guān)系算法,使客戶端不上傳可疑程序,而是上傳自身的網(wǎng)絡(luò)訪問流量信息到云服務(wù)器端,并利用Hadoop機(jī)制對(duì)流量進(jìn)行分析處理[7]。
僵尸網(wǎng)絡(luò)云檢測(cè)方法的架構(gòu)如圖1所示,該方法由云客戶端和云服務(wù)器端及Hadoop協(xié)同完成對(duì)網(wǎng)絡(luò)訪問流量信息中的僵尸網(wǎng)絡(luò)行為的檢測(cè)。
圖1 僵尸網(wǎng)絡(luò)云檢測(cè)方法架構(gòu)
本文云檢測(cè)僵尸網(wǎng)絡(luò)方法的執(zhí)行流程如下:
(1)上傳流量信息
云客戶端運(yùn)行流量信息采集和上傳數(shù)據(jù)功能的程序,記錄主機(jī)發(fā)送和接收的流量,并對(duì)其收發(fā)的數(shù)據(jù)包轉(zhuǎn)換為流,然后統(tǒng)計(jì)流的信息,如流的持續(xù)時(shí)間、數(shù)據(jù)包個(gè)數(shù)、流的字節(jié)數(shù)等。僵尸網(wǎng)絡(luò)具有以下主要特點(diǎn):
1)僵尸主機(jī)要與控制端或其他僵尸主機(jī)之間交互信息,獲取命令并上報(bào)攻擊結(jié)果或者維持整個(gè)僵尸網(wǎng)絡(luò)。
2)僵尸主機(jī)間的通信流量通常傳遞的是控制信息,不需傳遞大量的數(shù)據(jù),故僵尸網(wǎng)絡(luò)產(chǎn)生的流通常持續(xù)時(shí)間較短,且流中數(shù)據(jù)包個(gè)數(shù)較少[8-9]。
針對(duì)上述特點(diǎn),本文設(shè)計(jì)云客戶端把具有上述特征的可疑流量信息過濾掉,余下的信息上傳到云服務(wù)器端,這樣既可以減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,又可以降低云服務(wù)器端的計(jì)算量。
(2)網(wǎng)絡(luò)流量信息收集及預(yù)處理
云服務(wù)器端首先收集所有客戶端上傳的網(wǎng)絡(luò)流量信息,然后對(duì)流量預(yù)處理統(tǒng)計(jì)流的持續(xù)時(shí)間、數(shù)據(jù)包大小、個(gè)數(shù)等信息。
(3)僵尸網(wǎng)絡(luò)的檢測(cè)
將預(yù)處理后的網(wǎng)絡(luò)流量數(shù)據(jù)上傳至Hadoop,云服務(wù)器端利用MapReduce基于上述步驟的信息進(jìn)行計(jì)算,以有效檢測(cè)僵尸網(wǎng)絡(luò)。
對(duì)于預(yù)處理后的可信流信息,本文設(shè)計(jì)MapReduce對(duì)流間關(guān)聯(lián)關(guān)系的并行算法,以實(shí)現(xiàn)對(duì)僵尸網(wǎng)絡(luò)的檢測(cè)。
3.1 基于流間關(guān)聯(lián)關(guān)系的檢測(cè)算法
僵尸主機(jī)通常維護(hù)一個(gè)鄰居節(jié)點(diǎn)列表,且頻繁依次訪問列表中的節(jié)點(diǎn),這一訪問形成的流具有關(guān)聯(lián)關(guān)系,而正常主機(jī)行為的訪問流間不具有關(guān)聯(lián)關(guān)系,因此,本文算法基于流間關(guān)聯(lián)關(guān)系來檢測(cè)僵尸網(wǎng)絡(luò)[10]。然而,僵尸主機(jī)為逃避這種檢測(cè)而故意不依次訪問鄰居列表中的節(jié)點(diǎn),采取隨機(jī)的方式遍歷鄰居列表中的節(jié)點(diǎn),即每次訪問鄰居列表中節(jié)點(diǎn)的順序不一樣。如果僵尸主機(jī)采用隨機(jī)的方式訪問,則其形成的流會(huì)存在二級(jí)關(guān)聯(lián)關(guān)系,但不一定存在多級(jí)關(guān)聯(lián)關(guān)系。這樣做是因?yàn)榻┦鳈C(jī)以隨機(jī)的方式訪問鄰居列表中的節(jié)點(diǎn)時(shí),雖然訪問各個(gè)節(jié)點(diǎn)的流每次不會(huì)以相同的順序出現(xiàn),但這些流每次出現(xiàn)的時(shí)間間隔都很小,并且總是集中在一起出現(xiàn),如果將這些流聚集到一個(gè)集合中,則該集合中的流都有關(guān)聯(lián)。如僵尸主機(jī)H維護(hù)一個(gè)鄰居節(jié)點(diǎn)列表,列表中有1~5個(gè)節(jié)點(diǎn),H頻繁訪問列表中的節(jié)點(diǎn)以獲取命令或者更新,但僵尸主機(jī)為逃避檢測(cè)每次訪問列表中節(jié)點(diǎn)的順序不一樣,H訪問這些節(jié)點(diǎn)形成的流Fi(i為H鄰居列表中的節(jié)點(diǎn))兩兩之間會(huì)有二級(jí)關(guān)聯(lián)關(guān)系,如F2在F3前出現(xiàn),記為F2→F3,同理則有F3→F4、F4→F1、F2→F4、F2→F5等。將這些流聚集到一個(gè)集合中s1中,如圖2所示。圖中每個(gè)節(jié)點(diǎn)表示主機(jī)H訪問其他主機(jī)形成的流,邊表示2個(gè)流間的二級(jí)關(guān)聯(lián)關(guān)系,如F1到F5有邊,表示存在二級(jí)關(guān)聯(lián)關(guān)系F1→F5、F5→F1。僵尸主機(jī)H訪問其鄰居列表中的節(jié)點(diǎn)形成的流F1~F5形成一個(gè)集合s1,同時(shí),主機(jī)H的用戶進(jìn)行正常的網(wǎng)絡(luò)訪問形成的流F6~F8形成一個(gè)集合s2,F(xiàn)9和F10形成一個(gè)集合s3。
圖2 僵尸主機(jī)H的流集合
在僵尸網(wǎng)絡(luò)相關(guān)流F1~F5形成的集合s1中,各個(gè)節(jié)點(diǎn)的連接程度較緊密,而在合法流F6~F10形成的集合s2和s3中,各個(gè)節(jié)點(diǎn)的連接程度較松散,并且合法流形成的集合通常節(jié)點(diǎn)個(gè)數(shù)較少。為有效識(shí)別僵尸網(wǎng)絡(luò)的流的集合,本文采用式(1)計(jì)算每個(gè)集合k的分?jǐn)?shù)SCk:
本文提出的檢測(cè)算法首先提取出每個(gè)云客戶端的二級(jí)關(guān)聯(lián)關(guān)系,再將二級(jí)關(guān)聯(lián)關(guān)系的流劃分到不同集合中,然后根據(jù)式(1)計(jì)算各個(gè)集合的分?jǐn)?shù),最后根據(jù)式(2)計(jì)算每個(gè)云客戶端的分?jǐn)?shù):
其中,m為該云客戶端的流所形成的集合總數(shù)。這里只考慮集合中元素個(gè)數(shù)nk大于nTh的集合,因?yàn)檎V鳈C(jī)如果有兩兩相繼出現(xiàn)的流,它們只會(huì)形成如圖2中s2和s3這樣小的集合,通常不會(huì)存在多個(gè)兩兩相繼出現(xiàn)的流之間聯(lián)系緊密的情況,而僵尸主機(jī)由于頻繁訪問鄰居列表中的節(jié)點(diǎn),訪問不同節(jié)點(diǎn)形成的流之間,任意2個(gè)都會(huì)相繼出現(xiàn),因而僵尸主機(jī)的流的集合中元素個(gè)數(shù)較多,所以,式(2)中只考慮集合元素個(gè)數(shù)大于nTh的。如果SH較大,則該云客戶端為可疑的僵尸客戶端,本文設(shè)置一個(gè)閾值sTh,如果SH大于sTh,則認(rèn)為該主機(jī)是僵尸客戶端。
3.2 用于檢測(cè)僵尸網(wǎng)絡(luò)的MapReduce并行算法
該并行算法首先提取流間二級(jí)關(guān)聯(lián)關(guān)系,然后再計(jì)算云客戶端的分?jǐn)?shù)。圖3是本文僵尸網(wǎng)絡(luò)檢測(cè)的MapReduce任務(wù)過程。分3個(gè)任務(wù)Job1、Job2和Job3提取二級(jí)關(guān)聯(lián)關(guān)系,Job4則計(jì)算云客戶端的分?jǐn)?shù),這4個(gè)任務(wù)串行工作,前一個(gè)任務(wù)的輸出是后一個(gè)任務(wù)的輸入[11]。
圖3中的流表示由云客戶端上傳給云服務(wù)器端預(yù)處理后的可信的流。其中,srcIP表示流的源IP地址;desIP表示流的目的IP地址;time表示流的開始時(shí)間,即第一個(gè)數(shù)據(jù)包到達(dá)的時(shí)間;split是Hadoop自動(dòng)對(duì)輸入文件的分塊,每塊默認(rèn)大小為64 MB[12]。每個(gè)MapReduce任務(wù)都被初始化為一個(gè)任務(wù),每個(gè)任務(wù)由Map階段和Reduce階段構(gòu)成。分別用2個(gè)函數(shù)來表示,即Map函數(shù)和Reduce函數(shù)。Map函數(shù)接收一個(gè)<Key, Value>形式的輸入,然后產(chǎn)生以<Key, Value>形式的輸出。Hadoop會(huì)對(duì)Map的輸出按關(guān)鍵字排序,并將關(guān)鍵字Key相同的Value集合傳遞給Reduce函數(shù)。Reduce函數(shù)接收一個(gè)形如<Key, list(Value)>形式的輸入,然后對(duì)這個(gè)Value集合進(jìn)行處理,最終Reduce的輸出也是<Key, Value>形式[13]。
圖3 用于僵尸網(wǎng)絡(luò)檢測(cè)的MapReduce任務(wù)過程
下面分別介紹各個(gè)任務(wù):
(1)Job1計(jì)算流出現(xiàn)的次數(shù)
如果2個(gè)流總是相繼出現(xiàn),那么在同一個(gè)時(shí)間窗口內(nèi),這2個(gè)流出現(xiàn)的次數(shù)相差很小,因此,只考察在相同時(shí)間段內(nèi)出現(xiàn)次數(shù)之差小于閾值nTh的流。提取關(guān)聯(lián)關(guān)系時(shí)只需考慮流的3個(gè)屬性:srcIP,desIP,time,用這3個(gè)屬性標(biāo)識(shí)一個(gè)流。Map1的輸出將(srcIP desIP)作為鍵Key,將開始時(shí)間作為值Value,使相同的(srcIP desIP)分到同一個(gè)Reduce任務(wù)中。Reduce1讀取Map1的中間結(jié)果,計(jì)算每對(duì)(srcIP desIP)的出現(xiàn)次數(shù)n。
(2)Job2提取候選二級(jí)關(guān)聯(lián)關(guān)系
先按源IP地址對(duì)流進(jìn)行分組,使每組內(nèi)的源IP地址相同。對(duì)每個(gè)云客戶端H,形成以H為源IP地址的一組流GH={fi}i=1,2,…,m。將GH中的流按照開始時(shí)間time排序,然后依次掃描每一個(gè)流,找出在當(dāng)前流后出現(xiàn),并且與當(dāng)前流的時(shí)間間隔小于tTh的所有后續(xù)流。如果這些后續(xù)流的出現(xiàn)次數(shù)和當(dāng)前流相差小于nTh,則這些流和當(dāng)前流可能具有關(guān)聯(lián)關(guān)系。假設(shè)找出x個(gè)滿足上述2個(gè)條件的后續(xù)流,則分別將這x個(gè)后續(xù)流與當(dāng)前流作為一對(duì)流記錄下來,形成x個(gè)候選二級(jí)關(guān)聯(lián)關(guān)系。
(3)Job3提取可信的二級(jí)關(guān)聯(lián)關(guān)系
Job3從Job2讀取候選二級(jí)關(guān)聯(lián)關(guān)系,計(jì)算每個(gè)關(guān)聯(lián)關(guān)系的置信度,如果置信度大于閾值,則認(rèn)為該關(guān)聯(lián)關(guān)系是可信的。Map3輸入的Key為該行的偏移量,Value為Job2的輸出,即候選二級(jí)關(guān)聯(lián)關(guān)系。Map3輸出的Key為候選二級(jí)關(guān)聯(lián)關(guān)系,值為空則以候選二級(jí)關(guān)聯(lián)關(guān)系作為鍵。Reduce3統(tǒng)計(jì)相同候選二級(jí)關(guān)聯(lián)關(guān)系出現(xiàn)的次數(shù),并計(jì)算置信度,最后輸出置信度大于閾值的二級(jí)關(guān)聯(lián)關(guān)系,從而找出可信的二級(jí)關(guān)聯(lián)關(guān)系。Reduce3的輸入為Map3的輸出,Reduce3的輸出為可信的二級(jí)關(guān)聯(lián)關(guān)系,格式為(srcIP desIP1 desIP2, c),其中,c為二級(jí)關(guān)聯(lián)關(guān)系的置信度,只輸出置信度大于閾值的。
(4)Job4計(jì)算云客戶端的分?jǐn)?shù)
Map4輸入的是Job3的輸出,即置信度大于閾值的二級(jí)關(guān)聯(lián)關(guān)系。由于每個(gè)云客戶端的分?jǐn)?shù)SH可以并行計(jì)算,因此Map4輸出的Key是srcIP,Value是(desIP1 desIP2),即二級(jí)關(guān)聯(lián)關(guān)系中的目的IP地址。Reduce4的工作就是將每個(gè)srcIP對(duì)應(yīng)的具有二級(jí)關(guān)聯(lián)關(guān)系的流劃分到不同集合中,使每個(gè)流與所在集合中至少一個(gè)流有關(guān)聯(lián)關(guān)系,然后計(jì)算各個(gè)集合的分?jǐn)?shù)SC和云客戶端的分?jǐn)?shù)SH。Reduce4的輸入為Map4的輸出,Reduce4的輸出是云客戶端的分?jǐn)?shù),格式為(srcIP, S)。
本文實(shí)驗(yàn)環(huán)境配置為9臺(tái)雙核計(jì)算機(jī),2.9 GHz CPU, 4 GB內(nèi)存。基于Oracle VM VirtualBox4.1.12的虛擬化平臺(tái),每臺(tái)虛擬機(jī)安裝Ubuntu 10.10操作系統(tǒng),Hadoop云平臺(tái)的版本為Hadoop 0.20.2,代碼編譯版本為JDK1.6.0_22。整個(gè)Hadoop集群有1個(gè)Master節(jié)點(diǎn)、8個(gè)Slave節(jié)點(diǎn)。各個(gè)虛擬機(jī)之間采用橋接的網(wǎng)絡(luò)方式連接。Hadoop環(huán)境配置如下:數(shù)據(jù)塊大小設(shè)為64 MB,每個(gè)節(jié)點(diǎn)可以同時(shí)執(zhí)行的最大Map任務(wù)數(shù)和最大Reduce任務(wù)數(shù)均設(shè)為3。
本文參考模擬生成啟發(fā)的數(shù)據(jù)集。實(shí)驗(yàn)?zāi)M了云服務(wù)器端收集到的流量,包括合法流量和僵尸網(wǎng)絡(luò)流量。合法流量以某校園網(wǎng)內(nèi)的流量為基礎(chǔ),模擬了云客戶端之間通信的流量,并將其作為背景流量。模擬的背景流量中主機(jī)個(gè)數(shù)為36 323個(gè),流個(gè)數(shù)為1 191 368個(gè)。模擬的僵尸網(wǎng)絡(luò)模型根據(jù)大量文獻(xiàn)總結(jié)得到,即僵尸主機(jī)維護(hù)一個(gè)節(jié)點(diǎn)列表并頻繁訪問列表中的節(jié)點(diǎn)以獲取命令或者更新。本文實(shí)驗(yàn)?zāi)M的僵尸網(wǎng)絡(luò)中每個(gè)僵尸主機(jī)維護(hù)一個(gè)節(jié)點(diǎn)列表,列表中節(jié)點(diǎn)個(gè)數(shù)最大值為15,最小個(gè)數(shù)為10。每個(gè)僵尸主機(jī)間隔一個(gè)295 s~395 s范圍內(nèi)的隨機(jī)時(shí)間訪問列表中的節(jié)點(diǎn),訪問列表中前后2個(gè)節(jié)點(diǎn)的時(shí)間間隔的最小值為0.1 s,最大值為1 s。實(shí)驗(yàn)中模擬的僵尸主機(jī)總數(shù)為100個(gè)。
實(shí)驗(yàn)1 分析本文檢測(cè)算法的檢測(cè)率和誤報(bào)率隨主機(jī)分?jǐn)?shù)閾值sTh增大而變化的情況,結(jié)果如表1所示??梢钥闯?,隨著sTh的增大,檢測(cè)率降低,誤報(bào)率降低。這是因?yàn)楫?dāng)sTh增大時(shí),一些僵尸客戶端的SH分?jǐn)?shù)小于sTh而未能被檢測(cè)出來,因而檢測(cè)率DR減小。隨著sTh的增大,SH大于sTh的正??蛻舳藗€(gè)數(shù)減少,因而誤報(bào)率降低。因此,sTh取0.6或0.7效果較好。
表1 sTh變化時(shí)的檢測(cè)率和誤報(bào)率 %
實(shí)驗(yàn)2 分析云服務(wù)器端中計(jì)算節(jié)點(diǎn)個(gè)數(shù)增大時(shí)基于MapReduce的僵尸網(wǎng)絡(luò)算法的運(yùn)行時(shí)間和加速比的變化情況。為分析算法處理不同規(guī)模網(wǎng)絡(luò)流量數(shù)據(jù)時(shí)的運(yùn)行時(shí)間和加速比,實(shí)驗(yàn)中模擬了包括數(shù)據(jù)集、運(yùn)行客戶端個(gè)數(shù)和文件大小數(shù)據(jù)集信息:(D1, 312 250, 85.97 MB),(D2, 624 500, 373.13 MB),(D3, 1 249 000, 759.02 MB)。加速比speedup是指數(shù)據(jù)集固定,不斷增大計(jì)算節(jié)點(diǎn)個(gè)數(shù)時(shí)算法并行的性能,其計(jì)算如式(3)所示:
其中,p是計(jì)算節(jié)點(diǎn)個(gè)數(shù);T1是一個(gè)節(jié)點(diǎn)時(shí)的運(yùn)行時(shí)間;Tp是p個(gè)節(jié)點(diǎn)時(shí)的運(yùn)行時(shí)間。
分別取數(shù)據(jù)集D1、D2和D3進(jìn)行實(shí)驗(yàn),Tp取3次實(shí)驗(yàn)的平均值。
節(jié)點(diǎn)數(shù)增大時(shí)本文算法的運(yùn)行時(shí)間如圖4所示,可以看出,隨著計(jì)算節(jié)點(diǎn)個(gè)數(shù)的增大,處理相同數(shù)據(jù)集算法的運(yùn)行時(shí)間不斷減少,并且數(shù)據(jù)集越大所需的運(yùn)行時(shí)間越小。
圖4 運(yùn)行時(shí)間
本文算法的加速比如圖5所示。在理想情況下,并行算法的加速比是呈線性的,即一個(gè)節(jié)點(diǎn)的運(yùn)行時(shí)間是p個(gè)節(jié)點(diǎn)的p倍,但實(shí)際的加速比要低于理想狀態(tài)。由該圖可以看出,數(shù)據(jù)集D1的加速比最小,D3的加速比最大,這是因?yàn)閿?shù)據(jù)量較小時(shí),部分節(jié)點(diǎn)處于空閑狀態(tài),隨著數(shù)據(jù)規(guī)模的增大,加速比更接近線性,但沒有達(dá)到線性是因?yàn)楣?jié)點(diǎn)間通信,任務(wù)啟動(dòng)、調(diào)度等開銷。由此可見,云服務(wù)器端計(jì)算節(jié)點(diǎn)增大時(shí),能更高效地處理云客戶端上傳的數(shù)據(jù),并且適合于處理云客戶端規(guī)模較大的情況。
圖5 加速比
本文提出的算法基于關(guān)聯(lián)關(guān)系在云環(huán)境下完成了對(duì)僵尸網(wǎng)絡(luò)的檢測(cè),使云客戶端上傳自身可疑的流量信息到云服務(wù)器端,云服務(wù)器端收集上傳的流量信息,并對(duì)流量進(jìn)行匯總處理,然后利用基于MapReduce的并行算法實(shí)現(xiàn)僵尸網(wǎng)絡(luò)的檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該算法可得到較高的檢測(cè)率和較低的誤報(bào)率,并能提高檢測(cè)效率。下一步工作將改進(jìn)基于云計(jì)算的僵尸網(wǎng)絡(luò)檢測(cè)算法,實(shí)現(xiàn)在線檢測(cè)。
[1] 李鶴帥, 朱俊虎, 周天陽, 等. P2P技術(shù)在僵尸網(wǎng)絡(luò)中的應(yīng)用研究[J]. 計(jì)算機(jī)工程, 2012, 38(14): 1-4.
[2] Yu Xiaocong, Dong Xiaomei, Yu Ge, et al. Online Botnet Detection Based on Incremental Discrete Fourier Transform[J]. Journal of Networks, 2010, 5(5): 568-575.
[3] 于 戈, 谷 峪, 鮑玉斌, 等. 云計(jì)算環(huán)境下的大規(guī)模圖數(shù)據(jù)處理技術(shù)[J]. 計(jì)算機(jī)學(xué)報(bào), 2011, 34(10): 1753-1767.
[4] 黃德才, 戚華春. PageRank算法研究[J]. 計(jì)算機(jī)工程, 2006, 32(4): 145-162.
[5] 馮登國(guó), 張 敏, 張 妍, 等. 云計(jì)算安全研究[J]. 軟件學(xué)報(bào), 2011, 22(1): 71-83.
[6] 陳丹偉, 黃秀麗, 任勛益. 云計(jì)算及安全分析[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2010, 20(2): 99-103.
[7] Shoham S. Robust Clustering by Deterministic Agglomeration EM of Mixtures of Multivariatet——Distributions[J]. Pattern Recognition, 2002, 35(5): 1127-1142.
[8] 吳兆峰, 周海剛, 余哲賦, 等. 基于TCP 會(huì)話的僵尸流量特征分析與檢測(cè)[J]. 軍事通信技術(shù), 2012, 33(1): 23-26.
[9] 王勁松, 劉 帆, 張 健. 基于組特征過濾器的僵尸主機(jī)檢測(cè)方法的研究[J]. 通信學(xué)報(bào), 2010, 31(2): 29-35.
[10] 張國(guó)強(qiáng), 張國(guó)清. Internet 網(wǎng)絡(luò)的關(guān)聯(lián)性研究[J]. 軟件學(xué)報(bào), 2006, 17(3): 490-497.
[11] 覃雄派, 王會(huì)舉, 杜小勇, 等. 大數(shù)據(jù)分析——RDBMS 與MapReduce的競(jìng)爭(zhēng)與共生[J]. 軟件學(xué)報(bào), 2012, 23(1): 32-45.
[12] 欒亞建, 黃翀民, 龔高晟, 等. Ha doop 平臺(tái)的性能優(yōu)化研究[J]. 計(jì)算機(jī)工程, 2010, 36(14): 262-263, 266.
[13] 李成華, 張新訪, 金 海, 等. MapRe duce: 新型的分布式并行計(jì)算編程模型[J]. 計(jì)算機(jī)工程與科學(xué), 20 11, 33(3): 129-135.
編輯 金胡考
Botnet Detection Based on Correlation Relation and MapReduce
SHAO Xiu-li1, JIANG Hong-ling1, GENG Mei-jie1, LI Yao-fang2
(1. College of Information Technical Science, Nankai University, Tianjin 300071, China; 2. College of Computer and Information, Tianjin Chengjian University, Tianjin 300384, China)
Existing botnet detection methods ge nerally have lar ge amount of computation, which r esults in low det ection efficiency. Cloud computing provides new ideas and solutions for the detection of botnets because of its power capacity of data processing and analysis capabilities. Therefore, this paper designs and implements a para llel botnet detection algorithm ba sed on MapR educe model, which uses cloud collaboration and flo w correlation relation to detect botnets. It extracts the relationship between flows, gathers the fl ows having relationship, and calculates the scores of hosts. The hosts whose score is greater than a threshold are suspicious bots. Experimental results show that this algorithm is effective for detecting botnet. The detection rate of P2P botnet can reach more than 90%, and the false alarm rate belows 4%. With the cloud server-side computing nodes increasing, the process of cloud client to upload data and botnet detection is more efficient.
botnet; cloud computing; correlation relation; MapReduce model; Hadoop cloud platform
10.3969/j.issn.1000-3428.2014.05.024
國(guó)家科技支撐計(jì)劃基金資助項(xiàng)目(2012BAF12B00);天津市重點(diǎn)基金資助項(xiàng)目(11JCZDJC28100, 12ZCDZGX46700)。
邵秀麗(1963-),女,教授、博士生導(dǎo)師,主研方向:網(wǎng)絡(luò)安全,云計(jì)算,軟件工程;蔣鴻玲,博士研究生;耿梅潔,碩士研究生;李耀芳,講師。
2013-04-02
2013-05-29E-mail:shaoxl@nankai.edu.cn
1000-3428(2014)05-0115-05
A
TP309