(山西警察學院 網(wǎng)絡(luò)安全保衛(wèi)系,山西 太原 030401)
近年來,硬件計算的飛速發(fā)展和成本的不斷降低,促進了深度學習(Deep Learning,DL)的發(fā)展,通過應(yīng)用在AlphaGo和無人駕駛的發(fā)展,極大的提升了深度學習的實用性和普及性.目前,深度學習已經(jīng)廣泛應(yīng)用于自然語言處理[1~2]、計算機視覺[3~4]、語音識別[5~6]、無人駕駛等[7]領(lǐng)域.深度學習屬于機器學習的子領(lǐng)域,在深度學習之前,就出現(xiàn)了還能多采用機器學習來對于網(wǎng)絡(luò)安全領(lǐng)域問題進行求解的方法,如貝葉斯、支持向量機、淺層神經(jīng)網(wǎng)絡(luò)和邏輯回歸等.目前,已經(jīng)出現(xiàn)一些工作用于將深度學習與網(wǎng)絡(luò)安全領(lǐng)域結(jié)合的工作.
相對于傳統(tǒng)方法,深度學習方法能有效提高檢測效率和降低誤報率,從而更及時地發(fā)現(xiàn)已存在的網(wǎng)絡(luò)安全威脅.這些工作主要有:劉月峰等[7]提出了一種面向網(wǎng)絡(luò)入侵檢測的深度卷積網(wǎng)絡(luò)模型,將網(wǎng)絡(luò)入侵檢測的數(shù)據(jù)轉(zhuǎn)換為卷積網(wǎng)絡(luò)的輸入數(shù)據(jù),并利用卷積網(wǎng)絡(luò)對原始數(shù)據(jù)進行降維,最后利用BP反向傳播方法來調(diào)整網(wǎng)絡(luò)參數(shù).夏玉明等[8]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)攻擊檢測方法研究,然后將提取的日志特征映射到一組灰度圖進行異常檢測,將網(wǎng)絡(luò)攻擊特征映射為灰度圖,將提取的日志特征映射到一組灰度圖進行異常檢測,并將日志存入本地服務(wù)器并映射到灰度圖.
為了進一步提高網(wǎng)絡(luò)安全的攻擊檢測能力,提出了一種改進的基于深度學習的網(wǎng)絡(luò)攻擊檢測方法,并通過實驗證明了本文方法的有效性.
卷積網(wǎng)絡(luò)模型是一種由卷積層和池化層構(gòu)成的多層前饋神經(jīng)網(wǎng)絡(luò).卷積層采用卷積運算來獲得局部特征,池化層主要用于對特征進行降維,從而保留對于目標決策重要的特征,而去掉不重要和冗余的特征.
圖1所示的模型對應(yīng)的經(jīng)典的LaNet-5結(jié)構(gòu)如圖2所示.
圖1 基本的卷積網(wǎng)絡(luò)模型
圖2 LeNet-5結(jié)構(gòu)
在圖2中,C1,C3和C5都是卷積層,卷積層的特征是由上一層的特征圖通過卷積核所規(guī)定的卷積操作來實現(xiàn),卷積核在特征圖上沿著左邊緣和上邊緣,依次向下和向左邊滑動.卷積核的計算如下所示:
(1)
圖2中的P2和P4都是池化層,池化層的操作也是通過滑動窗口的方式來將原始特征圖片劃分為n*n個互不重疊的區(qū)域.池化的方法主要可以分為兩種:最大化池化和平均池化.這兩種方法通過子區(qū)域中的像素進行平均或者求最大值,使得原始圖像能縮小n*n,池化作用的公式為:
(2)
圖2中的F5和F6是全連接層.全連接層通常出現(xiàn)在最后一個池化層或卷積層的后面,每個神經(jīng)元均與上一層的所有神經(jīng)元相連,其計算公式為
hw,b(x)=f(WTx+b)
(3)
其中,x是神經(jīng)元的輸入,f(·)是激,活函數(shù)hw,b(x)為神經(jīng)元的輸出,W為輸入權(quán)矩陣,b是偏置向量.
本文設(shè)計的改進的卷積網(wǎng)絡(luò)用于實現(xiàn)網(wǎng)絡(luò)安全檢測,該卷積神經(jīng)網(wǎng)絡(luò)通過并行的特征求取,并通過后面連接兩個全連接層來對網(wǎng)絡(luò)安全攻擊事件進行分類,從圖3中可以看出,本文設(shè)計的并行卷積神經(jīng)網(wǎng)絡(luò)一共包含2個深度卷積神經(jīng)網(wǎng)絡(luò):CNN1和CNN2.首先,第一步是將原始圖像通過尺寸變換后,變換為兩種像素類型的圖片:64*64和160*96.
圖3 并行的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
CNN1的輸入圖像是160*96,該網(wǎng)絡(luò)由4個卷積層和3個池化層組成.CNN2的輸入圖像為64*64,該網(wǎng)絡(luò)有2個卷積層和一個池化層.在CNN1中,第一個卷積層是20個14*6的卷積核,其輸出結(jié)果是74*46的圖片特征.第一個池化層是P2,步長為2,
該層是由20個2*2的模板組成,步長為2,其輸出特征圖片的維數(shù)為37*23;第三層是卷積層,其卷積核大小為100個8*4的模板,步長為1,輸出圖片維數(shù)為30*20;第四層是池化層,其卷積核為100個2*2的模板,步長為1,輸出圖像的特征為30*20;第五層是卷積層,其卷積核為200個大小為2*2的卷積核,步長為1,輸出圖像的特征為12*8;第六層是池化層,卷積核為200個大小為2*2的模板,步長為2,輸出為6*4的圖像特征;第七層是300個大小為6*4的卷積核,步長為1,輸出為1*300的圖像特征;第八層的神經(jīng)元的輸出為1*50個神經(jīng)元.
CNN2的結(jié)構(gòu)如下:第一層是卷積層,其卷積核的大小50個12*12的卷積核,步長為4,輸出特征圖像的大小為64*64;第二層是池化層,其卷積核大小為50個2*2的卷積層,步長為2,其輸出為7*7的特征圖像;第三層是卷積層,其卷積核大小為100個7*7的模板,輸出為1*100;第四層是全連接層,其輸出神經(jīng)元個數(shù)為1*50.
在CNN2和CNN1后的全連接層的主要作用就是將全面連接的輸出映射到一個全連接層,該全連接層的輸出為20.
在全連接層后跟Softmax分類器作為分類器,分類的數(shù)目則是根據(jù)網(wǎng)絡(luò)攻擊類別來確定,在輸入元素為x時,輸出類別為y=i的概率可以表示為:
(4)
采用美國麻省理工大學的林肯實驗室的網(wǎng)絡(luò)安全攻擊數(shù)據(jù)庫KDD Cup99作為仿真數(shù)據(jù)集,該數(shù)據(jù)集一共包含500萬條記錄.KDD Cup99中的每個訓(xùn)練數(shù)據(jù)都包含了41個固定特征屬性和1個類標記.特征屬性中僅有9個離散型屬性,其它均為連續(xù)型屬性,前9個屬性表示網(wǎng)絡(luò)連接基本特征;10~22表示的是網(wǎng)絡(luò)連接內(nèi)容特征,23~31是基于時間的流量溶劑特征,最后的11個特征是主機網(wǎng)絡(luò)流量統(tǒng)計特征.其類別特征是正?;蛘弋惓n愋偷臉擞?訓(xùn)練過程如圖4所示:
圖4 本文模型的訓(xùn)練過程
從圖4中可以發(fā)現(xiàn),對于原始數(shù)據(jù)集,首先通過屬性映射、數(shù)據(jù)歸一化和數(shù)據(jù)轉(zhuǎn)換等過程,轉(zhuǎn)換為目標數(shù)據(jù)集,然后將該數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,然后通過反向來調(diào)整網(wǎng)絡(luò)對網(wǎng)絡(luò)訓(xùn)練,最后采用測試集獲得網(wǎng)絡(luò)的攻擊類別.
為了對對本文方法進行驗證,采用KDD Cup99進行訓(xùn)練并最終進行測試.本文模型在采用python語言實現(xiàn),其框架為tensorflow.為了驗證本文方法有效性,將其與本文方法與文獻[7]和文獻[8]方法相比,攻擊的類型一共有5種,即正常、Dos,Probe,R2L和U2R.下面將從準確率和誤報率兩個角度來衡量模型的性能:
準確率的計算如下:
(5)
誤報率的計算如下:
(6)
訓(xùn)練集和測試集如表1和表2所示.
表1 訓(xùn)練集類別和對應(yīng)的比例
表2 測試集類別和對應(yīng)的比例
三種方法得到的攻擊檢測結(jié)果如圖表3所示:
表3 三種方法的比較結(jié)果
從表3可以明顯看出,通過與文獻[7]和文獻[8]方法相比發(fā)現(xiàn),本文方法具有更高的正確率,且其誤報率上也明顯高于另外兩種方法,這也說明了采用并行機制后,使得網(wǎng)絡(luò)攻擊檢測能力大大提高.
為了實現(xiàn)網(wǎng)絡(luò)攻擊檢測,提出了一種基于并行深度神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)攻擊檢測系統(tǒng).該系統(tǒng)設(shè)計了兩組深度卷積網(wǎng)絡(luò)同時提取有效特征,該深度卷積網(wǎng)絡(luò)主要是由于多個卷積層和池化層組合而成,然后通過將網(wǎng)絡(luò)攻擊類別映射為輸出層神經(jīng)元個數(shù),實現(xiàn)對網(wǎng)絡(luò)的攻擊類型進行分類.將本文所提方法與文獻[8]以及文獻[9]所提的卷積神經(jīng)網(wǎng)絡(luò)進行比較,其結(jié)果表明了所提方法較對比算法在檢測準確率和誤報率上均具有較大的優(yōu)越性.