基于流量分析的p2p僵尸網(wǎng)絡(luò)檢測(cè)裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信技術(shù)領(lǐng)域,更進(jìn)一步涉及通信網(wǎng)絡(luò)安全技術(shù)領(lǐng)域中的一種基于流量分析的P2P僵尸網(wǎng)絡(luò)檢測(cè)裝置,并使用該裝置建立一種可擴(kuò)展的檢測(cè)方法。本發(fā)明可用于檢測(cè)大型網(wǎng)絡(luò)中存在的P2P僵尸主機(jī),以便于其他通信網(wǎng)絡(luò)安全技術(shù)對(duì)這些主機(jī)進(jìn)行控制。
【背景技術(shù)】
[0002]僵尸網(wǎng)絡(luò)檢測(cè)技術(shù)用于發(fā)現(xiàn)網(wǎng)絡(luò)中存在的僵尸主機(jī),以便利用其他通信網(wǎng)絡(luò)安全技術(shù)阻止僵尸網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)中主機(jī)的入侵活動(dòng)。目前典型的僵尸網(wǎng)絡(luò)檢測(cè)方法有:
[0003]Shishir Nagaraja, Prateek Mittal, Ch1-Yao Hong, Matthew Caesar 和Nikita Borisov 在論 文 “BotGrep: Finding P2P Bots with Structured GraphAnalysis” (Proceedings of the 4th Internat1nal Conference on AutonomousInfrastructure, Management and Security, 2010)中提出了一種 BotGrep 檢測(cè)方法。該方法分兩個(gè)步驟執(zhí)行:第一,由網(wǎng)絡(luò)流量生成通信關(guān)系圖,其中節(jié)點(diǎn)表示網(wǎng)絡(luò)中的主機(jī),邊表示主機(jī)間的通信。很多ISP實(shí)際上都已經(jīng)收集了需要的信息。BotGr印通過合并不同ISP的觀測(cè)數(shù)據(jù)得到通信關(guān)系圖。第二,利用結(jié)構(gòu)化的僵尸網(wǎng)絡(luò)的一個(gè)共同的特性:混合時(shí)間很短(fast mixing time),即隨機(jī)漫步(random walk)算法在很短的時(shí)間內(nèi)能收斂到穩(wěn)定狀態(tài),把混合時(shí)間短的網(wǎng)絡(luò)節(jié)點(diǎn)獨(dú)立出來,從而檢測(cè)出僵尸主機(jī)。該檢測(cè)裝置存在的不足是:數(shù)據(jù)采集模塊過濾效率較低,當(dāng)網(wǎng)絡(luò)流量較大時(shí),網(wǎng)絡(luò)流量數(shù)據(jù)容易在數(shù)據(jù)采集器處堆積,從而造成檢測(cè)方法處理速率低下。
[0004]中國電信股份有限公司擁有的專利技術(shù)“追溯僵尸網(wǎng)絡(luò)的方法和系統(tǒng)”(申請(qǐng)?zhí)?01010241080.1授權(quán)公告號(hào)CN 101924757 B)提出了一種基于流量分析僵尸網(wǎng)絡(luò)檢測(cè)方法。該方法分為以下幾個(gè)步驟:第一,流量采集子系統(tǒng)不斷采集網(wǎng)絡(luò)上的流量數(shù)據(jù)信息,并將流量數(shù)據(jù)信息發(fā)送給流量信息數(shù)據(jù)庫進(jìn)行保存。第二,流量分析子系統(tǒng)對(duì)網(wǎng)絡(luò)流量進(jìn)行監(jiān)控。第三,DNS關(guān)聯(lián)分析子系統(tǒng)從僵尸網(wǎng)絡(luò)數(shù)據(jù)庫中提取出僵尸網(wǎng)絡(luò)的特征,使用僵尸網(wǎng)絡(luò)的特征在DNS訪問數(shù)據(jù)庫中進(jìn)行搜索,尋找是否有訪問僵尸網(wǎng)絡(luò)的命令和控制服務(wù)器C&C Server域名的訪問行為。第四,如果發(fā)現(xiàn)有訪問發(fā)生,DNS關(guān)聯(lián)分析子系統(tǒng)記錄訪問C&C Server域名的每一個(gè)IP地址。第五,通過對(duì)網(wǎng)絡(luò)流量特征和DNS訪問請(qǐng)求進(jìn)行分析、驗(yàn)證,從而發(fā)現(xiàn)僵尸網(wǎng)絡(luò)并找出其控制的所有僵尸主機(jī)。該檢測(cè)方法存在的不足是:不具備可擴(kuò)展性,即該方法不能使用大數(shù)據(jù)工具擴(kuò)展其處理數(shù)據(jù)量較大的網(wǎng)絡(luò)流量的能力,難以應(yīng)用于檢測(cè)大型網(wǎng)絡(luò)中的僵尸主機(jī)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是克服上述現(xiàn)有技術(shù)檢測(cè)效率低下及不具備可擴(kuò)展性的不足,提出一種基于流量分析P2P僵尸網(wǎng)絡(luò)檢測(cè)裝置及方法。本發(fā)明可以提高檢測(cè)效率,并增強(qiáng)檢測(cè)方法的可擴(kuò)展性。
[0006]實(shí)現(xiàn)本發(fā)明的具體思路是:在本發(fā)明裝置的數(shù)據(jù)采集模塊和數(shù)據(jù)預(yù)處理模塊中采用多進(jìn)程編程方法,得到聚合流集合,避免網(wǎng)絡(luò)流量數(shù)據(jù)在數(shù)據(jù)采集模塊處堆積。在節(jié)點(diǎn)排名模塊中,通過計(jì)算聚合流集合中IP地址對(duì)應(yīng)的聚類樞紐值向量和聚類權(quán)威值向量,來分析網(wǎng)絡(luò)流量數(shù)據(jù),使得本發(fā)明的檢測(cè)方法具有良好的可擴(kuò)展性。利用密度聚類方法對(duì)聚類樞紐值向量和聚類權(quán)威值向量進(jìn)行聚類。對(duì)聚類結(jié)果進(jìn)行判定,輸出檢測(cè)結(jié)果。
[0007]本發(fā)明的裝置包括五個(gè)模塊:數(shù)據(jù)采集模塊,數(shù)據(jù)預(yù)處理模塊,節(jié)點(diǎn)排名模塊,聚類模塊和檢測(cè)模塊,各模塊之間通過總線連接。其中:
[0008]所述數(shù)據(jù)采集模塊,用于采用多進(jìn)程編程方法,采集可疑網(wǎng)絡(luò)中核心路由器輸出的網(wǎng)絡(luò)流量數(shù)據(jù),采用文件編程方法,將網(wǎng)絡(luò)流量數(shù)據(jù)緩存到流文件中,并將網(wǎng)絡(luò)流量數(shù)據(jù)傳送給數(shù)據(jù)預(yù)處理模塊;
[0009]所述數(shù)據(jù)預(yù)處理模塊,用于采用多進(jìn)程編程方法,對(duì)數(shù)據(jù)采集模塊采集的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行聚合及過濾;采用通信關(guān)系轉(zhuǎn)換方法,生通信鄰接矩陣,并將通信鄰接矩陣傳送給節(jié)點(diǎn)排名模塊;
[0010]所述節(jié)點(diǎn)排名模塊,用于利用通信鄰接矩陣,計(jì)算聚類樞紐值向量和聚類權(quán)威值向量,并將聚類樞紐值向量和聚類權(quán)威值向量傳送給聚類模塊;
[0011]所述聚類模塊,用于采用密度聚類方法,對(duì)聚類樞紐值向量和權(quán)威值向量進(jìn)行聚類,并將聚類結(jié)果傳送給檢測(cè)模塊;
[0012]所述檢測(cè)模塊,用于在可疑網(wǎng)絡(luò)中布置蜜罐主機(jī),將聚類結(jié)果中包含已知僵尸主機(jī)的簇中所有IP地址判定為僵尸主機(jī),得到檢測(cè)結(jié)果。
[0013]實(shí)現(xiàn)本發(fā)明目的的具體步驟如下:
[0014](I)采集網(wǎng)絡(luò)流量數(shù)據(jù):
[0015](Ia)采用網(wǎng)絡(luò)流方法,配置可疑網(wǎng)絡(luò)中的核心路由器,該路由器向數(shù)據(jù)采集模塊發(fā)送網(wǎng)絡(luò)流量數(shù)據(jù);
[0016](Ib)在數(shù)據(jù)采集模塊中,采用多進(jìn)程編程方法,創(chuàng)建多個(gè)進(jìn)程;
[0017](Ic)采用文件編程方法,在每個(gè)進(jìn)程中創(chuàng)建一個(gè)流文件,將可疑網(wǎng)絡(luò)中的單個(gè)核心路由器發(fā)送的網(wǎng)絡(luò)流量數(shù)據(jù)緩存到一個(gè)流文件中;
[0018](2)聚合并過濾網(wǎng)絡(luò)流量數(shù)據(jù):
[0019](2a)在數(shù)據(jù)預(yù)處理模塊中,采用多進(jìn)程編程方法,創(chuàng)建多個(gè)進(jìn)程,每個(gè)進(jìn)程對(duì)應(yīng)數(shù)據(jù)采集模塊中的單個(gè)流文件;
[0020](2b)在數(shù)據(jù)預(yù)處理模塊的每個(gè)進(jìn)程中,采用文件編程方法,每隔5分鐘從單個(gè)流文件中讀取網(wǎng)絡(luò)流量數(shù)據(jù);
[0021](2c)在數(shù)據(jù)預(yù)處理模塊的每個(gè)進(jìn)程中,創(chuàng)建多個(gè)聚合流結(jié)構(gòu)體,在每個(gè)聚合流結(jié)構(gòu)體中記錄具有相同源IP地址、目的IP地址和通信協(xié)議的網(wǎng)絡(luò)流量數(shù)據(jù)的聚合屬性,得到一個(gè)聚合流結(jié)構(gòu)體集合;
[0022](2d)在數(shù)據(jù)預(yù)處理模塊的每個(gè)進(jìn)程中,采用流量過濾方法,對(duì)聚合流結(jié)構(gòu)體集合進(jìn)行過濾,得到過濾后的聚合流結(jié)構(gòu)體集合;
[0023](2e)將數(shù)據(jù)預(yù)處理模塊的每個(gè)進(jìn)程得到的過濾后的聚合流結(jié)構(gòu)體集合合并,得到聚合流集合,記錄聚合流集合中的IP地址總數(shù);
[0024](2f)采用通信關(guān)系轉(zhuǎn)換方法,得到通信鄰接矩陣;
[0025](2g)將通信鄰接矩陣中IP地址對(duì)應(yīng)的元素取1,得到初始樞紐值向量和初始權(quán)威值;
[0026](3)計(jì)算聚類樞紐值向量:
[0027](3a)在節(jié)點(diǎn)排名模塊中,采用下式,更新初始樞紐值向量:
[0028]h’ = dAh+(l-d)ff
[0029]其中,h’表示更新后的初始樞紐值向量,d表示取值為0.85的阻尼因子,A表示通信鄰接矩陣,h表示初始樞紐值向量,W表示通信鄰接矩陣中IP地址的權(quán)重向量;
[0030](3b)當(dāng)更新后的樞紐值向量和初始樞紐值向量滿足下式時(shí),執(zhí)行步驟(3c),否則,執(zhí)行步驟(3a):
[0031]I |h,-hi I < θ
[0032]其中,h’表示更新后的樞紐值向量,h表示初始樞紐值向量,M.I I表示取二范數(shù)運(yùn)算,Θ表示取值為0.00001的樞紐值向量距離閾值;
[0033](3c)將更新后的樞紐值向量作為聚類樞紐值向量;
[0034](4)計(jì)算聚類權(quán)威值向量:
[0035](4a)在節(jié)點(diǎn)排名模塊中,采用下式,更新初始權(quán)威值向量:
[0036]a = dATa+(l-d)ff
[0037]其中,a’表示更新后的初始權(quán)威值向量,d表示取值為0.85的阻尼因子,A表示通信鄰接矩陣,(.)Τ表示矩陣轉(zhuǎn)置操作,a表示初始權(quán)威值向量,W表示通信鄰接矩陣中IP地址的權(quán)重向量;
[0038](4b)當(dāng)更新后的權(quán)威值向量和初始權(quán)威值向量滿足下式時(shí),執(zhí)行步驟(4c),否則,執(zhí)行步驟(4a):
[0039]I I a,-a I I < θ
[0040]其中,a’表示更新后的權(quán)威值向量,a表示初始權(quán)威值向量,|.|表示求二范數(shù)運(yùn)算,Θ表示取值為0.00001的權(quán)威值向量距離閾值;
[0041](4c)將更新后的權(quán)威值向量作為聚類權(quán)威值向量;
[0042](5)對(duì)聚類樞紐值向量和聚類權(quán)威值向量進(jìn)行聚類:
[0043]在聚類模塊中,將樞紐值向量和權(quán)威值間