一種基於交叉熵聯合馬氏距離的網絡異常流量檢測方法與流程
2023-11-07 09:26:52
本發明涉及計算機網絡安全技術領域,具體涉及一種基於交叉熵聯合馬氏距離的網絡異常流量檢測方法。
背景技術:
當前,計算機網絡的攻擊與入侵行為與日俱增,網絡安全面臨的形勢越來越嚴峻。諸如分布式拒絕服務攻擊、蠕蟲病毒攻擊、埠掃描、p2p軟體濫用、用戶非法操作與訪問、垃圾郵件、木馬病毒、惡意篡改網頁、設備宕機和鏈路損壞等,會產生大量的網絡異常流量,嚴重影響網絡安全。高效精準的網絡異常流量檢測方法對於確保網絡安全可靠運行意義重大。
在網絡通信過程中,專門制訂了網絡通信規範,對其入網終端、可安裝應用程式及網絡會話屬性值等均設定了相關要求,以確保網絡在預定的模式下運行的一種專用網際網路即受控網絡,基於受控網絡的控制特點,可知其網絡流量在正常情況下,與傳統網際網路相比,會表現出更加強烈的自相似性、長相關性和重尾分布。網絡流量的自相似性、長相關性和重尾分布等分布特徵對於網絡流量工程、網絡建模和網絡異常流量檢測具有指導意義。
網絡異常流量檢測從本質上來說是模式識別問題,其核心是樣本與樣本之間或類與類之間的相似性測度問題。判斷樣本之間的相似性常採用近鄰準則,即將待分類樣本與標準模板進行比較,看哪個模板匹配程度更好,從而確定待測試樣本的分類。依照近鄰準則進行分類通常有兩種計算方法,一是與樣本庫中所有樣本特徵分別做相似性測度,找出最接近的樣本,取該樣本所屬類別作為待測樣本的類別。另一種方法是與樣本庫中不同類別的中心做相似性測度,找出最接近類的中心,以該類作為待測樣本的類別。計算模式相似性測度有歐氏距離、馬氏距離、夾角餘弦距離、tanimoto測度等多種距離算法。其中,歐氏距離計算測度方法較為簡單,使用最為廣泛,但由於它將樣本的不同屬性之間的差別等同看待,這一點有時不能滿足實際要求,存在難以區分樣本之間屬性差別和變量之間易產生相關性幹擾的問題,而使用馬氏距離計算測度可以不受量綱的影響,並且兩點之間的馬氏距離與原始數據的測量單位無關,由標準化數據和中心化數據計算出的兩點之間的馬氏距離相同,可以排除變量之間的相關性幹擾,但誇大了變化微小的變量,單獨用馬氏距離進行網絡異常檢測的準確性、可靠性和實用性不高。
技術實現要素:
有鑑於此,本發明提供了一種基於交叉熵結合馬氏距離的網絡異常流量檢測方法,從交叉熵的角度來映射網絡流量變化程度,並通過馬氏距離計算將這種變化程度從多維度的屬性空間轉換到一維度上的單值空間中,實現網絡異常流量檢測。
本發明是通過以下技術方案來實現的:
步驟1,採集網絡會話多元組數據;
步驟2,從步驟1採集的每類數據中均任意選取n條數據,放在一個觀測刻度內;重複選取m次,構建出m個觀測刻度內的樣本單元;
步驟3,計算第i個觀測刻度內的網絡會話多元組數據中同類數據之間的交叉熵值,將觀測刻度i內的各類數據的交叉熵值組成交叉熵向量li;其中i=1,2,3…m,得到m個觀測刻度內所有的交叉熵向量l1,l2...li...lm;
步驟4,利用步驟3得到的m個觀測刻度內的網絡會話多元組交叉熵向量,組成判定矩陣ξtrain,ξtrain=[l1l2...li...lm]t;
步驟5,計算交叉熵向量li到步驟4所得到的判定矩陣ξtrain的類中心c的馬氏距離di,遍歷m個觀測刻度內所有的交叉熵向量,得到m個馬氏距離d1,d2,…dm;
步驟6,確定網絡異常流量判定的閾值
其中mean(d1,d2,…dm)表示對d1,d2,…dm求平均;
步驟7,採集網絡會話多元組數據作為待檢測數據,從採集的每類待檢測數據中均任意選取n條數據,放在觀測刻度j內;利用所述步驟3的方式計算觀測刻度j內的網絡會話多元組數據的交叉熵向量lj,利用所述步驟5的方式計算向量lj到判定矩陣ξtrain的類中心c的馬氏距離dj,比較dj與閾值的大小,當時流量異常,發出報警信息。
其中,步驟1採集的網絡會話多元組數據為:{sip,sport,dip,dport,in,out,vel},其中sip表示網絡會話源地址,sport表示網絡會話源埠,dip表示網絡會話目的地址,dport表示網絡會話目的埠,in表示網絡會話中連接到被觀測節點的其它不同節點的數量即入度,out表示網絡會話中被觀測節點連接其它不同節點的數量即出度,vel表示網絡會話中不同連接的流速。
其中,步驟3中交叉熵向量li中d類數據的交叉熵值計算公式為:
其中為統計d類數據的前半部分中不同特徵的概率分布得到的序列;為統計d類數據的後半部分中不同特徵的概率分布得到的序列;其中所述特徵為該組數據對應的網絡會話數據參數,和長度相同。
其中,步驟5中判定矩陣ξtrain的類中心c計算公式為:
c=mean(ξtrain)
其中mean(ξtrain)表示對矩陣ξtrain求平均。
其中,步驟5中li到類中心c的馬氏距離為:
di=(li-c)s-1(li-c)t;
其中s為ξtrain的協方差矩陣,s-1為s的逆,(li-c)t為向量(li-c)的轉置。
有益效果:
(1)本發明為受控網絡的網絡異常流量檢測提供了一種新的方法,利用交叉熵聯合馬氏距離,能夠解決現有的馬氏距離網絡異常流量檢測方法中存在的誇大變化微小變量的問題,提高了網絡異常檢測的準確性、可靠性和實用性。
(2)本發明定義網絡會話七元組數據,通過採集{sip,sport,dip,dport,in,out,vel}數據,相對於傳統網絡五元組數據統計更加準確,實現可靠的網絡流量異常檢測。
(3)本發明通過將一組數據分為前後兩部分,計算前半部分與後半部分的交叉熵,對網絡會話多元組的分布變化描述更為準確,結合馬氏距離後實現有效的網絡流量異常檢測。
附圖說明
圖1為網絡異常流量檢測流程圖。
具體實施方式
下面結合附圖並舉實施例,對本發明進行詳細描述。
在資訊理論中的交叉熵值可以用來描述網絡會話多元組的分布變化,從而可以通過分析網絡會話多元組不同維度上交叉熵值的變化程度來檢測網絡流量變化程度。本發明提供了一種基於交叉熵聯合馬氏距離的網絡異常流量檢測方法,包括以下步驟:
步驟1,採集網絡會話多元組數據;
本發明可以通過傳統的網絡會話五元組數據來進行的網絡異常流量監測,也可以自定義的選取與流量變化相關的不同類別的網絡會話數據,本實施例採用包括sip,sport,dip,dport,in,out和vel七個特徵的網絡會話七元組數據,相對於傳統網絡五元組數據統計更加準確,實現可靠的網絡流量異常檢測;其中sip表示網絡會話源地址,sport表示網絡會話源埠,dip表示網絡會話目的地址,dport表示網絡會話目的埠,in表示網絡會話中連接到被觀測節點的其它不同節點的數量即入度,out表示網絡會話中被觀測節點連接其它不同節點的數量即出度,vel表示網絡會話中不同連接的流速;
步驟2,確定判定矩陣ξtrain:
從步驟1採集到的網絡會話七元組數據的每類數據中均選取n條數據,放在一個觀測刻度上;採用同樣的方式選取另外n條數據,放到另一個觀測刻度上,共選取m次,構建出m個不同觀測刻度內的樣本單元;
步驟3,計算第i個觀測刻度內的網絡會話七元組數據中各組數據的交叉熵值,得到七個交叉熵值,組成交叉熵向量li,
li=[li(sip)li(sport)li(dip)li(dport)li(in)li(out)li(vel)]
其中i=1,2,3…m,得到m個觀測刻度內所有的交叉熵向量;
計算交叉熵向量li中同一類數據的交叉熵的方式有很多種,可以將數據任意拆分為兩部分,求此兩部分的交叉熵值,本實施例將同一類數據分為前後兩部分,計算前後兩部分之間的交叉熵,交叉熵向量li的d類數據的交叉熵值計算式為:
其中d類數據表示sip,sport,dip,dport,in,out或vel中的某一類數據:
為統計該組數據的前半部分中不同特徵的概率分布得到的序列;
(在前半部分共出現了z1'個不同的源ip);
z1'表示在前半部分出現的不同源ip的總數;
(在前半部分共出現了z'2個不同的目的ip);
z'2表示在前半部分出現的不同目的ip的總數;
(在前半部分共出現了z3'個不同的源埠port);
z3'表示在前半部分出現的不同源埠port的總數;
(在前半部分共出現了z'4個不同的目的埠port);
z'4表示在前半部分出現的不同目的埠port的總數;
(在前半部分共出現了z5'個不同的入度in);
z5'表示在前半部分出現的不同入度in的總數;
(在前半部分共出現了z'6個不同的出度out);
z'6表示在前半部分出現的不同出度out的總數;
(在前半部分共出現了z'7個不同的流速vel);
z'7表示在前半部分出現的不同流速vel的總數;
為統計該組數據的後半部分中不同特徵的概率分布得到的序列,計算方式與相同,只是把統計的對象變為同組數據的後半部分;
如果某個特徵在所述前半部分和所述後半部分的概率分布序列長度不同,則在較短的概率分布序列後補充0,使該特徵在所述前半部分和所述後半部分的概率分布序列長度相同,達到控制和長度相同的目的;其中所述特徵為sip,sport,dip,dport,in,out或vel對應的網絡會話數據參數;
i=1,2,3…m,計算所有觀測刻度內的網絡會話七元組交叉熵向量,經m次統計,得到m個觀測刻度內所有的交叉熵向量,每個交叉熵向量有7個交叉熵值;
步驟4,利用所有觀測刻度內的網絡會話七元組交叉熵向量組成m個觀測刻度內的判定矩陣ξtrain如下:
判定矩陣ξtrain為m×7矩陣;
步驟5,計算交叉熵向量li到步驟4所得到的判定矩陣ξtrain的類中心c的馬氏距離di,遍歷m個觀測刻度內所有的交叉熵向量,得到m個馬氏距離d1,d2,…dm;
其中判定矩陣ξtrain的類中心c為:c=mean(ξtrain);其中mean(ξtrain)表示對矩陣ξtrain求平均;
馬氏距離di為:
di=(li-c)s-1(li-c)t;
其中s為ξtrain的協方差矩陣,s-1為s的逆,(li-c)t為向量(li-c)的轉置;
步驟6,確定網絡異常流量判定的閾值閾值為:
其中mean(d1,d2,…dm)表示對d1,d2,…dm求平均;
步驟7,採集與步驟1數量相同的網絡會話n元組數據作為待檢測數據,從待檢測數據的每組中均選取n條數據,放在觀測刻度j內,觀測刻度j可以在步驟2的m個觀測刻度內,也可以不在這m個觀測刻度內,利用所述步驟3的方式計算觀測刻度j內的網絡會話n元組數據的交叉熵向量lj,利用所述步驟5的方式計算交叉熵向量lj到判定矩陣ξtrain的類中心c的馬氏距離dj,比較dj與閾值的大小,當時流量異常,發出報警信息。
綜上所述,以上僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。