張海軍 陳映輝
1(嘉應(yīng)學(xué)院計算機(jī)學(xué)院 廣東 梅州 514015)2(嘉應(yīng)學(xué)院數(shù)學(xué)學(xué)院 廣東 梅州 514015)
隨著互聯(lián)網(wǎng)技術(shù)的大力發(fā)展以及網(wǎng)絡(luò)用戶的大量增加,產(chǎn)生了大量蘊(yùn)含較高價值的大數(shù)據(jù)。從服務(wù)器的交易系統(tǒng)和業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)到各個終端的數(shù)據(jù),如各種流水操作、網(wǎng)購記錄、網(wǎng)絡(luò)瀏覽歷史、播放的音視頻、微博數(shù)據(jù)、微信數(shù)據(jù)等,因而基于WEB應(yīng)用的攻擊逐漸成為主要攻擊,如跨站腳本攻擊(Cross-Site Scripting,XSS)[1-2],表現(xiàn)為:① 網(wǎng)絡(luò)釣魚,盜取用戶的賬號和密碼;② 盜取用戶Cookie數(shù)據(jù),獲取用戶隱私,或者利用用戶身份進(jìn)一步進(jìn)行操作;③ 劫持瀏覽器會話,從而冒充用戶執(zhí)行任意操作,如非法轉(zhuǎn)賬、強(qiáng)制發(fā)表博客;④ 強(qiáng)制彈出頁面廣告,刷流量;⑤ 進(jìn)行惡意操作,如纂改頁面信息、刪除文章、傳播跨站蠕蟲腳本、網(wǎng)掛木馬;⑥ 進(jìn)行基于大量的客戶端攻擊,如DDoS攻擊;⑦ 聯(lián)合其他漏洞,如CSRF漏洞;⑧ 進(jìn)一步滲透網(wǎng)站等。傳統(tǒng)的計算機(jī)病毒檢測方法主要是利用病毒特征庫中的已有特征,通過提取相應(yīng)樣本的特征,用病毒庫搜索比較是否存在相匹配的特征來確定病毒。這種方法主要是基于已知的病毒檢測,難以檢測新出現(xiàn)的病毒,特別是對于變形病毒更加無能為力,而且效率低,特別是對于大數(shù)據(jù)。當(dāng)前安全防護(hù)措施也已經(jīng)由過去的“80%防護(hù)+20%檢測及響應(yīng)”變成了“20%防護(hù)+80%檢測及響應(yīng)”。深度學(xué)習(xí)在語音、圖像、自然語言處理等方面都展現(xiàn)出了比傳統(tǒng)機(jī)器學(xué)習(xí)方法更強(qiáng)的學(xué)習(xí)能力,取得了非常好的效果,特別是對于大數(shù)據(jù)。為此,本文進(jìn)行類圖像處理面向大數(shù)據(jù)XSS入侵智能檢測研究。
Web異常檢測本質(zhì)上就是基于日志文本的分析,即對訪問流量語料庫進(jìn)行數(shù)值化的特征提取和分析,如:URL參數(shù)個數(shù)、均值和方差、字符分布和訪問頻率等。當(dāng)前基于安全防護(hù)的樣本數(shù)據(jù)比較缺乏,標(biāo)注好標(biāo)簽的樣本少之又少,因而需要進(jìn)行數(shù)據(jù)處理和建模,包括數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理(數(shù)據(jù)清洗、數(shù)據(jù)抽樣、特征提取)、數(shù)值分析、行為決策等。
在計算機(jī)里,任何信息都是以0和1二進(jìn)制序列表示,如所有的字符(包括字母、漢字、英語單詞等語言文字)都有一個編碼,而圖像也是以數(shù)字化信息表示。因而本文把大數(shù)據(jù)日志文本轉(zhuǎn)換成數(shù)值數(shù)據(jù)并以矩陣表示,從而利用圖像處理的方法進(jìn)行數(shù)據(jù)處理和分析。即將攻擊報文轉(zhuǎn)換成類似于圖像數(shù)據(jù)即像素的矩陣,也將字符串序列樣本轉(zhuǎn)換成具有相應(yīng)維度值的向量,如圖1所示,進(jìn)一步可求矩陣相關(guān)性、維數(shù)約減、聚類和主元素分析法PCA等運(yùn)算,然后利用人工智能方法進(jìn)行用戶行為分析、網(wǎng)絡(luò)流量分析和欺詐檢測等。

圖1 類圖像處理大數(shù)據(jù)日志文本向量化原理圖
用于實驗的數(shù)據(jù)包括兩類大數(shù)據(jù):① 正樣本大數(shù)據(jù)(帶有攻擊行為),利用爬蟲工具從網(wǎng)站http://xssed.com/爬取獲得,由Payload數(shù)據(jù)組成;② 負(fù)樣本大數(shù)據(jù)(正常網(wǎng)絡(luò)請求),為了體現(xiàn)特殊性和普遍性,共收集了兩份數(shù)據(jù),一份來自本單位網(wǎng)絡(luò)中心從去年5月份到12月份的訪問日志大數(shù)據(jù),另一份是從各網(wǎng)絡(luò)平臺通過網(wǎng)絡(luò)爬蟲獲得,它們都是未處理的語料大數(shù)據(jù)。
利用基于神經(jīng)網(wǎng)絡(luò)的詞向量化(Word2vec)[3-4]工具——連續(xù)詞袋模型(Continous Bag of Words Model,CBOW)實現(xiàn)大數(shù)據(jù)語料處理,進(jìn)行數(shù)據(jù)切割、分詞、詞向量化,把獨(dú)熱編碼(One-hot Encoded)的詞向量映射為分布式形式的詞向量,降低了維數(shù),減少了稀疏性,同時通過求向量間的歐氏距離或夾角余弦值可以得出任何詞間的關(guān)聯(lián)度。具體處理過程如下:
(1) 首先,遍歷數(shù)據(jù)集,把數(shù)字都用“0”替換,把http/、HTTP/、https/、HTTPS用“http://”替換;其次,按照html標(biāo)簽、JavaScript函數(shù)體、http://和參數(shù)規(guī)則進(jìn)行分詞;基于日記文檔構(gòu)建詞匯表,再對單詞進(jìn)行獨(dú)熱編碼。
(2) 構(gòu)建基于神經(jīng)網(wǎng)絡(luò)的詞向量化模型結(jié)構(gòu)[5-9],包括輸入層、投射層和輸出層,利用輸入樣本,訓(xùn)練模型,獲得分布式詞向量,相應(yīng)模型及訓(xùn)練過程如圖2所示。

圖2 CBOW模型及訓(xùn)練過程圖
(3) 統(tǒng)計正樣本詞集,用詞頻最高的3 000個詞構(gòu)成詞庫,其他標(biāo)記為“COM”,本文設(shè)定分布式特征向量為128維度,當(dāng)前詞與預(yù)測詞最大窗口距離為5,64個噪聲詞,進(jìn)行5次迭代。
因為每條數(shù)據(jù)所占字符長度各不相同,以所占字符長度最多為標(biāo)準(zhǔn),不足則以-1填充,在為數(shù)據(jù)集設(shè)計標(biāo)簽時,使用One-Hot編碼,正樣本標(biāo)簽即屬于攻擊樣本的以1表示,負(fù)樣本標(biāo)簽即正常網(wǎng)絡(luò)請求以0表示。
通過以上方法處理,共獲得正樣本數(shù)據(jù)集40 637條,負(fù)樣本數(shù)據(jù)集分別為105 912條和200 129條,它們數(shù)量大、計算復(fù)雜性高[10-13]。為了提高訓(xùn)練效果,將正樣本集和兩類負(fù)樣本集分別進(jìn)行合并,隨機(jī)劃分為訓(xùn)練集和測試集,數(shù)量比為7∶3。
利用CBOW實現(xiàn)詞向量,即已知上下文詞語預(yù)測當(dāng)前詞語出現(xiàn)的概率。為此,需要最大化對數(shù)似然函數(shù):

(1)
式中:w表示語料庫C中的詞,這可以看作多分類問題,而多分類是由二分類組合而成,因而可以使用Hierarchical Softmax方法。先計算w的條件概率,公式如下:
(2)

(3)
由于d只取0和1,所以式(3)可以以指數(shù)的形式表示:
(4)
將式(4)代入式(1)可得:

(5)
對式(5)中的每一項可以記為:
(6)

(7)
式中:σ(x)為sigmoid函數(shù)。所以σ′(x)=σ(x)[1-σ(x)],代入式(7)可得:
(8)

(9)

(10)
由于Xw是上下文的詞向量和,在處理時把整個更新值應(yīng)用到上下文每個單詞的詞向量上去:
(11)

基于上面的主要算法建立模型,把原始語料作為輸入,可以得到詞向量。
深度神經(jīng)網(wǎng)絡(luò)相對于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)或其他ML算法顯示出了優(yōu)異的性能,特別是對于大數(shù)據(jù),具有更高的識別率、更強(qiáng)魯棒性、更好的泛化性等優(yōu)點(diǎn)[14-22]。為此,設(shè)計深度神經(jīng)網(wǎng)絡(luò)算法來實現(xiàn)安全防護(hù)檢測,通過大數(shù)據(jù)訓(xùn)練模型。訓(xùn)練時的均方誤差可以表示為:
(12)


(13)
接下來可求l=nl-1,nl-2,…,2時,各個層的單元的殘差,如l=nl-1層的各單元的殘差為:

(14)
式中:W表示權(quán)值,b表示偏置,(x,y)表示訓(xùn)練樣本,hW,b(x)表示最后的輸出量,f(·)表示激活函數(shù)。將式中的nl-1與nl的關(guān)系替換為l與l+1的關(guān)系,就可以得到:
(15)
利用以上公式可以求出每個單元的殘差,從而進(jìn)一步求出基于權(quán)值等變量的偏導(dǎo)數(shù):
(16)
由此可以得到權(quán)值的改變過程:
(17)
偏置項的改變過程為:
(18)
由此可以實現(xiàn)DNN的學(xué)習(xí)和訓(xùn)練。
第2節(jié)實現(xiàn)了語料大數(shù)據(jù)的獲取、處理、建模、分詞和詞向量化處理。共獲得正樣本數(shù)據(jù)集40 637條,負(fù)樣本數(shù)據(jù)集分別為105 912條和200 129條,數(shù)量大、計算復(fù)雜性高。為了提高訓(xùn)練效果,將兩類負(fù)樣本集分別同正樣本集進(jìn)行合并,都以7∶3的比例隨機(jī)劃分為訓(xùn)練集和測試集,記為第Ⅰ和第Ⅱ大數(shù)據(jù)集。
基于DNN,分別構(gòu)建3、4、5、6、7層等深度,設(shè)計不同的超參數(shù),包括樣本塊大小、學(xué)習(xí)率以及各層包含的不同神經(jīng)元數(shù)等,利用詞向量大數(shù)據(jù)集樣本進(jìn)行訓(xùn)練和測試實驗。為了檢驗系統(tǒng)的穩(wěn)定性,對每類數(shù)據(jù)分別進(jìn)行了20次實驗,結(jié)果如下:
(1) 基于各深層DNN設(shè)計不同的超參數(shù),對第Ⅰ類大數(shù)據(jù)集進(jìn)行20次實驗得到的識別率如表1所示??梢钥闯?,最低識別率為0.983 9,最高識別率為0.995 5,識別率隨著訓(xùn)練次數(shù)的增加而增加,最后趨于穩(wěn)定。曲線展示如圖3所示。

表1 各深層DNNs對第Ⅰ類大數(shù)據(jù)集進(jìn)行20次實驗 得到的識別率

圖3 對第Ⅰ類大數(shù)據(jù)集進(jìn)行20次實驗時 得到的識別率曲線圖
(2) 基于各深層DNN設(shè)計不同的超參數(shù),對第Ⅱ類大數(shù)據(jù)集進(jìn)行20次實驗得到的識別率如表2所示??梢钥闯?,最低識別率為0.986 4,最高識別率為0.999 0,識別率隨著訓(xùn)練次數(shù)的增加而增加,最后也趨于穩(wěn)定。曲線展示如圖4所示。

表2 各深層DNNs對第Ⅱ類大數(shù)據(jù)集進(jìn)行20次 實驗時得到的識別率

圖4 對第Ⅱ類大數(shù)據(jù)集進(jìn)行20次實驗時 得到的識別率曲線圖
另外,通過實驗,得到各深層DNN對第Ⅰ類大數(shù)據(jù)集的平均識別率為99.44%左右,方差為0.000 002左右,標(biāo)準(zhǔn)差為0.001 589左右,如表3所示。

表3 各深層DNNs對第Ⅰ類大數(shù)據(jù)集進(jìn)行20次實驗時 得到的平均識別率、方差和標(biāo)準(zhǔn)差

續(xù)表3
同樣,通過實驗得到各深層DNN對第Ⅱ類大數(shù)據(jù)集的平均識別率為99.77%左右,方差為0.000 006左右,標(biāo)準(zhǔn)差為0.002 427左右,如表4所示。

表4 各深層DNNs對第Ⅱ類大數(shù)據(jù)集進(jìn)行20次實驗時 得到的平均識別率、方差和標(biāo)準(zhǔn)差
對于第Ⅰ和Ⅱ類大數(shù)據(jù)集的識別率均值條形圖展示如圖5所示,標(biāo)準(zhǔn)差條形圖展示如圖6所示。

圖5 對于第Ⅰ和Ⅱ類大數(shù)據(jù)集的識別率均值條形圖

圖6 對于第Ⅰ和Ⅱ類大數(shù)據(jù)集的標(biāo)準(zhǔn)差條形圖
為了描述系統(tǒng)的識別變化過程,得到識別率變化過程曲線如圖7所示,可以看出識別率隨著訓(xùn)練的進(jìn)行不斷增加并趨于穩(wěn)定。

圖7 識別率變化曲線圖
同樣,得到平均絕對誤差變化過程曲線,如圖8所示,可以看出隨著訓(xùn)練的進(jìn)行,平均絕度誤差不斷減小并趨于最小的穩(wěn)定值,這同圖7中的識別率的變化是一致的。

圖8 平均絕對誤差變化曲線圖
本文利用類圖像處理方法對訪問流量語料庫大數(shù)據(jù)進(jìn)行詞向量化處理,結(jié)合提出的智能算法實現(xiàn)了面向大數(shù)據(jù)XSS入侵智能檢測。首先,基于流量語料數(shù)據(jù)的非結(jié)構(gòu)化特點(diǎn),巧妙地利用類圖像處理方法進(jìn)行數(shù)據(jù)獲取、清洗、抽樣及特征提取等預(yù)處理;其次,設(shè)計基于神經(jīng)網(wǎng)絡(luò)的算法實現(xiàn)了語料大數(shù)據(jù)的詞向量化;然后,通過理論分析和驗證提出了多種不同的深層神經(jīng)網(wǎng)絡(luò)智能檢測算法;最后,進(jìn)行反復(fù)的實驗,設(shè)計不同的超參數(shù),取得了最大識別率、最低識別率、識別率均值、方差、標(biāo)準(zhǔn)差、識別率變化過程曲線圖和平均絕對誤差變化過程曲線圖等結(jié)果,證明了本文研究的類圖像處理面向大數(shù)據(jù)XSS入侵智能檢測系統(tǒng)具有識別率高,穩(wěn)定性好,總體性能優(yōu)良等優(yōu)點(diǎn)。為了更好地處理大數(shù)據(jù),未來將繼續(xù)探討基于云計算集群并行化的入侵智能檢測。