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

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

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

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

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

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

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

(9)

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

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


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

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

表1 各深層DNNs對第Ⅰ類大數據集進行20次實驗 得到的識別率

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

表2 各深層DNNs對第Ⅱ類大數據集進行20次 實驗時得到的識別率

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

表3 各深層DNNs對第Ⅰ類大數據集進行20次實驗時 得到的平均識別率、方差和標準差

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

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

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

圖6 對于第Ⅰ和Ⅱ類大數據集的標準差條形圖
為了描述系統的識別變化過程,得到識別率變化過程曲線如圖7所示,可以看出識別率隨著訓練的進行不斷增加并趨于穩定。

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

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