侯春雨,王戈文,王崇峻
(1.廣州民航職業(yè)技術(shù)學(xué)院航空港管理學(xué)院, 廣州 510403; 2.長沙市化工研究所, 長沙 410007; 3.航天工程大學(xué), 北京 101400)
隨著信息技術(shù)發(fā)展和普及,網(wǎng)絡(luò)信息安全變得日益重要。相比傳統(tǒng)網(wǎng)絡(luò)防御技術(shù),網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS)可主動攔截警報數(shù)據(jù)[1],實用價值凸顯。因此,如何提高入侵檢測系統(tǒng)效率成為當(dāng)前網(wǎng)絡(luò)安全領(lǐng)域研究熱點。現(xiàn)有NIDS受到未知攻擊時檢測率較低,且在處理警報數(shù)據(jù)時開銷較大,因此相關(guān)研究人員將機器學(xué)習(xí)如支持向量機(SVM)、模糊邏輯、人工神經(jīng)網(wǎng)絡(luò)、人工免疫系統(tǒng)(AIM)等方法應(yīng)用于NIDS中。SVM是一種基于統(tǒng)計學(xué)習(xí)的機器學(xué)習(xí)算法,在解決模式識別和語音識別等問題時性能較為優(yōu)越[2],相比其他機器學(xué)習(xí)算法,它能夠較好地解決小樣本、非線性和高維問題,因此常用于識別網(wǎng)絡(luò)中惡意流量。
大數(shù)據(jù)環(huán)境下SVM處理入侵檢測數(shù)據(jù)時碰到了新問題,隨著網(wǎng)絡(luò)數(shù)據(jù)特征維度增加,NIDS訓(xùn)練時間增加,分類準(zhǔn)確率隨之下降,限制了SVM在NIDS中的應(yīng)用。因此,特征選擇、特征權(quán)重及SVM參數(shù)的合理設(shè)置對提高入侵檢測效率至關(guān)重要。遺傳算法利用染色體間信息交換和種群搜索策略展現(xiàn)的較佳全局優(yōu)化能力來避免局部最優(yōu)解。為了解決上述問題,本文采用遺傳算子優(yōu)化支持向量機方法尋優(yōu)特征子集,并同時優(yōu)化SVM參數(shù)和特征權(quán)重,將其用于提高NIDS分類性能。
文獻(xiàn)[3]通過遺傳算法優(yōu)化SVM的核參數(shù)γ,利用啟發(fā)式方法動態(tài)調(diào)整遺傳算子,將分類準(zhǔn)確率作為適應(yīng)度函數(shù),完成基于高斯核函數(shù)的SVM參數(shù)優(yōu)化,但卻未考慮特征權(quán)值對SVM分類準(zhǔn)確率的影響。文獻(xiàn)[4]提出了一種基于主成分分析(PCA)與粒子群優(yōu)化SVM的入侵檢測方法(PCA-SVM),利用PCA對網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進(jìn)行數(shù)據(jù)降維和特征提取,但是PCA可能會得到對分類無作用的特征,且可能丟失一些有用的數(shù)據(jù)或特征。文獻(xiàn)[5]提出了一種基于融合FAST與自適應(yīng)二進(jìn)制量子引力搜索優(yōu)化SVM(ABQGSA-SVM)的入侵檢測方法,利用FAST算法過濾掉冗余數(shù)據(jù)特征以生成特征子集,基于組合優(yōu)化的量子引力搜索算法對SVM參數(shù)和特征子集進(jìn)行尋優(yōu),但該方法收斂速度較慢,不能快速高效找到優(yōu)化特征子集和SVM參數(shù)。近些年,基于SVM的網(wǎng)絡(luò)入侵檢測方法存在眾多問題:傳統(tǒng)特征選擇方法容易忽略許多重要特征,選出的特征子集得到的分類準(zhǔn)確率會隨之降低;傳統(tǒng)遺傳方法優(yōu)化SVM用于NIDS中,無法充分搜索特征子集空間,搜到的特征子集具備較高錯誤率,選出的最優(yōu)特征子集各項特征重要程度未充分體現(xiàn),無法找到SVM模型最優(yōu)參數(shù)。
根據(jù)上述問題,本文提出了一種改進(jìn)的遺傳算法優(yōu)化SVM的入侵檢測方法。首先,對遺傳算子的交叉和變異過程進(jìn)行優(yōu)化,有利于提高群落早期演化速度,然后,在尋優(yōu)特征子集階段,提出一種基于數(shù)據(jù)維度、分類準(zhǔn)確率和誤報率優(yōu)化配置的適應(yīng)度函數(shù),最后,同時優(yōu)化SVM的特征權(quán)值及相關(guān)參數(shù),以增強SVM的分類性能。
遺傳算法是一種通過模擬自然進(jìn)化過程搜索優(yōu)化解的方法,主要包括3個部分:選擇操作、交叉操作和變異操作[6]。其中,選擇操作主要是選取較優(yōu)的母代染色體進(jìn)行交叉操作和變異操作,以增加群落的多樣性并避免群落陷入局部最優(yōu)解[7],常見的選擇法方法有輪盤賭選擇、精英選擇和錦標(biāo)賽選擇。當(dāng)前遺傳算子中種群演化期間的交叉概率和變異概率都是常數(shù),會影響群落后期演化的收斂性,致使SVM訓(xùn)練時間增加。為了使染色體在群落演化過程中加速搜索,促使遺傳算法盡快找到優(yōu)化解,本文根據(jù)群落演化的不同階段確定交叉概率和變異概率,并引入梯度下降方法增加算法的搜索方式,從而加速找到全局優(yōu)化解。
圖1 遺傳算法中交叉操作
根據(jù)群落的特性,剛開始群落種類更加隨機和多樣,到了后期群落逐漸收斂,群落相似度增加,故交叉操作在前期作用大于后期作用。所以隨著迭代次數(shù)增加,每次迭代的交叉操作染色體個數(shù)和交叉概率應(yīng)該隨之減少,這樣有利于減少計算成本。每次迭代進(jìn)行交叉操作染色體的個數(shù)Pi如式(1),交叉概率更新如式(2):
(1)
其中,swsize表示所有染色體個數(shù),it表示迭代次數(shù),maxit表示最大迭代次數(shù)。
(2)
其中,prmax是最大交叉概率,prmin是最小交叉概率。
群落中母代染色體某部分基因發(fā)生改變,即變異操作,如圖2所示。種群演化初期,主要通過交叉操作尋找優(yōu)化解,設(shè)置較低變異概率有利于降低計算成本;種群演化后期,執(zhí)行交叉操作的染色體數(shù)減少,提高變異概率有利于增加群落多樣性,提高尋找到最優(yōu)解的概率,因此本文變異概率公式如式(3)。染色體中第d維基因的選擇概率如式(4)。
(3)
(4)
其中,gbestd表示全局最優(yōu)染色體第d維基因,θ表示選擇閾值。生成范圍在[0,1]的隨機數(shù)r,若r>CProbabilityd,執(zhí)行相應(yīng)的變異操作,如式(5),否則將新染色體第d維基因childd賦值為gbestd。
(5)
其中,若gbestd的值小于或等于選擇閾值θ,則將childd的值映射到[θ,1]范圍的實數(shù),否則將childd的值映射到(0,θ]范圍的實數(shù),有利于改變特征的選擇屬性。
圖2 遺傳算法中變異操作
梯度下降算法是目前較為流行的優(yōu)化算法,收斂速度較快,經(jīng)常與各種算法聯(lián)合使用。梯度下降法分為批量梯度下降法、隨機梯度下降法、小批量梯度下降法,其關(guān)鍵思想是某質(zhì)點沿適應(yīng)度函數(shù)梯度下降盡快滑落到函數(shù)極值點,主要包含兩個內(nèi)容:搜索方向,如式(6)計算出最優(yōu)搜索方向[8];搜索步長,如式(7)計算搜索步長。
gtm=負(fù)梯度=
(6)
(7)
其中,sec代表梯度下降法最多探索次數(shù)。基于梯度下降法有利于增加遺傳算法群落多樣性,其算法如下:
算法:本文梯度下降算法輸入:設(shè)置誤差ε>0,迭代次數(shù)變量m,最多探索次數(shù)sec;輸出:全局優(yōu)化解gbest;Step1:如式(6)計算最優(yōu)搜索方向,判斷搜索是否滿足迭代次數(shù)m≤sec或gtmmaxxi≤ε,若是則跳到Step2,否則跳到Step3;Step2:如式(7)計算最優(yōu)步長,并如式(8)更新群落全局最優(yōu)值,并跳到Step1;gbestm+1=gbestm+λmgtm(8)Step3:輸出全局優(yōu)化解gbest。
本文將改進(jìn)的遺傳算法優(yōu)化SVM用于NIDS中,需要解決兩個主要問題:如何對特征的重要程度進(jìn)行排序;如何選擇最優(yōu)SVM內(nèi)核參數(shù)。這兩個問題必須同時解決,因為權(quán)重特征會影響SVM的內(nèi)核參數(shù),反之亦然。本文提出改進(jìn)的遺傳算法優(yōu)化SVM體系結(jié)構(gòu)如圖3所示,主要分為3部分:特征選擇、入侵檢測和停止準(zhǔn)則,目的是尋找最優(yōu)特征子集,優(yōu)化SVM參數(shù)和各項特征權(quán)重。
圖3 改進(jìn)的遺傳算法優(yōu)化SVM體系結(jié)構(gòu)
1) 特征選擇[9]:將KDD CUP99作為初始數(shù)據(jù)集,利用基于改進(jìn)遺傳算法的特征選擇算法尋找候選特征子集。其中,特征子集包括特征的權(quán)重W1~Wn(特征W=0表示未選特征)以及SVM參數(shù)C和γ,如圖4所示。
圖4 特征子集結(jié)構(gòu)
2) 基于SVM的入侵檢測[10]:在初始數(shù)據(jù)集中,將特征子集中的特征權(quán)重對應(yīng)相乘每條數(shù)據(jù)的特征值得到入侵檢測輸入數(shù)據(jù),并將特征子集中SVM參數(shù)C和γ用于構(gòu)建SVM模型,經(jīng)過入侵檢測識別后,求解出相應(yīng)適應(yīng)度值。其中,各項特征權(quán)重是通過隨機方式生成的范圍[0,1]的實數(shù)。
3) 停止準(zhǔn)則:將適應(yīng)度值最大的特征子集作為最優(yōu)特征子集,并利用最優(yōu)特征子集得到特征權(quán)重和SVM參數(shù)。
本文中改進(jìn)的遺傳算法優(yōu)化SVM具體算法如下:
算法:改進(jìn)遺傳算法優(yōu)化SVM在入侵檢測中應(yīng)用算法輸入:KDD CUP99 樣本訓(xùn)練集和測試集,隨機初始化的母本群體swarm,群落最優(yōu)gbest,SVM參數(shù)C和γ,交叉概率pcrprobability,變異概率pmuprobability,最大迭代次數(shù)maxit,其中,swarm包含10對母本染色體,每條染色體包含一組入侵檢測中特征權(quán)重和支持向量機參數(shù)C和γ的編碼,染色體中每個基因取值均在實數(shù)范圍[0,1]中。輸出:最優(yōu)特征子集,各項特征權(quán)重,SVM參數(shù)C和γ;Step1:求解swarm的適應(yīng)度fswarm,初始化gbest為swarm中最優(yōu)適應(yīng)度染色體,并求其適應(yīng)度fgbest;Step2:判斷是否滿足最大迭代次數(shù)maxit或最大適應(yīng)度值,滿足則跳到Step7,否則跳Step3;Step3:評估每條染色體適應(yīng)度值,并如式(2)、(3)更新交叉概率pcrprobability、變異概率pmuprobability;Step4:根據(jù)3.1節(jié)對群體進(jìn)行交叉操作,更新群體最優(yōu)值gbest及其適應(yīng)度;Step5:根據(jù)3.2節(jié)對群體進(jìn)行變異操作,更新群體最優(yōu)值gbest及其適應(yīng)度;Step6:若全局最優(yōu)值gbest連續(xù)3次迭代不發(fā)生變化,根據(jù)3.2節(jié)梯度下降法產(chǎn)生新染色體,然后跳到Step2;Step7:將全局優(yōu)化染色體gbest當(dāng)作最優(yōu)特征子集,并得到相關(guān)權(quán)重和參數(shù)。
算法中適應(yīng)度函數(shù)是本文算法的一個基本組成部分,用來評估染色體的優(yōu)劣程度,本文適應(yīng)度函數(shù)設(shè)計如式(9):
(9)
其中,Acc表示分類準(zhǔn)確率;fsn表示特征子集的特征維數(shù);Afs表示總特征數(shù)量;far表示誤報率;(1-a-b)表示準(zhǔn)確率的權(quán)重參數(shù),其權(quán)重應(yīng)該大于其他權(quán)重;a表示特征維數(shù)占總維數(shù)比例的權(quán)重參數(shù),其權(quán)重應(yīng)該僅次于準(zhǔn)確率的權(quán)重;b表示誤報率的權(quán)重參數(shù)。
本文實驗環(huán)境基于Windows 8系統(tǒng),Matlab2014b軟件。改進(jìn)的遺傳算法優(yōu)化SVM方法參數(shù)設(shè)置如表1所示。實驗樣本數(shù)據(jù)集取自KDD CUP 99 數(shù)據(jù)集[11],如表2所示,實驗樣本數(shù)據(jù)集的41維特征[12]如表3所示。
表1 改進(jìn)遺傳算法優(yōu)化SVM方法參數(shù)設(shè)置
表2 KDD CUP 99樣本數(shù)據(jù)集組成
表3 KDD CUP 99連接記錄41維特征
本文實驗數(shù)據(jù)集主要是檢測樣本數(shù)據(jù)集和特征選擇數(shù)據(jù)集。檢測樣本數(shù)據(jù)集組成如表2所示。為了縮短尋優(yōu)特征子集的時間,從表2的DOS、Probe、R2L和U2R數(shù)據(jù)集中分別隨機抽取50%、80%、100%和100%的數(shù)據(jù)作為各自特征選擇數(shù)據(jù)集,并將上述特征選擇數(shù)據(jù)集合并作為ALL的特征選擇數(shù)據(jù)集。
特征選擇前需要預(yù)處理檢測樣本數(shù)據(jù)集和特征選擇數(shù)據(jù)集,預(yù)處理主要分為字符特征數(shù)值化和數(shù)據(jù)歸一化過程。本文從適應(yīng)度、特征維數(shù)、分類準(zhǔn)確率及檢測時間四個方面,對比了PCA-SVM[4]和ABQGSA-SVM[5]方法,得到相關(guān)實驗結(jié)果如圖5,表4~表6。
圖5 3種特征選擇算法得到的適應(yīng)度對比
從圖5可知,通過比較3種特征選擇算法得到的適應(yīng)度曲線可以發(fā)現(xiàn):本文算法收斂速度快于其他算法,且本文算法在第17次迭代時適應(yīng)度趨于穩(wěn)定,CSVAC和ABQGSA-SVM在第23次迭代時適應(yīng)度才穩(wěn)定,說明本文算法穩(wěn)定后得到的適應(yīng)度高于其他特征選擇算法。因此,本文算法尋優(yōu)到的SVM模型優(yōu)于其他算法。
在特征選擇數(shù)據(jù)集上比較3種特征算法得到特征子集的特征選擇維數(shù),如表4。其中,特征維數(shù)序號和表3相對應(yīng)。
表4 3種算法得到的特征維數(shù)
從表4可知:通過比較3種算法得到平均特征選擇維數(shù)發(fā)現(xiàn):本文方法比其他算法少至少20%的特征,3種方法得到的平均特征選擇維數(shù)從少到多排序為本文算法、ABQGSA-SVM、CSVAC。
在表2樣本數(shù)據(jù)集上比較所有特征情況下和上述3種特征選擇算法后得到最優(yōu)特征子集的分類準(zhǔn)確率和檢測時間,得到實驗結(jié)果如表5和表6。
表5 3種算法得到的分類準(zhǔn)確率
從表5可以得到,通過比較3種算法得到最優(yōu)特征子集的平均分類準(zhǔn)確率發(fā)現(xiàn):本文方法比其他方法提高了至少2%的分類準(zhǔn)確率;比所有特征情況提高了約0.5%的分類準(zhǔn)確率。
表6 3種算法得到的檢測時間
從表6可以得到,通過比較3種算法得到最優(yōu)特征子集的檢測時間發(fā)現(xiàn):本文方法比其他方法縮短了至少10%的檢測時間;比所有特征情況縮短了約20%的檢測時間。
綜上所述,本文算法尋優(yōu)到的特征子集所構(gòu)建入侵檢測模型相比ABQGSA-SVM和CSVAC算法,有效降低了入侵檢測中惡意流量的特征維度,提高了入侵檢測的分類準(zhǔn)確率,縮短了檢測時間,因此本文算法所構(gòu)建的入侵檢測模型具備更優(yōu)的性能。
針對入侵檢測中高維特征問題,本文提出了一種改進(jìn)遺傳算法優(yōu)化SVM方法。首先,利用梯度下降算法對遺傳算法進(jìn)行改進(jìn),并設(shè)計了自適應(yīng)變化的交叉和變異概率;設(shè)計了基于分類準(zhǔn)確率、數(shù)據(jù)特征維度和誤報率優(yōu)化配置的適應(yīng)度函數(shù);輸出網(wǎng)絡(luò)流量特征權(quán)重、支持向量機核參數(shù)γ和懲罰因子C。由于遺傳算法的初始值對后期尋優(yōu)效果有較大影響,下一步將研究如何產(chǎn)生合適的遺傳算法初始值,尋找到更優(yōu)的特征子集,提高SVM的分類性能。