趙 靜,李 俊,龍 春,杜冠瑤,萬 巍,魏金俠
1(中國科學(xué)院 計算機(jī)網(wǎng)絡(luò)信息中心,北京 100190)
2(中國科學(xué)院大學(xué),北京 100049)
網(wǎng)絡(luò)空間是人們生產(chǎn)、生活的重要空間,網(wǎng)絡(luò)安全已經(jīng)成為國家安全的重要組成部分,我國是遭受網(wǎng)絡(luò)攻擊最嚴(yán)重的國家之一,重大網(wǎng)絡(luò)安全事件時有發(fā)生.僅在2021年上半年,我國約有446 萬臺主機(jī)感染惡意程序[1],平均每月約有4 300 起峰值超過10 Gb/s大流量DDoS 攻擊,并且總體呈現(xiàn)遞增趨勢.基于流量的攻擊增長如此迅速的主要原因是新型未知惡意流量的興起與發(fā)展.
僵尸網(wǎng)絡(luò)、勒索病毒、網(wǎng)絡(luò)蠕蟲木馬、拒絕服務(wù)攻擊等網(wǎng)絡(luò)惡意技術(shù)手段更加多樣化、惡意代碼變異更加快速.惡意攻擊在網(wǎng)絡(luò)環(huán)境中具有高度復(fù)雜性和多樣性,對新型未知的網(wǎng)絡(luò)惡意行為進(jìn)行檢測成為異常檢測技術(shù)研究的重要新方向[2-4].
研究人員對大量惡意數(shù)據(jù)流樣本分析發(fā)現(xiàn),大部分新出現(xiàn)的惡意數(shù)據(jù)流實際上是已知惡意流量的變體形式,具有一定的關(guān)聯(lián)性[5].惡意流量的執(zhí)行者通過多態(tài)、變形等技術(shù)手段打亂已知惡意流量的特征,形成新的惡意流量變種,以繞過安全設(shè)備的檢測.為了能夠快速有效地對抗新型安全威脅,建立高效的分類方法對海量未知樣本進(jìn)行檢測是有必要的.
在傳統(tǒng)已有的異常檢測方法中,專門對未知惡意流量異常檢測特征處理和檢測方法進(jìn)行研究的成果并不是很多,并且在同時解決數(shù)據(jù)不平衡性、多變性和模型檢測準(zhǔn)確性等方面存在不足.具體表現(xiàn)在以下方面.
當(dāng)前網(wǎng)絡(luò)流量攻擊手段變得愈發(fā)隱蔽和復(fù)雜,關(guān)鍵攻擊特征常常隱藏在正常流量數(shù)據(jù)流中,攻擊樣本數(shù)量極少,同時復(fù)雜網(wǎng)絡(luò)流量攻擊數(shù)據(jù)特征維度比較高,在這種攻擊樣本數(shù)量嚴(yán)重不均衡且特征維度過高的情況下傳統(tǒng)模型訓(xùn)練并不完善,缺乏針對不均衡性、特征維度過高的惡意流量進(jìn)行特征全面提取的有效手段; 傳統(tǒng)的惡意流量檢測方法未能充分考慮樣本分布,大多僅考慮凸樣本空間分布,缺乏對樣本分布適應(yīng)性較強(qiáng)的未知流量準(zhǔn)確識別方法; 同時傳統(tǒng)惡意流量檢測方法也面臨對新輸入樣本的檢測需要更新整個模型參數(shù)的問題,對惡意流量變化快速更新的能力不足,模型的實時性較低.
綜上,當(dāng)前形勢下傳統(tǒng)的網(wǎng)絡(luò)未知惡意流量檢測技術(shù)已經(jīng)面臨嚴(yán)峻的挑戰(zhàn).針對真實網(wǎng)絡(luò)環(huán)境中惡意流量數(shù)據(jù)極度不平衡的情況下,研究具有高檢測率、低誤報率的未知惡意流量檢測方法是網(wǎng)絡(luò)空間安全領(lǐng)域的迫切需求.
因此,本文綜合考慮傳統(tǒng)惡意流量檢測方法中樣本不均衡性、樣本分布適應(yīng)性不足等問題,采用機(jī)器學(xué)習(xí)方法對未知惡意流量高效檢測進(jìn)行深入研究.本文的主要貢獻(xiàn)總結(jié)如下:
首先,針對網(wǎng)絡(luò)流量數(shù)據(jù)不平衡問題,提出基于Multi-SMOTE 過采樣的流量處理方法,該方法可以為后續(xù)未知攻擊檢測步驟提供高質(zhì)量的數(shù)據(jù)集,降低數(shù)據(jù)質(zhì)量導(dǎo)致的檢測誤差.
第二,提出基于半監(jiān)督譜聚類的未知流量篩選方法.由于未知流量往往摻雜在海量已知流量中,對未知流量先進(jìn)行篩選才能使后續(xù)惡意未知流量檢測更準(zhǔn)確、快速和便捷.而網(wǎng)絡(luò)數(shù)據(jù)流特征復(fù)雜、屬性維度過高,利用傳統(tǒng)的檢測方法或者聚類算法識別未知流量往往在運行時間和準(zhǔn)確率等方面不具有優(yōu)勢.鑒于此,考慮利用一種對數(shù)據(jù)分布適應(yīng)性更強(qiáng)的方法來實現(xiàn)對未知流量的精確識別.譜聚類具有識別非凸分布聚類的能力,能在任意形狀的樣本空間上聚類,因此,提出一種基于半監(jiān)督譜聚類的未知流量篩選方法,能夠從混合流量中精準(zhǔn)識別未知樣本.
第三,利用Bagging 思想,訓(xùn)練基于集成SVM 的未知惡意流量檢測器.在每次訓(xùn)練時,上一輪被分錯的樣本在本輪以Bagging 采樣的方式選出來加入訓(xùn)練集中,進(jìn)行反復(fù)迭代與訓(xùn)練,得到最優(yōu)的參數(shù),最終獲得綜合性能高的檢測器.
下面分別從本文應(yīng)用到的過采樣技術(shù)、未知流量攻擊類型檢測兩個方面論述研究現(xiàn)狀及發(fā)展動態(tài),其中未知流量類型檢測包括未知流量篩選和未知流量攻擊類型檢測兩部分.
過采樣技術(shù)可以有效解決因樣本不均衡導(dǎo)致的機(jī)器學(xué)習(xí)模型因?qū)颖玖枯^小的數(shù)據(jù)無法充分學(xué)習(xí)到特征,因而造成欠擬合的問題.2002年,文獻(xiàn)[6]提出了SMOTE 過采樣算法,該算法是對隨機(jī)過采樣方法的改進(jìn),是對每個少數(shù)類樣本,從它的最近鄰中隨機(jī)選擇一個樣本,然后在原樣本和被選樣本之間的連線上,隨機(jī)選擇一點作為新合成的少數(shù)類樣本.SMOTE 算法摒棄了隨機(jī)過采樣復(fù)制樣本的方法,可以防止隨機(jī)過采用中容易出現(xiàn)的過擬合問題.文獻(xiàn)[7]中作者認(rèn)為有些樣本遠(yuǎn)離邊界,對分類沒有多大幫助,將少數(shù)類樣本根據(jù)與多數(shù)樣本的距離大小分為Noise,Safe,Danger 三類樣本集,然后只對Danger 中的樣本集合使用SMOTE算法.針對SMOTE 對每個少數(shù)樣本合成相同數(shù)量的樣本,文獻(xiàn)[8]提出了自適應(yīng)合成抽樣算法ADASYN,可以采用某種機(jī)制自動決定每個少數(shù)樣本產(chǎn)生樣本的數(shù)量,以保證數(shù)據(jù)分布不發(fā)生過大變化.文獻(xiàn)[9]通過考慮數(shù)據(jù)集中確定性的變化來添加新的數(shù)據(jù)點,根據(jù)權(quán)重確定少數(shù)樣本被選為種子的概率.文獻(xiàn)[10]提出了一種新的基于核的自適應(yīng)合成過采樣方法,稱為Kernel-ADASYN,用于不平衡數(shù)據(jù)分類問題.其思想是構(gòu)造一個自適應(yīng)過采樣分布來生成合成的少數(shù)群體數(shù)據(jù).首先用核密度估計方法估計自適應(yīng)過采樣分布,然后根據(jù)不同少數(shù)群體數(shù)據(jù)的難度對自適應(yīng)過采樣分布進(jìn)行加權(quán).文獻(xiàn)[11]針對多類別不平衡問題,提出SMOM算法,通過對輔助樣本的選擇確定合成樣本的位置.文獻(xiàn)[12]針對傳統(tǒng)采樣方式的準(zhǔn)確率和魯棒性欠佳,容易丟失重要樣本信息的問題,提出了一種基于樣本特征的自適應(yīng)變鄰域SMOTE 算法,實驗表明該方法比其他傳統(tǒng)方法有更好的準(zhǔn)確率和魯棒性.文獻(xiàn)[13]認(rèn)為SMOTE 算法沒有涉及缺失值的恢復(fù),雖然FID 算法[14]解決了這個問題,但沒有很好地考慮到數(shù)據(jù)屬性之間的相關(guān)性,為此提出了一種基于模糊規(guī)則的過采樣技術(shù),高效地解決了數(shù)據(jù)不平衡和缺失數(shù)據(jù)這兩個問題.文獻(xiàn)[15]在傳統(tǒng)過采樣SMOTE 算法的基礎(chǔ)上,提出了LR-SMOTE 算法,結(jié)合K-means 和SVM 方法使新生成的樣本靠近樣本中心,避免產(chǎn)生離群樣本或改變數(shù)據(jù)集的分布.
然而,現(xiàn)有的SMOTE 及其改進(jìn)算法大多關(guān)注合成數(shù)據(jù)的質(zhì)量,而忽視了數(shù)據(jù)分布和數(shù)據(jù)噪聲問題.現(xiàn)實中數(shù)據(jù)是以流的方式出現(xiàn),數(shù)據(jù)分布隨時間不斷變化,容易導(dǎo)致結(jié)構(gòu)不穩(wěn)定而產(chǎn)生概念漂移,因此在過采樣過程中,會加劇少量樣本數(shù)據(jù)噪聲的疊加.
在未知惡意流量檢測方面,近年來,為了躲避檢測軟件的查殺,惡意流量在傳播過程中采取多態(tài)[16]等變種技術(shù)偽裝成與已知攻擊流量不同的形式去傳播.因此,對基于已知攻擊流量偽裝成新型攻擊流量的檢測問題也變得越來越重要[17-24].
文獻(xiàn)[25]將決策樹和神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)合,采用決策樹提取規(guī)則,提高了算法的精確度.文獻(xiàn)[26]介紹了一種因果決策樹模型,中間節(jié)點具有因果解釋的作用,且因果決策樹算法具有可擴(kuò)展性,分類算法在保持分類精度較高的前提下還可以顯著降低算法的執(zhí)行復(fù)雜度,從整體上提升異常檢測模型的性能.
文獻(xiàn)[27]提出一種多分類器融合的檢測模型,該模型克服了傳統(tǒng)異常檢測系統(tǒng)存在的虛警率高、實時性好、可擴(kuò)展性差等問題,是一種增量式機(jī)器學(xué)習(xí)分類器,用于對網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行智能檢測和分析.該模型雖然具有很好的實時性,但是在惡意流量多態(tài)或者演變形式的檢測方面的檢測率不是很高.文獻(xiàn)[28]提出了一種基于異常的異常檢測系統(tǒng),該系統(tǒng)使用集成分類方法來檢測Web 服務(wù)器上的未知攻擊.該過程涉及利用過濾器和包裝器選擇程序去除不相關(guān)和多余的特征.然后將Logitboost 與隨機(jī)森林一起用作弱分類器.文獻(xiàn)[29]提出了兩個基于蟻群算法(ACA)的未知攻擊的異常檢測系統(tǒng).該IDS 可以在未標(biāo)記的數(shù)據(jù)集上學(xué)習(xí)并檢測未知攻擊.其提出的IDS 是ACA 和其他監(jiān)督學(xué)習(xí)算法的結(jié)合,并將決策樹(DT)和人工神經(jīng)網(wǎng)絡(luò)(ANN)分別與ACA 相結(jié)合,雖然取得較高的檢測率,但是誤報率并不理想.
文獻(xiàn)[30]提出了一種基于信息增益率和半監(jiān)督學(xué)習(xí)的異常檢測方案,針對未知攻擊網(wǎng)絡(luò)流量特征難以定量選取、動態(tài)變化的攻擊難以自適應(yīng)地應(yīng)對,以及訓(xùn)練數(shù)據(jù)集規(guī)模過小而導(dǎo)致模型難以訓(xùn)練3 個問題,采用半監(jiān)督學(xué)習(xí)算法通過少量已標(biāo)記數(shù)據(jù)生成大規(guī)模訓(xùn)練數(shù)據(jù)集,以此對檢測模型進(jìn)行訓(xùn)練,并引入信息增益率對網(wǎng)絡(luò)流量特征自適應(yīng)地定量提取以實現(xiàn)對目標(biāo)網(wǎng)絡(luò)中未知攻擊的檢測.
支持向量機(jī)(SVM)是應(yīng)用于異常檢測領(lǐng)域最廣泛的一種分類方法[31,32].文獻(xiàn)[33]提出了一種基于遺傳算法和支持向量機(jī)的異常檢測方法.該模型采用遺傳算法進(jìn)行特征選擇,并在適應(yīng)度函數(shù)上進(jìn)行了創(chuàng)新,有效地減少了數(shù)據(jù)的規(guī)模和維數(shù),從而顯著減少模型訓(xùn)練的時間,并同時達(dá)到較高的準(zhǔn)確率.文獻(xiàn)[34]提出一種基于SVM 的異常檢測與時間混沌粒子群優(yōu)化(TVCPSO)方法的結(jié)合模型,該模型利用TVCPSO 確定SVM 分類器的最佳參數(shù),在檢測新型未知惡意流量方面具有較強(qiáng)的泛化能力.
文獻(xiàn)[35]分析當(dāng)前流量攻擊檢測工作研究現(xiàn)狀與面臨的挑戰(zhàn),指出目前大多數(shù)的異常檢測系統(tǒng)在誤報率和檢測率方面的效果不是很理想,為了解決這些問題,多數(shù)學(xué)者重點研究集成分類器的研發(fā),通過對多個但分類器進(jìn)行組合,獲得集成分類器.集成分類器可以避免單個分類器的不足,增強(qiáng)分類器的整體性能.
綜上所述,本文綜合考慮傳統(tǒng)惡意流量檢測方法中對樣本不均衡性與維度過高處理不完善、樣本分布適應(yīng)性不足、檢測模型更新能力較弱等問題,采用機(jī)器學(xué)習(xí)方法及集成分類器對未知惡意流量高效檢測進(jìn)行深入研究.
本節(jié)將詳細(xì)介紹基于集成SVM 與Bagging 的未知惡意流量檢測模型的設(shè)計.首先提出基于Multi-SMOTE 過采樣的流量處理方法,以解決實際網(wǎng)絡(luò)流量數(shù)據(jù)中異常樣本的極度不平衡性導(dǎo)致的檢測模型訓(xùn)練欠擬合問題,為后續(xù)檢測步驟提供高質(zhì)量的數(shù)據(jù)集.第二,針對網(wǎng)絡(luò)流量中數(shù)據(jù)分布的多樣性,提出基于半監(jiān)督譜聚類的未知流量篩選方法,能夠從具有多樣分布的混合流量中篩選出未知流量,以便后續(xù)步驟實現(xiàn)未知惡意流量的分類.最后,利用Bagging 思路,經(jīng)過多輪調(diào)參,訓(xùn)練了一個能夠識別未知惡意流量的集成SVM分類器.實驗結(jié)果表明,本文提出的模型針對未知流量惡意識別具有較好的綜合性能.
整體的方法流程圖如圖1 所示.
圖1 基于集成SVM 與Bagging 的未知流量攻擊類型檢測模型整體流程
通常,網(wǎng)絡(luò)流量數(shù)據(jù)中會存在某些新型惡意行為的數(shù)目相比其他惡意行為類別少很多,出現(xiàn)類別數(shù)量極端不平衡的現(xiàn)象.直接用這些數(shù)據(jù)集訓(xùn)練檢測模型,很容易引起過擬合.為了避免這種現(xiàn)象發(fā)生,首先對少數(shù)類的惡意行為樣本進(jìn)行過采樣,避免不同惡意行為數(shù)量不平衡現(xiàn)象的發(fā)生.
本文基于SMOTE 和Borderline-SMOTE 提出一種改進(jìn)的過采樣算法,用于擴(kuò)展新樣本的生成區(qū)域,方法命名為Multi-SMOTE.假設(shè)少數(shù)類樣本集為X,多數(shù)類樣本集為N,且X= {x1,x2,···,xxnum},N= {n1,n2,···,nnnum},其中xnum和nnum分別為X和N的樣本數(shù)目,每個樣本有d個特征,則每一個少數(shù)類樣本可表示為x: (x1,x2,···,xd)T.首先,利用Borderline-SMOTE 的關(guān)鍵少數(shù)類樣本選取算法來產(chǎn)生關(guān)鍵樣本集key_set.基于上述方法得到的key_set,針對該集合中的每一個樣本進(jìn)行過采樣操作,可以有效克服原始SMOTE 產(chǎn)生過多無用樣本點的缺陷.為解決SMOTE 中存在的過采樣區(qū)域過于狹窄的問題,針對key_set中的每一個樣本點應(yīng)用Multi-SMOTE 算法.利用Borderline-SMOTE 算法得到key_set之后,針對key_set中的每一個樣本x,找到x在X中的K個近鄰,并同時找到這K個近鄰中與x之間歐氏距離最大的近鄰,用xT表示.以x為中心,||x-xT||2為半徑(用r表示),在高維空間中確定一個區(qū)域,新樣本將在該區(qū)域中合生,該區(qū)域用G表示.
由于已將生成區(qū)域固定,因此可以得到新樣本每一維特征的取值范圍.針對第l個特征,l=1,2,···,d,其取值范圍為: [xl-r,xl+r].之后,從均勻分布(-1,+1)中生成d個隨機(jī)數(shù),將其表示為 σl.使用 σl可直接合成一個新樣本x~ ,x~=(x1+ σ1r,x2+ σ2r,···,xd+σdr).然而,即使每一維特征的取值均在規(guī)定的取值范圍內(nèi),仍然無法保證該樣本在G當(dāng)中,因為G是一個超球體區(qū)域,而各特征的取值范圍確定的是超方體區(qū)域,此時x~與x之間的歐氏距離無法保證為r.
為了解決上述問題,對σl進(jìn)行歸一化操作,令m是 σ2l的加和.基于合成一個新樣本,在G的邊界之上.基于,便可以在G中生成一個新的樣本xnew,
網(wǎng)絡(luò)流量數(shù)據(jù)來源廣、層次多、差異大、維度高、內(nèi)在關(guān)系錯綜復(fù)雜,未知惡意流量隱藏得比較深,為了能更準(zhǔn)確地對未知流量的攻擊類型進(jìn)行識別,首先將未知流量和已知流量區(qū)分開來.因此,首先解決的是未知流量的篩選問題,考慮譜聚類方法對數(shù)據(jù)分布的適應(yīng)性更強(qiáng),具有識別非凸分布聚類的能力,能在任意形狀的樣本空間上聚類,且收斂于全局最優(yōu)解,基于此本文建立一種基于半監(jiān)督譜聚類的未知流量篩選模型.
2.2.1 數(shù)據(jù)集生成
選定一組已知網(wǎng)絡(luò)流量的數(shù)據(jù)集S,去掉數(shù)據(jù)集S中的標(biāo)簽信息,形成一組無標(biāo)簽數(shù)據(jù)集S′.將其與模擬生成的未知流量混合到一起,形成一個無標(biāo)簽的綜合數(shù)據(jù)集M,作為譜聚類的訓(xùn)練數(shù)據(jù)集.本文選擇以去掉有標(biāo)簽數(shù)據(jù)標(biāo)簽的方式來形成無標(biāo)簽的混合數(shù)據(jù)集,除了構(gòu)造監(jiān)督信息,還可以通過模型最后的分類結(jié)果與標(biāo)簽對比來驗證半監(jiān)督譜聚類的性能.
2.2.2 監(jiān)督信息構(gòu)造
半監(jiān)督聚類中,監(jiān)督信息能有效改善聚類算法的性能.有國外學(xué)者證實,尋找滿足所有監(jiān)督信息的聚類解是一個NP 完備問題,監(jiān)督信息越多,半監(jiān)督聚類算法的復(fù)雜度越高,但聚類性能不一定越高,因此挖掘適合半監(jiān)督聚類的監(jiān)督信息十分關(guān)鍵.
本文為了調(diào)整譜聚類算法距離矩陣的元素值,構(gòu)造成對的監(jiān)督信息.通常,在聚類過程中,距離比較遠(yuǎn)的數(shù)據(jù)被認(rèn)為是屬于不同類的,從而被劃分到不同的類中.同樣,距離較近的數(shù)據(jù)被認(rèn)為是屬于相同類的,從而被劃分到同一類別中.因此,本文將上述數(shù)據(jù)標(biāo)記為兩類集合作為監(jiān)督信息,分別表示距離遠(yuǎn)的同類集X和距離近的不同類集C.
2.2.3 半監(jiān)督譜聚類
基于以上生成的數(shù)據(jù)集和監(jiān)督信息,提出了半監(jiān)督譜聚類算法如算法1 所示.
算法1.基于半監(jiān)督譜聚類的未知流量篩選算法輸入: 已知網(wǎng)絡(luò)流量數(shù)據(jù)集 ,無標(biāo)簽的綜合訓(xùn)練數(shù)據(jù)集 ,距離矩陣輸出: 未知流量類集M D 1)為距離矩陣 中元素賦初值0,計算數(shù)據(jù)集中兩點之間歐氏距離;D 2)修改距離矩陣 ,若這兩點屬于同類集 ,則矩陣元素為0; 若這兩點屬于不同類集 ,則矩陣元素為無窮;S D X C 3)構(gòu)造矩陣,其各個元素為距離矩陣的倒數(shù);P=L-1/2S L1/2LLii=∑nj=1 S ij 4)構(gòu)造矩陣,其中 為對角矩陣;5)經(jīng)過譜聚類過程獲得2 個類;6)對已知流量的數(shù)據(jù)集進(jìn)行聚類,分別計算上述2 個類的聚類中心與已知數(shù)據(jù)集中每個類聚類中心的平均距離,比較2 個類到已知數(shù)據(jù)集的平均距離大小.
網(wǎng)絡(luò)流量數(shù)據(jù)量大、維度高,內(nèi)部關(guān)系復(fù)雜,應(yīng)用傳統(tǒng)的統(tǒng)計方法不能高效率分析和處理.支持向量機(jī)不同于現(xiàn)有的統(tǒng)計分析方法,避開了從歸納到演繹的傳統(tǒng)過程,可以高效地實現(xiàn)從訓(xùn)練樣本到預(yù)測樣本的轉(zhuǎn)導(dǎo)推理,大大簡化了分類與回歸問題,同時具有很好的魯棒性.
集成學(xué)習(xí)通過將多個學(xué)習(xí)器進(jìn)行結(jié)合,可獲得比單一學(xué)習(xí)器更見顯著的泛化性能.本文基于AdaBoost和Bagging 結(jié)合的方法實現(xiàn)對未知流量攻擊類型的檢測,根據(jù)集成過程中弱分類器的權(quán)重調(diào)整訓(xùn)練樣本的數(shù)據(jù)量,依據(jù)Bagging 采樣的方式選取訓(xùn)練樣本.最終的改進(jìn)分類器F(·)是根據(jù)基分類器的加權(quán)求和獲得的.本文研究目的是實現(xiàn)未知流量攻擊類型的檢測,因此,集成SVM 分類器指的是多分類器,涉及到的SVM 基分類器是適用于多分類的場景.
對于SVM,在集成過程中調(diào)整樣本的權(quán)重只會改變樣本在空間中的位置,并且不會降低分類錯誤的樣本的損失.其實,在上一輪訓(xùn)練過程中被分類錯誤的樣本應(yīng)在本輪訓(xùn)練中會帶來更大的損失,這樣的話需要選擇較大的懲罰參數(shù)C來平衡分錯樣本帶來的損失.但是,為不同的樣本選擇不同的懲罰參數(shù)C比較困難.因此,利用Bagging 的采樣思想來選擇每一輪訓(xùn)練的樣本,以提高精度和召回率異常檢測模型.
將上一輪分錯的樣本復(fù)制α (α >1)份,復(fù)制之后的所有樣本將被加入到本輪的訓(xùn)練樣本中.顯然,在本輪的訓(xùn)練樣本中,被分錯的樣本數(shù)量增加了.因此,本輪訓(xùn)練中,分類器傾向于將上輪分錯的樣本以更高的準(zhǔn)確率正確分類.具體方法描述如下:
令M為所有訓(xùn)練樣本的集合,N是本輪訓(xùn)練中選擇的訓(xùn)練樣本,N<|M|.假設(shè)本輪訓(xùn)練過程中分類錯誤的樣本表示為集合Q,則從M中隨機(jī)選擇N-α|Q|個樣本形成樣本集合P.將集合Q中的樣本復(fù)制α 次,復(fù)制之后的樣本的集合表示為Qα.最終集合P和集合Qα組合成為下一輪訓(xùn)練過程中的訓(xùn)練數(shù)據(jù)集.為了避免離群點對訓(xùn)練樣本的重采樣造成影響,設(shè)定錯位分類閾值的上限H和下限L.具體算法如算法2 所示.
本文實驗環(huán)境為Windows 7 平臺,Intel Core i7,8 核CPU,分配內(nèi)存20 GB.實驗采用Python 語言作為編程語言.本文定義模型性能評估指標(biāo)分別為準(zhǔn)確率(accuracy,ACC)、精確率(precision)、召回率(recall)、誤報率(false positive rate,FPR)和F1 分值(F1-score).
算法2.基于集成SVM 和Bagging 的惡意流量判定方法QαNα L H輸入: 分類錯誤樣本集 ,復(fù)制之后的樣本集 ,模型參數(shù) 、 、 、Q輸出: 改進(jìn)分類器,測試數(shù)據(jù)的具體攻擊類型F(·)1)如果,從訓(xùn)練數(shù)據(jù)集中隨機(jī)選擇 個樣本;|Q|>HQHQ M N-α|Q|P P Qα|Q|<LN 2)如果,從集合 中隨機(jī)選擇 個樣本形成新的集合 ,然后從訓(xùn)練樣本集合 中隨機(jī)選擇個樣本形成集合 ,和 組合作為下一輪訓(xùn)練過程的訓(xùn)練樣本,該過程與AdaBoost 權(quán)重調(diào)整策略類似;L≤|Q|≤HN-α|Q|P P Qα 3)如果,從訓(xùn)練數(shù)據(jù)集中隨機(jī)選取個樣本形成集合 ,和 組合作為下一輪訓(xùn)練過程的訓(xùn)練樣本;4)以這樣的方式生成多個基分類器,然后根據(jù)基分類器的加權(quán)求和獲得改進(jìn)分類器,,,和 是超參數(shù),通過十折交叉驗證的方式獲得最優(yōu)值;F(·)F(·) Nα L H 5)將測試數(shù)據(jù)集輸入 中,輸出結(jié)果顯示測試數(shù)據(jù)的具體攻擊類型.
數(shù)據(jù)集方面,首先,本文采用流量生成工具Flightsim自己生成流量數(shù)據(jù)集S,以測試 Multi-SMOTE 過采樣算法、半監(jiān)督譜聚類算法和未知流量檢測模型性能.Flightsim 是一款輕量級的開源網(wǎng)絡(luò)安全工具,安全研究人員可以利用這款工具來生成惡意網(wǎng)絡(luò)流量.其次,為了進(jìn)一步評估檢測模型的性能,本文與其他同類論文中的方法進(jìn)行了對比實驗,為了使實驗具有可比性,采用了同類論文中所使用的UCI 數(shù)據(jù)集和KDD’99 數(shù)據(jù)集.最后,為了驗證本文所提方法的泛化能力,分別在自生成數(shù)據(jù)集S、UCI 數(shù)據(jù)集和KDD’99 數(shù)據(jù)集進(jìn)行了實驗.
本文利用Flightsim 流量生成工具,模擬生成了9 類流量數(shù)據(jù),分為1 類正常流量數(shù)據(jù)和8 類惡意流量數(shù)據(jù),自生成流量數(shù)據(jù)集的數(shù)據(jù)分布如圖2 所示.
圖2 自生成流量數(shù)據(jù)集數(shù)據(jù)分布圖
由圖2 可以看出,惡意流量數(shù)據(jù)存在著嚴(yán)重的數(shù)據(jù)不平衡問題,sqlattack 和rootkit 惡意流量占比遠(yuǎn)遠(yuǎn)小于normal 類.針對這一問題,本文用提出的Multi-SMOTE 過采樣方法對數(shù)據(jù)進(jìn)行采樣,采樣后的數(shù)據(jù)分布如圖3 所示.
圖3 Multi-SMOTE 過采樣后數(shù)據(jù)分布圖
經(jīng)過Multi-SMOTE 采樣后,少量樣本數(shù)據(jù)有了大幅度增加,并且在數(shù)據(jù)量增加的同時保證了數(shù)據(jù)分布沒有發(fā)生太大變化.本文提出的Multi-SMOTE 方法解決了先前過采樣算法存在的數(shù)據(jù)分布不平衡和數(shù)據(jù)噪聲疊加的問題.在數(shù)據(jù)預(yù)處理階段便獲得質(zhì)量較好的訓(xùn)練數(shù)據(jù),有利于訓(xùn)練出更好的模型.
為了在自生成數(shù)據(jù)集上測試本文提出的半監(jiān)督譜聚類算法,我們將隨機(jī)從自生成數(shù)據(jù)集中抽取25%的樣本作為子數(shù)據(jù)集進(jìn)行聚類實驗.將子數(shù)據(jù)集S上的所有標(biāo)簽信息去掉,形成一組無標(biāo)簽數(shù)據(jù)集S′.將S′輸入到半監(jiān)督譜聚類算法中進(jìn)行聚類實驗.為了驗證本文提出的半監(jiān)督譜聚類算法的有效性,將相同的數(shù)據(jù)采用K-means 算法進(jìn)行對比實驗.
從表1 可以看出,本文提出的半監(jiān)督譜聚類算法明顯優(yōu)于K-means 方法,K-means 在高維空間對稀疏數(shù)據(jù)的處理并不好,而半監(jiān)督譜聚類算法很好地解決了這一問題,并且譜聚類算法能夠適應(yīng)網(wǎng)絡(luò)流量分布廣、差異大、維度高的特點.圖4 展示了半監(jiān)督譜聚類算法對數(shù)據(jù)集S進(jìn)行聚類后的分布情況,可以看出在簇數(shù)為9 的情況下,仍能很好地區(qū)分出各個類別.
圖4 半監(jiān)督譜聚類散點分布圖
表1 半監(jiān)督圖譜聚類實驗結(jié)果
首先實驗利用自生成數(shù)據(jù)集對本文提出的模型做了整體性的評估,實驗結(jié)果如表2 所示.可以看出本文提出的模型總體上在對各個類別的識別上具有較高的識別率,均在92%以上,最高可達(dá)99%,在各個類別的預(yù)測上表現(xiàn)都很出色,并且性能均衡穩(wěn)定,初步證明了本文方法在未知惡意流量識別上的有效性.
表2 本文方法在自生成數(shù)據(jù)集上的整體性能評估
基于Multi-SMOTE 過采樣的流量處理方法能夠提高流量特征質(zhì)量,從而提高惡意未知流量識別的準(zhǔn)確率.基于半監(jiān)督譜聚類的未知流量篩選方法是為了專門篩選出未知流量以避免其他已知惡意流量對結(jié)果的影響.這兩個步驟對于未知惡意流量的檢測起到了非常重要的作用,為了驗證其有效性,實驗利用3 種數(shù)據(jù)訓(xùn)練了集成SVM 模型.數(shù)據(jù)1 為原始數(shù)據(jù),即為沒有經(jīng)過Multi-SMOTE 過采樣處理和基于半監(jiān)督譜聚類的未知流量篩選的數(shù)據(jù),表示為Data1.數(shù)據(jù)2 為僅經(jīng)過基于半監(jiān)督譜聚類的未知流量篩選的數(shù)據(jù),表示為Data2.數(shù)據(jù)3 為同時經(jīng)過Multi-SMOTE 過采樣處理和基于半監(jiān)督譜聚類的未知流量篩選的數(shù)據(jù),表示為Data3.在實驗的過程中,同樣均利用Bagging 思路訓(xùn)練集成SVM 分類器,分類結(jié)果如表3-表5 所示.
從表3-表5 的結(jié)果可以綜合看出,在不同的數(shù)據(jù)集上,3 種數(shù)據(jù)的總體表現(xiàn)趨勢是一致的.使用原始數(shù)據(jù)訓(xùn)練出的集成SVM 分類器,即使使用了Bagging 思想,也幾乎沒有分類效果.經(jīng)過基于半監(jiān)督譜聚類的未知流量篩選后的數(shù)據(jù),在訓(xùn)練集成SVM 分類器的時候有一點效果,但是F1-score 最好值也只有0.806,說明特征的質(zhì)量對實驗結(jié)果有很重要的影響.經(jīng)過本文模型設(shè)計的所有環(huán)節(jié)處理后的數(shù)據(jù),再利用Bagging 思想訓(xùn)練出的集成SVM 模型在綜合評價上表現(xiàn)優(yōu)異,驗證了本文提出模型的每一個環(huán)節(jié)都是不可缺失的,環(huán)環(huán)緊扣,最終實現(xiàn)了對未知惡意流量的準(zhǔn)確識別.
表3 集成SVM 分類器在3 種數(shù)據(jù)上的表現(xiàn)(自生成數(shù)據(jù)集)
表4 集成SVM 分類器在3 種數(shù)據(jù)上的表現(xiàn)(UCI 數(shù)據(jù)集)
表5 集成SVM 分類器在3 種數(shù)據(jù)上的表現(xiàn)(KDD’99)
為了進(jìn)一步驗證本文方法的先進(jìn)性,我們選取了文獻(xiàn) [25,27,29,34] 中的方法進(jìn)行了對比實驗.結(jié)果如表6 所示,我們選取KDD’99 數(shù)據(jù)集作為實驗數(shù)據(jù).其中,文獻(xiàn)[27,29,34]使用了KDD’99 的數(shù)據(jù)集,文獻(xiàn)[25]使用了UCI 數(shù)據(jù)集.KDD’99 數(shù)據(jù)集公布于1999年,是網(wǎng)絡(luò)流量檢測領(lǐng)域中使用最廣泛的數(shù)據(jù)集,也是目前比較權(quán)威的數(shù)據(jù)集.KDD’99 數(shù)據(jù)集是由DARPA98數(shù)據(jù)集經(jīng)過數(shù)據(jù)挖掘和預(yù)處理后得到的,每條記錄由41 個屬性組成,分成4 大類共39 種攻擊類型.
表6 本文方法與其他方法的性能對比
實驗首先利用文獻(xiàn)[25]提出的結(jié)合決策樹和神經(jīng)網(wǎng)絡(luò)模型方法進(jìn)行了對比,由于決策樹采用規(guī)則,在一定程度上依賴數(shù)據(jù)本身結(jié)構(gòu),缺少了靈活性,本文提出的方法對各類惡意流量的適應(yīng)性更強(qiáng),所以效果優(yōu)于文獻(xiàn)[25]提出的方法.隨后,本文對同在KDD’99 數(shù)據(jù)集進(jìn)行實驗的文獻(xiàn)[27,29,34]進(jìn)行了對比,這3 個工作的實驗是針對分類器做的改進(jìn),通過多種算法相結(jié)合的方式,從而提升分類器的性能,但忽視了數(shù)據(jù)分布的情況和數(shù)據(jù)集規(guī)模大小的問題.本文提出的方法利用半監(jiān)督形式來適應(yīng)數(shù)據(jù)分布的問題.從表3 中可以看出,本文方法在準(zhǔn)確率(ACC),精確率(precision),召回率(recall)上均優(yōu)于其他方法.
在實際的應(yīng)用中,最重要的目標(biāo)是盡可能發(fā)現(xiàn)異常行為,提高檢測的準(zhǔn)確率和召回率,而0.1 的誤報率在可接受的范圍內(nèi).
為了測試本文方法的泛化能力,我們利用本文的方法在自生成數(shù)據(jù)集S,UCI 數(shù)據(jù)集和KDD’99 數(shù)據(jù)集上分別做了實驗,并根據(jù)F1-score 對性能進(jìn)行了評估.圖5 展示了3 個數(shù)據(jù)集上F1-score 的大小,由于S是本文提出的私有數(shù)據(jù)集,與模型兼容性更高,所以F1-score達(dá)到了0.99,另外兩個數(shù)據(jù)集的F1-score 在0.95 以上.
圖5 本文方法在不同數(shù)據(jù)集上的性能比較
綜上所述,從整體實驗結(jié)果來看,本文所提方法的整體優(yōu)勢明顯,且具有良好的泛化能力.
本文針對真實網(wǎng)絡(luò)環(huán)境中存在惡意流量數(shù)據(jù)極度不平衡的問題,研究具有高綜合性能的未知惡意流量檢測方法.綜合考慮傳統(tǒng)惡意流量檢測方法中存在樣本不均衡性、樣本分布適應(yīng)性不足等問題,采用機(jī)器學(xué)習(xí)方法對未知惡意流量進(jìn)行檢測.
首先,本文提出基于Multi-SMOTE 過采樣的流量處理方法,為后續(xù)未知攻擊檢測步驟提供高質(zhì)量的數(shù)據(jù)集,降低數(shù)據(jù)質(zhì)量導(dǎo)致的檢測誤差; 然后提出一種基于半監(jiān)督譜聚類的未知流量篩選方法,從混合流量中精準(zhǔn)識別未知流量.最后,利用前面提出的過采樣方法和未知流量篩選處理后的特征,基于Bagging 思想,訓(xùn)練了能夠識別未知惡意流量的集成SVM 分類器.實驗結(jié)果表明,本文所提出的基于集成SVM 與Bagging 的未知惡意流量檢測模型在綜合評價(F1-score)方面優(yōu)于目前同類未知惡意流量檢測方法.并且,本文所提方法在不同數(shù)據(jù)集上的性能評估結(jié)果顯示,所提方法具有良好的泛化能力.