謝潔,韓德志
(上海海事大學(xué)信息工程學(xué)院,上海201306)
云環(huán)境;拒絕服務(wù)攻擊;卷積神經(jīng)網(wǎng)絡(luò)
現(xiàn)今云計(jì)算的興起,云平臺(tái)給用戶提供了各種便利的互聯(lián)網(wǎng)應(yīng)用服務(wù),隨之產(chǎn)生的針對(duì)云環(huán)境的各種攻擊事件不斷發(fā)生,威脅著云網(wǎng)絡(luò)的安全。在針對(duì)云環(huán)境的攻擊中拒絕服務(wù)攻擊是主要的攻擊方式,攻擊強(qiáng)度高,損害大,并且呈現(xiàn)增長(zhǎng)態(tài)勢(shì),云安全問(wèn)題形勢(shì)嚴(yán)峻。目前針對(duì)拒絕服務(wù)攻擊的檢測(cè)方法主要有,針對(duì)TCP擁塞控制機(jī)制的Shrew攻擊、隨機(jī)化端系統(tǒng)的最小超時(shí)等待時(shí)間、控制路由器隊(duì)列緩沖區(qū)、算法匹配、數(shù)學(xué)工具如小波特征。卷積神經(jīng)網(wǎng)絡(luò)是模式分類領(lǐng)域的研究熱點(diǎn),在圖像識(shí)別上避免了對(duì)圖像的前期處理過(guò)程,精簡(jiǎn)了識(shí)別程序,結(jié)構(gòu)簡(jiǎn)單,且提高了識(shí)別效果,因而已成功應(yīng)用于手寫(xiě)字符識(shí)別、人臉識(shí)別、醫(yī)療診斷等領(lǐng)域中。
卷積神經(jīng)網(wǎng)絡(luò)模型是一個(gè)多層的神經(jīng)網(wǎng)絡(luò),每層由多個(gè)二維平面組成,每個(gè)平面由多個(gè)獨(dú)立神經(jīng)元組成。網(wǎng)絡(luò)包含輸入層、卷積層、池化層和輸出層。輸入層只有一層,卷積層和池化層一般設(shè)置多層,輸出層一般為一維線陣,用于分類。下圖1是卷積神經(jīng)網(wǎng)絡(luò)的示范:輸入圖像通過(guò)和三個(gè)可訓(xùn)練的過(guò)濾器和可加偏置進(jìn)行卷積,卷積后在C1層產(chǎn)生三個(gè)特征映射圖,特征映射圖中的像素再進(jìn)行求和、加權(quán)值和加偏置,通過(guò)一個(gè)sigmoid函數(shù)得到三個(gè)S2層的特征映射圖。映射圖經(jīng)過(guò)過(guò)濾器得到S3層。這個(gè)層級(jí)結(jié)構(gòu)再和S2一樣產(chǎn)生S4。最后像素值被處理規(guī)則化,并連接成一個(gè)向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)得到輸出。簡(jiǎn)單來(lái)說(shuō),就是提取出了特征數(shù)據(jù),每個(gè)層有多個(gè)特征圖,每個(gè)特征圖通過(guò)一種卷積核提取輸入的一種特征,每個(gè)特征圖有多個(gè)神經(jīng)元。根據(jù)卷積核學(xué)習(xí)的特征產(chǎn)生特征映射,特征映射如圖2所示,找到第一次特征后,將第一層發(fā)現(xiàn)的特征作為第二層的輸入,做第二次的特征查找,把特征更抽象化。
圖1 卷積網(wǎng)絡(luò)基本構(gòu)型
圖2 特征映射
卷積層的輸入為前一層的局部區(qū)域,對(duì)輸入數(shù)據(jù)應(yīng)用若干卷積核加入偏差項(xiàng)進(jìn)行卷積操作,提取多種特征。每做一次卷積得到一個(gè)此層的特征圖(Feature Map),每個(gè)卷積核可提取一種特征,每個(gè)特征圖可能是與上層幾個(gè)特征圖連接形成的映射平面。卷積層計(jì)算公式可以表示為:
第l層的第j個(gè)映射平面表示為,Mj為感受區(qū)域即輸入的特征圖集合,卷積核的權(quán)值和偏置分別為w和b,激活函數(shù)為f。
池化層對(duì)輸入進(jìn)行抽樣,縮減輸入數(shù)據(jù)的規(guī)模,特征圖經(jīng)過(guò)池化后大小變化,特征圖個(gè)數(shù)不變,特征維數(shù)降低,計(jì)算量減少。確定池化區(qū)域的大小a×b,用區(qū)域內(nèi)的平均特征作為卷積特征,常見(jiàn)的方法是最大值合并、平均值合并和隨機(jī)合并。最后一個(gè)池化層通常連接到一個(gè)或多個(gè)全連接層,全連接層的輸出就是最終的輸出。池化層的計(jì)算公式可以表示為:
其中,down()為池化函數(shù),每個(gè)輸出特征圖都有自己的系數(shù)a和b。
學(xué)習(xí)算法對(duì)于卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)至關(guān)重要,卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)是指通過(guò)已有的數(shù)據(jù)訓(xùn)練出輸出層產(chǎn)生的超平面,完成分類任務(wù),將數(shù)據(jù)分成兩類。在學(xué)習(xí)的過(guò)程中,每一組不同的卷積核都對(duì)應(yīng)一個(gè)目標(biāo)模型,根據(jù)已有數(shù)據(jù)的輸入結(jié)果是否符合預(yù)期來(lái)判斷卷積核的準(zhǔn)確度,通過(guò)不斷的更新卷積核最終確定一組最優(yōu)的卷積核。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)采用誤差反傳算法,分為兩個(gè)階段進(jìn)行,一個(gè)階段是向前傳播計(jì)算出網(wǎng)絡(luò)的輸出,從樣本集中取一個(gè)樣本輸入網(wǎng)絡(luò),進(jìn)行卷積計(jì)算和池化計(jì)算,計(jì)算相應(yīng)的實(shí)際輸出。另一個(gè)階段是反向傳播,逐層遞推至各層計(jì)算權(quán)值誤差梯度,按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。理想輸出是指神經(jīng)網(wǎng)絡(luò)的輸出和訓(xùn)練樣本的標(biāo)準(zhǔn)值一樣,實(shí)際上不可能達(dá)到這么精確,只能希望實(shí)際輸出盡可能地接近理想輸出。計(jì)算實(shí)際輸出與相應(yīng)的理想輸出的差值用E(W)表示表示訓(xùn)練樣本為s的情況下第i個(gè)輸出單元的輸出結(jié)果。
梯度的方向就是對(duì)函數(shù)求偏導(dǎo)?E(W)。假設(shè)第k次更新后權(quán)重為,如果 ?E(W)≠0,則第k+1次更新權(quán)重如下:
式中η為卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率。當(dāng)?E(W)=0或者?E(W)<?時(shí)停止更新,?為允許的差值,將此時(shí)作為最終的卷積神經(jīng)網(wǎng)絡(luò)卷積核的權(quán)重。
粒子群優(yōu)化算法中,粒子群由m個(gè)粒子組成,在n維空間搜索,每個(gè)粒子的位置體表優(yōu)化問(wèn)題中的潛在解,粒子群優(yōu)化算法的數(shù)學(xué)描述為:在一個(gè)n維搜索空間中,包含m個(gè)微粒,種群x=(x1,x2,…,xm)T,第i個(gè)微粒在的n維搜索空間中的位置xi=(xi,1,xi,2,…,xi,n)T,第i個(gè)微粒當(dāng)前速度為vi=(vi,1,vi,2,…,vi,n)T。第i個(gè)微粒的個(gè)體極值即自身最優(yōu)歷史位置為pi=(pi,1,pi,2,…,pi,n)T,整個(gè)微粒群的全局極值即區(qū)域內(nèi)所有粒子最優(yōu)位置為pg=(pg,1,pg,2,…,pg,n)T,對(duì)于第k次迭代的第i個(gè)微粒其第d維更新自己的速度與位置如下式所示:
其中,ω為權(quán)重因子,使粒子有運(yùn)動(dòng)慣性,c1和c2為學(xué)習(xí)因子,c1調(diào)節(jié)粒子飛向自身的最好位置,c2調(diào)節(jié)粒子飛向全局最好位置,rand()為介于(0,1)的隨機(jī)數(shù),和分別為粒子i在第k次迭代中d維的速度和位置,為粒子i在d維的個(gè)別極值,為群體在d維的全局極值,為了將粒子的活動(dòng)范圍限定在搜索區(qū)域內(nèi),如果搜索空間限定在[-xmax,xmax],可設(shè)定vmax=kxmax,0≤k≤1。算法的流程圖如圖3所示。
圖3 粒子群算法流程圖
卷積神經(jīng)網(wǎng)絡(luò)模型的參數(shù)粒子化是指將卷積神經(jīng)網(wǎng)絡(luò)的卷積核的權(quán)值和閾值等參數(shù)進(jìn)行編碼,映射成為粒子群優(yōu)化算法中的粒子,可以將網(wǎng)絡(luò)的權(quán)值和閾值等參數(shù)看做是粒子的位置分量。設(shè)卷積神經(jīng)網(wǎng)絡(luò)的卷積核的個(gè)數(shù)為ni,全連接層的結(jié)點(diǎn)數(shù)為nj,則第i個(gè)粒子的位置所表示的網(wǎng)絡(luò)為:
其中,其中wni表示卷積層與池化層之間的卷積核的權(quán)值,unj
表示全連接與輸出層之間的連接權(quán)值,θni+nj表示閾值參數(shù)。每個(gè)粒子的位置唯一確定一個(gè)卷積神經(jīng)網(wǎng)絡(luò),粒子的進(jìn)化更新也應(yīng)是卷積神經(jīng)網(wǎng)絡(luò)的卷積核的學(xué)習(xí)。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法需要訓(xùn)練的參數(shù)數(shù)目多,不易學(xué)習(xí)到最優(yōu)值,還會(huì)出現(xiàn)參數(shù)彌散的問(wèn)題。粒子群優(yōu)化算法是一種全局優(yōu)化的算法,有收斂速度快,易于實(shí)現(xiàn)等優(yōu)點(diǎn),本文將粒子群算法應(yīng)用到神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,結(jié)合傳統(tǒng)的誤差反傳算法快速的局部搜索能力,發(fā)揮兩種算法的優(yōu)勢(shì),該算法的具體實(shí)驗(yàn)步驟如下:
(1)粒子群初始化,包括各個(gè)參數(shù):粒子群的規(guī)模N、粒子維數(shù)D、慣性權(quán)重ω、加速常數(shù)c1和c2、位置空間的最大值和最小值xmax和xmin等。設(shè)置粒子群優(yōu)化算法的最大迭代次數(shù)Tmax-pso,BP算法的最大迭代次數(shù)Tmax-bp,粒子群優(yōu)化算法的能量函數(shù)變化次數(shù)閾值Tpso,當(dāng)前進(jìn)化代數(shù)iter=1,能量函數(shù)變化次數(shù)flag=0。
(2)初始化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、設(shè)置傳遞函數(shù)、學(xué)習(xí)率、權(quán)值、閾值等參數(shù)并確定目標(biāo)函數(shù)。
(3)初始化各粒子位置,將卷積神經(jīng)網(wǎng)絡(luò)的卷積核的權(quán)值和閾值等進(jìn)行編碼作為粒子的位置。
(4)將樣本數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò),通過(guò)計(jì)算至輸出層,計(jì)算粒子當(dāng)前的適應(yīng)度函數(shù)的偏差值。
(5)每個(gè)粒子將當(dāng)前的適應(yīng)值與其個(gè)體歷史最好適應(yīng)值比較,若當(dāng)前適應(yīng)值更優(yōu),則令當(dāng)前粒子的適應(yīng)值為個(gè)體歷史最好適應(yīng)值,選擇當(dāng)前粒子的位置作為個(gè)體最好位置。
(6)比較群體所有粒子的當(dāng)前適應(yīng)值與全局的最好位置的適應(yīng)值比較,若當(dāng)前適應(yīng)值更優(yōu),則令當(dāng)前粒子的適應(yīng)值為全局歷史最好適應(yīng)值,選擇當(dāng)前粒子的位置作為全局最好位置,flag=0,否則flag=flag+1。
(7)如果flag>Tpso,則使用BP算法在全局最好位置附近進(jìn)行局部細(xì)致搜索。如果搜索結(jié)果優(yōu)于全局最優(yōu)位置,則用此搜索結(jié)果代替全局最好位置,否則,用搜索結(jié)果代替性能最差的個(gè)體,flag=0,iter=iter+1。如果flag<Tpso,iter=iter+1。
(8)根據(jù)粒子群優(yōu)化算法,更新粒子的速度、位置。
(9)判斷是否滿足終止條件,達(dá)到適應(yīng)度值要求或者是最大迭代次數(shù),iter>Tmax-pso,滿足終止條件則輸出優(yōu)化問(wèn)題的最優(yōu)解,否則到步驟(5)。
(10)整個(gè)算法結(jié)束,輸出全局最好位置為所求神經(jīng)網(wǎng)絡(luò)的卷積核等參數(shù)。
實(shí)驗(yàn)采用的數(shù)據(jù)集是網(wǎng)絡(luò)入侵檢測(cè)的常用數(shù)據(jù)集KDD CUP99,該數(shù)據(jù)集中總共包含大約500萬(wàn)條網(wǎng)絡(luò)連接記錄,本次模擬實(shí)驗(yàn)抽取10%的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),從訓(xùn)練數(shù)據(jù)集中隨機(jī)抽取5組不同樣本數(shù)量的數(shù)據(jù)作為訓(xùn)練集,按照同樣的比例抽取5組數(shù)據(jù)作為本實(shí)驗(yàn)的測(cè)試集。數(shù)據(jù)集中異常數(shù)據(jù)類型為:拒絕服務(wù)攻擊(DDoS)、來(lái)自遠(yuǎn)程主機(jī)的未授權(quán)訪問(wèn)(R2L)、為授權(quán)的本地超級(jí)用戶特權(quán)訪問(wèn)(U2R)、端口監(jiān)視或掃描(Probing)。
為了評(píng)估模型的準(zhǔn)確度,實(shí)驗(yàn)使用混淆矩陣、漏報(bào)率、平均漏報(bào)率和平均代價(jià)來(lái)進(jìn)行評(píng)估最終的檢測(cè)效果。不同的誤分類會(huì)有不同的后果,這里使用KDD CUP99公布的代價(jià)矩陣對(duì)誤分類進(jìn)行衡量。
(1)準(zhǔn)確率=預(yù)測(cè)值類型與實(shí)際類型相同的數(shù)量/預(yù)測(cè)為該類型的數(shù)量
(2)平均代價(jià)=種類被誤分的數(shù)量×誤分對(duì)應(yīng)的代價(jià)/測(cè)試樣本總數(shù)量
KDD CUP99數(shù)據(jù)集中,每條數(shù)據(jù)記錄除去最后一個(gè)標(biāo)簽外,都包含41個(gè)特征,其中38個(gè)是數(shù)值型特征另外3個(gè)是字符型特征。對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理要將字符型的特征映射為數(shù)值型的特征,并且將數(shù)值型特征進(jìn)一步處理,進(jìn)行數(shù)值規(guī)范化。對(duì)數(shù)據(jù)進(jìn)行預(yù)處理常常采用歸一化的方式,將數(shù)據(jù)集中所有的數(shù)據(jù)轉(zhuǎn)換成[0,1]之間的數(shù),取消各維度間數(shù)量級(jí)之間的差別,減少網(wǎng)絡(luò)預(yù)測(cè)產(chǎn)生的誤差。數(shù)據(jù)歸一化常用方法有兩種,一種是最大最小法,函數(shù)形式為:
其中,Xmin表示數(shù)據(jù)序列中的最小數(shù),Xmin表示數(shù)據(jù)序列中最大數(shù)。另一種是平均數(shù)方差法,函數(shù)形式為:
其中,Xmean表示數(shù)據(jù)序列中的均值,Xvar表示數(shù)據(jù)的方法。前41項(xiàng)數(shù)據(jù)特征可以被分為4大類:TCP連接基本特征、TCP連接的內(nèi)容特征、基于時(shí)間的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征和基于主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征。表1為各層參數(shù)的一個(gè)示范,在4大類數(shù)據(jù)類型中,每類型取出9個(gè)數(shù)據(jù),之后將這些數(shù)據(jù)矩陣化表示。
表1 實(shí)驗(yàn)各層參數(shù)示范
表2 仿真條件
將訓(xùn)練集中的數(shù)據(jù)輸入模型進(jìn)行多次訓(xùn)練并調(diào)整和優(yōu)化參數(shù),選取訓(xùn)練和測(cè)試中實(shí)驗(yàn)結(jié)果最好的參數(shù)及模型。表3顯示了訓(xùn)練次數(shù)與測(cè)試準(zhǔn)確率之間的關(guān)系,在一定的范圍內(nèi)訓(xùn)練次數(shù)增加,樣本測(cè)試的準(zhǔn)確率隨之提高,但經(jīng)過(guò)500次以上的訓(xùn)練后,平均準(zhǔn)確率沒(méi)有提升,出現(xiàn)了過(guò)擬合問(wèn)題,不能簡(jiǎn)單通過(guò)增加訓(xùn)練次數(shù)來(lái)提高準(zhǔn)確率。
表3 訓(xùn)練次數(shù)與準(zhǔn)確率的關(guān)系
為了測(cè)試模型的性能,將此模型決策樹(shù)模型、支持向量機(jī)模型、卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行以比較實(shí)驗(yàn),數(shù)據(jù)處理等步驟均同等操作,粒子群算法的仿真條件都保持一致,比較其對(duì)拒絕服務(wù)攻擊的識(shí)別率,實(shí)驗(yàn)結(jié)果比較如下表表4所示,從中可以看到,結(jié)合粒子群算法的卷積神經(jīng)網(wǎng)絡(luò)模型在KDD CUP99數(shù)據(jù)集上有較好的正確率,且算法在實(shí)驗(yàn)中有較快的訓(xùn)練和運(yùn)行速度。
表4 算法性能比較
綜合以上實(shí)驗(yàn)分析,結(jié)合粒子群算法和誤差反傳算法的神經(jīng)網(wǎng)絡(luò)模型對(duì)云環(huán)境中攻擊數(shù)據(jù)流的檢測(cè)具有可行性,對(duì)數(shù)據(jù)有良好的適應(yīng)性,對(duì)攻擊數(shù)據(jù)流有較好的識(shí)別效果。
為了適應(yīng)對(duì)云環(huán)境中拒絕服務(wù)攻擊數(shù)據(jù)流的檢測(cè),提高卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,本文提出了結(jié)合粒子群算法的卷積神經(jīng)網(wǎng)絡(luò)模型,該模型通過(guò)學(xué)習(xí)正常云環(huán)境中的數(shù)據(jù)流來(lái)訓(xùn)練模型,再用于拒絕服務(wù)攻擊數(shù)據(jù)流的檢測(cè)。實(shí)驗(yàn)結(jié)果表明,結(jié)合粒子群算法的卷積神經(jīng)網(wǎng)絡(luò)模型用于對(duì)拒絕服務(wù)攻擊數(shù)據(jù)流的檢測(cè)具有一定的可行性,并且識(shí)別準(zhǔn)確率和識(shí)別速度都優(yōu)于其他檢測(cè)方式。在未來(lái)進(jìn)一步的工作中,還需要對(duì)粒子群算法做出更多優(yōu)化,使之更加適用于云端的大數(shù)據(jù)流環(huán)境,卷積神經(jīng)網(wǎng)絡(luò)模型也可以進(jìn)行更多結(jié)構(gòu)的實(shí)驗(yàn)設(shè)計(jì)找出最佳模型,并且對(duì)云環(huán)境中的大規(guī)模數(shù)據(jù)進(jìn)行實(shí)時(shí)測(cè)試。