修位蓉,王歡歡,卞 琛
(1.廣州商學院 信息技術與工程學院,廣東 廣州 510700;2.新疆大學 軟件學院,新疆 烏魯木齊 830091;3.廣東金融學院 互聯網金融與信息工程學院,廣東 廣州 510521)
隨著惡意URL灰色產業的發展,惡意URL不僅在外觀上與良性URL極為相似,進入之后的所見內容也同樣難以分辨,而現有的惡意URL檢測方式大多是基于傳統、單一的算法模型,檢測效果欠佳,因此針對惡意URL檢測的研究顯得尤為迫切。
深度學習算法是機器學習算法領域中一個新興方向,在自然語言處理、數據挖掘、圖像處理、機器翻譯領域都取得了不錯的表現,同時也為惡意URL檢測研究注入了新的活力。本文基于深度學習算法提出CATBL并聯聯合算法,將主機信息特征、URL信息特征、紋理圖像特征進行特征融合,然后利用融合過后的特征使用CATBL并聯聯合算法進行惡意URL分析檢測。
針對惡意URL檢測相關研究,目前國內外的研究人員已經提出了多種檢測方法與檢測技術。如國外的Chaochao Luo等[1]使用自動編碼器表示URL,然后將表示的URL輸入到提議的復合神經網絡中進行檢測,為評估提議的系統,對HTTP CSIC2010數據集和收集的數據集進行了廣泛的實驗。N Vanitha等[2]通過使用機器學習算法(稱為邏輯回歸)自動對URL進行分類,該算法用于二進制分類,通過學習網絡釣魚URL,分類器可達到97%的準確性。N.B等[3]使用決策樹分類器對基于時間分割的數據分組具有更好的性能,準確度為88.5%,提出的框架可以實時收集數據并以分布式方式處理以提供態勢感知,通過向現有系統添加額外的資源,可以輕松地將建議的框架擴展為處理各種大量的網絡事件。Huaizhi Yan等[4]提出了一種使用堆疊去噪自動編碼器模型的深度學習方法,以學習和檢測內部惡意特征。Ripon Patgiri等[5]在文中將惡意URL檢測視為二進制分類問題,使用測試數據測試了幾種知名分類器的性能,并特別研究了隨機森林算法和支持向量機(SVM),這些具有很高精度的算法用于訓練數據集,以對好URL和壞URL進行分類。Baojiang Cui等[6]基于梯度學習的統計分析和使用S形閾值水平的特征提取相結合,提出了一種基于機器學習技術的新檢測方法,使用樸素的貝葉斯,決策樹和SVM分類器來驗證該方法的準確性和效率。
在國內,李敬濤等[7]對基于機器學習的JavaScript惡意腳本檢測方案進行了改進,所設計的檢測改進方案能夠對JavaScript腳本及包含惡意腳本的HTML頁面進行高效準確的檢測。李艷等[8]利用信息論測度知識來檢測JavaScript混淆代碼,能夠捕獲基于統計特征檢測器的逃逸攻擊,并對混淆代碼進行反混淆,最后利用機器學習知識來檢測JavaScript惡意代碼。左雯等[9]設計了基于關鍵字的用于惡意URL檢測的神經網絡模型;該模型用卷積神經網絡進行URL的特征抽取,使用GRU進行時間維度上的特征捕獲,并實現了一套用于惡意URL的可視化檢測系統。吳海濱等[10]提出基于上下文信息的惡意URL檢測方法,該檢測方法利用預處理方法解決URL中存在大量的隨機字符組成單詞的問題,使用特殊符號作為分隔符對URL分詞,對得到的分詞結果使用Word2vec生成詞向量空間,訓練卷積神經網絡提取文本特征并分類。
以往的惡意URL檢測大多基于黑名單技術[11,12]、信譽系統[13]、主機特征[14,15]、詞匯特征、蜜罐技術[16]、入侵檢測技術[17]。本文提出一種基于CATBL的惡意URL檢測算法。
本文的主要貢獻如下:
(1)提取主機信息特征、URL信息特征,并且利用圖像處理相關技術提取出紋理圖像特征,之后將篩選后的紋理圖像特征、URL信息特征、主機信息特征進行了有效特征融合,并且使用并聯聯合CATBL算法模型進行檢測。
(2)利用CNN提取深層次局部特征,Attention機制調整權重,注意力機制與CNN算法進行并聯處理得到更加有效的特征信息,然后雙向LSTM提取全局特征,與注意力機制和CNN的并聯聯合算法模型進行并聯處理得到全面的特征信息,將并聯聯合CATBL算法用于惡意URL分析與檢測。
在檢測研究中提取的特征對于惡意URL的檢測結果有著至關重要的影響,提取有效的特征對于惡意URL檢測研究也是非常重要的。因此,本文不僅提取主機信息特征、URL信息特征,還將在圖像處理相關技術學習基礎上提取的紋理圖像特征用于惡意URL檢測。
2.1.1 主機信息特征
主機信息能夠從主機名的屬性中獲得,其中可以獲得主機的多種相關信息,深入URL數據的主機內部獲得信息,能夠提高特征的有效性,有利于惡意URL檢測的相關研究,通過學習主機信息特征能夠獲得主機時間、身份、主機位置等相關信息,此處提取獲得的主機信息包括百度反鏈、百度安全、百度是否收錄、百度權重、360是否收錄、百度1天反鏈、百度7天反鏈、百度1天收錄、百度7天收錄等等多種信息,用于惡意URL檢測以提高檢測結果。本研究借助主機信息采集網站人工提取得到了20種主機信息特征,進行篩選、過濾之后得到數據的15種主機信息組成為本文的主機信息特征。
2.1.2 URL信息特征
由于原始的URL數據是字符串,通過對機器學習的學習可以理解其是不可行的,因此必須將數據進行處理以得到有效的信息,此特征是從URL數據本身得到的,故此類信息稱之為URL信息特征。此處提取獲得的URL信息特征包括URL長度、其它字符的個數、首個小數點的位置、大寫字母的個數、最長字符的個數、頂級域名是否為五大域名、分隔符之間字符的最大長度、小寫字母的個數、URL中總數字個數、是不是IP地址等等多種信息,用于惡意URL檢測以提高檢測結果。本研究使用Java代碼提取出21種數據本身共性較大的信息,進行篩選、過濾之后得到URL信息特征。
2.1.3 紋理圖像特征
如圖1所示,基于圖像處理的相關技術,由于惡意URL在紋理上的相似性,將圖像處理技術用于URL特征提取,惡意URL被映射到未壓縮的灰度圖片上[18,19]。在獲得的URL數據的二進制字符基礎上,把8位無符號整數范圍內的二維空間域紋理圖像特征轉換為與灰度圖像灰度值范圍相對應,以得到紋理圖像特征用于惡意URL檢測以提高檢測結果。

圖1 紋理圖像特征分析
將已有特征進行融合是為了提高特征在URL的檢測實驗中的效果,充分挖掘各類特征的隱藏信息,有助于得到更好的檢測,此處將主機信息特征、紋理圖像特征、URL信息特征進行了充分的融合[20],其偽代碼見表1。

表1 特征融合
在表1中,SL是將數據進行標注自動生成的label文件,SF1是將主機信息特征進行輸入,SF2是將URL信息特征進行輸入,S是將主機信息特征與URL信息特征進行訓練、融合得到S塊特征,SF3是將紋理圖像特征進行輸入,S是將S塊特征與紋理圖像特征進行訓練、融合得到新的S塊特征,在subtrain.drop代碼中是將label文件與S塊特征進行學習、訓練,在subtrain代碼中是將得到惡意URL進行分析與檢測結果。
深度學習算法已經在圖像處理、自然語言處理、語音識別等領域取得成效,同時也為惡意URL檢測研究帶來了新的希望。在深度學習的算法模型中,卷積神經網絡(convolutional neural network,CNN)是一種專門用來處理具有類似網絡結構的且由卷積層、池化層、全連接層組成的神經網絡。其中,卷積層與池化層將要組成多個卷積組,并且逐層進行提取特征,然后利用多個全連接層完成分類。但是卷積神經網絡中輸入的關聯性較差,輸出的也相對獨立,存在一定的弊端,Attention對于彌補這個弊端具有一定的成效,注意力機制借助人類的思維模式,關注焦點,考慮上下文存在的關系,建模長距離能力強大,具有提取語義特征的能力,增強其關聯性,因此考慮將卷積神經網絡與Attention機制進行結合。長短時記憶(long short-term memory,LSTM)[21]是基于循環神經網絡(recurrent neural network,RNN)改進的,循環神經網絡具有強大的連接能力,獲取時間動態的能力以及學習上下文相關信息的能力,但存在梯度爆炸或者消失問題,LSTM可以解決簡單循環神經網絡存在的此類問題。LSTM利用引入輸入門(input gates)、遺忘門(forget gates)和輸出門(output gates)以控制信息傳遞,有利于解決長期依賴弊端。
因此,CATBL并聯聯合算法模型首先將卷積神經網絡與注意力機制進行并聯聯合處理得到CAT并聯聯合算法模型,然后將CAT并聯聯合算法模型與Bi-LSTM算法再次進行并聯聯合處理,稱之為CATBL算法。卷積神經網絡由卷積層、池化層和全連接層組成,其中池化層不僅可以縮小輸入矩陣的尺寸,加快計算速度,有效防止過擬合并降低特征維度;卷積層與池化層將要組成多個卷積組,逐層進行提取特征;最后通過構建多個全連接層完成最終分類。CATBL算法的輸入層為M∈{(x1,y1),(x2,y2)…(xn,yn)}, (x1,x2…xn) 用于表示輸入的特征,yn∈(1,0) 表示URL的label,卷積層的計算公式為
(1)
其中,l表示層數,Mj為一個輸入特征,T為某一神經元,C為偏移向量。
池化層不僅可以縮小輸入矩陣的尺寸,并且可以加快計算速度,而且可以有效的防止過擬合,并降低特征維度。池化層的計算公式為
(2)
其中,l表示層數,Mj為一個輸入特征,T為某一神經元,C為偏移向量,m表示池化層窗口大小。
但是CNN中輸入的關聯性較差,輸出的也相對獨立,對于滋生快速且變化種類多樣的惡意URL,不能達到很好的識別和分類效果,缺乏檢測新生成的惡意URL的能力,惡意URL檢測的普遍性較差。然而,Attention對于彌補這個弊端具有一定的成效,注意力機制借助人類的思維模式,關注焦點,弱化無用信息的注意力,考慮上下文存在的關系,建模長距離能力強大,具有提取語義特征的能力,增強其關聯性,因此將CNN與Attention機制在此處進行了并聯聯合算法的處理以期望算法模型能夠優劣互補。首先,我們從輸入層輸入兩層特征M∈{(x1,y1),(x2,y2)…(xn,yn)}, 且 (x1,x2…xn) 表示輸入的特征,yn∈(1,0) 表示URL的label,且注意力計算權重的公式為
(3)
其中,Wi表示計算得到的注意力權重,Mi表示特征輸入,同時對T進行了注意力加權,輸出特征S的計算公式為
(4)
長短時記憶能夠獲取時間動態并學習上下文相關信息,能夠有效解決長期依賴的弊端,并能防止循環神經網絡的梯度爆炸或消失問題,因此將其并聯得到CATBL聯合算法。
LSTM的結構圖如圖2所示。

圖2 LSTM結構
在時間t的LSTM更新公式如下
it=σ(wiht-1+uixt+bi)
(5)
ft=σ(wfht-1+ufxt+bf)
(6)
(7)
(8)
ot=σ(woht-1+uoxt+bo)
(9)
ht=otΘtanh(ct)
(10)
其中,σ是非線性sigmoid函數,Θ是兩個向量間的點乘操作。xt是時間t處的輸入矢量,ht是存儲時間t處的所有有用信息的隱藏狀態矢量。ui,uf,uc,uo表示輸入xt的不同門的權重矩陣,wi,wf,wc,wo是隱藏狀態ht的權重矩陣。bi,bf,bc,bo表示偏向量。
LSTM在學習上下文相關信息的能力方面只能學習到上文信息,無法完成下文信息的學習,對未來的信息是無法進行預測的。但是Bi-LSTM通過增加一層反向的LSTM解決了這個問題,在t(t=1,2,3,…,n) 時刻的輸出為
Ht=hbt+hft
(11)
其中,Ht是Bi-LSTM模型在t時刻的輸出,hbt是前向LSTM在t時刻的輸出,hft是后向LSTM在t時刻的輸出。
綜上所述,Bi-LSTM的基本結構如圖3所示。圖3中 {M1…Mn}, {Mn…Mt} 為前向LSTM模型輸入, {Ma…Ms}, {Ms…Mi} 為后向LSTM模型輸入, {H1…Hn}, {Hn…Ht}, {Ha…Hs}, {Hs…Hi} 為Bi-LSTM算法在t時刻的輸出。

圖3 Bi-LSTM結構
基于以上分析,設計CATBL并聯聯合算法,其模型結構如圖4所示。圖4展示將融合后的特征作為輸入層的特征分別輸入到CNN、注意力機制和Bi-LSTM算法,將CNN與注意力機制進行并聯聯合處理后得到新的全局特征,此時輸入層特征經過Bi-LSTM算法訓練學習后得到新的信息,再與CNN_Att算法進行并聯聯合處理得到深層次局部特征從而獲得更加全面的數據特征信息,最后softmax分類器進行分類并得到惡意URL檢測結果。

圖4 CATBL結構
本實驗的數據是基于公開數據集PhishTank與爬蟲抓取的良性URL組成的兩萬條URL數據集。在組成數據集之前,我們將從PhishTank上下載得到的惡意URL與爬蟲得到的良性URL進行了簡單的去重、降噪等處理之后得到了一萬條數據,其中有效惡意URL和良性URL均保留一萬條,其后將數據進行標注自動生成label文件,同時,在此數據集上進行特征提取。
算法的實驗環境配置見表2。

表2 實驗環境的設置
算法模型參數的設置對于惡意URL檢測的結果起著至關重要的作用,前期工作在大量的實驗基礎上得到實驗最優參數的設置,表3展示了迭代次數(ep)、批處理量(batch_size)、卷積核的個數(filters)、卷積核的大小(filters_size)以及測試集的劃分(test_size)等重要參數信息,3.4節將對批處理量等最優參數的獲取過程進行詳細說明。

表3 最優參數的設置
本節將從批處理量參數對檢測結果的有效性、紋理圖像特征對檢測結果的有效性、URL詞向量特征對檢測結果的有效性與CATBL串聯聯合算法及其它機器學習算法的檢
測結果進行對比以進行本文的檢測結果分析。
3.4.1 批處理量參數對檢測結果的有效性
實驗首先測試批處理量可變參數,為使檢測效果達到最優,實驗在同一數據集不同數據量條件下進行對比,通過多次測試以得到最優參數配置,實驗結果如圖5所示。

圖5 批處理量參數測試
由圖5中的多組檢測結果可以看到,在不同的數據量下批處理量參數不同時,獲得的檢測結果有一個共同點,即是當批處理量參數為84時檢測結果最高,由此可以得到批處理量參數為84時為該參數的最優配置。
3.4.2 紋理圖像特征對檢測結果的有效性
算法在不同的數據量下進行了添加或刪除紋理圖像特征的方式進行檢測實驗,以得到的惡意URL檢測的準確度來說明紋理圖像特征的有效性。
從圖6可以看出,當無紋理圖像特征時,得到的最高檢測結果為97.8%,而添加紋理圖像特征之后,得到的最高檢測結果為98.8%,且在不同的數據量下都具有更優的檢測結果,所以可以得知紋理圖像特征對于惡意URL檢測的結果有著非常重要的影響。

圖6 紋理圖像特征對檢測結果的有效性
3.4.3 URL信息特征對檢測結果的有效性
此節在不同的數據量下進行了添加或刪除URL信息特征的方式進行檢測實驗,得到惡意URL檢測的準確度以說明URL信息特征的有效性。
從圖7可以看到,當無URL信息特征時,得到的最高檢測結果為96.6%,而添加URL信息特征之后,得到的最高檢測結果為98.8%,且在不同的數據量下都具有更優的檢測結果,所以可以得知URL信息特征對于惡意URL檢測結果有非常重要的影響。

圖7 URL信息特征對檢測結果的有效性
3.4.4 與CATBL串聯聯合算法對比
在當今的惡意URL檢測大多是基于傳統的機器學習算法,同時又出現了基于串聯聯合算法的檢測,并且相對于傳統的機器學習算法在惡意URL檢測方面具有顯著的提高,而串聯聯合算法無法學習得到全面特征,故本節我們將提出的CATBL并聯聯合算法與CATBL串聯聯合算法進行對比。
從圖8可以看出,在不同的數據量下,CATBL并聯聯合算法在惡意URL檢測結果均高于CATBL串聯聯合算法檢測結果,在保證同樣的實驗環境與算法參數的情況下,CATBL串聯聯合算法得到的惡意URL檢測的結果最高為98.08%,而CATBL并聯聯合算法得到的檢測結果為98.8%,由此可以看出,CATBL并聯聯合算法提高了CATBL串聯聯合算法在惡意URL檢測的結果。

圖8 CATBL串聯與并聯算法對比
3.4.5 其它機器學習算法的檢測結果
在本節,同單一機器學習算法KNN、高斯貝葉斯、深度學習模型CNN、Attention、Bi-LSTM進行對比以驗證提出CATBL并聯聯合算法在惡意URL檢測方面的有效性,其檢測結果對比見表4。

表4 同其它模型對比/%
由表4可以看出,KNN算法得到的最高檢測結果為84.35%,高斯貝葉斯得到的最高檢測結果為96.83%,CNN算法得到的最高檢測結果為97.9%,Attention算法得到的最高檢測結果為96.36%,Bi-LSTM算法得到的最高檢測結果為97.44%,而CATBL并聯聯合算法得到的最高檢測結果為98.8%,且在不同的數據量下,本文提出的CATBL并聯聯合算法的檢測結果均比KNN模型、高斯貝葉斯算法、CNN算法、Attention與Bi-LSTM算法在惡意URL檢測結果高,且有了明顯的升高。故可以說明,CATBL并聯聯合算法提高了惡意URL檢測的結果。
本文提出了一種CATBL并聯聯合算法,提取了主機信息特征、URL信息特征與紋理圖像特征用于惡意URL檢測,通過從批處理量參數測試、紋理圖像特征測試、URL詞向量特征測試以及與其它機器學習算法的對比實驗進行算法有效性驗證,檢測結果表明:通過融合主機信息特征、URL信息特征與紋理圖像特征訓練的CATBL并聯聯合算法的惡意URL檢測準確率達到了98.8%,與傳統的檢測方式相比有了較為明顯的提升。