沈伍強, 張金波, 許明杰, 楊春松
(1.廣東電網(wǎng)有限責任公司信息中心, 廣東, 廣州 510000;2.國電南瑞科技股份有限公司, 江蘇, 南京 210000)
電網(wǎng)的智能化建設(shè)依賴于高質(zhì)量軟件的運行,隨著電網(wǎng)Web應(yīng)用服務(wù)的不斷增加,維護網(wǎng)絡(luò)安全變得越來越重要。目前,良性與惡意URL混合以引起用戶混淆并實現(xiàn)對主機的入侵攻擊是最常見的攻擊方法之一,這種類型的攻擊利用瀏覽器及其插件的漏洞誘使用戶點擊惡意URL,使系統(tǒng)受到一定程度的傷害[1]。隨著電網(wǎng)信息化的發(fā)展,面對成千上萬個不同的惡意URL,用戶總是難以作出正確的判斷和決策,因此有效快速地識別這些惡意網(wǎng)站一直是電網(wǎng)安全領(lǐng)域的重要問題。
為了保護電網(wǎng)信息系統(tǒng)在線業(yè)務(wù)免受網(wǎng)絡(luò)釣魚攻擊,需要一種惡意URL檢測機制進而克服安全漏洞。為了更好地提取URL的隱藏信息,本文引入詞嵌入方法提取URL潛在的語義信息,同時將URL轉(zhuǎn)換為灰度圖像提取URL的視覺信息,由此提出一種基于注意力機制的神經(jīng)網(wǎng)絡(luò)聯(lián)合模型(BLCNA)。通過BiLSTM和CapsNet[2]同步提取URL的文本序列特征和視覺圖像特征并合并,同時使用注意力機制進一步關(guān)注有效特征,提高檢測的有效性。
在漏洞防御檢測方面,國內(nèi)外學者和專家進行了大量研究,為開發(fā)改進惡意URL檢測模型提供了基礎(chǔ),目前主要通過黑名單、機器學習、深度學習等方法對惡意URL進行檢測。基于黑名單的檢測方法[3-4]雖然簡單高效,但存在嚴重的局限性,如依賴于已知惡意URL、更新困難、對于新生成的惡意URL無法檢測等。為了解決這個問題,研究人員應(yīng)用了機器學習來檢測惡意URL,通過分析URL及其相關(guān)網(wǎng)頁信息提取特征,根據(jù)統(tǒng)計屬性學習預(yù)測模型,并將URL分類為惡意或良性[5-6]。LI等[7]提出了一種結(jié)合線性和非線性空間變換的URL識別檢測方法,結(jié)合支持向量機和神經(jīng)網(wǎng)絡(luò)提高URL識別和檢測的準確性。這幾種機器學習方法具有良好的檢測性能,但手動提取特征的方法在特征提取和選擇上會耗費大量時間,且提取的特征向量只能表達數(shù)據(jù)淺層特征。
近年來,基于深度學習的惡意URL檢測已成為一個新的研究方向。楊吉鵬等[8]結(jié)合Spark-ML和Conv-LSTM構(gòu)建了一種混合入侵檢測的平臺;WANG等[9]采用基于字符嵌入的詞嵌入方法作為向量嵌入的方式來改進深度卷積神經(jīng)網(wǎng)絡(luò),設(shè)計了惡意URL檢測系統(tǒng);田喬鑫等[10]基于文本語義信息提出了一種結(jié)合雙向循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的并行模型,可以有效進行分類??偟膩碚f,利用深度學習模型的惡意URL檢測技術(shù)通常會產(chǎn)生更好的結(jié)果。
本文提出一種基于BLCNA模型的惡意URL檢測方法。在該模型中,首先提取URL的語義信息和視覺信息,并通過BLCNA模型有效完成特征提取,其次利用注意力機制加強關(guān)鍵特征的權(quán)重,最后由Sigmoid分類器進行分類。模型的具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 基于BLCNA模型的惡意URL檢測
URL具有許多特征,當特征數(shù)量過多時會出現(xiàn)維度災(zāi)難和過擬合,當數(shù)量太少時,URL信息不能充分表達。為了提高惡意URL檢測能力,從電網(wǎng)不同類型應(yīng)用系統(tǒng)實際需求出發(fā),提取對惡意URL識別有用的語義信息和視覺信息。
語義特征。語義特征包括主機特征和詞匯特征,具體如表1所示。本文通過詞嵌入方法將URL編碼為二維張量映射到多維特征空間中。
表1 語義特征和含義
視覺特征。將惡意URL轉(zhuǎn)換為灰度圖像(見圖2)可以直觀地了解URL的空間格局和結(jié)構(gòu),也更容易識別同一家族生成的URL空間相似性。首先,將給定URL中的每個字符轉(zhuǎn)換為十進制整數(shù) (ASCII),以獲得表示惡意數(shù)據(jù)的新十進制向量,將其重新整形為二維矩陣并可視化為灰度圖像。因此,整個URL可以用灰度圖像表示,作為后續(xù)模型的有效輸入。
圖2 URL可視化過程
BLCNA模型共包含3個部分,即BiLSTM、CapsNet和Attention。將基于詞嵌入的向量序列作為BiLSTM的輸入,灰度圖像作為CapsNet的輸入。此外,將2個網(wǎng)絡(luò)的輸出特征融合后通過注意力機制增強有效特征的權(quán)重,最終使用Sigmoid分類器完成對惡意URL的分類。
2.2.1 BiLSTM網(wǎng)絡(luò)
LSTM是一種具有較長時間跨度記憶功能的神經(jīng)網(wǎng)絡(luò),其克服了RNN梯度消失的問題。LSTM結(jié)構(gòu)如圖3所示。
圖3 LSTM單元結(jié)構(gòu)
圖3中,Ii、Fi和Oi分別表示LSTM中的輸入門、遺忘門和輸出門。具體說明如下:
Ii=f(waIhi+ωbIyi-1+bI)
(1)
Fi=f(waFhi+ωbFyi-1+bF)
(2)
Oi=f(waohi+ωboyi-1+bo)
(3)
為了建立更準確的預(yù)測模型,本文采用BiLSTM網(wǎng)絡(luò)充當每個訓(xùn)練序列的前向和后向LSTM網(wǎng)絡(luò),并將2個LSTM網(wǎng)絡(luò)連接到同一個輸出層,為每個序列點提供完整的上下文信息。圖4為BiLSTM的結(jié)構(gòu)。
圖4 BiLSTM結(jié)構(gòu)圖
輸入S={s1,s2,…,st},其中st表示URL中第t個字符的嵌入向量。BiLSTM的隱藏層結(jié)果如下:
(4)
(5)
接著對正反向隱藏層狀態(tài)進行拼接得到最終的隱藏層狀態(tài)。
2.2.2 CapsNet網(wǎng)絡(luò)
CapsNet網(wǎng)絡(luò)(見圖5)使用向量膠囊替換CNN中的神經(jīng)元,動態(tài)路由替換池化操作,Sigmoid函數(shù)替換ReLU激活函數(shù)。去除CNN池化層造成的特征損失,充分利用各特征之間的空間關(guān)系,得到高層特征與低層特征的位置關(guān)系作為一種分類特征。
圖5 CapsNet網(wǎng)絡(luò)結(jié)構(gòu)
首先,使用一個簡單的卷積層對URL圖像進行處理:
mi=f(W1°Xl:l+k-1+b1)
(6)
Mk1=[m1,m2,…,m(L+N-1)]
(7)
其中,f表示ReLU激活函數(shù),W1∈RN×d表示卷積濾波器,b1表示偏差。
通過在圖像上滑動過濾器,將提取的局部特征拼接在一起形成特征圖,然后初級膠囊層將特征圖中相同位置的特征封裝到相應(yīng)的膠囊中:
pi=g(W2Mi+b2)
(8)
其中,W2∈Rk×1×l表示變換矩陣,其中k表示膠囊的維度。Mi表示特征圖的第i行向量,b2表示偏差,g表示Sigmoid函數(shù):
(9)
數(shù)字膠囊層是最后一層,每個膠囊通過式(10)獲得:
(10)
(11)
2.2.3 注意力機制
注意力機制的作用是對目標數(shù)據(jù)進行加權(quán),從眾多輸入信息中為當前任務(wù)目標選擇更關(guān)鍵的信息。惡意URL檢測精度對當前URL特征輸入的依賴程度越大,當前特征輸入的權(quán)重就越大。
使用注意力機制來融合網(wǎng)絡(luò)的輸出,有效提高了視覺和語義關(guān)鍵特征的表征能力。主要步驟如下:
對語義特征(S)和視覺特征(V)分配不同的注意力權(quán)重,如式(12)~式(14):
uSem,i=tanh(WSemSj+bSem)
(12)
uVis,i=tanh(WVisVj+bVis)
(13)
uCon=[uSem,uVis]
(14)
其中,WSem和Wvis表示權(quán)重參數(shù)矩陣,bSem和bVis表示偏差,ui表示第i個隱藏表示,“[]”表示串聯(lián)操作。
對注意力權(quán)重進行歸一化處理,得到特征的注意力分數(shù)ai,如式(15):
(15)
基于權(quán)重計算多模態(tài)向量的加權(quán)和,得到經(jīng)過注意力機制融合網(wǎng)絡(luò)輸出后的最終向量V,并作為最終分類的輸入:
(16)
接著通過Sigmoid函數(shù)計算每個標簽的類別概率:
(17)
最終,根據(jù)設(shè)置的閾值threshold執(zhí)行URL分類:
(18)
本文實驗均在Ubuntu 18.04環(huán)境中進行,使用Python 3.5.4和Keras 2.1.2神經(jīng)網(wǎng)絡(luò)庫構(gòu)建網(wǎng)絡(luò),以TensorFlow 2.0作為后端計算框架。本文從電網(wǎng)業(yè)務(wù)系統(tǒng)護網(wǎng)行動、github.com等開源網(wǎng)站中收集了大量URL實驗數(shù)據(jù)集來驗證模型的有效性和可行性,總共獲取了76 635個URL,其中,37 428個是良性的,39 207個是惡意的。
實驗均采用五折交叉驗證技術(shù),并以準確度(Acc)、精度(P)、召回率(R)和F1值等作為性能指標,其中,準確度(Acc)表示正確分類樣本在總樣本中的占比,精度(P)表示正確分類URL樣本的比例,召回率(R)表示正確預(yù)測樣本的比例,F1值表示基于精確度和召回率的綜合評價指標。
(19)
(20)
(21)
(22)
式(19)~式(22)中,TP表示正確分類為惡意的樣本數(shù),TN表示正確分類為良性的樣本數(shù),FP表示錯誤分類為惡意的樣本數(shù),FN表示錯誤分類為良性的樣本數(shù)。
3.3.1 驗證特征維度對實驗結(jié)果的影響
參數(shù)設(shè)置不僅影響特征的有效使用,還影響模型對惡意URL的檢測結(jié)果。因此,為了優(yōu)化實驗結(jié)果,在同一數(shù)據(jù)集下調(diào)整變量參數(shù),根據(jù)預(yù)測精度確定最優(yōu)參數(shù)。為避免其他因素對實驗結(jié)果的影響,每次實驗均在其他參數(shù)固定甚至最優(yōu)時進行。
為了確定特征向量的最佳維度,將視覺特征(紋理)和語義特征(字符、詞匯)的維度從低到高組合起來(見表2)進行實驗,實驗結(jié)果如圖6所示。由圖6可知,F1值在總維度為100和180時最高,且總維度為180時,召回率達到99.98%,優(yōu)于前者。綜合來看,維度180可以作為特征維度的最優(yōu)參數(shù)。
表2 特征維度組合
圖6 特征維度對實驗結(jié)果的影響
3.3.2 不同模型的比較實驗
為了驗證本文模型是否具有更好的識別和檢測能力,將其與不同的神經(jīng)網(wǎng)絡(luò)模型進行比較實驗,實驗結(jié)果如圖7所示。由圖7可知,本文方法的性能普遍優(yōu)于其他方法,其準確率可以達到99.79%。與CNN、LSTM、CapsNet和Bi-LSTM相比,本文結(jié)合URL的語義和視覺信息可以提高預(yù)測準確性,在識別具有復(fù)雜結(jié)構(gòu)的惡意URL方面性能更好,而CapsNet+BiLSTM模型,當特征被提取出來后,容易過濾掉一些關(guān)鍵特征信息,不利于節(jié)省模型的計算時間,因此本文引入了注意力機制,進一步加強了關(guān)鍵特征的權(quán)重。實驗結(jié)果表明,本文方法可以更好地提取URL的隱藏信息,相比其他方法更有利于未知惡意URL的識別。
圖7 基于不同模型的實驗結(jié)果
隨著電力信息化的發(fā)展,惡意URL的變異種類更加豐富,為了更好地適應(yīng)電力安全防御應(yīng)用場景的需求,本文結(jié)合BiLSTM、CapsNet和注意力機制來檢測惡意URL的可能性,同時通過實驗驗證了本文方法比其他方法具有更好的檢測效果。在未來的工作中,在有效保持檢測性能不變的前提下,根據(jù)URL惡意類型優(yōu)化模型結(jié)構(gòu)執(zhí)行多個分類是下一步研究的重點。