陳文迪 劉桂華 劉慕嫻
摘 ?要:為了提高網(wǎng)絡(luò)安全水平,及時對網(wǎng)絡(luò)攻擊進(jìn)行檢測,該文提出了一種基于煙火算法優(yōu)化支持向量機(SVM)的入侵檢測模型。該模型選用SVM作為入侵檢測算法的核心分類器對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行判別,但是由于存在SVM中最優(yōu)核函數(shù)參數(shù)和懲罰因子確定較慢的問題,該文利用煙花算法加快SVM最優(yōu)核函數(shù)參數(shù)和懲罰因子的確定。為了驗證該模型在實際應(yīng)用中的效果,通過KDD CUP 99數(shù)據(jù)集進(jìn)行實驗測試,與SVM、KNN和DNN算法相比,該模型能更好地對入侵檢測數(shù)據(jù)進(jìn)行分類和判別。
關(guān)鍵詞:支持向量機 ?煙花算法 ?入侵檢測
中圖分類號:TP18 ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2019)12(b)-0018-03
隨著網(wǎng)絡(luò)在人們的生產(chǎn)生活中所占比重越來越高,網(wǎng)絡(luò)攻擊活動所帶來的危害也日益嚴(yán)重。為了應(yīng)對這類問題,從各角度出發(fā)的防御手段也應(yīng)運而生,截至目前,保障互聯(lián)網(wǎng)安全手段已經(jīng)覆蓋入侵檢測、用戶權(quán)限鑒定、身份認(rèn)證、防火墻等方面[1]。其中,隨著人工智能領(lǐng)域的發(fā)展,新的統(tǒng)計學(xué)習(xí)算法層出不窮,結(jié)合統(tǒng)計學(xué)習(xí)算法與入侵檢測技術(shù)是互聯(lián)網(wǎng)安全領(lǐng)域的重要研究方向。
隨著入侵檢測領(lǐng)域研究的逐漸深入,研究人員發(fā)現(xiàn)在海量網(wǎng)絡(luò)數(shù)據(jù)上提取特征并應(yīng)用統(tǒng)計學(xué)習(xí)的方法能夠有效地在忽略攻擊方法內(nèi)在特點的情況下有效地構(gòu)建入侵檢測系統(tǒng)[2]。目前,主要有利用隨機森林(RF,Random Forest)[3]、BP神經(jīng)網(wǎng)絡(luò)(BPNN,BP Neural Network)[4]、遺傳算法(GA,Genetic Algorithm)[5]、人工免疫算法(AI,Artificial Immune Algorithm)[6]、向量機(SVM,Support Vector Machine)[7]、K近鄰算法(KNN ,k-Nearest Neighbor)[8]、深度神經(jīng)網(wǎng)絡(luò)(DNN, Deep Neural Network)[9]等算法來統(tǒng)計學(xué)習(xí)入侵檢測的特征。該文選用SVM作為入侵檢測算法的核心分類器對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行判別,同時利用煙花算法加快SVM最優(yōu)核函數(shù)參數(shù)和懲罰因子的確定,提出一個基于優(yōu)化后SVM的入侵檢測模型來對網(wǎng)絡(luò)入侵進(jìn)行檢測。在做實驗對比時,我們選取比較有代表性的SVM、KNN和DNN進(jìn)行準(zhǔn)確性上的比較。
1 ?相關(guān)工作
1.1 支持向量機(SVM)
該文將使用SVM作為入侵檢測模型的核心分類器以獲得最優(yōu)的入侵檢測效果。支持向量機的提出在前期是為了解決二維平面內(nèi)比較簡單的線性可分問題,即求解最優(yōu)超平面。假設(shè)給出樣本集為,,,支持向量機的目的就是求出能將該集合T劃分為正負(fù)的最優(yōu)超平面,其中ω是可調(diào)的權(quán)值向量,b是偏移量,表示ω和x的內(nèi)積。求解超平面的過程可以簡寫為以下公式:
(1)
但是,在實際的分類問題當(dāng)中,由于特征多,存在噪聲等原因,輸入集合通常是線性不可分的。求解線性不可分問題時與求解線性可分問題類似,假設(shè)在公式(1)中添加一個參數(shù)(為求解最優(yōu)分類超平面過程當(dāng)中的松弛變量),且≥0,則公式(1)轉(zhuǎn)化為以下公式:
(2)
這時,解決線性可分問題中求解最小值問題變?yōu)榍蠼庾钚≈祮栴}。其中C(C>0)為懲罰因子,其值大小決定分類器經(jīng)驗風(fēng)險的大小。懲罰因子設(shè)置的越大對樣本中分類錯誤的情況容忍度越高。
在實際運算中,SVM為有效避免出現(xiàn)“維度災(zāi)難”,通常采用核函數(shù)K(x,y)代替公式(1)中的點乘運算,這里采用的是RBF核函數(shù),其中g(shù)>0。這種函數(shù)通過任意兩個樣本構(gòu)造向量并將其作為其自變量,通過向量的歐式距離計算得出相應(yīng)的標(biāo)量,參數(shù)g是提前定義影響函數(shù)作用范圍的參數(shù)。
1.2 煙花算法
煙花算法的目的是要求解的問題可以抽象為在D維的可行域Ω內(nèi)找到一點x,使得對應(yīng)于適應(yīng)度函數(shù)f(x),該點的適應(yīng)值為最大或最小,這里以要求解適應(yīng)度最小的解為例,煙花算法的具體步驟如下。
步驟1:在可行域Ω內(nèi)隨機生成N個個體位置坐標(biāo)xi作為煙花算法的初始煙花,其中每一個煙花代表帶求解問題的一個解。
步驟2:根據(jù)問題的適應(yīng)度函數(shù)計算解空間中每個煙花的適應(yīng)度值,這些煙花將利用求解出來的各自適應(yīng)度值作為爆炸依據(jù)引爆產(chǎn)生火花。
步驟3:從步驟2爆炸得到的火花當(dāng)中任意選擇z個維度作為集合DS,,其中round函數(shù)是取整函數(shù),rand函數(shù)為區(qū)間隨機取值函數(shù)。
步驟4:為增加算法隨機性,煙花算法在每次迭代時還將產(chǎn)生G個高斯變異火花,從解空間任意選擇z個維度進(jìn)行高斯變異。
步驟5:利用上一代煙花、爆炸得到的爆炸火花以及高斯變異火花構(gòu)造下次迭代的候選者集合并從中選擇N個個體進(jìn)行下一輪的煙花迭代操作。
步驟6:判斷當(dāng)前狀態(tài)是否達(dá)到煙花算法停止迭代的條件,迭代停止的條件通常為迭代達(dá)到設(shè)定的次數(shù)或者適應(yīng)度值小于預(yù)先設(shè)定值。
2 ?基于煙花算法優(yōu)化SVM的入侵檢測模型
該模型主要分為三大模塊:數(shù)據(jù)預(yù)處理模塊、參數(shù)優(yōu)化模塊和SVM模塊。首先是對測試數(shù)據(jù)集進(jìn)行預(yù)處理,包括字符樣本數(shù)值化、歸一化操作。參數(shù)優(yōu)化模塊的最終目標(biāo)是利用改進(jìn)的煙花算法快速求得SVM的最優(yōu)參數(shù)C、g的組合,具體步驟如下。
步驟1:將輸入的測試訓(xùn)練樣本分成五等份。
步驟2:設(shè)置要尋優(yōu)的SVM核函數(shù)參數(shù)g及懲罰因子C的尋優(yōu)范圍和計算精度,同時對煙花算法進(jìn)行初始化。
步驟3:對于每個位置上的煙花,利用它對應(yīng)的參數(shù)組合構(gòu)造SVM,并利用5-折交叉驗證法計算該參數(shù)組合下 SVM的泛化能力,即分類成功率。
步驟4:引爆煙花,并從爆炸產(chǎn)生的火花中隨機選擇z個維度并進(jìn)行邊界處理,將處理后的結(jié)果保存在爆炸火花種群中。
步驟5:在解空間產(chǎn)生G個高斯變異火花添加到火花種群中。
步驟6:煙花,爆炸火花和高斯變異火花組成的集合中挑選下一代煙花種群。
步驟7:判斷當(dāng)前的迭代次數(shù)是否達(dá)到設(shè)定的煙花算法終止條件:若達(dá)到,輸出煙花算法搜尋到的最優(yōu)誤差懲罰參數(shù)C和核函數(shù)參數(shù)g的組合;若未達(dá)到,算法回到步驟3繼續(xù)進(jìn)行迭代.
最后,將最優(yōu)的SVM參數(shù)組合帶入到SVM模型當(dāng)中,得到最優(yōu)SVM預(yù)測模型,并對入侵樣本進(jìn)行預(yù)測。
3 ?實驗結(jié)果比較與分析
在此次實驗中,我們的算法將與與SVM[7]、KNN[8]和 DNN[9]算法相比較,分別在基于這些算法的入侵檢測模型上運行同樣的測試用例。其中測試用例選取了部分KDD CUP 99數(shù)據(jù)集作為該實驗的測試和訓(xùn)練數(shù)據(jù)。對于評價標(biāo)準(zhǔn),我們采用如下公式:
(10)
其中,TP表示入侵行為被正確檢測,F(xiàn)P代表正常行為被誤判為入侵行為。我們將數(shù)據(jù)隨機分成5組數(shù)據(jù),每一組數(shù)據(jù)互相獨立,來更直觀地比較準(zhǔn)確度,如表1所示。
從表1中可以看出,該文優(yōu)化后SVM的入侵檢測模型的精準(zhǔn)度比普通SVM模型要略高,產(chǎn)生此現(xiàn)象的原因可能是SVM未完整覆蓋解空間,導(dǎo)致算法在迭代后期可能未找到全局最優(yōu)解,而在樣本數(shù)量比較少的情況下,由于K-means和DNN的特征較多,容易陷入“維數(shù)災(zāi)難”,產(chǎn)生過擬合現(xiàn)象,導(dǎo)致精準(zhǔn)度略低于該文模型。
4 ?結(jié)語
該文為了提高網(wǎng)絡(luò)安全水平,能夠?qū)W(wǎng)絡(luò)入侵進(jìn)行精準(zhǔn)檢測,提出一種基于煙火算法優(yōu)化SVM的入侵檢測模型。該模型主要使用支持向量機來分類網(wǎng)絡(luò)攻擊,針對存在支持向量機中最優(yōu)核函數(shù)參數(shù)和懲罰因子確定較慢的問題,利用煙火算法加快SVM最優(yōu)核函數(shù)參數(shù)和懲罰因子的確定。與SVM、BPNN和DNN算法相比,該模型能更好地對入侵檢測數(shù)據(jù)進(jìn)行分類和判別。
參考文獻(xiàn)
[1] 卿斯?jié)h,蔣建春,馬恒太,等.入侵檢測技術(shù)研究綜述[J].通信學(xué)報,2004,25(7):19-29.
[2] 杜紅樂,樊景博.基于半監(jiān)督模糊聚類的入侵檢測[J].計算機工程與應(yīng)用,2016,52(3):96-99.
[3] 任曉芳,趙德群,秦健勇.基于隨機森林和加權(quán)K均值聚類的網(wǎng)絡(luò)入侵檢測系統(tǒng)[J].微型電腦應(yīng)用,2016,32(7):21-24.
[4] 陳萬志,徐東升,張靜.工業(yè)控制網(wǎng)絡(luò)入侵檢測的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化方法[J].遼寧工程技術(shù)大學(xué)學(xué)報:自然科學(xué)版,2019,38(1):82-87.
[5] 熊云龍.基于改進(jìn)遺傳算法的網(wǎng)絡(luò)疑似入侵最優(yōu)數(shù)據(jù)選取[J].現(xiàn)代電子技術(shù),2018,41(22):163-169.
[6] 朱傳華.人工免疫算法在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[J].吉林省教育學(xué)院學(xué)報,2019,35(7):74-77.
[7] 錢亞冠,盧紅波,紀(jì)守領(lǐng),等.一種針對基于SVM入侵檢測系統(tǒng)的毒性攻擊方法[J].電子學(xué)報,2019,47(1):59-65.
[8] 馮瑩瑩,余世干,劉輝.KNN-IPSO選擇特征的網(wǎng)絡(luò)入侵檢測[J].計算機工程與應(yīng)用,2014,50(17):95-99.
[9] 楊印根,王忠洋.基于深度神經(jīng)網(wǎng)絡(luò)的入侵檢測技術(shù)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019(4):37-41.