劉 唐,周 煒,王曉丹
(1.空軍工程大學(xué)研究生院,西安 710051;2.空軍工程大學(xué)防空反導(dǎo)學(xué)院,西安 710051)
隨著網(wǎng)絡(luò)安全面臨的威脅升級,入侵檢測技術(shù)的發(fā)展需求愈加迫切。網(wǎng)絡(luò)入侵檢測是一種主動的網(wǎng)絡(luò)信息安全防御手段,通過監(jiān)測網(wǎng)絡(luò)數(shù)據(jù)實現(xiàn)對外部攻擊、內(nèi)部攻擊和誤操作的實時保護(hù),是防火墻后的第2道安全屏障,具有主動性和實時性的特點(diǎn),是防火墻有益的和重要的補(bǔ)充。入侵檢測一般分為兩步:1)特征提??;2)分類器的選擇。
近年來,國內(nèi)外學(xué)者對特征提取在入侵檢測方面的應(yīng)用做了大量研究。目前,常見的入侵檢測方法有支持向量機(jī)算法(SVM)[1]、遺傳算法及其改進(jìn)算法等,這些算法通常需要以大量的時間或者人為干涉為代價。文獻(xiàn)[2]采用清除訓(xùn)練數(shù)據(jù)中一部分常見攻擊或者避開攻擊頻發(fā)的時間等方法來減少訓(xùn)練數(shù)據(jù)中的攻擊,但這往往會丟失一些有用信息。文獻(xiàn)[3]等提出的實時入侵檢測方法在特征提取中發(fā)揮了較好的作用。而綜合多種分類器的級聯(lián)入侵檢測系統(tǒng)[4-5]則從分類器上對算法進(jìn)行改進(jìn),這種系統(tǒng)集成了多種分類器的優(yōu)點(diǎn),但是會造成時間與成本的浪費(fèi),而且并不適用于所有的攻擊類型。
鑒于極限學(xué)習(xí)機(jī)快速學(xué)習(xí)能力強(qiáng)等特點(diǎn),為提高入侵檢測的訓(xùn)練速度,降低誤報率。本文對極限學(xué)習(xí)機(jī)[6]加以優(yōu)化改進(jìn),在極大減少隱層節(jié)點(diǎn)數(shù)的同時提高了節(jié)點(diǎn)的學(xué)習(xí)質(zhì)量,使得精簡的IKH-ELM的泛化性能明顯提高,且超過需要眾多隱層節(jié)點(diǎn)的原始ELM的性能。同時,本文將IKH-ELM應(yīng)用到入侵檢測中,通過實驗驗證其效果,并與原始ELM、BP、SVM等算法進(jìn)行比較,結(jié)果表明IKH-ELM具有更好的綜合性能。
極限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)是單隱層前饋神經(jīng)網(wǎng)絡(luò)(Single-hidden Layer feed-Forward Network,SLFN)的一種快速學(xué)習(xí)[7]方法。整個學(xué)習(xí)過程一次完成,無需迭代,因而能達(dá)到極快的學(xué)習(xí)速度[8]。對于 N個不同樣本其中則激勵函數(shù)為g(x)且隱層節(jié)點(diǎn)數(shù)為的SLFN的模型為
以上N個方程的矩陣形式可寫為
式中,
H為隱層輸出矩陣,H的第i行表示全部隱層節(jié)點(diǎn)與輸入xi相關(guān)的輸出。
ELM算法對輸入權(quán)值wi和偏置bi的值采取隨機(jī)設(shè)置,在輸入樣本集給定的情況下,隱層輸出矩陣H也被確定了。
由式(3)得到的解為最小范數(shù)二乘解
式中,H+為H的Moore-Penrose廣義逆。
在研究自然界磷蝦群覓食活動的規(guī)律后,Gandomi等人于2012年提出了磷蝦群(Krill Herd,KH)算法[10]。該算法中,以每只磷蝦表示問題的可能解,通過模擬每只磷蝦覓食過程中位置的不斷更新來尋找最優(yōu)解。磷蝦群算法的主要內(nèi)容如下,詳細(xì)內(nèi)容見參考文獻(xiàn)[11-12]。
一個有N只磷蝦的磷蝦群在覓食過程中,磷蝦i的第K次位置更新會受下面3種因素的綜合影響:
其中,Nmax為最大引導(dǎo)速度,為慣性權(quán)重,為上一次引導(dǎo)運(yùn)動,表示引導(dǎo)源,表示周圍磷蝦產(chǎn)生的局部影響,表示當(dāng)前最優(yōu)磷蝦產(chǎn)生的目標(biāo)方向的引導(dǎo)。
其中,Dmax為最大隨機(jī)擴(kuò)散速度,Imax為最大迭代次數(shù),δi為當(dāng)前的隨機(jī)擴(kuò)散方向向量,且為區(qū)間[-1,1]的隨機(jī)數(shù)。
磷蝦i從t經(jīng)Δt時間后的位移公式為:
其中,Δt為速度矢量比例因子,其值取決于問題空間,p為變量總數(shù),Uj和Lj分別表示第j個變量的上、下界,差值決定搜索范圍,為常數(shù)。
每只磷蝦在上述3種因素的綜合影響下,不斷更新自身位置,直至當(dāng)前最優(yōu)磷蝦位置對應(yīng)的解符合條件要求或達(dá)到最大迭代次數(shù)后停止。
首先,磷蝦群算法求最優(yōu)解有如下優(yōu)點(diǎn):周圍磷蝦的引導(dǎo)運(yùn)動和磷蝦本身的覓食運(yùn)動都有全局、局部尋優(yōu)決策,兩種決策結(jié)合,使得磷蝦群算法在求參數(shù)最優(yōu)解過程中能很好地協(xié)調(diào)全局搜索與局部挖掘的關(guān)系。但是也存在不足:在迭代次數(shù)增加到一定后,大多數(shù)磷蝦都會向同一方向運(yùn)動,從而導(dǎo)致磷蝦群的個體特異性降低,易陷入局部最優(yōu);本文在磷蝦本身的隨機(jī)擴(kuò)散運(yùn)動中添加變異因子進(jìn)行了改進(jìn)。
在求參數(shù)最優(yōu)解過程中增加變異是避免陷入局部最優(yōu)的有效方法,本文針對磷蝦群算法的優(yōu)化,引入了一種變異因子,如下:
由此可知,μ和fit共同決定了變異大小進(jìn)而對磷蝦本身的隨機(jī)擴(kuò)散的幅度進(jìn)行調(diào)整。在算法迭代前期,μ值較大時,可以產(chǎn)生較大幅度的變異,增加了求參數(shù)最優(yōu)解的全局遍歷性,使得算法有較強(qiáng)的全局搜索能力;隨著迭代次數(shù)的增加,μ值線性減小,全體磷蝦本身的隨機(jī)擴(kuò)散幅度降低,使得單只磷蝦在自身周圍進(jìn)行較精確的搜索,此時算法就有較好的局部挖掘能力,從而使收斂的速率加快。在算法后期,每只磷蝦都向全局最優(yōu)的位置收縮,易陷入局部最優(yōu)。這時,較大fit值的磷蝦會擁有較強(qiáng)的變異能力,使得該磷蝦可以在更大范圍進(jìn)行隨機(jī)擴(kuò)散運(yùn)動,如此就豐富了磷蝦個體的特異性,擴(kuò)大算法求最優(yōu)解的范圍,避免陷入局部最優(yōu)。
ELM的輸入權(quán)值wi和隱層偏置bi隨機(jī)產(chǎn)生的方法的確能夠降低系統(tǒng)的學(xué)習(xí)時間,但是需要以消耗很多隱層節(jié)點(diǎn)為代價。在給定條件下,ELM的學(xué)習(xí)質(zhì)量隨隱層節(jié)點(diǎn)數(shù)的增加而逐漸上升。然而當(dāng)隱層節(jié)點(diǎn)數(shù)較少時,一般學(xué)習(xí)質(zhì)量會很差。這種情況反應(yīng)出,需要大量的隱層節(jié)點(diǎn)來補(bǔ)償單個節(jié)點(diǎn)判斷能力和學(xué)習(xí)能力的欠缺。因此,獲得了最優(yōu)的節(jié)點(diǎn),ELM不需要眾多隱層節(jié)點(diǎn)就能夠得到較好的效果,從而精簡ELM。
IKH-ELM主要從以下兩個方面使ELM精簡并使其泛化性能提升。首先明確隱層每一個節(jié)點(diǎn)的責(zé)任。隱層節(jié)點(diǎn)數(shù)量根據(jù)分類問題的目的設(shè)定,不再像原始ELM那樣隨機(jī)設(shè)定。再利用IKH優(yōu)化每個節(jié)點(diǎn)的權(quán)值wi和偏置bi。選出具有較好的泛化能力的最優(yōu)節(jié)點(diǎn)。
k類問題中,IKH-ELM根據(jù)一對多原則[13]將分類任務(wù)分割成k個子分類,第i個子任務(wù)將第i類與另外k-1類分開。每個節(jié)點(diǎn)對應(yīng)一個分類子。因此,只須將隱層節(jié)點(diǎn)數(shù)目設(shè)為類別數(shù)目k,為了讓每個節(jié)點(diǎn)更好地發(fā)揮分類泛化性能,需要對每一個節(jié)點(diǎn)的線性決策函數(shù)進(jìn)行相應(yīng)的優(yōu)化操作[14-15]。
1)初始化IKH的種群,設(shè)定種群規(guī)模大小N、最大引導(dǎo)速度Nmax、覓食速度、最大隨機(jī)擴(kuò)散速度Dmax,輸入學(xué)習(xí)訓(xùn)練樣本集。
2)對樣本進(jìn)行學(xué)習(xí)訓(xùn)練,利用均方根誤差(RMSE)算出每只磷蝦的適應(yīng)度值。
3)通過式(5)~式(6)計算更新引導(dǎo)運(yùn)動,通過式(7)計算更新覓食運(yùn)動,通過式(8)計算更新隨機(jī)擴(kuò)散運(yùn)動;結(jié)合引導(dǎo)運(yùn)動、覓食運(yùn)動及隨機(jī)擴(kuò)散運(yùn)動,通過式(9)~式(11)對磷蝦位置進(jìn)行更新,重新計算適應(yīng)度值判斷是否符合條件,符合就結(jié)束迭代操作,否則更新磷蝦位置并繼續(xù)重復(fù)上面迭代,直到滿足條件或達(dá)到最大迭代次數(shù),最后得到權(quán)值wi和偏置bi。
4)把優(yōu)化得到的權(quán)值wi和偏置bi代入進(jìn)行學(xué)習(xí)訓(xùn)練,則得到隱藏層輸出矩陣為
上式中:
學(xué)習(xí)參數(shù)
由此,可以建立類似于式(2)的學(xué)習(xí)系統(tǒng)
其最小范數(shù)二乘解就是ELM的最優(yōu)解
本實驗采取的數(shù)據(jù)為美國國防部高級研究規(guī)劃署(DARPA)在1999年KDD競賽所供給的入侵檢測系統(tǒng)評估的數(shù)據(jù)。數(shù)據(jù)全部采用Tcpdump和Solaris BSM Audit Data的格式,數(shù)據(jù)的基礎(chǔ)是正常的網(wǎng)絡(luò)數(shù)據(jù),但又在其中加入了多種入侵?jǐn)?shù)據(jù)。實驗過程分為兩步:數(shù)據(jù)預(yù)處理和數(shù)據(jù)劃分。數(shù)據(jù)預(yù)處理包含對入侵的歸類和數(shù)據(jù)的標(biāo)準(zhǔn)化。
數(shù)據(jù)集含有一個標(biāo)明入侵攻擊類型的標(biāo)識屬性,一共有23種類型,Normal為正常的網(wǎng)絡(luò)活動,其他 22 種(Smurf、Back、Neptune等)為入侵行為[16]。將其映射為 5 大類型,即 Normal、DoS、R2L、U2R 和Probing。各種攻擊類型在學(xué)習(xí)訓(xùn)練數(shù)據(jù)集的分布如表1所示。
表1 實驗學(xué)習(xí)訓(xùn)練數(shù)據(jù)中各種攻擊類型分布
所采用的學(xué)習(xí)訓(xùn)練數(shù)據(jù)集(Kddcup10per)共有494 021條記錄,其中標(biāo)記為Normal的有97 278條記錄,占19.6%,而攻擊記錄396 743條,占80.4%。測試數(shù)據(jù)集共有311 029條記錄。
此數(shù)據(jù)集中有41個特征屬性,其中34個特征屬性為數(shù)值型變量、4個為二元變量、3個為標(biāo)稱變量(屬性及其意義見文獻(xiàn)[17])。在實驗檢測過程中發(fā)現(xiàn),并不是所有的特征屬性都對入侵檢測有幫助,有些特征屬性甚至?xí)档捅鎰e率。根據(jù)文獻(xiàn)[18],屬性約簡后如下:
Normal約簡屬性集(26個)為:
DoS 約簡屬性集(18 個)為:{1,3,5,6,23,24,
Probing約簡屬性集(7 個)為:{3,5,6,23,4,32,33};
U2R 約簡屬性集(8 個)為:{5,6,8,15,16,18,32,33};
R2L 約簡屬性集(8 個)為:{3,5,6,21,22,24,32,33}。
此外,原始數(shù)據(jù)中有34個數(shù)值屬性,但每個屬性的取值范圍卻大不相同,所以,對數(shù)據(jù)進(jìn)行規(guī)范化處理,將其規(guī)范化到區(qū)間[-1,+1]。采用如下公式:
規(guī)范化后,upper為上界,取+1;lower為下界,取-1;max(fi),min(fi)分別表示屬性fi的最大值和最小值。
數(shù)據(jù)劃分即把原始數(shù)據(jù)分成學(xué)習(xí)訓(xùn)練樣本集和測試樣本集。學(xué)習(xí)訓(xùn)練樣本集是從原始學(xué)習(xí)訓(xùn)練數(shù)據(jù)集隨機(jī)抽取出來的10 000條數(shù)據(jù);測試樣本集是從原始測試樣本集中隨機(jī)抽取出來的10 000條數(shù)據(jù),包括Normal數(shù)據(jù)5 182條,DoS攻擊3 869條,R2L攻擊276條,U2R攻擊71條,Probing攻擊602 條[19]。
當(dāng)使用IKH優(yōu)化求解隱層節(jié)點(diǎn)權(quán)值wi和偏置bi時,因為檢測數(shù)據(jù)包含5個類別,所以基于IKH優(yōu)化的極限學(xué)習(xí)機(jī)的隱層節(jié)點(diǎn)數(shù)固定為類別數(shù)5。原始的ELM所需的隱層節(jié)點(diǎn)數(shù)需要調(diào)試時確定,ELM以及IKH-ELM的激勵函數(shù)選用效果較好的Sigmoid。
表2 IKH-ELM分類實驗檢測結(jié)果
從表2可知,IKH-ELM算法針對各種入侵類型檢測正確率都較高,誤報率也較低,并且具有較好的穩(wěn)定性。但是僅從表2不能顯示IKH-ELM算法的優(yōu)越性。因此,表3同文獻(xiàn)[20]中的BP神經(jīng)網(wǎng)絡(luò)和SVM入侵檢測算法進(jìn)行了比較。同時,表4同文獻(xiàn)[21]中的原始ELM、BP神經(jīng)網(wǎng)絡(luò)和SVM入侵檢測算法進(jìn)行比較。
表3 檢測正確率比較
從表3可以得知,與BP神經(jīng)網(wǎng)絡(luò)和SVM算法相比,IKH-ELM算法依舊檢測正確率較高,具有較大的優(yōu)越性。
從表4可以看出,IKH-ELM算法的平均檢測正確率高達(dá)98%,而BP的平均檢測正確率低到只有82%,而且學(xué)習(xí)時間是IKH-ELM學(xué)習(xí)時間的150倍左右。SVM的平均檢測正確率雖然較高,但學(xué)習(xí)時間是IKH-ELM的7倍。而ELM的平均檢測正確率和學(xué)習(xí)時間與IKH-ELM相差不大,原因在于IKH-ELM算法是源于ELM,所以單從算法歸類平均檢測正確率這一點(diǎn)上看很相近,但從隱層節(jié)點(diǎn)數(shù)等屬性來說,IKH-ELM的優(yōu)越性非常明顯,同時IKH-ELM的平均誤報率也相對其他3種算法較低,更加說明其性能良好。
表4 平均檢測正確率、誤報率與學(xué)習(xí)時間比較(%)
對于原始ELM,在調(diào)試的過程中依次選用5,50,500,2 000,5 000,10 000 個隱層節(jié)點(diǎn)來進(jìn)行性能觀測。原始ELM的實驗結(jié)果如表5所示。
從實驗結(jié)果易看出,DoS、U2R和Probing類型隨著隱層節(jié)點(diǎn)數(shù)目的增加,ELM檢測正確率逐漸提高;而R2L類型,隨著隱層節(jié)點(diǎn)數(shù)目的增加,ELM檢測正確率出現(xiàn)了局部波動,但是總趨勢仍然是向上的;這說明ELM的學(xué)習(xí)效果和隱層節(jié)點(diǎn)數(shù)即網(wǎng)絡(luò)規(guī)模有很大關(guān)系,如果想要達(dá)到較好的學(xué)習(xí)效果,則必須有大量的隱層節(jié)點(diǎn)來支持。
對比表2和表5可以發(fā)現(xiàn),IKH-ELM在各類型攻擊的檢測正確率都高于ELM,其中在DoS類,IKH-ELM比ELM最高檢測正確率高5.56%,在R2L類,IKH-ELM比ELM最高檢測正確率高9.87%,在U2R類,IKH-ELM比ELM最高檢測正確率高5.84%,在Probing類,IKH-ELM比ELM最高檢測正確率高6.54%,ELM在各類型攻擊的檢測正確率達(dá)到此精度水平分別需要2 000個、10 000個、5 000個和2 000個節(jié)點(diǎn),而IKH-ELM僅需要5個節(jié)點(diǎn),就使學(xué)習(xí)機(jī)的性能超越ELM。這說明優(yōu)化隱層節(jié)點(diǎn)的權(quán)值和偏置能夠有效提高ELM的泛化性能,因此,優(yōu)化精簡ELM是有效的。
本文在ELM的基礎(chǔ)上提出了基于IKH優(yōu)化的極限學(xué)習(xí)機(jī)的入侵檢測算法,通過IKH迭代優(yōu)化隱層節(jié)點(diǎn)權(quán)值和偏置,選出最優(yōu)的隱層節(jié)點(diǎn),提高了極限學(xué)習(xí)機(jī)的泛化性能,同時還減少隱層節(jié)點(diǎn)數(shù)為類別數(shù),提高了檢測正確率,還節(jié)省了存儲資源空間。從實驗結(jié)果分析表明:與BP、SVM等其他已有的算法相比,IKH-ELM算法具有較高的檢測正確率并且能夠快速完成學(xué)習(xí)訓(xùn)練,具有較明顯的優(yōu)越性和穩(wěn)定性。同時IKH-ELM只用5個節(jié)點(diǎn)就能夠超越原始ELM用眾多節(jié)點(diǎn)才能達(dá)到的分類泛化性能。因此,IKH-ELM在入侵檢測中是有效的。