基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法
【專利摘要】本發(fā)明公開了一種基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法,首先,將捕獲的網(wǎng)絡(luò)數(shù)據(jù)流按照基于時(shí)間戳的數(shù)據(jù)流簇聚類算法分成數(shù)據(jù)包簇,然后按照四元組進(jìn)行會(huì)話劃分會(huì)話鏈表;然后,進(jìn)行木馬通信特征的提取,木馬通信特征的提取含有連接保持無操作階段木馬通信特征的提取和操作階段木馬通信特征的提取。本發(fā)明在對(duì)網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行簇聚類的基礎(chǔ)上,以簇為單位處理網(wǎng)絡(luò)數(shù)據(jù)包,針對(duì)竊密型木馬通信過程的不同階段,分析木馬通信行為與正常網(wǎng)絡(luò)通信行為的差別,并結(jié)合傳統(tǒng)的統(tǒng)計(jì)分析、相關(guān)分析和時(shí)頻分析等技術(shù),深入挖掘二者之間的差別并提取網(wǎng)絡(luò)通信特征,在保證檢測(cè)精度的同時(shí)提高檢測(cè)效率,利用本發(fā)明可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中的竊密行為進(jìn)行檢測(cè)。
【專利說明】基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種木馬通信特征的提取方法,特別是涉及一種基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法。
【背景技術(shù)】
[0002]當(dāng)前的竊密攻擊大多數(shù)是采用木馬實(shí)現(xiàn),木馬最大的特點(diǎn)即是其行為往往帶有較強(qiáng)的隱蔽性。木馬被成功植入到目標(biāo)計(jì)算機(jī)后,木馬控制端必須和被控端進(jìn)行通信,以便給被控端下達(dá)控制指令或者控制被控端將所獲取的信息回傳給控制端。目前,現(xiàn)有的竊密型木馬檢測(cè)技術(shù)主要采用特征碼匹配技術(shù)。相較于基于特征碼匹配的檢測(cè)技術(shù),基于通信行為特征分析的檢測(cè)技術(shù)在時(shí)效性和擴(kuò)展性方面具有明顯優(yōu)勢(shì),有利于發(fā)現(xiàn)潛在的、未知的網(wǎng)絡(luò)竊密行為和威脅,具有更廣的應(yīng)用前景。然而基于通信行為的木馬檢測(cè)算法往往存在計(jì)算復(fù)雜度較高的問題,在實(shí)時(shí)監(jiān)控應(yīng)用中,給監(jiān)控系統(tǒng)帶來龐大的計(jì)算開銷。因此,如何有效提取木馬通信特征,設(shè)計(jì)具有高檢測(cè)性能且計(jì)算復(fù)雜度較低的檢測(cè)算法,進(jìn)而實(shí)時(shí)有效的檢測(cè)竊密型木馬的網(wǎng)絡(luò)通信行為就成為當(dāng)前一個(gè)重要的理論和技術(shù)問題。
[0003]基于通信行為的木馬檢測(cè)方法很多,但大部分已有方法的檢測(cè)通用性較差,而且計(jì)算效率不高。
[0004]Borders等利用HTTP請(qǐng)求的時(shí)間間隔、請(qǐng)求包大小、包頭格式、帶寬占用、請(qǐng)求規(guī)則等特征構(gòu)造各種過濾器檢測(cè)木馬通信。然而,木馬可以通過在通信細(xì)節(jié)上的簡(jiǎn)單改變繞過文章中所構(gòu)造的各種過濾器。例如:木馬只需將請(qǐng)求包的大小限制在某一閾值內(nèi)即可使請(qǐng)求包大小過濾器失去功效。此種方法只能針對(duì)HTTP協(xié)議進(jìn)行檢測(cè),通用性較差。而且此種方法還需要對(duì)數(shù)據(jù)包內(nèi)容進(jìn)行詳細(xì)解析,效率較低。
[0005]Pack等提出了 一種通過使用數(shù)據(jù)流的行為輪廓對(duì)HTTP隱蔽通道進(jìn)行檢測(cè)的方法。行為輪廓基于大量的度量,如平均數(shù)據(jù)包大小、小數(shù)據(jù)包和大數(shù)據(jù)包比例、數(shù)據(jù)包模型變化、所有發(fā)送/接收數(shù)據(jù)包的總數(shù)和連接時(shí)間。如果一個(gè)數(shù)據(jù)流的觀察特性偏離正常HTTP數(shù)據(jù)包的行為輪廓,則極有可能是HTTP隱蔽通道。方法主要針對(duì)HTTP隧道進(jìn)行檢測(cè),通用性較差。
[0006]Tumoian等利用正常協(xié)議產(chǎn)生的連續(xù)TCP ISN號(hào)來訓(xùn)練Elman網(wǎng)絡(luò),然后將實(shí)際的ISN號(hào)與神經(jīng)網(wǎng)絡(luò)所預(yù)測(cè)的ISN號(hào)比對(duì),當(dāng)實(shí)際值與預(yù)測(cè)值的差異超過預(yù)先設(shè)定的閾值時(shí)則認(rèn)為有隱蔽通道存在。作者通過這種方法實(shí)現(xiàn)了對(duì)NUSHU隱蔽通道的檢測(cè)。但該方法只能對(duì)特定木馬通信進(jìn)行檢測(cè)同樣不具備通用性。
[0007]Zhang和Paxson利用數(shù)據(jù)包到達(dá)時(shí)間間隔和數(shù)據(jù)包大小描述了一種木馬通信交互模型,用于檢測(cè)木馬和后門等惡意程序。該模型對(duì)木馬通信行為進(jìn)行如下描述:1、木馬通信過程中相鄰數(shù)據(jù)包到達(dá)時(shí)間間隔符合帕累托分布;2、由于木馬通信過程中存在命令交互,所以小數(shù)據(jù)包應(yīng)占一定比例。但實(shí)際木馬通信過程中可以通過不同的算法使相鄰數(shù)據(jù)包到達(dá)時(shí)間間隔滿足各種分布要求,加之?dāng)?shù)據(jù)包到達(dá)時(shí)間間隔在很大程度上會(huì)受到網(wǎng)絡(luò)拓?fù)涞挠绊懀詳?shù)據(jù)包到達(dá)時(shí)間間隔用其作為行為描述存在一定弊端。且木馬通信過程中的短命令可以隱藏在較大的HTML頁面信息中,所以強(qiáng)調(diào)通信過程中的小數(shù)據(jù)包的比例并不能實(shí)現(xiàn)有效檢測(cè)。
[0008]以下對(duì)本發(fā)明涉及的基本概念進(jìn)行解釋。
[0009]木馬心跳:為了表征自身的存活性,木馬會(huì)在客戶端和服務(wù)器端之間建立并保持一個(gè)會(huì)話,直到任意一端的木馬程序關(guān)閉或網(wǎng)絡(luò)連接斷開。這種會(huì)話的保持是通過向?qū)Ψ桨l(fā)送數(shù)據(jù)包來實(shí)現(xiàn)的。由于這種數(shù)據(jù)包大部分采用定時(shí)發(fā)送的方式,其存在方式和意義類似于動(dòng)物的心臟跳動(dòng),故被稱為“心跳包”。
[0010]心跳間隙:相鄰的兩次“心跳”過程間會(huì)有一定的時(shí)間間隔,稱之為“心跳間隙”。根據(jù)“心跳間隙”是否為恒定值,可以將木馬心跳方式分為以下兩種:1、定時(shí)長(zhǎng)心跳,即“心跳間隙”為恒定值。2、變時(shí)長(zhǎng)心跳。由于定時(shí)長(zhǎng)心跳規(guī)律明顯,難以抵抗統(tǒng)計(jì)分析。因此攻擊者常采用各種算法來將“心跳間隙”隨機(jī)化,使其不再具有明顯統(tǒng)計(jì)特征來抵抗檢測(cè)。特別的,定時(shí)長(zhǎng)心跳也可視為變時(shí)長(zhǎng)心跳的平凡情形。
[0011]心跳過程:木馬在每次發(fā)送“心跳包”時(shí),木馬被控端和控制端程序可能還會(huì)向?qū)Ψ桨l(fā)送一些其他數(shù)據(jù)包,表示對(duì)所收到數(shù)據(jù)包的確認(rèn),將“心跳包”和伴隨其發(fā)送的一組確認(rèn)數(shù)據(jù)包稱為“心跳過程”。
[0012]木馬通信過程:木馬通信過程可分為兩個(gè)階段:保持連接無操作階段和操作階段。木馬被植入到目標(biāo)系統(tǒng)后,攻擊者只會(huì)在有限的時(shí)間段內(nèi)對(duì)木馬進(jìn)行操作(此時(shí)木馬通信處于操作階段),其余大部 分時(shí)間木馬都處于空閑狀態(tài)。部分木馬在空閑狀態(tài)下保持與攻擊者之間聯(lián)系過程稱為保持連接無操作階段。
[0013]四元組:稱{源IP地址,源端口,目的IP地址,目的端口 }為四元組。
[0014]等價(jià)四元組:若四元組Ia1, hv C1, dj 和{a2, b2, c2, d2}滿足 A1=C2 且 Id1=CI2 且 Cfa2且(I1=Id2,則稱 Ia1, b” C1, dj 和{a2, b2, c2, d2}為等價(jià)四元組。
[0015]非交互通信:由程序自動(dòng)發(fā)送和接收的數(shù)據(jù)包通信。
[0016]交互通信:由人為操作引起的數(shù)據(jù)包傳輸過程。
[0017]數(shù)據(jù)包簇:網(wǎng)絡(luò)數(shù)據(jù)包按照通信過程劃分算法,進(jìn)行簇聚類,而得到屬于同一簇的數(shù)據(jù)包集合。
【發(fā)明內(nèi)容】
[0018]本發(fā)明要解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的缺陷,提供一種基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法,該方法能夠通過網(wǎng)絡(luò)數(shù)據(jù)流簇聚類,有效提取竊密型木馬的通信特征,具有較高的檢測(cè)性能和計(jì)算效率。
[0019]本發(fā)明的技術(shù)方案:一種基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法,
[0020]首先,將捕獲的網(wǎng)絡(luò)數(shù)據(jù)流,按照基于時(shí)間戳的數(shù)據(jù)流簇聚類算法分成數(shù)據(jù)包簇,所述基于時(shí)間戳的數(shù)據(jù)流簇聚類算法是:
[0021]時(shí)間戳論域:設(shè)T=It1, t2,…,tn,...}是待劃分通信過程的數(shù)據(jù)包時(shí)間戳集合(時(shí)間戳論域?yàn)橐粋€(gè)集合),T中的每個(gè)對(duì)象ti是第i個(gè)數(shù)據(jù)包的時(shí)間戳,ti單位為秒,1、n為大于O的自然數(shù);
[0022]簇半徑閾值:設(shè)ε為簇半徑閾值,相鄰數(shù)據(jù)包的時(shí)間戳間隔小于該閾值的將被聚類在一個(gè)簇中;[0023]簇集合:設(shè)數(shù)據(jù)流為Sj,數(shù)據(jù)流5」={Cl,C2,…,C1J是經(jīng)劃分得到的一次通信過程的簇的集合,P (Ci) = (cn,ci2,…,cik)是S」中的每個(gè)簇對(duì)象Ci的特征矢量;在聚類得到簇之后根據(jù)特征矢量將簇分類,m為大于O的自然數(shù);
[0024]界標(biāo)窗口:因?yàn)閿?shù)據(jù)包是順序到達(dá)的,因此選取界標(biāo)窗口來存儲(chǔ)時(shí)間戳論域T,界標(biāo)窗口的長(zhǎng)度AW為起始時(shí)間點(diǎn)到當(dāng)前時(shí)間點(diǎn)為止記錄的數(shù)據(jù)包的個(gè)數(shù);
[0025]將數(shù)據(jù)包簇按照四元組進(jìn)行會(huì)話劃分,即每個(gè)會(huì)話通過四元組唯一標(biāo)識(shí),并選用鏈表作為記錄會(huì)話的數(shù)據(jù)結(jié)構(gòu),構(gòu)建基于四元組的數(shù)據(jù)包簇的會(huì)話鏈表;
[0026]基于時(shí)間戳的數(shù)據(jù)流簇聚類算法以數(shù)據(jù)流S和簇半徑閾值ε為輸入,數(shù)據(jù)流S使用TCP會(huì)話四元組標(biāo)識(shí),簇半徑閾值ε的單位為秒,以生成的簇集合S' = {(Ci,P(Ci)) I (I≤i≤m)}為輸出;順序遍歷數(shù)據(jù)流中的每個(gè)數(shù)據(jù)包,通過計(jì)算當(dāng)前數(shù)據(jù)包與前一個(gè)數(shù)據(jù)包的時(shí)間間隔判斷加入當(dāng)前簇還是新建簇;1 < i < m, I < j < m, 1、j、m、n分別為大于0的自然數(shù);(S是輸入的數(shù)據(jù)流和數(shù)據(jù)流S」是經(jīng)過聚類后的數(shù)據(jù)流)
[0027]計(jì)算簇集合S'時(shí),順序遍歷數(shù)據(jù)流中的每個(gè)數(shù)據(jù)包,通過計(jì)算當(dāng)前數(shù)據(jù)包與前一個(gè)數(shù)據(jù)包的時(shí)間間隔判斷加入當(dāng)前簇還是新建簇,方法如下:
[0028](I)如果數(shù)據(jù)流中沒有簇,則建立一個(gè)簇,然后接收數(shù)據(jù)流中下一個(gè)數(shù)據(jù)包;
[0029](2)如果改數(shù)據(jù)包的到達(dá)時(shí)間和上一個(gè)的數(shù)據(jù)包到達(dá)時(shí)間差小于定義的簇半徑閾值,則將該數(shù)據(jù)包加入到簇中,更新簇的信息;
[0030](3)如果數(shù)據(jù)包的到達(dá)時(shí)間和上一個(gè)數(shù)據(jù)包的到達(dá)時(shí)間大于簇半徑閾值,則新建立一個(gè)簇。
[0031]簇集合S'的算法如下:
[0032]輸入:數(shù)據(jù)流S,簇半徑閾值ε ;
[0033]輸出:生成的簇集合V ;
[0034]BEGIN
[0035](I) j=0, Aff=O ;初始化簇?cái)?shù)量j=0,窗口長(zhǎng)度AW=O,記錄簇和數(shù)據(jù)包的個(gè)數(shù);
[0036](2) while ;數(shù)據(jù)流S未結(jié)束&S中新到達(dá)數(shù)據(jù)包的時(shí)間戳為\
[0037](3) lf(j=0)j++, AW++ ;以&為起始建立新的簇C」,創(chuàng)建簇矢量P(Cj);
[0038](4) else If (t-t^ ^ ε ) \ e Cj,更新簇矢量 P (Cj),Λ W++;
[0039](5) else j++, AW++ ;以\為起始建立新的簇C」,創(chuàng)建簇矢量P(Cj);
[0040](6) End If;
[0041](7) Endwhile ;
[0042]END
[0043]所述四元組中的元素為源IP地址、源端口、目的IP地址和目的端口 ;系統(tǒng)采用數(shù)組鏈表結(jié)構(gòu)來記錄四元組,數(shù)組鏈表結(jié)構(gòu)是指數(shù)組和鏈表相結(jié)合的數(shù)據(jù)結(jié)構(gòu);系統(tǒng)利用數(shù)組建立哈希表,將哈希表作為鏈表的索引來提高查找效率;系統(tǒng)針對(duì)數(shù)據(jù)包四元組中各元素的不同概率分布,把分布均勻的元素分量設(shè)為數(shù)組鏈表,把分布不均勻的元素分量設(shè)為鏈表。
[0044]系統(tǒng)利用哈希表+多級(jí)鏈表的結(jié)構(gòu)記錄源IP地址分量,源端口分量、目的IP地址分量、目的端口分量依次分別建立多級(jí)鏈表,系統(tǒng)選取源IP地址的最后I個(gè)字節(jié)進(jìn)行哈希值的計(jì)算建立哈希表。[0045]獲取“心跳間隙”的平穩(wěn)性的方法為:取單向會(huì)話數(shù)據(jù)流的時(shí)間間隔采樣結(jié)果為:Χ = ,其中X表示數(shù)據(jù)包時(shí)間間隔采樣集合,單位為秒,Xi表示第i個(gè)采樣值,η表示
樣本量,I ^ i ;F = [ViYU為對(duì)X進(jìn)行離散傅立葉變換(DFT)后的特征向量,其中表示經(jīng)過離散傅立葉變換變換后的第i個(gè)系數(shù);“心跳間隙”的平穩(wěn)性定義為Stability:
「πΣ?χΙ
0046 Slabililv = —-£ ω
-, η-1
[0047]其中,ω為閾值。
[0048]取單向會(huì)話數(shù)據(jù)流的時(shí)間間隔采樣結(jié)果為:Z = ,其中X表示數(shù)據(jù)包時(shí)間間
隔采樣集合,單位為秒,Xi表示 第i個(gè)采樣值,η表示樣本量,l^i^n;F = {v,};,為對(duì)X進(jìn)
行離散傅立葉變換(DFT)后的特征向量,其中Ji表示經(jīng)過離散傅立葉變換變換后的第i個(gè)系數(shù);“心跳間隙”的平穩(wěn)性定義為Stability:
[0049]Siahiliiv = —~~尤4纟-2 + X/tl'~3 < ω
-4
[0050]其中,ω為閾值。
[0051]本發(fā)明的有益效果:
[0052]本發(fā)明在對(duì)網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行簇聚類的基礎(chǔ)上,以簇為單位處理網(wǎng)絡(luò)數(shù)據(jù)包,針對(duì)竊密型木馬通信過程的不同階段,分析木馬通信行為與正常網(wǎng)絡(luò)通信行為的差別,并結(jié)合傳統(tǒng)的統(tǒng)計(jì)分析、相關(guān)分析和時(shí)頻分析等技術(shù),深入挖掘二者之間的差別并提取網(wǎng)絡(luò)通信特征,在此基礎(chǔ)上,可根據(jù)通信行為特征的自身特點(diǎn)設(shè)計(jì)快速的竊密型木馬通信行為檢測(cè)算法,在保證檢測(cè)精度的同時(shí)提高檢測(cè)效率,利用本發(fā)明可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中的竊密行為進(jìn)行檢測(cè)。
【專利附圖】
【附圖說明】
[0053]圖1為木馬通信相鄰數(shù)據(jù)包到達(dá)時(shí)間間隔示意圖(pcshare);
[0054]圖2為正常網(wǎng)絡(luò)通信相鄰數(shù)據(jù)包到達(dá)時(shí)間間隔示意圖;
[0055]圖3為基于時(shí)間戳的數(shù)據(jù)流簇聚類效果;
[0056]圖4為會(huì)話鏈表結(jié)構(gòu)圖;
[0057]圖5為DFT采樣圖。
【具體實(shí)施方式】
[0058]實(shí)施例1:基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法為:
[0059]首先,將捕獲的網(wǎng)絡(luò)數(shù)據(jù)流,按照設(shè)計(jì)的基于時(shí)間戳的數(shù)據(jù)流簇聚類算法分成數(shù)據(jù)包簇,然后將數(shù)據(jù)包簇按照四元組進(jìn)行會(huì)話劃分,即每個(gè)會(huì)話通過四元組唯一標(biāo)識(shí),并選用鏈表作為記錄會(huì)話的數(shù)據(jù)結(jié)構(gòu);然后,進(jìn)行木馬通信特征的提取,木馬通信特征的提取含有連接保持無操作階段木馬通信特征的提取和操作階段木馬通信特征的提取,最后結(jié)合構(gòu)建的會(huì)話鏈表和提取的木馬通信特征,進(jìn)行快速和高效的木馬檢測(cè)。[0060]1、基于時(shí)間戳的數(shù)據(jù)流簇聚類算法
[0061]相鄰數(shù)據(jù)包到達(dá)時(shí)間間隔的差異性,因此給出了基于時(shí)間戳的數(shù)據(jù)流簇聚類算法,將數(shù)據(jù)流聚類為表示人為操作的通信行為簇,以簇的特征表示此次操作行為的特征,下面給出具體的算法描述。
[0062]①基本定義
[0063]定義I時(shí)間戳論域=ST=It1, t2,…,tn,…}是待劃分通信過程的數(shù)據(jù)包時(shí)間戳集合,T中的每個(gè)對(duì)象ti是第i個(gè)數(shù)據(jù)包的時(shí)間戳。
[0064]定義2簇半徑閾值:設(shè)ε為簇半徑閾值,相鄰數(shù)據(jù)包的時(shí)間戳間隔小于該閾值的將被聚類在一個(gè)簇中。
[0065]定義3簇集合:設(shè)Sj=Ic1, C2,…,cj是數(shù)據(jù)流Sj經(jīng)劃分得到的一次通信過程的簇的集合,P (Ci) = (cn,Ci2,…,Cik)是Sj中的每個(gè)對(duì)象Ci(KiSm)的特征矢量。在聚類得到簇之后根據(jù)特征矢量將簇分類。I < i < m,I < j < m,1、j、m、n分別為大于或等于I的自然數(shù)。
[0066]定義4界標(biāo)窗口:因?yàn)閿?shù)據(jù)包是順序到達(dá)的,因此選取界標(biāo)窗口來存儲(chǔ)時(shí)間戳論域T,界標(biāo)窗口的長(zhǎng)度AW為起始時(shí)間點(diǎn)到當(dāng)前時(shí)間點(diǎn)為止記錄的數(shù)據(jù)包的個(gè)數(shù)。
[0067]②算法描述
[0068]基于時(shí)間戳的數(shù)據(jù)流簇聚類算法以數(shù)據(jù)流S和簇半徑閾值ε為輸入,數(shù)據(jù)流S使用TCP會(huì)話四元組標(biāo)識(shí),簇半徑閾值ε的單位為秒,以生成的S' = {(Ci,P(Ci)) I ( 為輸出。順序遍歷數(shù)據(jù)流中的每個(gè)數(shù)據(jù)包,通過計(jì)算當(dāng)前數(shù)據(jù)包與前一個(gè)數(shù)據(jù)包的時(shí)間間隔判斷加入當(dāng)前簇還是新建簇,具體算法如下:
[0069]輸入:數(shù)據(jù)流S,簇半徑閾值ε ;
[0070]輸出:生成的簇集合V。
[0071]BEGIN
[0072](I)初始化簇?cái)?shù)量j=0,窗口長(zhǎng)度AW=O -J /記錄簇和數(shù)據(jù)包的個(gè)數(shù)
[0073](2) while (數(shù)據(jù)流S未結(jié)束&S中新到達(dá)數(shù)據(jù)包的時(shí)間戳為;
[0074](4) lf(j=0)j++, AW++ ;以&為起始建立新的簇C」,創(chuàng)建簇矢量P (Cj);
[0075](5) else If (H1 < ε ) e Cj,更新簇矢量 P (Cj), Δ W++;
[0076](6) else j++, AW++ ;以\為起始建立新的簇C」,創(chuàng)建簇矢量P (Cj);
[0077](7) End If ;
[0078](8) Endwhile ;
[0079]END
[0080]通過基于時(shí)間戳的數(shù)據(jù)流簇聚類,網(wǎng)絡(luò)數(shù)據(jù)流按簇進(jìn)行劃分的效果如圖3所示。每個(gè)簇內(nèi)的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包之間具有較強(qiáng)的時(shí)間相關(guān)性,簇與簇之間的時(shí)間間隔反映行為的階段性。由于人為的操作行為和機(jī)器自動(dòng)響應(yīng)的時(shí)間存在較大的差異,預(yù)處理實(shí)現(xiàn)時(shí)將機(jī)器響應(yīng)時(shí)間內(nèi)的包劃分在一個(gè)簇中,人為的操作分布在不同的簇中,就可以保證網(wǎng)絡(luò)通信行為的過程以簇為單位進(jìn)行描述。
[0081]2、構(gòu)建基于四元組的數(shù)據(jù)包簇的會(huì)話鏈表
[0082]將數(shù)據(jù)包簇按照四元組進(jìn)行會(huì)話劃會(huì),每一個(gè)會(huì)話鏈表用四元組進(jìn)行標(biāo)識(shí),系統(tǒng)需要根據(jù)數(shù)據(jù)包中四元組查找相應(yīng)的會(huì)話,將數(shù)據(jù)包簇的信息添加到相應(yīng)的會(huì)話鏈表中;因此四元組的記錄形式和查找速度將直接影響系統(tǒng)效率。
[0083]四元組可以使用多維數(shù)組或多級(jí)鏈表進(jìn)行保存;多維數(shù)組具有存儲(chǔ)效率高、查找方便、存取速度快等優(yōu)點(diǎn),但是多維數(shù)組要求預(yù)先為其分配存儲(chǔ)空間,一旦建立無法改變多維數(shù)組大小,容易造成空間浪費(fèi),而且網(wǎng)絡(luò)會(huì)話數(shù)量不固定,無法為其預(yù)先分配空間;鏈表的優(yōu)點(diǎn)是可動(dòng)態(tài)添加或刪除、不需要預(yù)先分配空間,但缺點(diǎn)是查找速度慢;
[0084]系統(tǒng)采用數(shù)組鏈表結(jié)構(gòu)來記錄四元組,數(shù)組鏈表結(jié)構(gòu)是指數(shù)組和鏈表相結(jié)合的數(shù)據(jù)結(jié)構(gòu);這樣雖然犧牲了一定的存儲(chǔ)空間,但提高了查找效率。系統(tǒng)利用數(shù)組建立哈希表,將哈希表作為鏈表的索引來提高查找效率。
[0085]系統(tǒng)針對(duì)數(shù)據(jù)包四元組中各元素的不同概率分布,把分布均勻的元素分量設(shè)為數(shù)組鏈表,把分布不均勻的元素分量設(shè)為鏈表,這樣可以獲得更高的查找效率,具體以數(shù)組鏈表結(jié)構(gòu)為例分析如下:
[0086]設(shè)會(huì)話數(shù)量為S,若將所有的會(huì)話以單鏈表的形式進(jìn)行組建,每次系統(tǒng)接收到數(shù)據(jù)包后都要對(duì)會(huì)話鏈表進(jìn)行順序查找(順序查找的平均時(shí)間復(fù)雜度為)。
[0087]以數(shù)組鏈表的形式記錄會(huì)話,設(shè)數(shù)組長(zhǎng)度為n,數(shù)組的第i個(gè)節(jié)點(diǎn)下的會(huì)話鏈表個(gè)數(shù)為ct i,則產(chǎn)生第i個(gè)節(jié)點(diǎn)的概率為f,
[0088]對(duì)鏈表進(jìn)行查詢的平均時(shí)間復(fù)雜度為:
【權(quán)利要求】
1.一種基于網(wǎng)絡(luò)數(shù)據(jù)流簇聚類的木馬通信特征快速提取方法,其特征在于, 首先,將捕獲的網(wǎng)絡(luò)數(shù)據(jù)流,按照基于時(shí)間戳的數(shù)據(jù)流簇聚類算法分成數(shù)據(jù)包簇,所述基于時(shí)間戳的數(shù)據(jù)流簇聚類算法是: 時(shí)間戳論域=ST=It1, t2,…,tn,...}是待劃分通信過程的數(shù)據(jù)包時(shí)間戳集合,T中的每個(gè)對(duì)象ti是第i個(gè)數(shù)據(jù)包的時(shí)間戳,ti單位為秒,1、n為大于O的自然數(shù); 簇半徑閾值:設(shè)ε為簇半徑閾值,相鄰數(shù)據(jù)包的時(shí)間戳間隔小于該閾值的將被聚類在一個(gè)簇中; 簇集合:設(shè)數(shù)據(jù)流為Sp數(shù)據(jù)流Sflc1, C2,…,C1J是經(jīng)劃分得到的一次通信過程的簇的集合,P (Ci) = (cn,ci2,…,cik)是S」中的每個(gè)簇對(duì)象Ci的特征矢量;在聚類得到簇之后根據(jù)特征矢量將簇分類,m為大于O的自然數(shù); 界標(biāo)窗口:因?yàn)閿?shù)據(jù)包是順序到達(dá)的,因此選取界標(biāo)窗口來存儲(chǔ)時(shí)間戳論域T,界標(biāo)窗口的長(zhǎng)度AW為起始時(shí)間點(diǎn)到當(dāng)前時(shí)間點(diǎn)為止記錄的數(shù)據(jù)包的個(gè)數(shù); 將數(shù)據(jù)包簇按照四元組進(jìn)行會(huì)話劃分,即每個(gè)會(huì)話通過四元組唯一標(biāo)識(shí),并選用鏈表作為記錄會(huì)話的數(shù)據(jù)結(jié)構(gòu),構(gòu)建基于四元組的數(shù)據(jù)包簇的會(huì)話鏈表; 基于時(shí)間戳的數(shù)據(jù)流簇聚類算法以數(shù)據(jù)流S和簇半徑閾值ε為輸入,數(shù)據(jù)流S使用TCP會(huì)話四元組標(biāo)識(shí),簇半徑閾值ε的單位為秒,以生成的簇集合S' = {(Ci,P(Ci)) I (1≤i≤m)}為輸出;順序遍歷數(shù)據(jù)流中的每個(gè)數(shù)據(jù)包,通過計(jì)算當(dāng)前數(shù)據(jù)包與前一個(gè)數(shù)據(jù)包的時(shí)間間隔判斷加入當(dāng)前簇還是新建簇;1 < i < m, 1 < j < m, 1、j、m、n分別為大于O的自然數(shù); 計(jì)算簇集合S'時(shí),順序遍歷數(shù)據(jù)流中的每個(gè)數(shù)據(jù)包,通過計(jì)算當(dāng)前數(shù)據(jù)包與前一個(gè)數(shù)據(jù)包的時(shí)間間隔判斷加入當(dāng)前簇還是新建簇,方法如下: (O如果數(shù)據(jù)流中沒有簇,則建立一個(gè)簇,然后接收數(shù)據(jù)流中下一個(gè)數(shù)據(jù)包; (2)如果改數(shù)據(jù)包的到達(dá)時(shí)間和上一個(gè)的數(shù)據(jù)包到達(dá)時(shí)間差小于定義的簇半徑閾值,則將該數(shù)據(jù)包加入到簇中,更新簇的信息; (3)如果數(shù)據(jù)包的到達(dá)時(shí)間和上一個(gè)數(shù)據(jù)包的到達(dá)時(shí)間大于簇半徑閾值,則新建立一個(gè)簇; 然后,進(jìn)行木馬通信特征的提取,木馬通信特征的提取含有連接保持無操作階段木馬通信特征的提取和操作階段木馬通信特征的提??; 在連接保持無操作階段木馬通信特征的提取中:提取兩個(gè)數(shù)據(jù)包簇統(tǒng)計(jì)特征用于檢測(cè)木馬在連接保持無操作階段的通信行為,該兩個(gè)數(shù)據(jù)包簇統(tǒng)計(jì)特征為:“心跳過程”接收和發(fā)送的數(shù)據(jù)包比例相等、“心跳間隙”的平穩(wěn)性小于閾值;所述“心跳過程”接收和發(fā)送的數(shù)據(jù)包比例相等是指:不同木馬的心跳形式可能會(huì)存在差別,但是對(duì)于同一個(gè)木馬而言其心跳過程是不變的,在每個(gè)“心跳過程”木馬行為是一致的,發(fā)送和接收的數(shù)據(jù)包的數(shù)量也是相同的;所述“心跳間隙”的平穩(wěn)性小于閾值是指:當(dāng)“心跳間隙”的平穩(wěn)性小于閾值時(shí),則判定其為木馬通信,反之則為正常網(wǎng)絡(luò)通信; 操作階段木馬通信特征的提取分四個(gè)方面,分別為: 第一:針對(duì)木馬通信過程的長(zhǎng)時(shí)交互的特點(diǎn),分別提取以下行為特征:通信時(shí)長(zhǎng)、通信小包數(shù)量;將長(zhǎng)度小于200字節(jié)的數(shù)據(jù)包稱為通信小包; 第二:針對(duì)木馬被控端在通信中扮演資源服務(wù)器的角色,提取以下行為特征:被控主機(jī)的信息和文件資源異常上傳通信量; 第三:針對(duì)木馬通信過程中數(shù)據(jù)包分布特點(diǎn),提取以下行為特征:會(huì)話接收小包數(shù)量與會(huì)話小包數(shù)量的比值,該特征值大于0.5時(shí)為異常特征; 第四:針對(duì)木馬通信時(shí)的數(shù)據(jù)流表現(xiàn)為由內(nèi)向外的上傳流的特點(diǎn),提取以下特征:會(huì)話上傳數(shù)據(jù)量與下載數(shù)據(jù)量的比值,該特征值大于I時(shí)為異常特征; 所述通信時(shí)長(zhǎng)、通信小包數(shù)量、被控主機(jī)的信息和文件資源異常上傳通信量、會(huì)話接收小包數(shù)量與會(huì)話小包數(shù)量的比值、會(huì)話上傳數(shù)據(jù)量與下載數(shù)據(jù)量的比值這些特征的定義均以被控主機(jī)為參照物。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 簇集合S,的算法如下: 輸入:數(shù)據(jù)流S,簇半徑閾值ε ; 輸出:生成的簇集合S';
BEGIN (O j=0, Aff=O ;初始化簇?cái)?shù)量j=0,窗口長(zhǎng)度AW=O,記錄簇和數(shù)據(jù)包的個(gè)數(shù); (2)while ;數(shù)據(jù)流S未結(jié)束&S中新到達(dá)數(shù)據(jù)包的時(shí)間戳為& (3)lf(j=0)j++, Aff++ ;以&為起始建立新的簇C」,創(chuàng)建簇矢量P(Cj); (4)else Ifε ) \ e Cj,更新簇矢量 P (C」),Aff++ ; (5)else j++, Λ W++;以\為起始建立新的簇Cj,創(chuàng)建簇矢量P (Cj);
(6)EndIf;
(7)Endwhile ; END。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述四元組中的元素為源IP地址、源端口、目的IP地址和目的端口 ;系統(tǒng)采用數(shù)組鏈表結(jié)構(gòu)來記錄四元組,數(shù)組鏈表結(jié)構(gòu)是指數(shù)組和鏈表相結(jié)合的數(shù)據(jù)結(jié)構(gòu);系統(tǒng)利用數(shù)組建立哈希表,將哈希表作為鏈表的索引來提高查找效率;系統(tǒng)針對(duì)數(shù)據(jù)包四元組中各元素的不同概率分布,把分布均勻的元素分量設(shè)為數(shù)組鏈表,把分布不均勻的元素分量設(shè)為鏈表。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,系統(tǒng)利用哈希表+多級(jí)鏈表的結(jié)構(gòu)記錄源IP地址分量,源端口分量、目的IP地址分量、目的端口分量依次分別建立多級(jí)鏈表,系統(tǒng)選取源IP地址的最后I個(gè)字節(jié)進(jìn)行哈希值的計(jì)算建立哈希表。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取“心跳間隙”的平穩(wěn)性的方法為:取單向會(huì)話數(shù)據(jù)流的時(shí)間間隔采樣結(jié)果為:I = ,其中X表示數(shù)據(jù)包時(shí)間間隔采樣集合,單位為秒,Xi表示第i個(gè)采樣值,η表示樣本量,I≤i≤η ; = ?ν,}^為對(duì)X進(jìn)行離散傅立葉變換(DFT)后的特征向量,其中表示經(jīng)過離散傅立葉變換變換后的第i個(gè)系數(shù);“心跳間隙”的平穩(wěn)性定義為Stability:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,取單向會(huì)話數(shù)據(jù)流的時(shí)間間隔采樣結(jié)果為: ,其中X表示數(shù)據(jù)包時(shí)間間隔采樣集合,單位為秒,Xi表示第i個(gè)采樣值,η表示樣本量, 為對(duì)X進(jìn)行離散傅立葉變換后的特征向量,其中Ii表示經(jīng)過離散傅立葉變換變換后的第i個(gè)系數(shù);“心跳間隙”的平穩(wěn)性定義為Stability:
【文檔編號(hào)】H04L29/06GK103491107SQ201310478492
【公開日】2014年1月1日 申請(qǐng)日期:2013年10月14日 優(yōu)先權(quán)日:2013年10月14日
【發(fā)明者】劉勝利, 王文冰, 胥攀, 楊杰, 費(fèi)金龍, 劉龍, 蘭景宏 申請(qǐng)人:劉勝利