曹薇薇,尹傳環(huán),牟少敏
CAO Weiwei1,YIN Chuanhuan1,MU Shaomin2
1.北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京100044
2.山東農(nóng)業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,山東 泰安271018
1.School of Computer and Information Technology,Beijing Jiaotong University,Beijing 100044,China
2.School of Computer and Information Engineering,Shandong Agriculture University,Tai’an,Shandong 271018,China
隨著計(jì)算機(jī)的普及,網(wǎng)絡(luò)傳播的信息涉及各行各業(yè),網(wǎng)絡(luò)安全問(wèn)題逐漸成為人們關(guān)注的一個(gè)焦點(diǎn)。防火墻隔離、網(wǎng)絡(luò)訪問(wèn)控制等靜態(tài)防御手段已經(jīng)不能滿足當(dāng)前的需要,因此能夠主動(dòng)檢測(cè)并且報(bào)告不安全行為的入侵檢測(cè)系統(tǒng)應(yīng)運(yùn)而生。
然而在實(shí)際的應(yīng)用過(guò)程中,極高的漏報(bào)率、誤報(bào)率和大量的重復(fù)報(bào)警是入侵檢測(cè)系統(tǒng)無(wú)法避免的缺陷,報(bào)警融合技術(shù)就是為此而提出的。報(bào)警融合的目的是降低漏報(bào)率、誤報(bào)率,減少重復(fù)報(bào)警,以利于管理員清晰地掌握網(wǎng)絡(luò)的發(fā)展態(tài)勢(shì)。然而現(xiàn)今大部分報(bào)警融合的方法主要是為了減少重復(fù)報(bào)警[1-4],對(duì)于提高檢測(cè)率和降低漏報(bào)方面很少關(guān)注,但是這些對(duì)于改善攻擊的檢測(cè)效果也是至關(guān)重要的。本文提出的基于支持向量數(shù)據(jù)描述的報(bào)警融合方法,通過(guò)局部分類(lèi)、數(shù)據(jù)融合以及最終的決策分析,既避免了普通支持向量機(jī)在處理樣本不均衡問(wèn)題上的檢測(cè)率很低的現(xiàn)象[5],同時(shí),通過(guò)結(jié)合模擬退火的思想,能夠剔除冗余特征,提高參與訓(xùn)練的報(bào)警的質(zhì)量,最終通過(guò)數(shù)據(jù)融合,能夠在很大程度上提高報(bào)警的檢測(cè)率,降低漏報(bào)率和誤報(bào)率,明顯地改善了攻擊的檢測(cè)效果。
支持向量數(shù)據(jù)描述(SVDD)是用于異常檢測(cè)的一類(lèi)分類(lèi)器。它源于Vapnik[6]提出的支持向量機(jī)(SVM),在2004 年由Tax 和Duin[7]提出。一類(lèi)分類(lèi)支持向量機(jī)包括兩種:一種是普通的一類(lèi)分類(lèi)支持向量機(jī)(OCSVM)[8],它尋找的是一個(gè)最優(yōu)的分類(lèi)超平面,將訓(xùn)練數(shù)據(jù)與原點(diǎn)以最大間隔進(jìn)行劃分;然而在現(xiàn)實(shí)中,異常數(shù)據(jù)點(diǎn)也是存在的,只是不足以和正常數(shù)據(jù)構(gòu)成一個(gè)樣本均衡的兩類(lèi)分類(lèi)器,于是就出現(xiàn)了另外一種一類(lèi)分類(lèi)器即本文所采用的SVDD,它尋找的是一個(gè)能夠包括所有目標(biāo)數(shù)據(jù)的最小超球體,而盡可能地將少量異常數(shù)據(jù)點(diǎn)劃分在超球體的外面。
SVDD 的數(shù)學(xué)模型如下:
引入拉格朗日乘子,可將上述問(wèn)題轉(zhuǎn)化為其對(duì)偶問(wèn)題:
根據(jù)文獻(xiàn)[7],引入核函數(shù)K(xi,xj)=(Φ(xi)·Φ(xj)),可以將上述線性問(wèn)題轉(zhuǎn)化為非線性問(wèn)題,具體的引入過(guò)程見(jiàn)文獻(xiàn)[7],轉(zhuǎn)化后的問(wèn)題表示如下:
決策函數(shù)為:
對(duì)于一個(gè)待測(cè)的樣本z,如果它到球體中心的距離小于超球的半徑,則判斷它為正常數(shù)據(jù),否則即為異常數(shù)據(jù)。判斷公式如下:
如果f小于等于0,則認(rèn)為待測(cè)樣本屬于正常類(lèi),否則即為異常類(lèi)。其中K(xi,xj)代表核函數(shù),現(xiàn)在常用的核函數(shù)包括線性核函數(shù),高斯核函數(shù),多項(xiàng)式核函數(shù)以及sigmoid 核函數(shù)[9],本文采用高斯核函數(shù)[10],其公式如下:
模擬退火(SA)的思想源于固體降溫,眾所周知,固體必須緩慢降溫才能使得它在每一個(gè)溫度下都能達(dá)到熱平衡,最終趨向于平衡狀態(tài)。模擬退火的思想最早是由Metropolis[11]提出的,1983 年,Kirkpatrick[12]等人將其引入到組合化領(lǐng)域,至此得到了許多學(xué)者對(duì)其更加深入的研究與推廣。
模擬退火的具體過(guò)程如下:從選定的初始解開(kāi)始,借助于溫度控制參數(shù)t,在t緩慢降低時(shí)產(chǎn)生的一系列Markov 鏈中,利用一個(gè)隨機(jī)產(chǎn)生新解的案和Metropolis準(zhǔn)則,重復(fù)下面的過(guò)程“產(chǎn)生新解→計(jì)算目標(biāo)函數(shù)差→判斷是否接受新解→根據(jù)Metropolis準(zhǔn)則判斷是否接受新解”,如此的進(jìn)行迭代,直到目標(biāo)函數(shù)達(dá)到最優(yōu)。
將SA 思想引入到SVDD 中是為了尋找最優(yōu)的折中參數(shù)C1、C2,高斯核參數(shù)σ和屬性特征[13]。算法流程如下:
(1)首先設(shè)置一個(gè)初始的溫度值T=T0和最大迭代次數(shù),溫度值是一個(gè)很大的數(shù)。
(2)隨機(jī)產(chǎn)生一個(gè)解決方案x,作為初始的參數(shù)值和屬性特征。
(3)以x為出發(fā)點(diǎn),產(chǎn)生一個(gè)隨機(jī)向量作為下一個(gè)可行方案y。
(4)分別計(jì)算兩個(gè)解決方案的目標(biāo)函數(shù)值,在這里目標(biāo)函數(shù)值指的是分類(lèi)準(zhǔn)確率,記為X和Y,ΔE=Y-X。
(5)如果ΔE>0,則用新的解決方案y代替原來(lái)的解決方案x,溫度立即減小,轉(zhuǎn)(7)。
(7)判斷是否達(dá)到最大迭代次數(shù),如果沒(méi)有達(dá)到,則轉(zhuǎn)(3)繼續(xù)執(zhí)行;否則終止算法,輸出最優(yōu)的解決方案。
通過(guò)SA-SVDD 算法可以找到SVDD 模型中的參數(shù)C1、C2,高斯核參數(shù)σ和所選擇的屬性特征,之后將這些參數(shù)和屬性特征用于SVDD 模型的訓(xùn)練,不僅可以提高分類(lèi)的準(zhǔn)確率,同時(shí)減少了無(wú)關(guān)屬性的干擾,既縮短了訓(xùn)練的時(shí)間,也進(jìn)一步提高了模型的分類(lèi)質(zhì)量。
報(bào)警數(shù)據(jù)的多源性與復(fù)雜性使得傳統(tǒng)的單個(gè)分類(lèi)器檢測(cè)效率急劇下降,由此多個(gè)分類(lèi)器同時(shí)被用來(lái)進(jìn)行報(bào)警數(shù)據(jù)的檢測(cè)成為必然趨勢(shì)[14]。根據(jù)可能存在的不同攻擊類(lèi)型分別建立相應(yīng)的分類(lèi)檢測(cè)器,多個(gè)檢測(cè)器協(xié)同作用,再通過(guò)最終的決策中心進(jìn)行判斷,這樣的結(jié)構(gòu)如圖1 所示,能夠很大程度上提高檢測(cè)效率,降低漏報(bào)率和誤報(bào)率。
圖1 多個(gè)分類(lèi)器協(xié)同檢測(cè)結(jié)構(gòu)
1998 年,美國(guó)國(guó)防部高級(jí)規(guī)劃署(DARPA)在林肯實(shí)驗(yàn)室建立了一個(gè)模擬美國(guó)空軍局域網(wǎng)的一個(gè)網(wǎng)絡(luò)環(huán)境,通過(guò)仿真各種用戶類(lèi)型、各種不同的網(wǎng)絡(luò)流量和攻擊手段收集了9 周時(shí)間的網(wǎng)絡(luò)連接和系統(tǒng)審計(jì)數(shù)據(jù),形成了KDD CUP 99 數(shù)據(jù)集[15],隨后來(lái)自哥倫比亞大學(xué)的Sal Stolfo 教授和來(lái)自北卡羅來(lái)納州立大學(xué)的Wenke Lee 教授采用數(shù)據(jù)挖掘等技術(shù)對(duì)以上數(shù)據(jù)集進(jìn)行特征分析和數(shù)據(jù)預(yù)處理,形成了現(xiàn)在著名的KDD99 數(shù)據(jù)集,這個(gè)數(shù)據(jù)集的每個(gè)數(shù)據(jù)包含41 種屬性,第42 個(gè)是標(biāo)明數(shù)據(jù)類(lèi)型的。本文采用KDD99 數(shù)據(jù)集構(gòu)建了一個(gè)具體的模型,并且用相關(guān)數(shù)據(jù)對(duì)模型進(jìn)行了測(cè)試。
KDD99 數(shù)據(jù)集根據(jù)其攻擊的特征分為4 種類(lèi)型:拒絕服務(wù)攻擊類(lèi)型DOS(Denial of Service)、端口檢測(cè)和掃描攻擊類(lèi)型PROBING(probing)、權(quán)限提升攻擊類(lèi)型U2R(User to Root),遠(yuǎn)程登錄攻擊類(lèi)型R2L(Remote to Local)。本文將4 種攻擊類(lèi)型與正常數(shù)據(jù)類(lèi)型分別建立4 個(gè)有針對(duì)性的分類(lèi)器,對(duì)攻擊類(lèi)型和正常數(shù)據(jù)進(jìn)行檢測(cè),然后將局部的檢測(cè)結(jié)果發(fā)到?jīng)Q策中心,通過(guò)報(bào)警融合規(guī)則進(jìn)行融合以做出最終的決策判斷。與普通分類(lèi)器不同的是,這4 個(gè)分類(lèi)器采用上述SA-SVDD 算法,分別以4 種攻擊類(lèi)型為正類(lèi),而正常數(shù)據(jù)看成負(fù)類(lèi),這樣做的目的是每個(gè)分類(lèi)器有針對(duì)性的對(duì)攻擊類(lèi)型進(jìn)行檢測(cè),而且由于每種攻擊類(lèi)型對(duì)于數(shù)據(jù)41 個(gè)屬性的需要程度不同,所以結(jié)合SA-SVDD 算法可以自動(dòng)為每個(gè)攻擊類(lèi)型篩選出適合它自己的數(shù)據(jù)屬性,既減少了無(wú)關(guān)屬性對(duì)于分類(lèi)精度的干擾,同時(shí)對(duì)數(shù)據(jù)進(jìn)行了約減,大大節(jié)約了訓(xùn)練所需要的時(shí)間,因此這樣訓(xùn)練出來(lái)的模型能夠明顯地降低漏報(bào)率和誤報(bào)率。本文選取KDD99的部分子集進(jìn)行了實(shí)驗(yàn),分別從4 種攻擊類(lèi)型的子集中抽取部分作為訓(xùn)練集合,而剩余的數(shù)據(jù)進(jìn)行測(cè)試,4 個(gè)訓(xùn)練的數(shù)據(jù)集如下(圖2 左邊)訓(xùn)練結(jié)果分別表示為ui,i∈{1,2,3,4},ui∈{1,-1},其中1 表示屬于攻擊類(lèi)型,-1 表示屬于正常數(shù)據(jù)。然后統(tǒng)一將局部檢測(cè)的結(jié)果送到報(bào)警數(shù)據(jù)融合決策中心,通過(guò)決策融合得到最終的判斷,4 個(gè)分類(lèi)器的決策函數(shù)如圖2 所示。
圖2 融合實(shí)現(xiàn)過(guò)程的具體結(jié)構(gòu)
由于各個(gè)分類(lèi)器中參與訓(xùn)練的數(shù)據(jù)集大小是不同的,所以每個(gè)分類(lèi)器的分類(lèi)性能也是不同的,采用一個(gè)矩陣Q表示各個(gè)分類(lèi)器的分類(lèi)性能,針對(duì)本文的實(shí)驗(yàn),這個(gè)Q是一個(gè)5×4 的矩陣:
矩陣中的每個(gè)元素qij表示第j個(gè)分類(lèi)器對(duì)于第i個(gè)數(shù)據(jù)集的分類(lèi)準(zhǔn)確度,根據(jù)風(fēng)險(xiǎn)最小化準(zhǔn)則,融合算法設(shè)計(jì)如下:
(1)由U={u1,u2,u3,u4}得到V={v1,v2,v3,v4}={-u1,-u2,-u3,-u4}。
(2)由U和α1,α2,α3,α4計(jì)算得到,,由V和α1,α2,α3,α4計(jì)算得到,其中i=1,2,3,4,表示對(duì)角線元素為αi,其余元素都為0 的i階方陣。
決策的依據(jù)是如果屬于所有攻擊類(lèi)中概率最大的值都比屬于正常類(lèi)中概率最小的值還要小,那么這個(gè)報(bào)警判定為正常類(lèi),否則即為攻擊類(lèi),實(shí)驗(yàn)結(jié)果記錄這個(gè)攻擊類(lèi)的類(lèi)型以及被哪個(gè)檢測(cè)器檢測(cè)得到。
本文選取的報(bào)警數(shù)據(jù)來(lái)自KDD99 數(shù)據(jù)集的一個(gè)子集,這個(gè)子集帶有正確的分類(lèi)標(biāo)簽,以便于對(duì)于模型進(jìn)行驗(yàn)證,表1展示了這個(gè)子集中每種攻擊類(lèi)型的數(shù)據(jù)條數(shù)。
表1 實(shí)驗(yàn)所用到的各種數(shù)據(jù)的條數(shù)統(tǒng)計(jì)
實(shí)驗(yàn)只是選取了一部分?jǐn)?shù)據(jù)進(jìn)行建模,剩余的大部分?jǐn)?shù)據(jù)進(jìn)行模型的測(cè)試,模型的建立過(guò)程中需要兩種數(shù)據(jù)同時(shí)存在,因此本實(shí)驗(yàn)隨機(jī)從KDD99 數(shù)據(jù)集中選取了部分作為建模,表2 展示了參加訓(xùn)練的所有攻擊數(shù)據(jù)的條數(shù)以及形成的各個(gè)模型中的支持向量的個(gè)數(shù)。
表2 訓(xùn)練數(shù)據(jù)的條數(shù)及各個(gè)模型中支持向量的個(gè)數(shù)統(tǒng)計(jì)
模型的檢測(cè)結(jié)果如表3,左側(cè)的一列表示數(shù)據(jù)集,表格的第一行表示各個(gè)分類(lèi)器,中間的數(shù)據(jù)表示各個(gè)分類(lèi)器的檢測(cè)準(zhǔn)確率。
表3 模型的檢測(cè)結(jié)果 %
表3 顯示了各個(gè)模型的分類(lèi)準(zhǔn)確率,其中f-U2R 分類(lèi)器之所以出現(xiàn)對(duì)所有數(shù)據(jù)的檢測(cè)都是100%的結(jié)果是因?yàn)閁2R 這種攻擊數(shù)據(jù)的數(shù)據(jù)量太小,從表1 和表2 可以看出,參加訓(xùn)練的數(shù)據(jù)只有25 條,模型中只有4 個(gè)支持向量,這就有可能導(dǎo)致形成的超球體半徑很小,而參加測(cè)試的數(shù)據(jù)只有5 條,因此當(dāng)這5 個(gè)數(shù)據(jù)點(diǎn)全部恰好位于這個(gè)超球體內(nèi),而剩下的數(shù)據(jù)點(diǎn)全部位于超球體外面,就導(dǎo)致了實(shí)驗(yàn)的結(jié)果是100%的檢測(cè)準(zhǔn)確率。表3是采用融合算法之前的各個(gè)模型對(duì)于每個(gè)被測(cè)數(shù)據(jù)集的測(cè)試結(jié)果展示,表4 顯示了采用本文所提融合算法之后的檢測(cè)結(jié)果,其中矩陣Q即是表3 中的數(shù)據(jù)值。
表4 經(jīng)過(guò)融合決策中心之后的檢測(cè)結(jié)果
通過(guò)將表4 與表3 對(duì)比,發(fā)現(xiàn)融合后對(duì)于DOS 和PROBING 兩種攻擊類(lèi)型的檢測(cè)都有了一些提高,而對(duì)于U2R 和R2L 兩種數(shù)據(jù)的檢測(cè)沒(méi)有變化,對(duì)于正常數(shù)據(jù)的檢測(cè)相比單個(gè)分類(lèi)器有了少許降低,但是從實(shí)際情況來(lái)看,少許的誤報(bào)換來(lái)對(duì)于頻繁攻擊的更精確檢測(cè)還是值得的。
最后本文還統(tǒng)計(jì)了融合前后模型的漏報(bào)率,漏報(bào)率指未被檢測(cè)出來(lái)的數(shù)據(jù)占其所在數(shù)據(jù)類(lèi)型的數(shù)據(jù)的百分比。
通過(guò)表5 可以很明顯看出融合算法之后各個(gè)數(shù)據(jù)集的漏報(bào)率都有了明顯的降低,只是正常數(shù)據(jù)的漏報(bào)率有了稍許的增加。這意味著可能稍許正常的數(shù)據(jù)被誤判斷為異常數(shù)據(jù),但是對(duì)于像DOS 和PROBING 這兩種非常大量的攻擊,檢測(cè)率有了明顯的提升,這里認(rèn)為少量的誤判還是值得的。
表5 融合前后模型的漏報(bào)率比較
本文提出了一種基于支持向量數(shù)據(jù)描述的報(bào)警融合方法,并且結(jié)合模擬退火的思想,能夠根據(jù)不同的攻擊類(lèi)型,選擇適合它本身的數(shù)據(jù)屬性和核參數(shù),建立的各個(gè)小模型再經(jīng)過(guò)報(bào)警融合決策中心進(jìn)行判斷,最終確定是屬于哪種攻擊類(lèi)型。這樣通過(guò)分布式檢測(cè),最后經(jīng)過(guò)決策融合中心得到最終的報(bào)警結(jié)果,不僅增加了報(bào)警的檢測(cè)率,也在很大程度上減少了漏報(bào)率,彌補(bǔ)了普通報(bào)警融合算法中很少考慮這兩方面的缺點(diǎn)。
當(dāng)然,本文所提的方法也還是有缺陷的,由于訓(xùn)練數(shù)據(jù)選取的隨機(jī)性以及數(shù)據(jù)本身的限制,所以建立的模型也不是非常完美的,對(duì)于像U2R 數(shù)據(jù)的模型,因?yàn)閿?shù)據(jù)量小,就不是很理想。模擬退火的次數(shù)也是模型中一個(gè)人為控制的因素,這個(gè)只能通過(guò)大量的實(shí)驗(yàn)獲得,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),并且針對(duì)不同的數(shù)據(jù)集可能取值也是不同的。但是無(wú)論如何,模型對(duì)于大量普遍存在的數(shù)據(jù)集如DOS 攻擊和PROBING 攻擊的檢測(cè)還是很有效的。對(duì)于其他的數(shù)據(jù)集,將來(lái)也可以進(jìn)行驗(yàn)證。
[1] Valdes A,Shinner K.Probabilistic alert correlation[C]//Proceedings of the 4th International Symposium on Recent Advances in Intrusion Detection,Davis,2001:54-68.
[2] Giacinto G,Roli F,Didaci L.Fusion of multiple classifiers for intrusion detection in computer networks[J].Pattern Recognit Lett,2003,24(12):1795-1803.
[3] 穆成坡,黃厚寬,田盛豐.基于模糊綜合評(píng)判的入侵檢測(cè)報(bào)警信息處理[J].計(jì)算機(jī)研究與發(fā)展,2005,42(10):1679-1685.
[4] 郭帆,余敏,葉繼華.一種基于分類(lèi)和相似度的報(bào)警聚合方法[J].計(jì)算機(jī)應(yīng)用,2007,27(10):2446-2449.
[5] 姚程寬.SVM 在不平衡樣本集中的應(yīng)用研究[J].計(jì)算機(jī)與數(shù)字工程,2007(10).
[6] Vapnik V N.The nature of statistical learning theory[M].New York:Springer,1995.
[7] Tax D M J,Duin R.Support vector data description[J].Machine Learning,2004,54:45-66.
[8] Sch?lkopf B,Williamson R,Smola A,et al.Single-class support vector machine,Unsupervised Learning,Dagstuhl-Seminar-Report 235[R].1999:19-20.
[9] Muller K R,Mike S,Ratsch G,et al.An introduction to kernel-based learning algorithms[J].IEEE Trans on Neural Net,2001,12:181-201.
[10] Buhmann M D.Radial basis functions[M].Cambridge:Cambridge University Press,2000:1-38.
[11] Metropolis N,Rosenbluth A W,Rosenbluth M N,et al.Equation of state calculations by fast computing machines[J].The Journal of Chemical Physics,1953,21(6):1087-1092.
[12] Kirkpatrick S,Gelatt Jr C D,Vecchi M P.Optimization by simulated annealing[J].Science,1983,220:671-680.
[13] 曹薇薇,劉國(guó)華,陳國(guó)濤,等.模擬退火在支持向量數(shù)據(jù)描述的參數(shù)選取和特征選擇中的應(yīng)用[C]//第五屆中國(guó)智能計(jì)算大會(huì)論文集,2011.
[14] Snapp S R.DIDS(Distributed Intrusion Detection System)-Motivation,architecture,and an early prototype[C]//Proceedings of the 14th National Computer Security Conference,1991:167-176.
[15] KDD Cup 1999 Data[EB/OL].[2013-09-15].http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.