賴訓(xùn)飛,梁旭文,謝卓辰,李宗旺,4
(1 中國(guó)科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所, 上海 200050; 2 上海科技大學(xué)信息學(xué)院, 上海 201210;3 中國(guó)科學(xué)院上海微小衛(wèi)星工程中心, 上海 201203; 4 中國(guó)科學(xué)院大學(xué), 北京 100049)(2019年1月25日收稿; 2019年4月3日收修改稿)
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)的規(guī)模越來(lái)越大,隨之出現(xiàn)的網(wǎng)絡(luò)攻擊也越來(lái)越多,給計(jì)算機(jī)設(shè)施的安全性和敏感數(shù)據(jù)的完整性帶來(lái)嚴(yán)重威脅。因此,網(wǎng)絡(luò)入侵檢測(cè)越發(fā)受到重視,成為國(guó)內(nèi)外研究的熱點(diǎn)之一。網(wǎng)絡(luò)入侵檢測(cè)主要是通過(guò)提取反映網(wǎng)絡(luò)狀態(tài)特征的數(shù)據(jù),設(shè)計(jì)檢測(cè)模型對(duì)正常和攻擊的數(shù)據(jù)進(jìn)行分類[1]。然而,在真實(shí)環(huán)境中采集到的網(wǎng)絡(luò)特征數(shù)據(jù)基本是一種具有分類變量特征的結(jié)構(gòu)化數(shù)據(jù)[2],即是指以表的形式收集和組織的數(shù)據(jù),列代表不同的特征屬性,行代表不同的樣本,結(jié)構(gòu)化數(shù)據(jù)中最常見(jiàn)的是數(shù)值變量和分類變量。在衡量網(wǎng)絡(luò)流量入侵模式數(shù)據(jù)的特征[3-4]中,表示連接持續(xù)時(shí)間、傳送字節(jié)數(shù)、訪問(wèn)控制文件的次數(shù)等連續(xù)變量特征可以用數(shù)值表示,但是,還有許多特征只能以分類變量形式提供元數(shù)據(jù),沒(méi)有表征它們自己的信息,這些分類變量涉及表示協(xié)議類型(TCP、UDP、ICMP)、網(wǎng)絡(luò)服務(wù)的類型、網(wǎng)絡(luò)連接狀態(tài)等特征屬性。
近年來(lái),由于大數(shù)據(jù)和高性能計(jì)算機(jī)平臺(tái)的推動(dòng),深度學(xué)習(xí)成為入侵檢測(cè)領(lǐng)域越來(lái)越重要的研究方法,深度學(xué)習(xí)將特征提取和分類器結(jié)合到一個(gè)框架中,能夠自動(dòng)從海量數(shù)據(jù)中去學(xué)習(xí)特征,給海量、高維數(shù)據(jù)的復(fù)雜分類問(wèn)題提供非常有效的途徑。為了學(xué)習(xí)網(wǎng)絡(luò)狀態(tài)特征前后之間的相互依賴關(guān)系,將表征網(wǎng)絡(luò)狀態(tài)特征的數(shù)據(jù)時(shí)序建模,在Tang等[5]和Yin等[6]提出的遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)模型中,提高檢測(cè)準(zhǔn)確率的同時(shí),還通過(guò)在模型的隱藏節(jié)點(diǎn)之間對(duì)數(shù)據(jù)特征進(jìn)行局部關(guān)聯(lián),從而極大地減小了模型規(guī)模。但是RNN模型中存在梯度消失問(wèn)題,很難長(zhǎng)期學(xué)習(xí)保存信息。為了學(xué)習(xí)網(wǎng)絡(luò)狀態(tài)之間的長(zhǎng)期依賴性,Staudemeyer[7]提出將網(wǎng)絡(luò)流量建模為一個(gè)具有監(jiān)督學(xué)習(xí)方法的時(shí)間序列,訓(xùn)練長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long short-term memory network,LSTM),實(shí)驗(yàn)在KDD Cup 99數(shù)據(jù)集上,驗(yàn)證了LSTM網(wǎng)絡(luò)通過(guò)對(duì)網(wǎng)絡(luò)狀態(tài)特征數(shù)據(jù)的時(shí)序性和依賴性學(xué)習(xí),可以有效地處理高維的表征網(wǎng)絡(luò)狀態(tài)特征的大數(shù)據(jù)。
為了在網(wǎng)絡(luò)入侵檢測(cè)模型中合并網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中分類變量,近年來(lái)提出一些網(wǎng)絡(luò)入侵檢測(cè)算法,如Tang等[8]提出基于流量的異常檢測(cè)深度神經(jīng)網(wǎng)絡(luò)模型,Vinayakumar等[9]提出一種卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)模型等。在這些深度學(xué)習(xí)算法中,數(shù)據(jù)預(yù)處理時(shí),對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中分類變量的處理方法都是使用One-Hot編碼[10]對(duì)分類變量進(jìn)行轉(zhuǎn)換,也稱為One-of-k模式,即k個(gè)不同類別創(chuàng)建k個(gè)新的二進(jìn)制特性,其中只有一個(gè)值是1,歸一化后形成數(shù)據(jù)的輸入。這種方法雖然解決了分類器不好處理分類變量數(shù)據(jù)的問(wèn)題,也起到了擴(kuò)充特征的作用,數(shù)據(jù)預(yù)處理后,使得檢測(cè)模型達(dá)到了一定的檢測(cè)效果??墒菍?duì)于許多高基數(shù)特性的分類變量特征來(lái)說(shuō),One-Hot編碼會(huì)使得特征空間變得很大,從而產(chǎn)生大量的稀疏數(shù)據(jù),導(dǎo)致計(jì)算資源的浪費(fèi);其次,One-Hot編碼對(duì)待分類變量的不同值是完全獨(dú)立的,往往忽略了它們之間的信息關(guān)系。實(shí)體嵌入是一種將分類變量映射到歐幾里得空間[11],在一個(gè)神經(jīng)網(wǎng)絡(luò)中標(biāo)準(zhǔn)監(jiān)督學(xué)習(xí)的過(guò)程,嵌入后得到的數(shù)據(jù)維度低,不僅能夠?qū)㈦x散的序列映射成為連續(xù)的向量,還能夠深度挖掘變量之間的關(guān)系。與One-Hot編碼相比,實(shí)體嵌入不僅減少了內(nèi)存的使用,加快了神經(jīng)網(wǎng)絡(luò)的計(jì)算速度,在數(shù)據(jù)稀疏且統(tǒng)計(jì)量未知的情況下,實(shí)體嵌入還能更好地幫助神經(jīng)網(wǎng)絡(luò)進(jìn)行泛化。
基于以上分析,為了克服傳統(tǒng)方法對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中分類變量處理的缺點(diǎn),本文將實(shí)體嵌入的方法應(yīng)用于網(wǎng)絡(luò)入侵檢測(cè),同時(shí)結(jié)合深度學(xué)習(xí)中LSTM網(wǎng)絡(luò)在入侵檢測(cè)中處理高維、海量數(shù)據(jù)的優(yōu)勢(shì)[12],提出一種基于實(shí)體嵌入和LSTM相結(jié)合的方法。數(shù)據(jù)預(yù)處理時(shí),使用分類變量數(shù)據(jù)學(xué)習(xí)實(shí)體嵌入,其中每個(gè)分類變量都映射到一個(gè)固定大小的向量空間,然后使用神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)參數(shù)。本文的神經(jīng)網(wǎng)絡(luò)模型采用LSTM網(wǎng)絡(luò),將數(shù)值變量數(shù)據(jù)輸入與分類變量數(shù)據(jù)輸入結(jié)合在一起,然后將這兩個(gè)輸入連接起來(lái)并饋送到LSTM網(wǎng)絡(luò)訓(xùn)練檢測(cè)模型,使得設(shè)計(jì)的LSTM網(wǎng)絡(luò)達(dá)到最優(yōu)檢測(cè)效果。通過(guò)在NSL-KDD數(shù)據(jù)集[13]上進(jìn)行實(shí)驗(yàn)驗(yàn)證,先預(yù)設(shè)分類變量的嵌入維度,通過(guò)調(diào)整LSTM網(wǎng)絡(luò)的隱藏節(jié)點(diǎn)數(shù)和學(xué)習(xí)率,得到一個(gè)相對(duì)較優(yōu)的LSTM網(wǎng)絡(luò),然后對(duì)比One-Hot編碼對(duì)網(wǎng)絡(luò)流量入侵?jǐn)?shù)據(jù)中分類變量的預(yù)處理方法,驗(yàn)證實(shí)體嵌入對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中分類變量處理的有效性,同時(shí),結(jié)合LSTM網(wǎng)絡(luò)設(shè)計(jì)出一種網(wǎng)絡(luò)入侵檢測(cè)模型,提高了檢測(cè)的準(zhǔn)確率。
實(shí)體嵌入(entity embedding,EE)是將函數(shù)近似問(wèn)題中的分類變量映射到歐幾里得空間,這種映射是在一個(gè)神經(jīng)網(wǎng)絡(luò)中的標(biāo)準(zhǔn)監(jiān)督學(xué)習(xí)過(guò)程。神經(jīng)網(wǎng)絡(luò)環(huán)境下實(shí)體嵌入方法的第一個(gè)領(lǐng)域是關(guān)系數(shù)據(jù)的表示[14]。近年來(lái),大量復(fù)雜關(guān)系數(shù)據(jù)集合知識(shí)庫(kù)中出現(xiàn)了大量使用實(shí)體嵌入的工作[15], 重構(gòu)數(shù)據(jù)的基本數(shù)據(jù)結(jié)構(gòu)形式是(h,r,t),其中h和t是實(shí)體,r是關(guān)系,實(shí)體映射到向量,關(guān)系有時(shí)映射到矩陣[16]或者兩個(gè)矩陣或者與實(shí)體在同一嵌入空間中的向量。
在函數(shù)近似問(wèn)題中,給定一個(gè)函數(shù)如下
y=f(x1,x2,…,xn).
(1)
式中:(x1,x2,…,xn)為輸入數(shù)據(jù),y為標(biāo)簽輸出值。
為了學(xué)習(xí)函數(shù)(1)的近似,實(shí)體嵌入通過(guò)將一個(gè)分類變量xi的狀態(tài)映射到一個(gè)向量,即
(2)
向量空間的大小,即嵌入層的維度[17]是需要預(yù)先定義的超參數(shù)。實(shí)體嵌入維度的邊界在1和(mi-1)之間,其中mi是分類變量xi的所有狀態(tài)的個(gè)數(shù)。在實(shí)踐中,根據(jù)經(jīng)驗(yàn)選擇嵌入層的維度尺寸,采用經(jīng)驗(yàn)準(zhǔn)則:越復(fù)雜的維度越多。需要粗略估計(jì)描述實(shí)體可能需要多少特性,并將其作為開(kāi)始的維度。
在深度學(xué)習(xí)處理結(jié)構(gòu)化數(shù)據(jù)[18]過(guò)程中,學(xué)習(xí)嵌入的方法來(lái)表征數(shù)據(jù)特征時(shí),首先,需要將結(jié)構(gòu)化數(shù)據(jù)分為數(shù)值型和分類型變量,然后對(duì)分類型變量進(jìn)行實(shí)體嵌入,在使用實(shí)體嵌入表示所有分類變量之后,所有嵌入層和所有連續(xù)變量的輸入被連接起來(lái)。合并層被視為神經(jīng)網(wǎng)絡(luò)中的一個(gè)普通輸入層[19]。整個(gè)網(wǎng)絡(luò)可以用標(biāo)準(zhǔn)的反向傳播方法進(jìn)行訓(xùn)練。通過(guò)這種方式,實(shí)體嵌入層能夠了解每個(gè)類別的內(nèi)在屬性,而更深層次的實(shí)體層形成它們的復(fù)雜組合。學(xué)習(xí)嵌入的具體步驟如下:
1) 對(duì)于每個(gè)分類型變量xi,創(chuàng)建一個(gè)實(shí)體嵌入矩陣m×L,其中m表示分類型變量xi的特征屬性基數(shù),L表示分類變量xi的嵌入維度,其中1≤L≤m-1。下面式(3)中矩陣表示的是一個(gè)分類型變量xi中所有狀態(tài)的向量表示,其中每一行表示一種狀態(tài)在嵌入空間中的映射
(3)
采用相同的方式可以得到每個(gè)分類型變量的數(shù)據(jù)向量表示。
2) 通過(guò)在嵌入矩陣中查詢給定分類變量的狀態(tài)就能得到所有分類變量的向量表示,然后把它嵌入到數(shù)值型變量的數(shù)據(jù)后面,組成全新的數(shù)據(jù)輸入。
3) 定義一個(gè)神經(jīng)網(wǎng)絡(luò),然后把每一組數(shù)據(jù)都輸入到神經(jīng)網(wǎng)絡(luò)去訓(xùn)練,為使損失函數(shù)最小,可以通過(guò)在神經(jīng)網(wǎng)絡(luò)反向傳播過(guò)程中梯度的變化不斷地更新分類變量型數(shù)據(jù)的嵌入矩陣,使得每次數(shù)據(jù)迭代后都能夠獲得更好的嵌入表示,從而優(yōu)化嵌入的映射。
本文針對(duì)網(wǎng)絡(luò)入侵檢測(cè)中的高維、海量的網(wǎng)絡(luò)特征數(shù)據(jù),采用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)LSTM[20]進(jìn)行訓(xùn)練,LSTM是時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)的一種變形,相比于傳統(tǒng)的RNN模型,LSTM對(duì)隱藏層做了更復(fù)雜的設(shè)計(jì),其核心設(shè)計(jì)是一種叫做記憶體(cell state)的信息流,如圖1所示,它負(fù)責(zé)把記憶信息從序列的初始位置傳遞到序列的末端,并通過(guò)4個(gè)相互交互的“門(mén)”單元,控制在每一時(shí)間步t對(duì)記憶信息值的修改。LSTM這種隱藏層的邏輯設(shè)計(jì)可以有效地保留長(zhǎng)時(shí)間的記憶信息,避免了梯度消失的缺點(diǎn)。
圖1 LSTM隱藏層的邏輯設(shè)計(jì)結(jié)構(gòu)Fig.1 Logic design structure of LSTM hidden layer
在記憶體的信息流中,遺忘門(mén)控制著前面記憶中丟失信息的多少;輸入門(mén)決定第t時(shí)間步的輸入信息xt,有多少信息將被添加到記憶信息流中;候選門(mén)用來(lái)計(jì)算當(dāng)前的輸入與過(guò)去的記憶所具有的信息總和量;輸出門(mén)控制著有多少記憶信息將被用于下一階段的更新中。
將圖1所示的LSTM隱藏層邏輯單元,多個(gè)連接在一起形成一個(gè)LSTM網(wǎng)絡(luò)模型。本文針對(duì)網(wǎng)絡(luò)入侵檢測(cè),采用的是一個(gè)“多對(duì)多”型結(jié)構(gòu),即多個(gè)輸入的同時(shí)有多個(gè)輸出,如圖2所示。模型的訓(xùn)練主要包含前向傳播和反向傳播過(guò)程。
圖2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 LSTM network structure
其中LSTM網(wǎng)絡(luò)模型訓(xùn)練的具體算法過(guò)程如下:
前向傳播過(guò)程:記輸入時(shí)間序列為X=(x1,x2,…,xt),隱藏層序列為S=(s1,s2,…,st),則通過(guò)迭代公式計(jì)算預(yù)測(cè)輸出序列Y=(y1,y2,…,yt)的計(jì)算過(guò)程如下:
(4)
(5)
(6)
Ct=ft×Ct-1+it×C′t,
(7)
(8)
st=οt×tanh(Ct),
(9)
yt=softmax(VT×st+c).
(10)
反向傳播過(guò)程:采用時(shí)間反向傳播算法來(lái)訓(xùn)練參數(shù),主要是通過(guò)疊加每個(gè)時(shí)間步的參數(shù)梯度來(lái)更新參數(shù),損失函數(shù)是計(jì)算每個(gè)時(shí)間步預(yù)測(cè)輸出層的交叉熵,在第t個(gè)時(shí)間步時(shí),損失函數(shù)的計(jì)算過(guò)程為
(11)
式中:yt是預(yù)測(cè)輸出,y′t是輸出的真實(shí)值,j表示預(yù)測(cè)輸出層的第j神經(jīng)元。
在每一次迭代中,參數(shù)矩陣通過(guò)式(12)來(lái)更新:
(12)
式中:r是學(xué)習(xí)率,時(shí)間步t=0,1,…,T.
本文基于實(shí)體嵌入和LSTM網(wǎng)絡(luò)的方法建立的入侵檢測(cè)模型流程如圖3所示,主要分3個(gè)部分:數(shù)據(jù)預(yù)處理、模型訓(xùn)練、模型測(cè)試。
圖3 網(wǎng)絡(luò)入侵檢測(cè)模型Fig.3 Network intrusion detection model
入侵檢測(cè)模型檢測(cè)的具體步驟如下:
1) 數(shù)據(jù)預(yù)處理
在數(shù)據(jù)預(yù)處理過(guò)程中,首先,需要將訓(xùn)練集的每一個(gè)數(shù)據(jù)中的分類型和數(shù)值型特征屬性的數(shù)據(jù)分開(kāi)。對(duì)數(shù)值型的數(shù)據(jù),需要進(jìn)行歸一化處理,處理方式如下
(13)
式中:xmax和xmin分別表示x所在列中的最大值和最小值,x′為x歸一化后的數(shù)據(jù)。
然后,對(duì)于分類型的數(shù)據(jù),根據(jù)嵌入的維度映射成為一個(gè)向量。在所有的分類變量都用實(shí)體嵌入的方法表示后,由每一個(gè)分類型數(shù)據(jù)表示的向量都連接到歸一化后的數(shù)值型數(shù)據(jù)后面,組合成新的數(shù)據(jù)輸入。
2) 模型訓(xùn)練
在所有的訓(xùn)練集中的數(shù)據(jù)都按照步驟1)轉(zhuǎn)換成數(shù)據(jù)輸入后,將數(shù)據(jù)時(shí)序建模,為了使得檢測(cè)過(guò)程中具有關(guān)聯(lián)數(shù)據(jù)的功能,模型訓(xùn)練采用的是一個(gè)“多對(duì)多”的循環(huán)神經(jīng)網(wǎng)絡(luò)。即多個(gè)LSTM邏輯單元連接在一起,形成一個(gè)LSTM網(wǎng)絡(luò)。模型訓(xùn)練的過(guò)程,是一個(gè)學(xué)習(xí)嵌入的過(guò)程,同時(shí)也是一個(gè)得到最優(yōu)檢測(cè)模型的過(guò)程。因?yàn)樵跁r(shí)間反向傳播更新參數(shù)的過(guò)程中,不但是損失函數(shù)逐漸達(dá)到最小的過(guò)程,也是分類型數(shù)據(jù)的嵌入向量不斷被更新,得到最優(yōu)數(shù)據(jù)輸入的過(guò)程。
3) 模型測(cè)試
根據(jù)步驟1)先對(duì)測(cè)試集進(jìn)行數(shù)據(jù)預(yù)處理,得到數(shù)據(jù)輸入,然后根據(jù)步驟2)中訓(xùn)練得到的LSTM模型,輸入到模型中進(jìn)行檢測(cè),得到檢測(cè)結(jié)果。
本文采用NSL-KDD數(shù)據(jù)集(下載地址https:∥www.unb.ca/cic/datasets/nsl.html)進(jìn)行實(shí)驗(yàn)驗(yàn)證。該數(shù)據(jù)集是KDD Cup 99數(shù)據(jù)集(下載地址http:∥kdd.ics.uci.edu/databases/kddcup99/kddcup99.html)的改進(jìn)和簡(jiǎn)化版本,KDD Cup 99數(shù)據(jù)集是來(lái)源于1998年美國(guó)國(guó)防部高級(jí)規(guī)劃署在林肯實(shí)驗(yàn)室進(jìn)行的一項(xiàng)為捕獲網(wǎng)絡(luò)流量數(shù)據(jù)而準(zhǔn)備的入侵檢測(cè)評(píng)估項(xiàng)目。訓(xùn)練用的網(wǎng)絡(luò)流量數(shù)據(jù)被收集7周,測(cè)試用的網(wǎng)絡(luò)流量數(shù)據(jù)收集了2周。KDD Cup 99數(shù)據(jù)集作為評(píng)價(jià)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的基準(zhǔn)數(shù)據(jù)集已被廣泛使用多年,然而該數(shù)據(jù)集的一個(gè)主要缺點(diǎn)是,它在訓(xùn)練和測(cè)試數(shù)據(jù)中都包含大量的冗余記錄。為了克服KDD Cup 99數(shù)據(jù)集的局限性,提出NSL-KDD數(shù)據(jù)集,它改進(jìn)了以前的數(shù)據(jù)集,使得NSL-KDD數(shù)據(jù)集中的總記錄統(tǒng)計(jì)合理。
NSL-KDD數(shù)據(jù)集中每一種網(wǎng)絡(luò)流量模式都由41個(gè)特征定義,這些特征包括直接從TCP/IP連接的基本特性、在窗口間隔(如2 s或多個(gè)連接)中累積的流量特性以及從連接的應(yīng)用層數(shù)據(jù)中提取的內(nèi)容特性。在表示網(wǎng)絡(luò)流量數(shù)據(jù)的41個(gè)特征中,特征屬性的類型可以分為離散型(symbolic,S)和連續(xù)型(continuous,C),具體的特征屬性描述如表1所示。
表1 數(shù)據(jù)特征屬性Table 1 Data feature attribute
在表示網(wǎng)絡(luò)流量入侵模式數(shù)據(jù)中的7個(gè)離散型特征都是分類變量,分別是Protocol_type,service,flag,land, logged_in,is_hot_ligin,is_guest_login,其中分類變量Protocol_type表示協(xié)議類型,共有3種:TCP、UDP、ICMP,特征屬性基數(shù)為3;service表示目標(biāo)主機(jī)的網(wǎng)絡(luò)服務(wù)類型,共有70種,特征屬性基數(shù)為70;flag表示連接正常或錯(cuò)誤的狀態(tài),共11種,特征屬性基數(shù)為11;land表示連接是否來(lái)自同一個(gè)主機(jī)/端口,特征屬性基數(shù)為2;logged_in表示是否成功登錄,特征屬性基數(shù)為2;is_hot_ligin表示登錄是否屬于“hot”列表,特征屬性基數(shù)為2;is_guest_login表示是否guest 登錄,特征屬性基數(shù)為2。
網(wǎng)絡(luò)流量數(shù)據(jù)主要被標(biāo)簽為正常和4種不同類型的攻擊流量,4種攻擊分別是DoS、Probe、U2R和R2L攻擊,其中DoS攻擊會(huì)耗盡目標(biāo)服務(wù)器的資源,使其無(wú)法提供任何服務(wù);R2L攻擊允許未經(jīng)授權(quán)的遠(yuǎn)程訪問(wèn);U2R攻擊嘗試獲取超級(jí)用戶權(quán)限;Probe探測(cè)攻擊用于查找目標(biāo)服務(wù)器的漏洞,如表2所示。
表2 數(shù)據(jù)類別Table 2 Data categories
網(wǎng)絡(luò)入侵檢測(cè)算法的性能通過(guò)準(zhǔn)確率AC、誤報(bào)率FA和漏報(bào)率MA來(lái)衡量,它們的計(jì)算方法如下:
(14)
(15)
(16)
式中:TP代表正確分類的攻擊記錄,TN代表正確分類的正常記錄,F(xiàn)N代表錯(cuò)誤分類的攻擊記錄(漏報(bào)),FP代表錯(cuò)誤分類的正常記錄(誤報(bào))。
實(shí)驗(yàn)包括100 000個(gè)訓(xùn)練樣本和20 000個(gè)測(cè)試樣本。實(shí)驗(yàn)樣本的具體類型和個(gè)數(shù)如表3所示。
表3 實(shí)驗(yàn)數(shù)據(jù)Table 3 Experimental data
實(shí)驗(yàn)環(huán)境是window10 64位操作系統(tǒng),Intel(R)core(TM) i7-6500U,CPU 2.5 GHZ,內(nèi)存8.00 GB,采用GPU加速,在基于深度學(xué)習(xí)框架PyTorch下,Python語(yǔ)言編程實(shí)現(xiàn)。實(shí)驗(yàn)的具體參數(shù)為:權(quán)值初始化方式為隨機(jī)初始化,損失函數(shù)為交叉熵,優(yōu)化算法是SGD(隨機(jī)梯度下降),最大迭代次數(shù)為500, 批次大小為100,隱藏層dropout取0.2。
本文主要做了3組實(shí)驗(yàn),第1組實(shí)驗(yàn),針對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)中的分類變量,使用實(shí)體嵌入的方法,通過(guò)在3種預(yù)設(shè)規(guī)則下,得到分類變量的不同嵌入維度,目的是確定一個(gè)相對(duì)最優(yōu)的實(shí)體嵌入的維度(L);第2組實(shí)驗(yàn),預(yù)設(shè)不同的隱藏節(jié)點(diǎn)數(shù)(H)和學(xué)習(xí)率(R),目的是確定相對(duì)最優(yōu)的LSTM網(wǎng)絡(luò)參數(shù);第3組實(shí)驗(yàn),對(duì)比傳統(tǒng)的對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中分類變量的處理方法,驗(yàn)證本文提出的實(shí)體嵌入方法對(duì)分類變量處理的有效性。
1) 確定嵌入層的維度
把網(wǎng)絡(luò)流量數(shù)據(jù)中的離散型和數(shù)值型數(shù)據(jù)分開(kāi)處理,離散型特征屬性的數(shù)據(jù)作為分類變量,通過(guò)實(shí)體嵌入的方法處理后,和歸一化后的數(shù)值型數(shù)據(jù)組合在一起后,得到數(shù)據(jù)的輸入。每一個(gè)表示網(wǎng)絡(luò)流量特征的41維數(shù)據(jù)中,表示分類變量的特征屬性有7個(gè),連續(xù)性數(shù)值型變量的特征屬性有34個(gè)。根據(jù)實(shí)體嵌入理論,分類變量的嵌入維度是一個(gè)需要預(yù)先定義的超參數(shù),在實(shí)踐中,可以用經(jīng)驗(yàn)準(zhǔn)則來(lái)選擇嵌入維度,即越復(fù)雜的維度越多,先粗略估計(jì)描述實(shí)體可能需要多少特性,并將其作為開(kāi)始的維度。所以,在實(shí)驗(yàn)的過(guò)程中,根據(jù)經(jīng)驗(yàn),預(yù)先設(shè)定3種規(guī)則下的分類變量嵌入維度,當(dāng)分類變量的特征屬性基數(shù)為m時(shí),嵌入維度為L(zhǎng),具體規(guī)則如下:
①當(dāng)(m-1)<2時(shí),L=2;
②當(dāng)2≤(m-1)≤C,L=(m-1),其中C為常數(shù);
③當(dāng)(m-1)≥C,L=C。
實(shí)驗(yàn)過(guò)程中,規(guī)則①取C=10;規(guī)則②取C=30;規(guī)則③取C=50;可以看到對(duì)于特征屬性基數(shù)較少的分類變量land、logged_in、is_hot_ligin、is_guest_login和Protocol_type來(lái)說(shuō),嵌入維度不需要太復(fù)雜,所以,3個(gè)規(guī)則下的嵌入維度都是取2。但是對(duì)于分類變量service和flag,因?yàn)樗鼈兊奶卣鲗傩曰鶖?shù)比較大,需要較大的嵌入維度對(duì)其進(jìn)行描述,所以,3種規(guī)則下,分類變量service的嵌入維度分別取10、30、50,分類變量flag的嵌入維度都是取10,具體如表4所示。
表4 特征屬性基數(shù)以及嵌入維度Table 4 Feature attribute cardinality and embedding dimension
這里先設(shè)定隱藏層節(jié)點(diǎn)數(shù)H=30,學(xué)習(xí)率R=0.2進(jìn)行實(shí)驗(yàn),來(lái)確定一個(gè)相對(duì)最優(yōu)的嵌入層維度,得到的實(shí)驗(yàn)結(jié)果如圖4所示??梢钥吹?,嵌入維度在3種規(guī)則下,準(zhǔn)確率隨著迭代次數(shù)的變化中,當(dāng)?shù)螖?shù)小于200時(shí),規(guī)則①的嵌入維度下,檢測(cè)模型得到準(zhǔn)確率要比其他兩種規(guī)則的準(zhǔn)確率更低,迭代次數(shù)大于200時(shí),隨著曲線趨于穩(wěn)定,規(guī)則①的嵌入維度下,檢測(cè)模型得到準(zhǔn)確率要比其他兩種規(guī)則的更高,另外比較3種規(guī)則的嵌入維度下,檢測(cè)模型的訓(xùn)練時(shí)間,分別是914、977和1 086 s。綜合來(lái)看,規(guī)則①預(yù)設(shè)的嵌入維度相對(duì)最優(yōu),即分類變量Protocol_type、service、flag、land、logged_in、is_hot_ligin、is_guest_login的嵌入維度分別取2、10、10、2、2、2、2。此時(shí),在使用實(shí)體嵌入表示所有分類變量之后,所有嵌入層和34個(gè)歸一化后的數(shù)值型變量連接起來(lái),合并成的輸入數(shù)據(jù)的維度為64。
圖4 不同嵌入維度下的迭代曲線Fig.4 Iteration curves under different embedding dimensions
2) 確定隱藏節(jié)點(diǎn)數(shù)H、學(xué)習(xí)率R
為了確定一個(gè)相對(duì)最優(yōu)的LSTM網(wǎng)絡(luò),在相對(duì)最優(yōu)的嵌入維度規(guī)則,即輸入數(shù)據(jù)的維度為64時(shí),隱藏層節(jié)點(diǎn)數(shù)分別取H=20、30、50,學(xué)習(xí)率分別取R=0.1、0.2、0.3,進(jìn)行9組實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示。綜合來(lái)看,檢測(cè)性能最好時(shí),隱藏層節(jié)點(diǎn)數(shù)應(yīng)該取20,學(xué)習(xí)率取0.3,此時(shí)模型的檢測(cè)準(zhǔn)確率最高,達(dá)到98.90%。
表5 不同參數(shù)的檢測(cè)效果Table 5 Detection effects of different parameters
3) 對(duì)比實(shí)驗(yàn)
通過(guò)以上兩組實(shí)驗(yàn)后,得到一個(gè)相對(duì)最優(yōu)的檢測(cè)模型。在最優(yōu)檢測(cè)模型下,為了驗(yàn)證算法模型的優(yōu)越性,采用訓(xùn)練樣本100 000個(gè)和20 000個(gè)測(cè)試樣本總共120 000個(gè)數(shù)據(jù)樣本,通過(guò)6折疊交叉驗(yàn)證的方式,得到入侵檢測(cè)的各種評(píng)價(jià)指標(biāo)。將本文基于實(shí)體嵌入和LSTM網(wǎng)絡(luò)的檢測(cè)方法 (EE-LSTM),與基于One-Hot編碼和LSTM的方法(OH-LSTM)進(jìn)行對(duì)比實(shí)驗(yàn)。
實(shí)驗(yàn)過(guò)程中,OH-LSTM檢測(cè)方法是數(shù)據(jù)預(yù)處理時(shí)采用One-Hot的編碼處理分類變量,數(shù)據(jù)歸一化得到數(shù)據(jù)輸入后,輸入到LSTM網(wǎng)絡(luò)中訓(xùn)練,選擇的初始化方式、批次數(shù)、下降方式、損失函數(shù)都與EE-LSTM檢測(cè)方法相同,其他參數(shù)通過(guò)調(diào)整得到相對(duì)最優(yōu)的檢測(cè)模型。
兩種方法的迭代曲線如圖5所示,另外還從兩種方法的準(zhǔn)確率、誤報(bào)率、漏報(bào)率3個(gè)方面進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如表6所示。通過(guò)圖5(a)和5(b)可以看到,隨著迭代次數(shù)的增加,在迭代次數(shù)達(dá)到500時(shí),采用兩種方法的檢測(cè)模型的準(zhǔn)確率和損失函數(shù)值都趨于穩(wěn)定,但是本文方法的準(zhǔn)確率一直高于OH-LSTM的檢測(cè)方法,損失函數(shù)值也一直低于OH-LSTM的檢測(cè)方法。通過(guò)表6的數(shù)據(jù)可以看到,對(duì)比OH-LSTM的檢測(cè)方法,EE-LSTM的檢測(cè)方法在準(zhǔn)確率上高出1.44個(gè)百分點(diǎn),誤報(bào)率降低0.04個(gè)百分點(diǎn),漏報(bào)率降低2.99個(gè)百分點(diǎn),從整體上驗(yàn)證了本文檢測(cè)方法的優(yōu)越性能。
圖5 準(zhǔn)確率和損失函數(shù)隨迭代次數(shù)變化Fig.5 Variations of accuracy and loss function with number of iterations
表6 兩種檢測(cè)方法的性能對(duì)比Table 6 Performance comparison between the two detection methods %
為進(jìn)一步驗(yàn)證本文檢測(cè)方法的良好檢測(cè)性能,實(shí)驗(yàn)中將EE-LSTM和OH-LSTM兩種檢測(cè)方法對(duì)各類攻擊的檢測(cè)性能進(jìn)行了對(duì)比,圖6表示的是兩種檢測(cè)方法中對(duì)每一類攻擊檢測(cè)的準(zhǔn)確率。
圖6 不同數(shù)據(jù)類別的準(zhǔn)確率對(duì)比Fig.6 Accuracy comparison among different data categories
通過(guò)圖6可以清楚地看到本文的方法對(duì)每種攻擊的檢測(cè)率都要明顯高于OH-LSTM的方法。對(duì)于DOS和Probe類型的攻擊,本文方法檢測(cè)的準(zhǔn)確率接近100%。然而對(duì)于U2R和R2L攻擊類型,因?yàn)闃颖緮?shù)目太少的原因,一般情況下難以實(shí)現(xiàn)對(duì)U2R和R2L攻擊類型的檢測(cè),甚至在OH-LSTM的檢測(cè)方法中,U2R攻擊類型沒(méi)有被檢測(cè)出來(lái)。但是,在本文方法中,對(duì)U2R和R2L的檢測(cè)效果都很明顯地高于OH-LSTM的方法。
針對(duì)網(wǎng)絡(luò)入侵檢測(cè)中海量、高維的結(jié)構(gòu)化數(shù)據(jù),通過(guò)實(shí)體嵌入的方法對(duì)分類變量的處理,結(jié)合LSTM網(wǎng)絡(luò)捕獲網(wǎng)絡(luò)特征數(shù)據(jù)的時(shí)序性和依賴性的優(yōu)勢(shì),本文提出基于實(shí)體嵌入和LSTM網(wǎng)絡(luò)的檢測(cè)方法,將表征網(wǎng)絡(luò)特征的結(jié)構(gòu)化數(shù)據(jù)時(shí)序建模。在數(shù)據(jù)預(yù)處理時(shí),對(duì)分類型變量特征屬性進(jìn)行實(shí)體嵌入,在使用實(shí)體嵌入表示所有分類變量之后,所有嵌入層和所有連續(xù)變量的輸入被連接起來(lái),合并層被視為神經(jīng)網(wǎng)絡(luò)中的一個(gè)普通輸入層,在提出的LSTM網(wǎng)絡(luò)中訓(xùn)練,使得輸入數(shù)據(jù)能夠更好地表征原來(lái)結(jié)構(gòu)化數(shù)據(jù)的特征的同時(shí),也得到了最優(yōu)的檢測(cè)模型。與傳統(tǒng)的處理網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中分類變量方法One-Hot編碼相比,從對(duì)網(wǎng)絡(luò)攻擊的檢測(cè)效果來(lái)看,結(jié)果表明,總體上本文提出方法具有更高的準(zhǔn)確率,降低了誤報(bào)率,還很明顯地降低了漏報(bào)率,而且對(duì)小類攻擊樣本[21]的檢測(cè)具有明顯優(yōu)勢(shì),為網(wǎng)絡(luò)入侵檢測(cè)數(shù)據(jù)中的分類變量提供了一種有效的處理方法;同時(shí),結(jié)合深度學(xué)習(xí)中LSTM網(wǎng)絡(luò)在處理高維大數(shù)據(jù)中的優(yōu)勢(shì),為網(wǎng)絡(luò)入侵檢測(cè)領(lǐng)域提供一種新的檢測(cè)方法。下一步工作是通過(guò)改變分類變量的嵌入維度,進(jìn)一步優(yōu)化檢測(cè)模型。
中國(guó)科學(xué)院大學(xué)學(xué)報(bào)2020年4期