王文杰,張春英,2,王立亞,2,賈棟豪,郭雪飛
(1. 華北理工大學(xué) 理學(xué)院, 河北 唐山 063210; 2. 河北省數(shù)據(jù)科學(xué)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室, 河北 唐山 063210)
伴隨信息革命的飛速發(fā)展,互聯(lián)網(wǎng)、通信網(wǎng)、計(jì)算機(jī)系統(tǒng)、自動(dòng)化控制系統(tǒng)、數(shù)字設(shè)備及其承載的應(yīng)用、服務(wù)和數(shù)據(jù)等組成的網(wǎng)絡(luò)空間,正在全面地改變當(dāng)今社會(huì)人們的生產(chǎn)生活方式。與此同時(shí),網(wǎng)絡(luò)安全的形勢(shì)也日益嚴(yán)峻,國(guó)家政治、經(jīng)濟(jì)、文化、社會(huì)、國(guó)防安全及公民的網(wǎng)絡(luò)空間合法權(quán)益正面臨嚴(yán)峻風(fēng)險(xiǎn)與挑戰(zhàn)[1]。因此,當(dāng)前的主要問題是如何全面提升網(wǎng)絡(luò)的防御能力,并且能夠識(shí)別當(dāng)前出現(xiàn)的不同攻擊類型,包括網(wǎng)絡(luò)上產(chǎn)生的新型攻擊。入侵檢測(cè)技術(shù)作為網(wǎng)絡(luò)空間安全基礎(chǔ)架構(gòu)的重要組成部分,從網(wǎng)絡(luò)中收集信息后,再對(duì)其存在的攻擊進(jìn)行防御并且發(fā)出警報(bào),以此增強(qiáng)網(wǎng)絡(luò)的安全防御能力。入侵檢測(cè)則是對(duì)采集的網(wǎng)絡(luò)流量數(shù)據(jù)包進(jìn)行分類,判斷流量正?;蛘吖?二分類是直接將網(wǎng)絡(luò)流量判定為正常或異常,多分類是對(duì)網(wǎng)絡(luò)流量進(jìn)行類型劃分,判斷不同類型的攻擊方式[2]。
入侵檢測(cè)技術(shù)被提出至今已有20多年的歷史,傳統(tǒng)檢測(cè)主要采用模式匹配、行為統(tǒng)計(jì)等技術(shù),分析識(shí)別特定的模式,并且也取得了比較好的效果[3]。近年來,隨著機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)的發(fā)展,使得更多的學(xué)者開始尋求其算法的改進(jìn)之處,并將改進(jìn)后的算法應(yīng)用到入侵檢測(cè)中,以期提升檢測(cè)的效率、準(zhǔn)確率等[4]。目前一些機(jī)器學(xué)習(xí)算法,如支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)、遺傳算法和聚類算法等已經(jīng)廣泛應(yīng)用于入侵檢測(cè)中,通過這些算法從日益復(fù)雜的靜態(tài)或者動(dòng)態(tài)數(shù)據(jù)集中檢測(cè)入侵行為[5]。當(dāng)前不同檢測(cè)模型的檢測(cè)時(shí)間效率和準(zhǔn)確率均有了一定程度的提升。然而,目前入侵檢測(cè)中的數(shù)據(jù)海量且維數(shù)高,這使得許多算法在進(jìn)行數(shù)據(jù)特征提取、數(shù)據(jù)降噪等方面應(yīng)對(duì)困難,且分類的時(shí)間、準(zhǔn)確率等方面的性能難以提升,使其在處理海量且高維數(shù)據(jù)時(shí)較為困難,因此對(duì)實(shí)現(xiàn)更高效地分類還有待探究。
深度學(xué)習(xí)自2006年由Hinton[6]提出之后,相關(guān)理論與實(shí)踐研究成果層出不窮,在搜索技術(shù)[7]、自然語言處理[8]、計(jì)算機(jī)視覺[9, 10]、圖像識(shí)別[11,12]、圖像分類[13]等領(lǐng)域取得了顯著成效,同樣也引起了入侵檢測(cè)研究人員的重點(diǎn)關(guān)注。時(shí)東閣等[14]將卷積神經(jīng)網(wǎng)(Convolutional Neural Networks, CNN)應(yīng)用到了入侵檢測(cè)中,首先對(duì)數(shù)據(jù)集進(jìn)行標(biāo)準(zhǔn)化以及one-hot預(yù)處理,再將處理后的樣本輸入CNN-Focal模型,在卷積層采取小卷積核緩解了卷積冗余的影響,最后多分類輸出時(shí)應(yīng)用Softmax回歸進(jìn)行分類,該模型取得了較高的分類精度。陳紅松等[15]對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)進(jìn)行研究實(shí)驗(yàn),希望得到更好的檢測(cè)結(jié)果。在對(duì)數(shù)據(jù)集進(jìn)行處理后,提出利用基于窗口的實(shí)例選擇算法對(duì)數(shù)據(jù)集進(jìn)行精簡(jiǎn),最后對(duì)模型中的不同參數(shù)進(jìn)行綜合優(yōu)化實(shí)驗(yàn),得到最終優(yōu)化模型后,進(jìn)行入侵檢測(cè)實(shí)驗(yàn),最后實(shí)驗(yàn)表明該模型的綜合性能有明顯提升。
深度學(xué)習(xí)目前作為機(jī)器學(xué)習(xí)的一部分,目前已經(jīng)大規(guī)模地應(yīng)用到不同領(lǐng)域當(dāng)中,相較于傳統(tǒng)機(jī)器學(xué)習(xí)也取得了更好的效果。當(dāng)前入侵檢測(cè)的數(shù)據(jù)集維數(shù)和數(shù)據(jù)量不斷增加,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)也會(huì)越來越復(fù)雜,實(shí)驗(yàn)過程中數(shù)據(jù)集訓(xùn)練難度提升,流量數(shù)據(jù)中存在的問題較多,因此當(dāng)前檢測(cè)的準(zhǔn)確率難以提升,這也是一直以來入侵檢測(cè)研究的重點(diǎn)內(nèi)容。武曉棟等[16]提出了DT-PCA-DNN檢測(cè)模型,其中DT指決策樹(Decision Tree, DT),DNN為深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNN),PCA為主成分分析,運(yùn)用DT對(duì)數(shù)據(jù)進(jìn)行初步判斷和處理,數(shù)據(jù)降維采用PCA算法,處理降維后的數(shù)據(jù)送入DNN模型,得出分類的最終結(jié)果,實(shí)驗(yàn)采取了ReLU激活函數(shù)以及adam優(yōu)化算法,提升了模型的速率,并且取得了較高的檢測(cè)率。因此,有研究者將降維方法與深度學(xué)習(xí)模型進(jìn)行融合,以降低數(shù)據(jù)樣本的復(fù)雜性,改善當(dāng)前入侵檢測(cè)數(shù)據(jù)集數(shù)據(jù)量大且維數(shù)高難以處理的問題。高忠石等[17]提出了一種PCA與長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)結(jié)合的入侵檢測(cè)模型,先經(jīng)過PCA進(jìn)行降噪處理后,接著用長(zhǎng)短期記憶網(wǎng)絡(luò)的記憶功能和學(xué)習(xí)能力進(jìn)行學(xué)習(xí),最終該模型取得了比傳統(tǒng)模型更高的準(zhǔn)確率。
當(dāng)網(wǎng)絡(luò)環(huán)境中的流量數(shù)據(jù)不固定,且能不斷地產(chǎn)生新的流量樣本時(shí),此時(shí)檢測(cè)模型難以實(shí)現(xiàn)快速且有效的更新,即沒有充分考慮到模型的自適應(yīng)性。而增量學(xué)習(xí)則是一種能夠很好地應(yīng)對(duì)新增樣本變化的方法[18],當(dāng)模型在訓(xùn)練的過程中,既能夠?qū)π鲁霈F(xiàn)的類型進(jìn)行學(xué)習(xí),又不會(huì)遺忘已經(jīng)學(xué)過的知識(shí)。付子爔等[19]也考慮到目前入侵檢測(cè)數(shù)據(jù)存在的實(shí)時(shí)性的問題,將傳統(tǒng)機(jī)器學(xué)習(xí)算法支持向量機(jī)以及K最近鄰(k-nearest neighbor, kNN)進(jìn)行融合,加入了增量學(xué)習(xí)的思想并且考慮了知識(shí)庫的擴(kuò)展,在不同的數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,融合增量思想后的模型不僅很好地應(yīng)對(duì)了實(shí)時(shí)性問題,準(zhǔn)確率也有了較為明顯的提升。YI等[20]提出了一種改進(jìn)的增量支持向量機(jī)算法,考慮到改進(jìn)前的算法未考慮到原來的非支持向量,容易造成一些信息的丟失,且增量學(xué)習(xí)又無法允許所有非支持向量的加入,因此提出保留集策略保留最有可能成為支持向量的非支持向量,在原始的算法上實(shí)現(xiàn)了改進(jìn)以及增量學(xué)習(xí),進(jìn)行網(wǎng)絡(luò)入侵檢測(cè)實(shí)驗(yàn)后結(jié)果表明該算法極大地節(jié)省了訓(xùn)練和預(yù)測(cè)時(shí)間。
因此,提出一種基于增量主成分分析和卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)模型,通過IPCA對(duì)樣本進(jìn)行切割分塊特征降維,降低特征之間的冗余度,在通過CNN對(duì)數(shù)據(jù)進(jìn)行分類,降低數(shù)據(jù)樣本的負(fù)載型,提高入侵檢測(cè)的準(zhǔn)確性。
IPCA使用獨(dú)立于樣本量的內(nèi)存容量,以小批量的方式處理數(shù)據(jù),基于從本地硬盤或網(wǎng)絡(luò)數(shù)據(jù)庫中連續(xù)獲取的數(shù)據(jù)塊之上,在稀疏矩陣或內(nèi)存映射文件上調(diào)用其擬合方法,為了增量式的更新每個(gè)特征的方差貢獻(xiàn)率,僅需要存儲(chǔ)估計(jì)出的分量和噪聲方差。IPCA模型主要是包括2種:一種為協(xié)方差相關(guān)模型,另一種為協(xié)方差無關(guān)模型。協(xié)方差相關(guān)IPCA模型,需要隨著樣本的增加而增量的估計(jì)協(xié)方差矩陣,再由此計(jì)算出新的主成分;協(xié)方差無關(guān)IPCA模型則直接采用新樣本對(duì)得到的PCA主成分進(jìn)行增量式的修正,可以減少模型的計(jì)算和存儲(chǔ)的開銷[21]。WENG等[22]中所提到的CCIPCA算法即一種無需估計(jì)協(xié)方差矩陣的算法,采用了一種不計(jì)算協(xié)方差矩陣的方式,逐個(gè)樣本對(duì)數(shù)據(jù)集的均值和特征向量進(jìn)行更新,當(dāng)前特征值計(jì)算是對(duì)特征值上一個(gè)狀態(tài)的進(jìn)一步評(píng)估:
(1)
(2)
其中樣本向量為x(1),x(2),…,an為特征向量,ai(n)是第i個(gè)主特征向量的估計(jì)值,xi(n)為樣本減去均值后的殘差量,t為遺忘方程,第2個(gè)式子中,x1(n)=x(n),得到殘差x2(n)用作迭代步驟的輸入數(shù)據(jù),剔除當(dāng)前殘差量在前一個(gè)特征向量上的投影量,去除掉當(dāng)前殘差量與當(dāng)前特征向量之間的關(guān)聯(lián),這樣,就降低了特征向量之間關(guān)聯(lián),使得特征向量間彼此正交,CCIPCA算法的目的是找到前k個(gè)特征向量,進(jìn)而實(shí)現(xiàn)對(duì)數(shù)據(jù)的降維處理。
CCIPCA的算法過程如下所示:
輸入:樣本數(shù)據(jù)集x(1),x(2),…,x(n);主特征向量數(shù)k。
輸出:前k個(gè)特征向量,α1(n),α2(n),…,αk(n)。
(a)x1(n)=x(n)
(b)fori=1,2…,min{k,n} do
IFi=n,將第i個(gè)特征向量初始化為αi(n)=xi(n)。
Otherwise,
CNN是一種深度學(xué)習(xí)模型,類似于人工神經(jīng)網(wǎng)絡(luò)的多層感知器,目前在多個(gè)圖像處理領(lǐng)域取得了巨大的成果,例如物體分類[23],目標(biāo)檢測(cè)[24,25]等。近年來LeCun在1998年提出的LeNet模型第一次定義了CNN結(jié)構(gòu)包括卷積層、池化層和全連接層,如圖1所示。卷積層利用濾波器,設(shè)置一系列的參數(shù)進(jìn)行特征提取;池化層主要用于壓縮參數(shù)數(shù)量;全連接層計(jì)算出每個(gè)所屬類別的概率。通常卷積層、池化層、全連接層的數(shù)量可以有一個(gè)或多個(gè),且出現(xiàn)順序不固定,一般全連接層跟隨在卷積層和池化層后面,而卷積層和池化層可交替出現(xiàn),相互配合,逐層提取出特征,再通過全連接層完成分類任務(wù)。CNN的基本結(jié)構(gòu)如圖1所示。
圖1 CNN基本結(jié)構(gòu)
將IPCA和CNN進(jìn)行融合,設(shè)計(jì)的IPCA-CNN入侵檢測(cè)模型,如圖2所示。首先對(duì)采集到的原始數(shù)據(jù)集進(jìn)行預(yù)處理,包括2個(gè)方面:一是將數(shù)據(jù)集中字符型特征轉(zhuǎn)化為數(shù)字型特征;二是對(duì)數(shù)據(jù)歸一化,運(yùn)用IPCA算法對(duì)預(yù)處理后的數(shù)據(jù)集進(jìn)行降維操作,再將數(shù)據(jù)轉(zhuǎn)化成二維矩陣,作為CNN模型的輸入,最后得出分類結(jié)果,判斷該數(shù)據(jù)屬于正常還是攻擊,最后測(cè)試模型的檢測(cè)結(jié)果。
圖2 IPCA-CNN模型圖
(1)符號(hào)數(shù)字特征化
由于數(shù)據(jù)集里包含的是多維特征的網(wǎng)絡(luò)流量,內(nèi)含部分特征是字符串類型的,因此需要進(jìn)行符號(hào)數(shù)字特征化,將相應(yīng)的非數(shù)字類型轉(zhuǎn)換為數(shù)字標(biāo)識(shí)符[26]。
(2)數(shù)據(jù)歸一化
因?yàn)椴煌u(píng)價(jià)指標(biāo)的量綱和量綱單位往往是不同的,會(huì)影響到最終數(shù)據(jù)分析的結(jié)果,因此需要進(jìn)行數(shù)據(jù)歸一化處理,方便數(shù)據(jù)之間的比較,提升可比性。
模型采用的是Max-min歸一化方法,如式(3), 是特征歸一化之后的值,min為樣本中的最小值,max為樣本中的最大值,轉(zhuǎn)換函數(shù)即
(3)
對(duì)于當(dāng)前入侵檢測(cè)的數(shù)據(jù)集,數(shù)據(jù)的維度相對(duì)較高,并且數(shù)據(jù)量非常龐大,所以在進(jìn)行入侵檢測(cè)實(shí)驗(yàn)時(shí),就出現(xiàn)了特征維數(shù)高、數(shù)據(jù)量過大、運(yùn)行時(shí)間相對(duì)較長(zhǎng)的現(xiàn)象。因此,針對(duì)這些問題,使用了IPCA算法,對(duì)數(shù)據(jù)集KDD-CUP99數(shù)據(jù)集,進(jìn)行了降維,傳統(tǒng)的PCA算法要將所有處理的數(shù)據(jù)都存放在主存中,這顯然十分消耗主存容量,一旦數(shù)據(jù)集缺失數(shù)據(jù),或者在面對(duì)流數(shù)據(jù)的時(shí)候,算法就需要重新進(jìn)行計(jì)算,繁瑣耗時(shí),且當(dāng)入侵檢測(cè)數(shù)據(jù)過大無法容納在內(nèi)存中時(shí),IPCA這種小批量的方式處理數(shù)據(jù)的操作,達(dá)到增量更新模型的效果,使模型擁有持續(xù)的學(xué)習(xí)能力。它使用獨(dú)立于樣本量的內(nèi)存容量,允許以小批量的方式處理數(shù)據(jù),基于從本地硬盤或網(wǎng)絡(luò)數(shù)據(jù)庫中連續(xù)獲取的數(shù)據(jù)塊之上,然后在稀疏矩陣或內(nèi)存映射文件上調(diào)用其擬合方法,Incremental類為了增量式的更新explained_variance_ratio_即每個(gè)特征的方差貢獻(xiàn)率,僅需要存儲(chǔ)估計(jì)出的分量和噪聲方差。
IPCA算法在RossD等[27]提出的特征基和均值更新方法基礎(chǔ)上,改用QR分解[28]減少計(jì)算復(fù)雜度完成增量降維操作,不僅能更好地處理大規(guī)模數(shù)據(jù)集而且能夠?qū)崿F(xiàn)數(shù)據(jù)的增量學(xué)習(xí),它可以分批讀取訓(xùn)練集即允許部分計(jì)算,一次只對(duì)當(dāng)前批量進(jìn)行計(jì)算,實(shí)現(xiàn)增量學(xué)習(xí)的同時(shí)極大地節(jié)省了數(shù)據(jù)樣本占用的內(nèi)存量。IPCA使用與輸入數(shù)據(jù)樣本數(shù)無關(guān)的內(nèi)存量為輸入數(shù)據(jù)建立低秩近似,它依賴于輸入數(shù)據(jù)功能且更改批量大小可以控制內(nèi)存使用量,計(jì)算時(shí)僅需要存儲(chǔ)估計(jì)出的成分和噪聲方差。
原始采集的靜態(tài)數(shù)據(jù)集為矩陣A=[I1,I2,…,In],后續(xù)新數(shù)據(jù)到來得到矩陣B=[In+1,In+2,…,In+m]。降維操作要需要同時(shí)根據(jù)已知靜態(tài)樣本集合A和新增樣本集合B計(jì)算求解。結(jié)合當(dāng)前數(shù)據(jù),使用一種特定情況下使用的QR分解方式[28]完成降維計(jì)算。計(jì)算矩陣A的QR分解時(shí),表示為:
A=QR
(4)
在計(jì)算完全正交分解前,首先對(duì)矩陣A進(jìn)行上三角化,得到更快的雙對(duì)角化方法,減少計(jì)算復(fù)雜度。設(shè)計(jì)算正交Q∈Rm×n使得:
(5)
是上三角形,對(duì)方矩陣R1進(jìn)行雙對(duì)角化為:
(6)
UR和VE是n×n正交的,E1是n×n上對(duì)角矩陣,若UE=Qdiag(UR,Im-n),則:
(7)
是A的雙對(duì)角化。結(jié)合新樣本B增量更新其成分和噪聲方差,直至所有數(shù)據(jù)輸入完成,依據(jù)降維參數(shù)k計(jì)算得到降維后的數(shù)據(jù)子集。IPCA算法用與輸入數(shù)據(jù)樣本數(shù)量無關(guān)的內(nèi)存量為輸入數(shù)據(jù)建立低秩近似,通過不斷地進(jìn)行更新迭代,使IPCA模型擁有持續(xù)的學(xué)習(xí)能力,實(shí)現(xiàn)對(duì)流數(shù)據(jù)的增量式學(xué)習(xí)。最終經(jīng)過不同特征維數(shù)對(duì)結(jié)果的影響對(duì)比,選取矩陣前25維特征,進(jìn)行入侵檢測(cè)的實(shí)驗(yàn)。
考慮到CNN的輸入一般為圖像,此處入侵檢測(cè)的實(shí)驗(yàn)采取方矩陣作為CNN模型的輸入,首先是借助先前研究者的研究結(jié)論,選取新矩陣前25維特征,并且在實(shí)驗(yàn)部分進(jìn)行了不同特征維數(shù)的分類結(jié)果對(duì)比。模型首先將25維特征轉(zhuǎn)換成矩陣,再輸入CNN模型,25維特征對(duì)應(yīng)一個(gè) 的矩陣,因此采取 的矩陣,實(shí)驗(yàn)過程中,若降維后的特征維數(shù)數(shù)量不足25維,轉(zhuǎn)換成矩陣后,設(shè)置空缺位置依次全部補(bǔ)0。
CNN的模型設(shè)置如圖3所示。
圖3 CNN模型設(shè)置
2.4.1 輸入層
第一層為輸入層,入侵檢測(cè)的數(shù)據(jù)集經(jīng)過數(shù)據(jù)標(biāo)準(zhǔn)化、降維,最后轉(zhuǎn)化成矩陣的方式作為輸入,矩陣的維數(shù)可變,這里設(shè)置填充后的矩陣維度是5×5,通過調(diào)用填充函數(shù),對(duì)當(dāng)前矩陣中的空缺值進(jìn)行補(bǔ)齊0。
2.4.2 卷積層
模型的第2、第4層都是卷積層,卷積層的激活函數(shù)都采用的ReLU。不少文獻(xiàn)的實(shí)驗(yàn)中發(fā)現(xiàn),卷積核較小時(shí)局部特征以及分類性能相對(duì)較為優(yōu)異,可以在一定程度上緩解卷積冗余對(duì)模型性能的影響,因此在實(shí)驗(yàn)過程中,CNN采用的是小卷積核的策略,卷積核大小為3×3,卷積核的個(gè)數(shù)分別為16和32。
2.4.3 Dropout層
CNN模型在訓(xùn)練過程中容易出現(xiàn)過擬合現(xiàn)象,即訓(xùn)練集上面效果較好,但是測(cè)試集上表現(xiàn)效果較差,泛化能力相對(duì)差,由此可見過擬合對(duì)模型實(shí)際性能的影響非常大。為了緩解此問題,CNN模型中采用了2個(gè)Dropout層。根據(jù)CNN模型實(shí)際的分類效果,Dropout值的大小分別設(shè)置為0.6和0.5。
2.4.4 池化層
由于當(dāng)前不同領(lǐng)域的實(shí)驗(yàn)數(shù)據(jù)集存在數(shù)據(jù)量過大且維數(shù)高的問題,因此對(duì)于CNN,池化層作為處理這個(gè)問題的重點(diǎn)措施,它的主要作用是對(duì)特征進(jìn)行壓縮,簡(jiǎn)化網(wǎng)絡(luò)的復(fù)雜度,減少計(jì)算量,并減少過擬合等。最常見的池化操作有平均池化(average pooling)以及最大池化(max pooling),最大池化使用相對(duì)較多,它意味著提取更加突出的特征。IPCA-CNN檢測(cè)模型使用的最大池化窗口大小為3×3,移動(dòng)步幅大小為2。
2.4.5 全連接層
全連接層位于CNN的最后一層,起到了"分類器"的作用,它將之前提取到的特征綜合起來,然后傳遞給分類器,進(jìn)行分類。模型中2個(gè)全連接層的神經(jīng)元的個(gè)數(shù)分別為128和2。模型還用到了1個(gè)flatten層將接收到的數(shù)據(jù)"壓平"即一維化,然后傳遞給第一個(gè)全連接層。
實(shí)驗(yàn)采用了2個(gè)數(shù)據(jù)集,KDD-CUP99數(shù)據(jù)集以及UNSW-NB15數(shù)據(jù)集,KDD-CUP99數(shù)據(jù)集采集數(shù)據(jù)時(shí)間相對(duì)久遠(yuǎn),因此該實(shí)驗(yàn)同時(shí)采用UNSW-NB15數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),觀察不同數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果,對(duì)不同的數(shù)據(jù)集的檢測(cè)結(jié)果進(jìn)行了對(duì)比。
3.1.1 KDD-CUP99數(shù)據(jù)集
KDD是數(shù)據(jù)挖掘與知識(shí)發(fā)現(xiàn)(Data Mining and Knowledge Discovery)的簡(jiǎn)稱,KDD-CUP99數(shù)據(jù)集是從一個(gè)模擬的美國(guó)空軍局域網(wǎng)上采集來的網(wǎng)絡(luò)連接數(shù)據(jù)。該數(shù)據(jù)集早已廣泛地應(yīng)用在不同的入侵檢測(cè)模型中實(shí)驗(yàn)中,是機(jī)器學(xué)習(xí)應(yīng)用于入侵檢測(cè)研究中的一個(gè)重大挑戰(zhàn)[29]。該數(shù)據(jù)集是由9個(gè)星期的網(wǎng)絡(luò)連接數(shù)據(jù)和系統(tǒng)審計(jì)數(shù)據(jù)組成,其中模擬了各種用戶類型、網(wǎng)絡(luò)流量和攻擊手段。該數(shù)據(jù)集每個(gè)網(wǎng)絡(luò)連接被標(biāo)記為正常(normal)或異常(attack),異常類型被分為共4類39種攻擊類型。數(shù)據(jù)集里面的每個(gè)連接記錄包含了41個(gè)固定的特征屬性以及1個(gè)類表示,標(biāo)識(shí)表示該條記錄屬于正?;蛘吣骋环N具體攻擊類型。在41個(gè)固定的特征屬性中,9個(gè)特征屬性為離散型,其他均為連續(xù)型。數(shù)據(jù)集數(shù)據(jù)分布見表1所示。
表1 數(shù)據(jù)集分布
3.1.2 UNSW-NB15數(shù)據(jù)集
在2015年發(fā)布的UNSW-NB15數(shù)據(jù)集,它距今時(shí)間短,內(nèi)含有非常全面的攻擊場(chǎng)景,除去正常的流量類型外,另含有9種不同的攻擊類型,其中含有大約250萬個(gè)數(shù)據(jù)包被抓捕并公開可用。在該實(shí)驗(yàn)中,使用其中42個(gè)特征進(jìn)行入侵檢測(cè)實(shí)驗(yàn),這42個(gè)特征被分成3個(gè)分類特征以及39個(gè)連續(xù)特征。UNSW-NB15數(shù)據(jù)集的特征分為6組,即基本特征、流程特征、時(shí)間特征、內(nèi)容特征、附加生成特征和標(biāo)記特征。該數(shù)據(jù)集對(duì)應(yīng)的特征類型描述見表2。
表2 UNSW-NB15數(shù)據(jù)及特征類型
3.2.1實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)硬件環(huán)境:Windows10操作系統(tǒng)、AMDRyzen53500UCPU、8G內(nèi)存。軟件環(huán)境:python3.6,基于TensorFlow的keras深度學(xué)習(xí)框架,研究了IPCA-CNN模型的性能。
3.2.2評(píng)價(jià)指標(biāo)
采用入侵檢測(cè)系統(tǒng)常用的標(biāo)準(zhǔn)進(jìn)行評(píng)估:準(zhǔn)確率(accuracy)、精確率(precision)、和召回率(recall)、F1-score、誤報(bào)率(FPR)、漏報(bào)率(FNR)。其中TP(true positive)、FN(false negative)、FP(false positive)、TN(true negative),分別表示的是正確預(yù)測(cè)的正樣本數(shù)、錯(cuò)誤預(yù)測(cè)為負(fù)類的正樣本數(shù)、錯(cuò)誤預(yù)測(cè)為正類的負(fù)樣本數(shù)、正確預(yù)測(cè)的負(fù)樣本數(shù)。實(shí)驗(yàn)終選取10次運(yùn)行結(jié)果的平均值進(jìn)行對(duì)比。
(8)
(9)
(10)
(11)
(12)
(13)
其中F1值能綜合描述精確率和召回率的結(jié)果,對(duì)于一個(gè)入侵檢測(cè)模型來說,實(shí)驗(yàn)的準(zhǔn)確率、精確率和召回率越高,以及誤報(bào)率、漏報(bào)率越低,則可知入侵檢測(cè)模型更優(yōu)。
為了探究不同特征維數(shù)對(duì)實(shí)驗(yàn)最終結(jié)果的影響,在KDD-CUP99數(shù)據(jù)集上進(jìn)行了不同特征維數(shù)對(duì)比,見圖4所示,該數(shù)據(jù)集共有41維特征,經(jīng)過IPCA降維后轉(zhuǎn)成矩陣輸入CNN模型,且實(shí)驗(yàn)中默認(rèn)采取特殊矩陣即方陣作為特征的輸入方式,因此在KDD-CUP99數(shù)據(jù)集上選取9維、16維和25維特征進(jìn)行對(duì)比實(shí)驗(yàn),用來對(duì)比不同尺寸矩陣輸入對(duì)最終檢測(cè)結(jié)果的影響,由圖4可知,經(jīng)過IPCA特征降維后,不同尺寸的特征矩陣輸入CNN模型后實(shí)現(xiàn)入侵檢測(cè)結(jié)果不同,從圖4中得出25維特征的準(zhǔn)確率以及精確率均高于其它特征維數(shù),召回率相對(duì)較平穩(wěn);總體來看25維特征矩陣取得的檢測(cè)結(jié)果優(yōu)于其它2種特征維數(shù)。
圖4 不同特征維數(shù)對(duì)比
在數(shù)據(jù)集KDD-CUP99上面做二分類實(shí)驗(yàn)同時(shí),在UNSW-NB15數(shù)據(jù)集上做二分類實(shí)驗(yàn),UNSW-NB15數(shù)據(jù)集特征屬性更多,有9個(gè)大的攻擊類型,仍舊把正常樣本normal標(biāo)記為0,把其余入侵的樣本標(biāo)記為1,之后經(jīng)過數(shù)據(jù)預(yù)處理后進(jìn)行檢測(cè)分類,得到數(shù)據(jù)集UNSW-NB15的分類結(jié)果,數(shù)據(jù)集KDD-CUP99和UNSW-NB15的分類結(jié)果如圖5所示,可以從圖5中看出,UNSW-NB15數(shù)據(jù)集的檢測(cè)結(jié)果的主要評(píng)價(jià)指標(biāo)準(zhǔn)確率以及精確率均達(dá)到了90%以上,模型在不同數(shù)據(jù)集上都實(shí)現(xiàn)了較好的分類結(jié)果。
實(shí)驗(yàn)首先采用的是KDD-CUP99數(shù)據(jù)集,在IPCA-CNN模型上進(jìn)行了二分類和五分類實(shí)驗(yàn)。在二分類實(shí)驗(yàn)中,針對(duì)不同樣本的攻擊類型,將正常樣本normal標(biāo)記為0,把其余入侵的樣本標(biāo)記為1,41維特征經(jīng)過IPCA降維得到 25維特征,然后將這25維特征轉(zhuǎn)換成5×5的矩陣,輸入CNN模型,最后輸出分類結(jié)果;而在五分類實(shí)驗(yàn)中,則將正常樣本normal標(biāo)記為0,將PROBE、DOS、U2L、R2L攻擊下的攻擊類型依次標(biāo)記為1、2、3、4,然后經(jīng)過同樣的處理,得出分類結(jié)果。圖6是IPCA-CNN模型在KDD-CUP99數(shù)據(jù)集上進(jìn)行二分類實(shí)驗(yàn)以及五分類實(shí)驗(yàn)的結(jié)果對(duì)比。從圖6中得出,IPCA-CNN模型在進(jìn)行入侵檢測(cè)實(shí)驗(yàn)時(shí),二分類和五分類均取得良好的檢測(cè)結(jié)果,兩者的準(zhǔn)確率、精確率、召回率和F1-score值均保持在0.99以上,其中二分類的實(shí)驗(yàn)結(jié)果略優(yōu)于五分類。
圖6 多分類對(duì)比
將IPCA-CNN模型與傳統(tǒng)機(jī)器學(xué)習(xí)算法高斯樸素貝葉斯、支持向量機(jī)、CNN算法和PCA-CNN算法進(jìn)行對(duì)比實(shí)驗(yàn)。高斯樸素貝葉斯、支持向量機(jī)常用于入侵檢測(cè)實(shí)驗(yàn)中,高斯樸素貝葉斯適用于連續(xù)變量,它的各個(gè)特征在不同類別下服從正態(tài)分布;支持向量機(jī)是一種二分類模型,其工作原理是尋找一個(gè)超平面對(duì)樣本進(jìn)行分割,在分割時(shí)盡量保證間隔最大化。IPCA-CNN增量入侵模型能實(shí)現(xiàn)增量讀取數(shù)據(jù)進(jìn)行學(xué)習(xí)更新,節(jié)約內(nèi)存占用同時(shí)訓(xùn)練分類時(shí)間相對(duì)較短。通過比較得出,IPCA-CNN模型相較于對(duì)比模型,準(zhǔn)確率、精確率、F1-score指標(biāo)均有提升,誤報(bào)率和漏報(bào)率較低,進(jìn)一步驗(yàn)證了IPCA-CNN模型的有效性。IPCA-CNN模型和對(duì)比算法的正確率、精確率、召回率、F1值、誤報(bào)率以及漏報(bào)率的對(duì)比圖如圖7所示。通過實(shí)驗(yàn)結(jié)果可知,IPCA-CNN模型的準(zhǔn)確率提升至99.7%,F1值提升至99.3%,誤報(bào)率和漏報(bào)率分別為0.24%和0.29%,進(jìn)一步驗(yàn)證了IPCA-CNN模型的有效性。
圖7 不同算法對(duì)比
除去IPCA-CNN模型外,對(duì)比算法中SVM和CNN也表現(xiàn)出較良好的檢測(cè)性能,優(yōu)于高斯樸素貝葉斯和PCA-CNN算法。SVM算法的準(zhǔn)確率達(dá)到了99%以上,單一的CNN模型召回率表現(xiàn)較優(yōu)。因此,對(duì)IPCA-CNN、SVM和CNN這3種模型的檢測(cè)時(shí)間進(jìn)行了對(duì)比實(shí)驗(yàn),結(jié)果如圖8所示。通過取10次運(yùn)行結(jié)果進(jìn)行比較,檢測(cè)結(jié)果顯示IPCA-CNN模型檢測(cè)時(shí)間較短,單一CNN模型和SVM模型檢測(cè)時(shí)間較長(zhǎng),IPCA-CNN模型整體性能較優(yōu)。
圖8 運(yùn)行時(shí)間對(duì)比
(1)針對(duì)當(dāng)前的網(wǎng)絡(luò)入侵檢測(cè)的數(shù)據(jù)集維數(shù)較高、檢測(cè)時(shí)間較長(zhǎng)問題,提出了一種IPCA算法和CNN融合的增量入侵檢測(cè)方法,主要是在KDD-CUP99數(shù)據(jù)集上面進(jìn)行了研究以及查驗(yàn)其對(duì)入侵行為的檢測(cè)能力。
(2)融合IPCA和CNN的檢測(cè)模型在優(yōu)化檢測(cè)準(zhǔn)確率的同時(shí)保證了檢測(cè)速率,并且在不同數(shù)據(jù)集上具有良好的入侵檢測(cè)分類能力。