◆霍一菲 陸穎穎
(陸軍裝甲兵學(xué)院 北京 100072)
互聯(lián)網(wǎng)自誕生至今,經(jīng)歷了高速的發(fā)展,現(xiàn)代社會(huì)離不開網(wǎng)絡(luò)的應(yīng)用。但是與之伴隨的,是不得不引起重視的網(wǎng)絡(luò)安全問題。DDoS攻擊出現(xiàn)已久,但至今仍無法做到完全的防控。DDoS攻擊一旦發(fā)生,將會(huì)為被攻擊者帶來重大損失。本文提出的基于信息熵及樸素貝葉斯公式混合模型的DDoS攻擊檢測系統(tǒng),是在實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)包的基礎(chǔ)上,先運(yùn)用信息熵的理論初步分析網(wǎng)絡(luò)狀況,若分析結(jié)果顯示網(wǎng)絡(luò)狀態(tài)穩(wěn)定,則跳過監(jiān)控模型的第二層——即運(yùn)用樸素貝葉斯公式進(jìn)行網(wǎng)絡(luò)狀態(tài)分析;若結(jié)果顯示此刻有遭受DDoS攻擊的可能,則運(yùn)用模型第二層準(zhǔn)確分析網(wǎng)絡(luò)狀態(tài)。通過這樣的方式使系統(tǒng)能夠兼顧實(shí)時(shí)性和準(zhǔn)確性。
DDoS攻擊是由DoS攻擊發(fā)展而來的一種攻擊形式,可以認(rèn)為是DoS攻擊的一種復(fù)雜形式。從本質(zhì)上來講DDoS攻擊和DoS攻擊是一種攻擊。圖1為DoS攻擊的原理示意圖。攻擊者通過對(duì)僵尸計(jì)算機(jī)植入木馬等形式取得僵尸計(jì)算機(jī)的控制權(quán),然后通過操作僵尸計(jì)算機(jī)向目標(biāo)計(jì)算機(jī)發(fā)送大量的消息,目標(biāo)計(jì)算機(jī)資源因此遭到了嚴(yán)重占用甚至耗盡從而無法工作。現(xiàn)有的最主要的DDoS攻擊類型例如SYN Flood攻擊、UDP Flood攻擊、ICMP Flood攻擊、land攻擊等。本文主要通過模擬發(fā)起SYN Flood攻擊來驗(yàn)證模型的可行性。
圖1 DoS攻擊原理示意圖
“熵”是一種熱力學(xué)概念,是一種用來表示分子狀態(tài)混亂程度的物理量。“熵”值增加表示分子狀態(tài)更加混亂,與此相對(duì)的,“熵”值減小表示分子狀態(tài)趨于穩(wěn)定。1948年,C.E.香儂從熱力學(xué)中借鑒了“熵”的概念,以此來描述信源的不確定度,并發(fā)明信息熵公式。根據(jù)信息熵公式進(jìn)行計(jì)算,可以得出當(dāng)前內(nèi)容信息量的多少。
貝葉斯定理是英國數(shù)學(xué)家貝葉斯發(fā)明的描述兩個(gè)概率之間的關(guān)系的定理,樸素貝葉斯算法的核心思想是貝葉斯定理。樸素貝葉斯算法實(shí)現(xiàn)簡單,學(xué)習(xí)和預(yù)測的效率都很高,是一種常用的建模方法。
貝葉斯定理:假設(shè)Y1,Y2……Yn互斥且構(gòu)成一個(gè)完備的事件組,且已知它們的概率P(Yi),i=1,2……n,現(xiàn)觀察到某事件X與Y1,Y2……Yn相伴隨機(jī)出現(xiàn),且已知條件概率P(X | Yi),求 P(Yi| X)。
其中已知的P(X | Yi),我們可以將其看成先驗(yàn)概率,它可以通過統(tǒng)計(jì)樣本得到,而欲求得的P(Yi| X),我們稱之為后驗(yàn)概率。貝葉斯定理公式就給出了如何通過先驗(yàn)概率求得后驗(yàn)概率的方法。貝葉斯定理公式如下:
樸素貝葉斯分類算法對(duì)條件概率分布作了條件獨(dú)立性的假設(shè),即樣本的各屬性之間是相互獨(dú)立的,它們的出現(xiàn)互不影響,所以有:
所以將公式(2)帶入公式(1)可以得出:
因此就得到了樸素貝葉斯算法的基本公式,因此樸素貝葉斯算法分類器可表示為:
對(duì)所有的Yi∈Y,分母都是相同的,所以樸素貝葉斯算法分類器可以表示為以下形式:
其中P(Yi)可以是Yi類樣本占樣本總數(shù)的比值,也可以根據(jù)具體情況確定,P(Xj| Yi)可以是Yi類樣本中具有Xj屬性的樣本與Yi樣本總數(shù)的比值,也可以根據(jù)具體情況確定。
信息熵公式如公式6所示:
其中,U={U1、U2、U3……Un},pi代表與之對(duì)應(yīng)的概率。運(yùn)用信息熵進(jìn)行網(wǎng)絡(luò)狀態(tài)判斷的優(yōu)點(diǎn)是計(jì)算量較小,能做到實(shí)時(shí)對(duì)網(wǎng)絡(luò)狀態(tài)的監(jiān)控。本模型將提取三個(gè)網(wǎng)絡(luò)數(shù)據(jù)包特點(diǎn)用于信息熵的計(jì)算,分別為:單向流數(shù)量、TCP短報(bào)文平均報(bào)文長度、目的端口號(hào)。與此相對(duì)應(yīng)的,可將信息熵公式做簡單變換,如公式7所示:
其中,X={X1、X2、X3},X1代表單向流數(shù)量,X2代表TCP短報(bào)文平均報(bào)文長度,X3代表目的端口號(hào)。通過計(jì)算可得出H(x)的取值范圍為(0,log2N),將N=3代入得出H(x)的取值范圍為(0,log23)。經(jīng)理論分析可知,計(jì)算結(jié)果越接近于0,網(wǎng)絡(luò)遭受攻擊的可能性越大。
運(yùn)用信息熵公式可以較快速對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行判斷,但是其準(zhǔn)確度不高,所以可以運(yùn)用樸素貝葉斯公式進(jìn)行建模,進(jìn)一步判斷網(wǎng)絡(luò)當(dāng)前是否存在攻擊,以提高模型的準(zhǔn)確性。
本模型將運(yùn)用二元組為一個(gè)單位構(gòu)建樸素貝葉斯分類器,樸素貝葉斯分類器公式在上一節(jié)已給出。二元組表現(xiàn)為:<屬性1,屬性2>。
其中,屬性1為數(shù)據(jù)包標(biāo)志位(mark)。TCP協(xié)議數(shù)據(jù)包標(biāo)志位共有六位,分別是 URG(緊急標(biāo)志)、SYN(同步標(biāo)志)、ACK(確認(rèn)標(biāo)志)、PSH(推標(biāo)志)、RST(復(fù)位標(biāo)志)和FIN(結(jié)束標(biāo)志),在使用TCP協(xié)議進(jìn)行通信時(shí),通信雙方使用標(biāo)志位的變換來表明自己通信的目的,因此可以通過檢測標(biāo)志位的變化來掌握網(wǎng)絡(luò)狀態(tài)。
屬性2為目的端口號(hào)。目的端口號(hào)與數(shù)據(jù)包是相互獨(dú)立的,它們的出現(xiàn)互不影響,符合樸素貝葉斯定理的條件。將目的端口號(hào)作為建模的一個(gè)屬性,是由于通過統(tǒng)計(jì)得出,有某些端口是DDoS攻擊的重點(diǎn)對(duì)象。
樸素貝葉斯分類器在使用之前,需使用訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練。訓(xùn)練數(shù)據(jù)的質(zhì)量關(guān)系到樸素貝葉斯分類器的準(zhǔn)確程度。
輸入:1min內(nèi)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包信息
輸出:對(duì)異常行為的檢測判斷
Layer one()
{
初始化當(dāng)前時(shí)間點(diǎn);
While(當(dāng)前時(shí)間為檢測時(shí)間點(diǎn))
{
現(xiàn)階段工會(huì)會(huì)計(jì)工作中,風(fēng)險(xiǎn)難以避免,如在基礎(chǔ)工作中,存在一定會(huì)計(jì)風(fēng)險(xiǎn),主要表現(xiàn)在工會(huì)經(jīng)費(fèi)收入、繳納等內(nèi)容方面。產(chǎn)生此類問題的主要原因?yàn)椋旱谝?,工?huì)收費(fèi)經(jīng)常不按制度執(zhí)行,經(jīng)費(fèi)收入過程中,由人為因素或其他因素導(dǎo)致,不遵守規(guī)定的現(xiàn)象時(shí)常發(fā)生,難以保證工會(huì)收費(fèi)的及時(shí)性。第二,在進(jìn)行工會(huì)會(huì)計(jì)核算時(shí),常以現(xiàn)有體系根據(jù)事業(yè)單位、工會(huì)單位的會(huì)計(jì)準(zhǔn)則為參考進(jìn)行比例計(jì)提,因此未按相關(guān)規(guī)定進(jìn)行會(huì)費(fèi)收取的現(xiàn)象時(shí)有發(fā)生,對(duì)預(yù)算計(jì)劃的執(zhí)行會(huì)造成一定干擾。第三,缺乏完整的支付記賬,缺乏合法完整的發(fā)票單據(jù)等導(dǎo)致工會(huì)費(fèi)用支出記錄不實(shí),存在資金流向不明等問題。
計(jì)算當(dāng)前時(shí)間粒度信息熵;
If(信息熵 > 最小閾值&&信息熵 < 最大閾值)
{
送入模型第二層進(jìn)行處理;
//無法準(zhǔn)確判斷是否發(fā)生攻擊情況,送入模型第二層進(jìn)行更準(zhǔn)確的判斷。
}
Else if(信息熵 > 最大閾值)
網(wǎng)絡(luò)中沒有攻擊發(fā)生,繼續(xù);
Else if(信息熵 < 最小閾值)
網(wǎng)絡(luò)中發(fā)生了攻擊,報(bào)警;
當(dāng)前時(shí)間點(diǎn)++;
}
}
輸入:模型第一層無法判斷的網(wǎng)絡(luò)數(shù)據(jù)包信息
輸出:對(duì)異常行為的檢測判斷
Layer two()
{
樸素貝葉斯分類器對(duì)提取的數(shù)據(jù)進(jìn)行分類,返回值y;
If(y = -1)
網(wǎng)絡(luò)中沒有攻擊發(fā)生,繼續(xù);
Else if(y = 1)
網(wǎng)絡(luò)中有攻擊發(fā)生,報(bào)警;
}
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)安全得到了人們越來越多的重視。但是網(wǎng)絡(luò)安全問題卻層出不窮。DDoS攻擊就是對(duì)網(wǎng)絡(luò)安全造成威脅的其中一種典型。本文主要針對(duì)的是檢測網(wǎng)絡(luò)中發(fā)生的DDoS攻擊,采取信息熵和樸素貝葉斯攻擊相結(jié)合的方式,兼顧系統(tǒng)在檢測攻擊過程中的實(shí)時(shí)性和準(zhǔn)確性。但本系統(tǒng)還存在很多不足的方面:一、目前主要針對(duì)的是SYN Flood攻擊進(jìn)行的系統(tǒng)建模,對(duì)于其他類型的DDoS攻擊并未考慮,今后需擴(kuò)展可檢測的DDoS攻擊類型。二、模型第二層可嘗試運(yùn)用其他建模方法進(jìn)行建模,比如:支持向量機(jī),神經(jīng)網(wǎng)絡(luò)等建模方法。通過對(duì)比擇取準(zhǔn)確度最高的方法進(jìn)行建模,進(jìn)一步完善系統(tǒng)。
總之,系統(tǒng)還有很多需要改進(jìn)的地方,這都是將來可以努力的方向。