王美榮
(安徽新華學(xué)院信息工程學(xué)院,安徽合肥230088)
公共服務(wù)、網(wǎng)上銀行以及專門用于防御的系統(tǒng)等往往是攻擊者的入侵目標(biāo)[1],準(zhǔn)確地檢測(cè)惡意入侵尤為重要[2]。網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)是一種硬件/軟件,用于在入侵者嘗試入侵系統(tǒng)時(shí)發(fā)出警報(bào)。目前入侵檢測(cè)方法主要有誤用和異常檢測(cè)[3]。誤用檢測(cè)系統(tǒng)為了分析數(shù)據(jù)流中的簽名和信息,需要對(duì)數(shù)據(jù)包進(jìn)行深度檢查。該方法雖然有效,但受到一些限制,例如惡意數(shù)據(jù)包的簽名可能過(guò)時(shí)或打開(kāi)每個(gè)數(shù)據(jù)包會(huì)帶來(lái)龐大的計(jì)算開(kāi)銷。數(shù)據(jù)挖掘的方法被廣泛用于入侵檢測(cè)[4-9],本文結(jié)合單分類支持向量機(jī)和軟間隔支持向量機(jī)的優(yōu)點(diǎn),提出了一種基于增強(qiáng)支持向量機(jī)的分類方法。
本網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)主要由交換機(jī)、數(shù)據(jù)流分析模塊以及惡意數(shù)據(jù)流數(shù)據(jù)庫(kù)3個(gè)部分組成。交換機(jī)負(fù)責(zé)將互聯(lián)網(wǎng)的數(shù)據(jù)包通過(guò)外部接口路由到內(nèi)部的局域網(wǎng)。數(shù)據(jù)流分析模塊負(fù)責(zé)周期性地收集數(shù)據(jù)流信息,并對(duì)其進(jìn)行分析以得到統(tǒng)計(jì)信息(如表1所示)。惡意數(shù)據(jù)流數(shù)據(jù)庫(kù)是用來(lái)儲(chǔ)存已經(jīng)經(jīng)過(guò)分類的數(shù)據(jù)流特征以及系統(tǒng)的相關(guān)參數(shù)。數(shù)據(jù)流分析模塊采用可配置的數(shù)據(jù)挖掘算法完成數(shù)據(jù)流的分類,本文選擇了支持向量機(jī)作為分類算法。該模塊加載利用支持向量機(jī)算法訓(xùn)練好的模型,結(jié)合數(shù)據(jù)流的統(tǒng)計(jì)信息,以此判斷數(shù)據(jù)流是否屬于惡意入侵?jǐn)?shù)據(jù)流。結(jié)合分類結(jié)果,控制器可以決定如何處理數(shù)據(jù)流,例如,控制器可以立即阻止惡意數(shù)據(jù)流以防止可能的進(jìn)一步感染,或?qū)⒘髁繌?fù)制到檢查器以進(jìn)行分析。
圖1 系統(tǒng)架構(gòu)
表1 數(shù)據(jù)流統(tǒng)計(jì)信息
本系統(tǒng)工作原理如下:當(dāng)數(shù)據(jù)流經(jīng)過(guò)交換機(jī)時(shí),如果交換機(jī)沒(méi)有任何關(guān)于數(shù)據(jù)流的路由規(guī)則,它會(huì)向控制器請(qǐng)求轉(zhuǎn)發(fā)規(guī)則??刂破鳙@取該數(shù)據(jù)流的相關(guān)信息并計(jì)算路由規(guī)則,然后將規(guī)則發(fā)送回交換機(jī),交換機(jī)再轉(zhuǎn)發(fā)或管理相應(yīng)的數(shù)據(jù)包。數(shù)據(jù)流的特征元組定義為源IP地址、目的IP地址、源TCP/UDP端口、目的TCP/UDP端口、協(xié)議類型,其特征都從該數(shù)據(jù)流中第一個(gè)數(shù)據(jù)包的IP、TCP/UDP頭部進(jìn)行抽取。交換機(jī)使用給定的規(guī)則檢測(cè)數(shù)據(jù)流,對(duì)于每一個(gè)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包,交換機(jī)都會(huì)抽取該數(shù)據(jù)流的特征。經(jīng)過(guò)一段時(shí)間之后,控制器會(huì)向交換機(jī)發(fā)送統(tǒng)計(jì)信息的請(qǐng)求,以便收集經(jīng)過(guò)交換機(jī)的數(shù)據(jù)流統(tǒng)計(jì)信息(數(shù)據(jù)包數(shù)量、字節(jié)數(shù)、數(shù)據(jù)流的長(zhǎng)度)??刂破鲿?huì)依據(jù)交換機(jī)發(fā)送的統(tǒng)計(jì)信息計(jì)算字節(jié)速率、數(shù)據(jù)包速率以及數(shù)據(jù)包平均長(zhǎng)度,然后將每個(gè)數(shù)據(jù)流分類為惡意入侵?jǐn)?shù)據(jù)流或正常數(shù)據(jù)流。
與正常數(shù)據(jù)流相比,惡意入侵?jǐn)?shù)據(jù)流的數(shù)量相對(duì)較少。單分類支持向量機(jī)中的單個(gè)分類器不一定能最大化原點(diǎn)和離群點(diǎn)之間的距離。針對(duì)此缺點(diǎn),通過(guò)修改軟間隔支持向量機(jī)提出了一種能實(shí)現(xiàn)具有單分類支持向量機(jī)優(yōu)勢(shì)的增強(qiáng)支持向量機(jī)。增強(qiáng)支持向量機(jī)不僅比軟間隔支持向量機(jī)具有更高的檢測(cè)率和處理性能,而且具有單分類支持向量機(jī)無(wú)監(jiān)督學(xué)習(xí)的特征。將軟間隔支持向量機(jī)中的偏差項(xiàng)刪除,可以得到以下的問(wèn)題:
其中,w是可調(diào)的權(quán)重向量,b是偏差項(xiàng),ξik是誤差項(xiàng),C是誤差項(xiàng)的權(quán)重,xi、yi分別是訓(xùn)練數(shù)據(jù)集的橫、縱坐標(biāo),‖w‖2=wTxi+b。在軟間隔支持向量機(jī)中,偏差項(xiàng)通常與原點(diǎn)和超平面之間的距離有關(guān)。隨著偏差項(xiàng)的減少,超平面會(huì)逼近單分類支持向量機(jī)分類器的原點(diǎn)。通過(guò)觀察軟間隔支持向量機(jī)和單分類支持向量機(jī),可以得到以下的近似關(guān)系:
其中,l是數(shù)據(jù)集樣本數(shù)量,v是異常值的權(quán)重參數(shù),p是類似w的權(quán)重。在(2)式中,C用來(lái)調(diào)整訓(xùn)練誤差以在原點(diǎn)和超平面之間獲得最大距離。在單分類支持向量機(jī)中,為了使原點(diǎn)和超平面之間的距離最大化,參數(shù)‖w‖必須減小并且參數(shù)ρ必須增大與離群點(diǎn)有關(guān),因此也必須減少。因此,可以通過(guò)控制軟間隔支持向量機(jī)的參數(shù)C來(lái)將每個(gè)項(xiàng)近似為相似的值。在(3)式中,ρ是用于使原點(diǎn)和超平面之間的邊緣最大化的參數(shù),我們不需要最大化ρ值,因?yàn)楫惓?shù)據(jù)可以通過(guò)靠近原點(diǎn)的超平面進(jìn)行分類,可以把ρ值看作是一個(gè)很小的數(shù)字,最終得到一個(gè)增強(qiáng)支持向量機(jī)如下:
使用圖1所示的架構(gòu)來(lái)評(píng)估本文算法的性能。為了調(diào)整和測(cè)試流量分析器,通過(guò)模擬網(wǎng)絡(luò)的行為來(lái)生成數(shù)據(jù)流,以此作為實(shí)驗(yàn)的數(shù)據(jù)集。數(shù)據(jù)流中既包含惡意軟件產(chǎn)生的惡意入侵?jǐn)?shù)據(jù)流,也有正常數(shù)據(jù)流。
實(shí)驗(yàn)數(shù)據(jù)集中的惡意入侵?jǐn)?shù)據(jù)流是由表2列出的惡意軟件所產(chǎn)生。
表2 產(chǎn)生惡意數(shù)據(jù)流的軟件
正常數(shù)據(jù)流是實(shí)驗(yàn)室網(wǎng)絡(luò)捕獲的所有數(shù)據(jù)流。為了確保所捕獲的數(shù)據(jù)流中不含有惡意數(shù)據(jù)流,在交換機(jī)上進(jìn)行了相關(guān)配置,以便在特定物理端口上轉(zhuǎn)發(fā)所有流量。將這個(gè)端口連接到一臺(tái)配置了虛擬交換機(jī)的電腦上,該交換機(jī)將來(lái)自網(wǎng)卡的流量轉(zhuǎn)發(fā)到與路由器相連的網(wǎng)卡;然后,將流量復(fù)制到與探測(cè)器相連的本地端口。
性能分析的第一步是找出影響分類結(jié)果的相關(guān)屬性,即統(tǒng)計(jì)信息?,F(xiàn)有的研究已經(jīng)提出了不同的特征排序和選擇技術(shù),本文使用信息增益(Information Gain,IG)作為選擇屬性的指標(biāo)。信息增益的計(jì)算公式如下所示:
I G=H(Y ) -H( Y X ) =H(X ) -H( X Y),(5)其中,H( Y )是指屬性Y的信息熵,H( Y X)是在X條件下Y的熵。觀察X后獲得的關(guān)于Y的信息等于觀察Y后獲得的關(guān)于X的信息,即H( Y X)=H( X Y)。通過(guò)信息增益,可以獲得每個(gè)屬性所蘊(yùn)含的信息,在對(duì)這些屬性進(jìn)行排序后就可以得知屬性的重要性。各種屬性的信息增益均值如表3所示。本文系統(tǒng)所使用的屬性(統(tǒng)計(jì)信息)以粗體顯示,它們具有較高的平均值,因此選擇這些屬性(統(tǒng)計(jì)信息)進(jìn)行入侵檢測(cè)能提高算法的準(zhǔn)確性和效率。
表3 各種統(tǒng)計(jì)信息的信息增益
采用真陽(yáng)性(將數(shù)據(jù)流分類給正確的類別)和假陽(yáng)性(將數(shù)據(jù)流分類到錯(cuò)誤的類別)兩個(gè)指標(biāo)將分類結(jié)果與實(shí)際情況進(jìn)行比較,以評(píng)估分類器的性能。從數(shù)據(jù)集中提取不同百分比(33%和50%)作為訓(xùn)練樣本來(lái)進(jìn)行支持向量機(jī)訓(xùn)練。將本文提出的入侵檢測(cè)系統(tǒng)與基于單分類支持向量機(jī)的系統(tǒng)、基于貝葉斯的系統(tǒng)進(jìn)行比較,結(jié)果如表4所示。從表4可知,增強(qiáng)支持向量機(jī)分類器都可以獲得超過(guò)98%的真陽(yáng)性。
數(shù)據(jù)挖掘方法在解決網(wǎng)絡(luò)安全問(wèn)題(包括網(wǎng)絡(luò)入侵檢測(cè))方面凸顯了其重要性。為了準(zhǔn)確高效地區(qū)分惡意入侵?jǐn)?shù)據(jù)流和正常數(shù)據(jù)流,本文提出了一種基于增強(qiáng)支持向量機(jī)的入侵檢測(cè)系統(tǒng)。本系統(tǒng)交換機(jī)負(fù)責(zé)收集從網(wǎng)絡(luò)流中推斷信息所需的特征,控制器包含一個(gè)可配置的機(jī)器學(xué)習(xí)模塊,從交換機(jī)提取的功能開(kāi)始,通過(guò)計(jì)算完成所需功能的數(shù)量,并確定數(shù)據(jù)流是否受到惡意軟件的影響。本文提出的方案旨在阻止網(wǎng)絡(luò)內(nèi)部的惡意數(shù)據(jù)流泛濫,該系統(tǒng)將數(shù)據(jù)平面與控制平面分離,具有高擴(kuò)展性。使用真實(shí)的數(shù)據(jù)流驗(yàn)證了本文系統(tǒng)是有效性。實(shí)驗(yàn)性能評(píng)估顯示,本文的系統(tǒng)與單分類支持向量機(jī)以及貝葉斯方法相比具有一定的優(yōu)越性。