王 垚,孫國(guó)梓
(南京郵電大學(xué)計(jì)算機(jī)學(xué)院,南京 210023)
(?通信作者電子郵箱sun@njupt.edu.cn)
網(wǎng)絡(luò)安全已經(jīng)成為計(jì)算機(jī)系統(tǒng)以及計(jì)算機(jī)網(wǎng)絡(luò)中的熱點(diǎn)問(wèn)題,引起越來(lái)越多的關(guān)注。一些常見(jiàn)的網(wǎng)絡(luò)攻擊類(lèi)型,諸如分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊、僵尸網(wǎng)絡(luò)(Botnet)等,一旦攻擊得手將造成嚴(yán)重后果,例如2019年10月22日,亞馬遜公司服務(wù)器遭DDoS攻擊,攻擊者試圖通過(guò)垃圾網(wǎng)絡(luò)流量堵塞系統(tǒng),導(dǎo)致服務(wù)無(wú)法訪問(wèn),攻擊持續(xù)整整15個(gè)小時(shí),造成的損失難以估量。
作為保證網(wǎng)絡(luò)安全的重要技術(shù)之一,入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)是網(wǎng)絡(luò)安全防護(hù)方案的重要組成之一[1]。入侵檢測(cè)系統(tǒng)是從計(jì)算機(jī)和網(wǎng)絡(luò)中收集與分析流量信息,判斷網(wǎng)絡(luò)中是否出現(xiàn)一些異常行為?,F(xiàn)代入侵檢測(cè)系統(tǒng)呈現(xiàn)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等技術(shù)的高度融合的趨勢(shì),有效提高了網(wǎng)絡(luò)攻擊的檢測(cè)效率。
基于機(jī)器學(xué)習(xí)的入侵檢測(cè)模型已取得較好的性能,但數(shù)據(jù)不平衡仍是影響大多數(shù)入侵檢測(cè)模型性能提升的瓶頸[2]。類(lèi)不平衡會(huì)導(dǎo)致訓(xùn)練模型過(guò)擬合,在機(jī)器學(xué)習(xí)領(lǐng)域中,為解決不平衡問(wèn)題,常采用合成少數(shù)類(lèi)過(guò)采樣技術(shù)(Synthetic Minority Oversampling TEchnique,SMOTE)[3]等采樣方法平衡數(shù)據(jù)。但在入侵檢測(cè)中,數(shù)據(jù)集往往更復(fù)雜、規(guī)模更大,不平衡程度更嚴(yán)重。傳統(tǒng)的采樣方法進(jìn)行采樣后會(huì)導(dǎo)致數(shù)據(jù)重疊,降低檢測(cè)率。一些研究人員指出,不平衡問(wèn)題是數(shù)據(jù)科學(xué)面臨的十大挑戰(zhàn)之一[4],同時(shí)數(shù)據(jù)不平衡問(wèn)題也是機(jī)器學(xué)習(xí)中的研究熱點(diǎn)之一。在入侵檢測(cè)數(shù)據(jù)中往往攻擊類(lèi)型數(shù)據(jù)相對(duì)較少,正常流量的數(shù)量則相對(duì)偏多,但攻擊類(lèi)型數(shù)據(jù)往往包含關(guān)鍵檢測(cè)信息,而在不平衡的入侵檢測(cè)數(shù)據(jù)上訓(xùn)練機(jī)器學(xué)習(xí)模型,會(huì)導(dǎo)致模型偏向于擬合正常流量數(shù)據(jù),泛化能力弱。
為了解決入侵檢測(cè)中的不平衡問(wèn)題,在改進(jìn)傳統(tǒng)過(guò)采樣算法缺點(diǎn)的基礎(chǔ)上,本文提出了基于聚類(lèi)和實(shí)例硬度的入侵檢測(cè)過(guò)采樣方法(Clustering and instance Hardness-based Oversampling method for intrusion detection,CHO)。首先,計(jì)算實(shí)例硬度(Instance Hardness,IH)[5],準(zhǔn)確識(shí)別難以正確分類(lèi)的樣本,再通過(guò)聚類(lèi)算法結(jié)合實(shí)例硬度識(shí)別“安全”區(qū)域,并依據(jù)統(tǒng)計(jì)學(xué)最優(yōu)分配原理進(jìn)行過(guò)采樣。
本文的主要工作如下:
1)提出了一種新的過(guò)采樣方法,解決了入侵檢測(cè)中常見(jiàn)的數(shù)據(jù)不平衡問(wèn)題。不同于SMOTE 等傳統(tǒng)方法,所提方法通過(guò)聚類(lèi)識(shí)別數(shù)據(jù)分布,然后在同時(shí)考慮數(shù)據(jù)的疏密程度和類(lèi)重疊的情況下生成數(shù)據(jù),在測(cè)試數(shù)據(jù)集上有效提高了分類(lèi)器的分類(lèi)性能。
2)通過(guò)實(shí)例硬度,對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分析。
入侵檢測(cè)系統(tǒng)(IDS)分析來(lái)自網(wǎng)絡(luò)內(nèi)部和外部的網(wǎng)絡(luò)流量,能夠有效地檢測(cè)出異常流量。IDS 與機(jī)器學(xué)習(xí)、深度學(xué)習(xí)技術(shù)結(jié)合,能夠有效增強(qiáng)網(wǎng)絡(luò)系統(tǒng)的安全性。機(jī)器學(xué)習(xí)算法被廣泛運(yùn)用到IDS 之中,文獻(xiàn)[6]將改進(jìn)的決策樹(shù)(Decision Tree,DT)算法用于入侵檢測(cè)系統(tǒng)。文獻(xiàn)[7]利用隨機(jī)森林(Random Forest,RF)進(jìn)行入侵檢測(cè)。深度學(xué)習(xí)技術(shù)在IDS 中也被大量運(yùn)用,比如文獻(xiàn)[8]將改進(jìn)的多層感知機(jī)(Multi-Layer Perceptron,MLP)用于DDoS 攻擊的檢測(cè)。然而,以上研究很少關(guān)注到入侵檢測(cè)中的數(shù)據(jù)不平衡問(wèn)題。
機(jī)器學(xué)習(xí)中的不均衡問(wèn)題,主要表現(xiàn)為數(shù)據(jù)集各類(lèi)樣本數(shù)值上存在差異。為表示數(shù)據(jù)的不平衡程度,引入不平衡率(Imbalance Ratio,IR)。以二分類(lèi)情況為例,不平衡率可表示為:
其中:Nmaj代表數(shù)據(jù)中多數(shù)類(lèi)數(shù)據(jù)的數(shù)量;Nmin代表少數(shù)類(lèi)數(shù)據(jù)的數(shù)量。關(guān)于平衡的閾值一般認(rèn)為是1.5[9],即數(shù)據(jù)不平衡率大于1.5,那么認(rèn)為該數(shù)據(jù)是不平衡的。加拿大網(wǎng)絡(luò)安全研究所(Canadian Institute for Cybersecurity,CIC)2017 年公開(kāi)的CICIDS2017 數(shù)據(jù)[10],較全面地反映了現(xiàn)代網(wǎng)絡(luò)攻擊的類(lèi)型。該數(shù)據(jù)由多組關(guān)于不同攻擊類(lèi)型的子數(shù)據(jù)集構(gòu)成,總體上正常流量和異常流量的不平衡比達(dá)到4.081 4∶1,其中各子數(shù)據(jù)集也是普遍不平衡的,比如CICIDS2017 中關(guān)于滲透(Infiltration)攻擊的流量數(shù)據(jù)只有36個(gè)樣本,子數(shù)據(jù)不平衡率超過(guò)8 000。數(shù)據(jù)的不平衡導(dǎo)致入侵檢測(cè)模型無(wú)法從有限的樣本中充分獲取攻擊流量的信息。
重采樣技術(shù)被用于解決不平衡問(wèn)題,可分為過(guò)采樣、欠采樣以及混合采樣三類(lèi)。隨機(jī)欠采樣(Random Under-Sampling,RUS)是最易于實(shí)現(xiàn)的欠采樣方法,從多數(shù)類(lèi)中隨機(jī)選擇樣本,然而這可能導(dǎo)致丟失重要信息。過(guò)采樣方法則擴(kuò)充少數(shù)類(lèi)數(shù)量以達(dá)到平衡數(shù)據(jù)的目的?;旌喜蓸觿t將兩者結(jié)合。SMOTE 是一種經(jīng)典的過(guò)采樣技術(shù),被廣泛應(yīng)用于入侵檢測(cè)中[11-12]:首先,為每個(gè)少數(shù)類(lèi)樣本搜索K個(gè)近鄰樣本;然后,從這些最近鄰中隨機(jī)選擇一個(gè)鄰居樣本,在每個(gè)少數(shù)類(lèi)樣本與其所選樣本之間的連線上合成一個(gè)新數(shù)據(jù),稱為插值法。SMOTE 啟發(fā)了很多后續(xù)研究工作,如基于邊界的SMOTE(Borderline SMOTE)算法[13]、自適應(yīng)合成過(guò)采樣(ADAptive SYNthetic sampling,ADASYN)[14]等過(guò)采樣方法相繼被提出。此外,深度學(xué)習(xí)技術(shù)也被用于處理不平衡問(wèn)題,文獻(xiàn)[2]運(yùn)用生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)生成少數(shù)類(lèi)數(shù)據(jù),用于入侵檢測(cè)模型訓(xùn)練;文獻(xiàn)[15]運(yùn)用人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)擬合少數(shù)類(lèi)數(shù)據(jù),并對(duì)多數(shù)類(lèi)數(shù)據(jù)進(jìn)行預(yù)測(cè),選取預(yù)測(cè)誤差較大的數(shù)據(jù)進(jìn)行訓(xùn)練。
實(shí)例硬度表示樣本X被數(shù)據(jù)集中其他樣本構(gòu)造的分類(lèi)器錯(cuò)誤分類(lèi)的概率[5]。硬度的取值范圍為0~1。硬度值越接近0,表明該樣本可以被幾乎所有分類(lèi)器正確分類(lèi),而硬度為1的樣本則表明被所有分類(lèi)器誤分類(lèi)。硬度衡量的是樣本被分類(lèi)器正確識(shí)別的難度。位于重疊區(qū)域的樣本通常具有更高的硬度值,而離群值的硬度可能很大也可能很?。?]。
為了解釋實(shí)例硬度,將數(shù)據(jù)表示為〈X,Y〉,其中Y是樣本X的所屬類(lèi)別,用f表示從樣本X轉(zhuǎn)換為類(lèi)別Y的函數(shù),即有f:X→Y,那么P(X|Y,f)表示f將Y正確分配給X的概率。實(shí)際上f是由訓(xùn)練在數(shù)據(jù)d上的機(jī)器學(xué)習(xí)算法g得到的,那么可表示為f=g(d,a),其中a代表算法g的參數(shù)。為了準(zhǔn)確、客觀地衡量實(shí)例硬度,文獻(xiàn)[5]將實(shí)例硬度定義為:
其中,G代表一組機(jī)器學(xué)習(xí)算法,且有g(shù)j∈G?;趯?shí)例硬度,文獻(xiàn)[16]提出混合袋裝(Mixed Bagging,MixBag)模型,將硬度應(yīng)用到袋裝集成過(guò)程中,提升了分類(lèi)器性能。
分層抽樣是統(tǒng)計(jì)學(xué)中關(guān)于抽樣的重要方法,該方法可以從總體中獲取更具有代表性的樣本。首先將整體數(shù)據(jù)按照某種特征分為若干層,從每一層中再按照一定規(guī)則抽取若干樣本組成總樣本。關(guān)于各層樣本量如何分配,有多種分配方法。其中,最優(yōu)分配不僅考慮到各層的大小,把各層進(jìn)行抽樣調(diào)查的費(fèi)用也納入考慮范圍。
假設(shè)樣本總數(shù)為N,抽樣總數(shù)為n,共分為L(zhǎng)層。各層大小為N1,N2,…,NL,各層抽取的樣本大小為n1,n2,…,nL,各層標(biāo)準(zhǔn)差分別為S1,S2,…,SL,并假設(shè)Eh為第h層中抽取一個(gè)單元進(jìn)行調(diào)查的平均費(fèi)用,同時(shí)h=1,2,…,L,那么最優(yōu)分配公式可表示為:
各層抽取的樣本數(shù)量,由各層大小、標(biāo)準(zhǔn)差和“調(diào)查費(fèi)用”決定。第h層數(shù)據(jù)的標(biāo)準(zhǔn)差越大,調(diào)查費(fèi)用越低,那么該層抽取的樣本數(shù)量應(yīng)越多。
SMOTE 通過(guò)插值法生成數(shù)據(jù)來(lái)擴(kuò)大少數(shù)類(lèi)數(shù)據(jù)的范圍,從而提高模型泛化能力。然而,SMOTE 忽視多數(shù)類(lèi)樣本的分布情況,可能導(dǎo)致數(shù)據(jù)重疊。為了更好地控制數(shù)據(jù)生成的范圍,Borderline SMOTE 則將數(shù)據(jù)生成在特定的邊界,然而對(duì)于高維入侵檢測(cè)數(shù)據(jù),確定合適的邊界是十分困難的。
文獻(xiàn)[17]提出了基于聚類(lèi)的合成過(guò)采樣(Cluster-based Synthetic Oversampling,CSO)方法。該方法通過(guò)對(duì)數(shù)據(jù)聚類(lèi)得到不同的簇,在簇心和其近鄰樣本之間生成新數(shù)據(jù),避免了離群值對(duì)采樣過(guò)程的影響,但該方法存在以下缺點(diǎn):將待生成的數(shù)據(jù)量平均分配給各簇,沒(méi)有考慮數(shù)據(jù)分布的疏密;生成的數(shù)據(jù)多樣性不足等。
文獻(xiàn)[18]將聚類(lèi)算法與SMOTE 相結(jié)合,提出了K均值SMOTE(K-means SMOTE)方 法。該方法通過(guò)K均 值(K-means)聚類(lèi)學(xué)習(xí)數(shù)據(jù)分布,然后計(jì)算各簇的密度,密度越小的簇分配的數(shù)據(jù)量越多,再利用SMOTE 完成數(shù)據(jù)合成。雖然該方法考慮到數(shù)據(jù)分布的疏密性,但同樣忽視了類(lèi)重疊的影響。
因此,本文提出了一種新的過(guò)采樣方法,在同時(shí)考慮數(shù)據(jù)分布和數(shù)據(jù)重疊的情況下對(duì)數(shù)據(jù)采樣,以避免重疊,達(dá)到類(lèi)間平衡的同時(shí)也實(shí)現(xiàn)類(lèi)內(nèi)平衡,以解決網(wǎng)絡(luò)入侵檢測(cè)中的不平衡問(wèn)題。
本文提出了基于聚類(lèi)和實(shí)例硬度的入侵檢測(cè)過(guò)采樣方法(CHO),CHO 利用聚類(lèi)識(shí)別數(shù)據(jù)分布,并通過(guò)實(shí)例硬度和最優(yōu)分配原理指導(dǎo)過(guò)采樣。
關(guān)于實(shí)例硬度的應(yīng)用,主要工作體現(xiàn)在:1)對(duì)數(shù)據(jù)聚類(lèi)后,將不同簇中數(shù)據(jù)的平均硬度作為一種調(diào)節(jié)簇所分配數(shù)據(jù)量的權(quán)重;2)通過(guò)硬度值確定安全的區(qū)域,然后在安全區(qū)域內(nèi)生成數(shù)據(jù),安全區(qū)域受到類(lèi)重疊的影響是小于非安全區(qū)域的。
首先,將輸入的數(shù)據(jù)集分解為多數(shù)類(lèi)Dmaj和少數(shù)類(lèi)Dmin。CHO 對(duì)Dmin進(jìn)行Canopy 預(yù)聚類(lèi)[19],Canopy 使用一種簡(jiǎn)單、快捷的距離計(jì)算方法將數(shù)據(jù)集分為若干可重疊的子集;Canopy聚類(lèi)無(wú)需指定簇?cái)?shù),可作為K均值等聚類(lèi)方法的預(yù)處理,通過(guò)Canopy預(yù)判K-means++方法須指定的簇?cái)?shù)。
將Canopy 聚類(lèi)后得出的簇?cái)?shù)作為K-means++算法的聚類(lèi)總數(shù)M,并進(jìn)行聚類(lèi),得到簇C1,C2,…,CM。通過(guò)聚類(lèi)獲取數(shù)據(jù)分布的信息,可以使得生成數(shù)據(jù)在聚類(lèi)內(nèi)生成,維持原有的數(shù)據(jù)分布??紤]到不同的簇具有不同的疏密程度,數(shù)據(jù)越緊密則標(biāo)準(zhǔn)差越小,標(biāo)準(zhǔn)差越大則數(shù)據(jù)越離散、分布越稀疏,那么需要分配更多的數(shù)據(jù)量來(lái)實(shí)現(xiàn)簇間平衡,填補(bǔ)不同疏密程度間的差異。
同時(shí),不同的簇受到類(lèi)重疊的影響也是不同的。為了衡量重疊程度,將硬度作為CHO 的輸入。為簡(jiǎn)化硬度的計(jì)算,采用KDN(K-Disagreeing Neighbors)[5]來(lái)測(cè)算少數(shù)類(lèi)對(duì)應(yīng)的硬度數(shù)組V,KDN 值與數(shù)據(jù)重疊的程度正相關(guān),是一種數(shù)據(jù)真實(shí)硬度的度量方法,計(jì)算方法如式(4);為使KDN 值更精確,設(shè)定近鄰個(gè)數(shù)K=10,并以此計(jì)算輸入數(shù)組V,把計(jì)算得出的KDN 值作為硬度值,并組合為數(shù)組,將少數(shù)類(lèi)數(shù)據(jù)的硬度數(shù)組作為輸入;聚類(lèi)后拆分?jǐn)?shù)組,分別得到簇Ci對(duì)應(yīng)的硬度數(shù)組Vi,并求出簇的平均硬度Hi。受統(tǒng)計(jì)學(xué)最優(yōu)分配抽樣方法的啟發(fā),將Hi作為最優(yōu)分配中的“調(diào)查費(fèi)用”;同時(shí)計(jì)算標(biāo)準(zhǔn)差Si,見(jiàn)式(5);然后通過(guò)式(6)確定簇Ci分配的待生成樣本數(shù)量占待生成數(shù)據(jù)總量的比重ωi。
式(4)中:Y(X)表示樣本X的類(lèi)別;Z表示在X的K最近鄰(K-Nearest Neighbor,KNN)中樣本與X類(lèi)別相異的樣本。式(5)中:μi代表簇Ci對(duì)應(yīng)的均值;Xj為Ci中的樣 本。式(6)中:n表示待生成的樣本總數(shù);|Ci|為第i個(gè)聚類(lèi)中樣本總數(shù);ni代表簇Ci中應(yīng)生成的樣本數(shù)量,反映如果簇Ci的標(biāo)準(zhǔn)差越大,硬度越低,那么應(yīng)生成的數(shù)據(jù)越多,即ni在n中所占比重ωi越大。該方法不僅考慮了數(shù)據(jù)的疏密性,也考慮到了類(lèi)重疊等帶來(lái)的影響,通過(guò)最優(yōu)分配確定在簇Ci中應(yīng)生成的數(shù)據(jù)量。
最后,CHO 通過(guò)硬度值確定簇Ci中的安全區(qū)域,安全區(qū)域內(nèi)的數(shù)據(jù)都具有較低硬度。在安全區(qū)域中隨機(jī)選擇兩個(gè)樣本,這里用X1和X2表示選擇的第一個(gè)和第二個(gè)樣本,運(yùn)用插值法生成新樣本Xnew:
其中q表示0~1的隨機(jī)數(shù)。重復(fù)這個(gè)過(guò)程,直到Ci中新生成的樣本數(shù)量達(dá)到ni。多樣性對(duì)采樣方法是非常重要的,通過(guò)參數(shù)P來(lái)控制最終生成數(shù)據(jù)的多樣性,表示的是簇中安全區(qū)域內(nèi)樣本總數(shù)與簇內(nèi)樣本總數(shù)之比。P值越大,生成的數(shù)據(jù)多樣性越高。當(dāng)P=1,表示在Ci中任意兩個(gè)樣本之間生成數(shù)據(jù);設(shè)定參數(shù)P的目的在于使安全區(qū)域內(nèi)生成足夠多樣的數(shù)據(jù)。綜上,CHO具體處理步驟如算法1所示。
算法1 基于聚類(lèi)和實(shí)例硬度的入侵檢測(cè)過(guò)采樣方法。
輸入 少數(shù)類(lèi)數(shù)據(jù)Dmin,過(guò)采樣率R,多樣性參數(shù)P,少數(shù)類(lèi)數(shù)據(jù)對(duì)應(yīng)的硬度數(shù)組V;
圖1 綜合采樣流程Fig.1 Flow chart of synthetic sampling
傳統(tǒng)SMOTE 方法在近鄰樣本間生成數(shù)據(jù),可能產(chǎn)生噪聲數(shù)據(jù),所提方法通過(guò)聚類(lèi)和實(shí)例硬度識(shí)別重疊程度小的特征空間,在該空間中合成數(shù)據(jù),降低生成噪聲的可能性;不同于CSO 方法圍繞聚類(lèi)中心生成數(shù)據(jù),所提方法通過(guò)最優(yōu)分配原理合理計(jì)算各簇應(yīng)生成數(shù)據(jù)量,并選取簇內(nèi)低硬度樣本進(jìn)行數(shù)據(jù)合成,減小重疊的影響;K-means SMOTE 考慮到數(shù)據(jù)分布的疏密,但計(jì)算密度的方法過(guò)于復(fù)雜,所提方法通過(guò)計(jì)算標(biāo)準(zhǔn)差衡量數(shù)據(jù)間的離散程度。綜上,K-means SMOTE 等方法雖然關(guān)注到疏密性、離群值等某些方面,卻忽略了類(lèi)重疊對(duì)采樣過(guò)程的影響,最終影響分類(lèi)準(zhǔn)確性;所提方法則基于實(shí)例硬度,從減輕類(lèi)重疊影響的角度進(jìn)行優(yōu)化,更有效地采樣。
網(wǎng)絡(luò)攻擊類(lèi)型不斷升級(jí),因此使用一些較新的數(shù)據(jù)集訓(xùn)練入侵檢測(cè)模型能更有效地應(yīng)對(duì)攻擊。選用CICIDS2017、DoHBrw2020[20]、UNSW-NB15[21]、DOS2017[22]、Botnet2014[23]等入侵檢測(cè)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。CICIDS2017 由多組關(guān)于不同攻擊類(lèi)型的子數(shù)據(jù)集組成,部分子數(shù)據(jù)集相對(duì)平衡,不符合實(shí)驗(yàn)要求,因此從CICIDS2017中選擇了關(guān)于Botnet和Infiltration兩種攻擊的不平衡子數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),分別用CIC_Bot、CIC_Inf 表示;將UNSW-NB15 的訓(xùn)練和測(cè)試數(shù)據(jù)集組合為新數(shù)據(jù),用UNSW 表示;而B(niǎo)otnet2014 數(shù)據(jù)為PCAP 包格式,采用網(wǎng)絡(luò)流量解析工具(CICFlowMeter)[24]解析成CSV 文件,將攻擊流量分別標(biāo)注為DOS 和Botnet,轉(zhuǎn)化為二分類(lèi)數(shù)據(jù)。對(duì)入侵檢測(cè)數(shù)據(jù)進(jìn)行了空值替換、無(wú)窮值刪除、重復(fù)數(shù)據(jù)刪除等處理,實(shí)驗(yàn)使用清洗后的數(shù)據(jù),見(jiàn)表1。
表1 實(shí)驗(yàn)使用的數(shù)據(jù)集Tab.1 Datasets used in experiments
由于實(shí)驗(yàn)選用的數(shù)據(jù)都是不平衡的,即使隨機(jī)預(yù)測(cè)也可能獲得較高的準(zhǔn)確率,所以準(zhǔn)確率不適合作為不平衡學(xué)習(xí)任務(wù)中的評(píng)價(jià)指標(biāo)。為了準(zhǔn)確地反映模型性能,采用曲線下面積(Area Under Curve,AUC)和G-mean(Geometric mean)作為主要指標(biāo)。AUC 表示受試者操作特征曲線(Receiver Operating characteristic Curve,ROC)下面積,反映模型泛化能力。G-mean表示特異度(Specificity)與召回率(Recall)的幾何平均數(shù),用于衡量數(shù)據(jù)不平衡時(shí)模型的性能。這些指標(biāo)和模型性能均為正相關(guān),指標(biāo)數(shù)值越大,表明模型性能越好。
由于數(shù)據(jù)含有較多的冗余特征,按照隨機(jī)森林得分進(jìn)行特征篩選,本文研究將選擇特征的個(gè)數(shù)設(shè)為20,并進(jìn)行歸一化處理。選擇4 種過(guò)采樣方法作為對(duì)比,包括SMOTE、Borderline SMOTE、ADASYN 以及K-means SMOTE,將后三種方法分別用BS、ADA 和KS 簡(jiǎn)化表示;同時(shí)實(shí)驗(yàn)還選用了兩種欠采樣方法:隨機(jī)欠采樣和基于KNN 的欠采樣方法(NearMiss-3)[25],分別用RUS 和NM 表示。SMOTE、BS、KS、ADA 四種方法具有共同的近鄰參數(shù),即近鄰樣本個(gè)數(shù),均設(shè)為5;BS、KS 的其他參數(shù)與文獻(xiàn)[13,18]相同;NM 的參數(shù)設(shè)定與文獻(xiàn)[25]一致;CHO 的參數(shù)P設(shè)為0.3,并在3.4 節(jié)分析參數(shù)對(duì)所提方法性能的影響。所有過(guò)采樣方法的過(guò)采樣率參數(shù)均相同,使過(guò)采樣后數(shù)據(jù)達(dá)到1∶1的平衡狀態(tài)。以Botnet2014數(shù)據(jù)集為例,CHO、SMOTE 等過(guò)采樣方法過(guò)采樣率均設(shè)為1;欠采樣方法的欠采樣率設(shè)定類(lèi)似,RUS 和NM 方法的欠采樣率設(shè)為0.5。
邏輯回歸(Logistic Regression)是一種廣泛使用的機(jī)器學(xué)習(xí)模型,因此使用邏輯回歸作為測(cè)試模型。所有采樣方法均進(jìn)行5 次5 折交叉驗(yàn)證,對(duì)每次邏輯回歸的預(yù)測(cè)結(jié)果計(jì)算AUC,以平均AUC 作為指標(biāo),實(shí)驗(yàn)結(jié)果見(jiàn)表2,并統(tǒng)計(jì)了對(duì)數(shù)據(jù)不做采樣時(shí)得到的實(shí)驗(yàn)結(jié)果,得分最高的算法用粗體表示。從表2 中可以看出,所提方法在4 組數(shù)據(jù)集上平均AUC 值高于其他采樣方法,且相較于SMOTE,AUC值平均提高了約1.6個(gè)百分點(diǎn)。
表2 不同方法的平均AUC對(duì)比結(jié)果 單位:%Tab.2 Average AUC comparison results of different methods unit:%
統(tǒng)計(jì)不同方法AUC和G-mean等評(píng)價(jià)指標(biāo)下的平均排名,排名最高的算法均用粗體表示。如表3 所示,CHO 均取得了最高排名,表明該方法能夠更有效地提升模型分類(lèi)性能。圖2 展示了各采樣方法在CIC_Bot 和CIC_Inf 兩個(gè)子數(shù)據(jù)上的平均AUC 并計(jì)算95%的置信區(qū)間。從圖2 可以看出,CHO 對(duì)應(yīng)的置信區(qū)間較窄,表明所提方法的性能是穩(wěn)定的。
圖2 不同方法的置信區(qū)間對(duì)比Fig.2 Comparison of confidence intervals of different methods
表3 不同方法的平均排名Tab.3 Average rankings of different methods
接下來(lái)分析參數(shù)對(duì)所提方法性能的影響。多樣性參數(shù)P的取值在0~1,值越大表示生成的數(shù)據(jù)多樣性越強(qiáng)。分別計(jì)算P取值為0.1、0.3、0.5、0.7 以及0.9 時(shí)所提方法的分類(lèi)性能。以CIC_Bot 和CIC_Infiltration 數(shù)據(jù)集為例進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見(jiàn)圖3。
從圖3可以看出,對(duì)于CIC_Bot數(shù)據(jù)集,多樣性參數(shù)取0.3時(shí)AUC值和G-mean值最高;而對(duì)于CIC_Inf數(shù)據(jù)集,多樣性參數(shù)取0.3和0.5時(shí)得到的性能良好??紤]到P值過(guò)大,將選擇高硬度樣本進(jìn)行采樣,產(chǎn)生噪聲的可能性也會(huì)增大,因此選擇較小的P值是合適的。
圖3 多樣性參數(shù)對(duì)不同評(píng)價(jià)指標(biāo)的影響Fig.3 Influence of diversity parameter on different evaluation indexes
考慮到另一參數(shù)硬度數(shù)組V雖然和數(shù)據(jù)分布相關(guān),但也可能受到近鄰樣本個(gè)數(shù)K的影響,分別取近鄰個(gè)數(shù)為5、7、10計(jì)算硬度數(shù)組V,本文方法的評(píng)價(jià)指標(biāo)結(jié)果見(jiàn)圖4。由圖4 可見(jiàn),當(dāng)K=10時(shí),本文所提出的方法性能最好。
圖4 近鄰數(shù)對(duì)不同評(píng)價(jià)指標(biāo)的影響Fig.4 Influence of neighbors’number on different evaluation indexes
對(duì)于大部分入侵檢測(cè)數(shù)據(jù)集,CHO能取得比SMOTE等方法更好的性能,對(duì)于一些嚴(yán)重不平衡的數(shù)據(jù)如CIC_Bot、CIC_Inf,CHO 可以有效提高分類(lèi)性能。實(shí)驗(yàn)還發(fā)現(xiàn),過(guò)采樣方法的性能明顯優(yōu)于不作采樣。
為了分析所提方法優(yōu)于SMOTE 等方法的原因,通過(guò)一個(gè)二維數(shù)據(jù)進(jìn)行直觀的對(duì)比,并對(duì)實(shí)驗(yàn)中用到的部分入侵檢測(cè)數(shù)據(jù)進(jìn)行分析。
首先,通過(guò)一個(gè)二維數(shù)據(jù)對(duì)比不同方法的采樣結(jié)果。由3.3節(jié)可知,SMOTE方法在所有方法中排名僅次于CHO,因此選擇SMOTE進(jìn)行對(duì)比。圖5(a)展示了該數(shù)據(jù)的分布情況,可以看出存在兩種顏色的數(shù)據(jù),其中灰色和白色數(shù)據(jù)數(shù)量之比為2∶1,同時(shí)可看出右側(cè)的白色數(shù)據(jù)分布更加離散。采用類(lèi)似文獻(xiàn)[16]中的方法評(píng)估數(shù)據(jù)的真實(shí)硬度,引入邏輯回歸、決策樹(shù)、樸素貝葉斯(Naive Bayes)和線性判別分析(Linear Discriminant Analysis,LDA)等分類(lèi)器構(gòu)成基分類(lèi)器組G,進(jìn)行5 次5 折交叉驗(yàn)證,將樣本被誤分類(lèi)的分?jǐn)?shù)作為該樣本的硬度。
圖5(d)則展示了數(shù)據(jù)中最初的硬度情況,黑色的樣本表示高硬度的數(shù)據(jù),所有分類(lèi)器均無(wú)法正確分類(lèi)這些數(shù)據(jù)。圖5(b)則展示了SMOTE 擴(kuò)充后的數(shù)據(jù)分布,可以看出SMOTE 生成的數(shù)據(jù)沒(méi)有規(guī)律;而圖5(e)則對(duì)應(yīng)SMOTE 采樣后數(shù)據(jù)的硬度情況,可以看出生成了噪聲,加重了數(shù)據(jù)重疊。
圖5 不同方法采樣結(jié)果和硬度情況對(duì)比Fig.5 Comparison of sampling results and hardness for different methods
圖5(c)和圖5(f)則展示了CHO 的采樣結(jié)果和硬度情況。從圖5(c)中可以看出,采樣后的白色數(shù)據(jù)更加集中,生成的新數(shù)據(jù)基本保持在少數(shù)類(lèi)數(shù)據(jù)范圍內(nèi);對(duì)比圖5(f)和圖5(e),可以看出SMOTE產(chǎn)生了更多的高硬度點(diǎn)。
接下來(lái),通過(guò)計(jì)算實(shí)例硬度分析入侵檢測(cè)數(shù)據(jù)。仍以CIC_Bot 和CIC_Inf 這兩個(gè)數(shù)據(jù)集為例,這兩個(gè)數(shù)據(jù)集中的攻擊流量分別對(duì)應(yīng)僵尸網(wǎng)絡(luò)和滲透攻擊,且均為少數(shù)類(lèi)。使用相同的方法計(jì)算數(shù)據(jù)的真實(shí)硬度,得到CIC_Bot 數(shù)據(jù)集的平均硬度為0.139,CIC_Inf 的平均硬度為0.005;并統(tǒng)計(jì)了數(shù)據(jù)集中正常流量和攻擊流量的平均硬度,分別為0.298 和0.654,顯著高于正常流量的平均硬度(0.138 和0.005 6),且硬度高于0.5 的攻擊流量占總攻擊流量的比例分別為17.5%和72.15%,而兩個(gè)數(shù)據(jù)集中的正常流量平均硬度則偏低,這表明異常流量的分類(lèi)難度顯著大于正常流量。一種簡(jiǎn)單的采樣方法是設(shè)置硬度閾值[5],將硬度高于閾值的數(shù)據(jù)過(guò)濾掉,但是數(shù)據(jù)集中異常流量數(shù)據(jù)的硬度偏高,按照閾值過(guò)濾數(shù)據(jù)會(huì)嚴(yán)重?fù)p失信息。
類(lèi)重疊是導(dǎo)致硬度偏高的主要因素[5]。當(dāng)數(shù)據(jù)不平衡時(shí),類(lèi)重疊進(jìn)一步影響分類(lèi)器性能的提升。因此對(duì)于CIC_Bot和CIC_Inf 這兩種嚴(yán)重不平衡的數(shù)據(jù),攻擊流量硬度值過(guò)高,表明數(shù)據(jù)重疊是非常嚴(yán)重的。使用SMOTE 等方法對(duì)數(shù)據(jù)過(guò)采樣,將進(jìn)一步加重類(lèi)重疊,影響分類(lèi)準(zhǔn)確率。因此分別對(duì)CHO和SMOTE采樣后得到的平衡數(shù)據(jù)再次計(jì)算平均硬度,結(jié)果見(jiàn)表4。
表4 不同方法的平均硬度對(duì)比Tab.4 Comparison of average hardness for different methods
從表4 可以看出,所提方法過(guò)采樣后的數(shù)據(jù)平均硬度更低,表示重疊程度更小,分類(lèi)難度更低,從而表明CHO 使分類(lèi)器獲得了更好的分類(lèi)性能。
在入侵檢測(cè)中不平衡問(wèn)題正變得越來(lái)越重要,近年來(lái)受到了相當(dāng)多的關(guān)注。本文提出了一種基于聚類(lèi)和實(shí)例硬度的入侵檢測(cè)過(guò)采樣方法處理入侵檢測(cè)中的不平衡問(wèn)題。該方法通過(guò)聚類(lèi)和實(shí)例硬度確定安全區(qū)域,在安全區(qū)域中生成數(shù)據(jù),并結(jié)合最優(yōu)分配原理,改進(jìn)傳統(tǒng)過(guò)采樣方法的缺點(diǎn),在6 組網(wǎng)絡(luò)安全數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,所提CHO 與其他采樣方法相比,具有更好的性能。在接下來(lái)的工作中,可嘗試向基于采樣的分類(lèi)器集成的方向進(jìn)行拓展研究,進(jìn)一步提高入侵檢測(cè)中機(jī)器學(xué)習(xí)模型的性能。