郝 寬,李 昊,姜 偉
(哈爾濱師范大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,黑龍江 哈爾濱150025)
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)已經(jīng)成為人們生活中必不可少的工具。網(wǎng)絡(luò)技術(shù)應(yīng)用廣泛的同時(shí),也會(huì)伴隨著很多網(wǎng)絡(luò)安全問(wèn)題,尤其是對(duì)網(wǎng)絡(luò)使用者來(lái)說(shuō),網(wǎng)絡(luò)是否安全也是其考慮的重要因素。網(wǎng)絡(luò)不安全會(huì)導(dǎo)致一系列不可挽回的損失,所以對(duì)網(wǎng)絡(luò)安全問(wèn)題的研究在當(dāng)下和未來(lái)有著極為重要的作用。網(wǎng)絡(luò)流量由一系列的信息組成,如協(xié)議類型、端口信息等,機(jī)器學(xué)習(xí)通過(guò)對(duì)大量的數(shù)據(jù)進(jìn)行分析,最后判斷出網(wǎng)絡(luò)流量是否為攻擊流量,從而達(dá)到攔截惡意流量的目的。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)采用局部連接和權(quán)值共享的方式,減少了權(quán)值的數(shù)量,使得網(wǎng)絡(luò)易于優(yōu)化,同時(shí)降低了系統(tǒng)復(fù)雜度。CNN具有很好的容錯(cuò)能力、并行處理能力和自學(xué)習(xí)能力,同時(shí)具有較強(qiáng)的泛化能力,是一種深度的監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型,適應(yīng)能力極強(qiáng),善于挖掘數(shù)據(jù)局部特征,提取全局訓(xùn)練特征和分類。將網(wǎng)絡(luò)流量數(shù)據(jù)輸入CNN中[1],通過(guò)學(xué)習(xí)輸入和輸出間的映射關(guān)系,得到理想的模型。通過(guò)卷積網(wǎng)絡(luò)學(xué)習(xí)網(wǎng)絡(luò)流量的特征信息,得到理想的分類模型,達(dá)到識(shí)別惡意流量的效果。
入侵檢測(cè)概念于1980年由James Anderson提出,并不斷發(fā)展。入侵檢測(cè)技術(shù)是網(wǎng)絡(luò)安全中的一項(xiàng)重要技術(shù),旨在保護(hù)網(wǎng)絡(luò)中數(shù)據(jù)的完整性、可用性和機(jī)密性,使數(shù)據(jù)免受攻擊。目前,國(guó)內(nèi)外對(duì)入侵檢測(cè)方面進(jìn)行廣泛的研究。隨著機(jī)器學(xué)習(xí)的研究推進(jìn),研究人員開始將機(jī)器學(xué)習(xí)與入侵檢測(cè)技術(shù)結(jié)合,從而提高檢測(cè)的準(zhǔn)確率。Mohammad Noor Injadat等[2]提出了一種新的多階段優(yōu)化的基于機(jī)器學(xué)習(xí)的NIDS框架,該框架在保持檢測(cè)性能的同時(shí)降低了計(jì)算復(fù)雜度。
通過(guò)上述分析可知,機(jī)器學(xué)習(xí)由于其出色的學(xué)習(xí)能力已經(jīng)廣泛應(yīng)用于入侵檢測(cè)領(lǐng)域[3],深度學(xué)習(xí)能更深一步地學(xué)習(xí)網(wǎng)絡(luò)流量特征,更好地分辨出攻擊流量[4]。本文提出了基于ECA-ResNet的網(wǎng)絡(luò)入侵檢測(cè)模型,該模型結(jié)合了殘差網(wǎng)絡(luò)ResNet[5]和通道注意力機(jī)制ECANet,ECANet對(duì)不同的任務(wù)可以根據(jù)輸入進(jìn)行特征分配,提高模型檢測(cè)效率。此外,ResNet可以解決因?yàn)榫W(wǎng)絡(luò)深度過(guò)深而導(dǎo)致的梯度消失和網(wǎng)絡(luò)退化問(wèn)題。
入侵檢測(cè)模型主要分為以下3個(gè)部分:第一,將數(shù)據(jù)進(jìn)行預(yù)處理,原始的數(shù)據(jù)集不能夠直接輸入模型中進(jìn)行訓(xùn)練,需要將訓(xùn)練集和測(cè)試集處理成為能夠滿足模型使用的數(shù)據(jù)。第二,將處理好的訓(xùn)練集數(shù)據(jù)輸入構(gòu)建的網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。第三,使用測(cè)試集對(duì)訓(xùn)練好的模型進(jìn)行檢測(cè)。模型結(jié)構(gòu)如圖1所示。
圖1 入侵檢測(cè)模型結(jié)構(gòu)
由于深度學(xué)習(xí)的模型輸入為數(shù)字形式,而數(shù)據(jù)集網(wǎng)絡(luò)流量中的數(shù)據(jù)不是全為數(shù)字,有3項(xiàng)為字符型數(shù)據(jù),所以需要將字符型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型。本文使用One-hot編碼方式進(jìn)行類型轉(zhuǎn)化。將Protocol_Type、Service、Flag 3個(gè)特征轉(zhuǎn)化為數(shù)字類型,如Protocol_Type有Tcp、Udp和Icmp 3種屬性,經(jīng)過(guò)One-hot編碼處理后為001、010、100。
為了加快模型的訓(xùn)練和收斂,對(duì)數(shù)據(jù)進(jìn)行歸一化處理,歸一化能夠消除奇異樣本數(shù)據(jù)導(dǎo)致的不良影響。將所有數(shù)據(jù)映射到[0,1]的區(qū)間內(nèi)方便模型訓(xùn)練。
其中,x為原始特征,xmax、xmin為每一維所有特征值中的最大值和最小值,xn是進(jìn)行歸一化處理后的值。
數(shù)據(jù)集中的一些攻擊類型的數(shù)量很少,在訓(xùn)練中模型很難很好地對(duì)數(shù)據(jù)特征進(jìn)行充分的學(xué)習(xí),導(dǎo)致一些類型的檢測(cè)精度很低,目前的入侵檢測(cè)研究中不少研究者將數(shù)據(jù)采樣技術(shù)用于數(shù)據(jù)集的處理。GOZDEKARATAS等根據(jù)攻擊類型數(shù)量平衡提高系統(tǒng)的效率及減少分類錯(cuò)誤的情況,通過(guò)使用過(guò)采樣技術(shù)(SMOTE)的合成數(shù)據(jù)生成模型降低不平衡率。對(duì)次要類執(zhí)行數(shù)據(jù)生成,并通過(guò)該技術(shù)將其數(shù)量增加到平均數(shù)據(jù)大小。該方法使得少數(shù)類入侵流量的檢測(cè)效率有所提升[6]。本文采用SMOTETomek綜合采樣方法對(duì)數(shù)據(jù)集進(jìn)行處理,增加小樣本數(shù)據(jù)的比例,提高罕見(jiàn)攻擊類型的檢測(cè)效率。使用SMOTETomek算法對(duì)Kdd訓(xùn)練集中的R2L和U2R進(jìn)行采樣,增加其在訓(xùn)練集中的比例,使網(wǎng)絡(luò)能夠?qū)Τ浞謱W(xué)習(xí)流量的特征,從而提升罕見(jiàn)攻擊的檢測(cè)率。
SMOTE算法首先找到一個(gè)要進(jìn)行采樣的樣本,然后找到其周圍的K個(gè)鄰近樣本,隨機(jī)選擇其中一個(gè),然后在它們兩個(gè)之間隨機(jī)找到一個(gè)點(diǎn)生成樣本。Tomek Link算法將處于邊界的互為最鄰近點(diǎn)的正反例樣本進(jìn)行刪除,使得能有一個(gè)明顯的界限在正反樣本之間。兩個(gè)算法進(jìn)行結(jié)合,能夠避免SMOTE算法產(chǎn)生的數(shù)據(jù)擬合問(wèn)題。
人們認(rèn)為隨著網(wǎng)絡(luò)深度的增加,網(wǎng)絡(luò)擬合能力會(huì)更高,會(huì)達(dá)到更好的效果,但是人們發(fā)現(xiàn)隨著網(wǎng)絡(luò)層數(shù)的不斷增加,訓(xùn)練結(jié)果卻恰恰相反。這是由于隨著網(wǎng)絡(luò)深度的增加會(huì)產(chǎn)生網(wǎng)絡(luò)退化問(wèn)題。殘差網(wǎng)絡(luò)由直接映射部分和殘差部分兩個(gè)部分構(gòu)成,它的下一層的輸入是上一層的輸出和殘差相加而得到的。ResNet通過(guò)增加殘差結(jié)構(gòu)使網(wǎng)絡(luò)沒(méi)有學(xué)到東西也不會(huì)比之前學(xué)到的更差。本文將ResNet用于入侵檢測(cè)模型的構(gòu)建。
模型網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,在卷積層后加入BN層可以加快網(wǎng)絡(luò)的訓(xùn)練收斂速度,防止梯度爆炸問(wèn)題,使用RELU激活函數(shù),RELU激活函數(shù)的稀疏性使模型能夠更有效地挖掘數(shù)據(jù)特征。本網(wǎng)絡(luò)使用RELU函數(shù)作為激活函數(shù)。Dropout層通過(guò)隨機(jī)減少一些神經(jīng)元,保留剩余的神經(jīng)元進(jìn)行訓(xùn)練,每個(gè)Batch更新不同的權(quán)重,最后集成在一起,能夠起到防止擬合的作用。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)
通道注意力機(jī)制在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了很好的效果,通過(guò)給每個(gè)通道分配權(quán)重使網(wǎng)絡(luò)關(guān)注更重要的特征來(lái)提高網(wǎng)絡(luò)模型的效率,ECANet能夠在不降維的情況下進(jìn)行這項(xiàng)工作,避免降維帶來(lái)的副作用。通過(guò)構(gòu)建ECA-ResNet入侵檢測(cè)模型,運(yùn)用ResNet解決網(wǎng)絡(luò)退化和梯度消失問(wèn)題,利用ECANet通道注意力機(jī)制選取重要特征,提高模型效率。
選用的KDD99數(shù)據(jù)集,是使用較普遍的網(wǎng)絡(luò)入侵檢測(cè)數(shù)據(jù)集之一。數(shù)據(jù)集中存在拒絕服務(wù)(Dos)、探測(cè)(Probe)、用戶到根(U2R)和遠(yuǎn)程到本地(R2L)4種攻擊和正常(Normal)流量。該數(shù)據(jù)集包含41個(gè)體征,其中Protocol_Type、Service、Flag為字符型特征。在使用時(shí)需要將這3類特征轉(zhuǎn)換為數(shù)值型。1~9特征為數(shù)據(jù)包中的包頭信息,10~22特征為原始數(shù)據(jù)包的信息,通過(guò)這些信息系統(tǒng)可以訪問(wèn)有效載荷,23~31特征包含了一些鏈接計(jì)數(shù)和速率的相關(guān)信息,32~41特征是對(duì)一些鏈接進(jìn)行的相關(guān)內(nèi)容。
訓(xùn)練集選用10%的KDD99數(shù)據(jù)集,測(cè)試集采用corrected數(shù)據(jù)集,數(shù)據(jù)集中的類型分類見(jiàn)表1。
表1 數(shù)據(jù)集分布
Intel(R)Core(TM)i5-8300HcCPU、16GB內(nèi)存、NVIDIA GeForce GTX 1060顯卡、64bit Windows10操作系統(tǒng)、環(huán)境:Python3.10、Pytorch1.12.1等。
通過(guò)準(zhǔn)確率、精確率、召回率、F1值對(duì)模型進(jìn)行評(píng)價(jià)。將正常流量看為正樣本,攻擊流量看為負(fù)樣本。
(1)真陽(yáng)(True Positive,TP):正類被分類為正類。
(2)真陰(True Negative,TN):負(fù)類被分為負(fù)類。
(3)假陽(yáng)(False Positive,F(xiàn)P):負(fù)類被分為正類。
(4)假陰(False Negative,F(xiàn)N):正類被分為負(fù)類。
準(zhǔn)確率為預(yù)測(cè)正確的樣本和所有樣本的比值:
精確率(Precision)為分類正確的正樣本與預(yù)測(cè)為正樣本的比值:
召回率(Recall)為分類為正確的正樣本和真正為正樣本的比值:
F1值為使用精確率和召回率進(jìn)行綜合評(píng)價(jià)的一個(gè)指標(biāo):
使用測(cè)試集對(duì)建立模型進(jìn)行分析,與其他算法進(jìn)行對(duì)比結(jié)果見(jiàn)表2。
表2 實(shí)驗(yàn)結(jié)果對(duì)比
從表2可以看出本模型的準(zhǔn)確率、精確率和F1值比其他模型略高,但是召回率稍差。
對(duì)網(wǎng)絡(luò)安全中的入侵檢測(cè)問(wèn)題進(jìn)行了分析,提出了一種將通道注意力機(jī)制加入殘差網(wǎng)絡(luò)入侵檢測(cè)的模型。通過(guò)卷積操作對(duì)網(wǎng)絡(luò)流量進(jìn)行分析,提取其中的特征,區(qū)分正常數(shù)據(jù)和攻擊數(shù)據(jù),實(shí)驗(yàn)結(jié)果與其他模型對(duì)比準(zhǔn)確率、精確率和F1值較其他模型有一定提高。雖然通過(guò)采樣技術(shù)檢測(cè)準(zhǔn)確率有所提高,但是召回率還有待提高,所以還需加強(qiáng)這方面的研究。