胡 強(qiáng),周杭霞,劉 倩
(中國(guó)計(jì)量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)
釣魚(yú)網(wǎng)站通過(guò)偽裝成正常合法的網(wǎng)站誘導(dǎo)用戶,從而獲取用戶的賬戶密碼等隱私信息,盜取用戶的錢(qián)財(cái)或個(gè)人信息。目前的釣魚(yú)網(wǎng)站檢測(cè)方法主要基于黑白名單、視覺(jué)相似性、機(jī)器學(xué)習(xí)三個(gè)方向?;诤诎酌麊芜^(guò)濾的釣魚(yú)檢測(cè)方法,作為各大瀏覽器最常用的檢測(cè)釣魚(yú)網(wǎng)站的技術(shù),其有效性取決于其大小、范圍、更新速度和頻率、準(zhǔn)確性以及其他特征[1],所以具有一定的滯后性?;诎酌麊蔚尼烎~(yú)檢測(cè)方法主要通過(guò)業(yè)務(wù)白名單動(dòng)態(tài)模型實(shí)現(xiàn)對(duì)未知釣魚(yú)威脅的主動(dòng)防御[2]。
基于顏色直方圖的小波哈希機(jī)制[3]和基于量化網(wǎng)頁(yè)元素對(duì)CSS元素的影響[4]是近幾年利用視覺(jué)相似性檢測(cè)釣魚(yú)網(wǎng)站使用較多的方法,Rao等[5]在此引入了Simhash和Perceptual hash兩種模糊相似性指標(biāo)來(lái)評(píng)估頁(yè)面與釣魚(yú)網(wǎng)站的相似性?;谝曈X(jué)相似性的檢測(cè)方法需要對(duì)網(wǎng)頁(yè)進(jìn)行大量的圖形分析,因此檢測(cè)的計(jì)算開(kāi)銷較大。
針對(duì)以上兩種方法的局限性,更多的釣魚(yú)網(wǎng)站檢測(cè)方法開(kāi)始使用機(jī)器學(xué)習(xí)算法。改進(jìn)的隨機(jī)森林算法[6]和在線序列極限學(xué)習(xí)機(jī)[7]均被證明可以有效的提高檢測(cè)釣魚(yú)網(wǎng)站的準(zhǔn)確率,但當(dāng)URL中特征噪聲較大時(shí),出現(xiàn)過(guò)擬合。卜佑軍等[8]使用CNN提取網(wǎng)站URL特征,并利用雙向LSTM算法分析其雙向長(zhǎng)距離依賴特征,避免了人工提取特征的局限性,但是只使用了網(wǎng)站的URL特征,沒(méi)有利用其HTML特征進(jìn)一步挖掘。Liu等[9]設(shè)計(jì)了一種CASE框架來(lái)構(gòu)建釣魚(yú)網(wǎng)站的特征空間,分多階段使用不同的機(jī)器學(xué)習(xí)算法來(lái)檢測(cè)釣魚(yú)網(wǎng)站,但由于使用了線性的多階段檢測(cè),大幅增加了釣魚(yú)網(wǎng)站的檢測(cè)時(shí)間。畢青松等[10]提出利用mRMR和RF算法對(duì)網(wǎng)站特征排序,并利用極端梯度提升(XGBoost)算法構(gòu)建釣魚(yú)網(wǎng)站檢測(cè)模型,取得較好的檢測(cè)結(jié)果。文獻(xiàn)[11]提出一種Nmap-RF集成學(xué)習(xí)的方法,結(jié)合規(guī)則匹配和隨機(jī)森林兩種算法分析網(wǎng)頁(yè)URL特征以檢測(cè)釣魚(yú)網(wǎng)站。以上兩種方法由于只是使用兩種算法簡(jiǎn)單疊加,并沒(méi)有發(fā)揮集成學(xué)習(xí)的真正優(yōu)勢(shì)。
本文設(shè)計(jì)了基于BERT提取的網(wǎng)站HTML字符串嵌入特征,結(jié)合URL字符串特征檢測(cè)釣魚(yú)網(wǎng)站。此外,我們使用從公開(kāi)的釣魚(yú)檢測(cè)網(wǎng)站Alexa和Phishtank獲取的數(shù)據(jù)集,結(jié)合DF、GBDT、XGBoost和LightGBM設(shè)計(jì)了一種Stacking算法來(lái)檢測(cè)釣魚(yú)網(wǎng)站。本文的主要貢獻(xiàn)主要有以下幾個(gè)方面。
1)從公開(kāi)數(shù)據(jù)集中篩選出兩個(gè)分別為5萬(wàn)級(jí)和10萬(wàn)級(jí)釣魚(yú)網(wǎng)站數(shù)據(jù)集,其中合法網(wǎng)站從Alexa網(wǎng)站收集,占數(shù)據(jù)集48%,非法釣魚(yú)網(wǎng)站從Phishtank網(wǎng)站收集,占數(shù)據(jù)集52%。
2)在特征提取方面,我們?cè)O(shè)計(jì)了一種基于BERT提取的網(wǎng)站HTML字符串嵌入特征來(lái)替換常用的HTML人工特征。
3)通過(guò)實(shí)驗(yàn)選取了四個(gè)分類器作為基學(xué)習(xí)器,設(shè)計(jì)了一種Stacking算法,并將DF、XGBoost和LightGBM作為Stacking的第一層,GBDT作為第二層。
1.1.1 提取HTML特征
考慮到人工提取HTML特征需要對(duì)HTML源碼進(jìn)行大量分析,并且特征需要不斷補(bǔ)充更新,我們提出一種使用BERT(Bidirectional Encoder Representations from Transformers)[12]提取HTML字符串嵌入特征的方法,將HTML文檔轉(zhuǎn)化為詞嵌入向量。
作為一種預(yù)訓(xùn)練的語(yǔ)言表征模型,與產(chǎn)生靜態(tài)詞向量的Word2Vec[13]不同,BERT通過(guò)雙向注意力機(jī)制可以學(xué)習(xí)上下文信息,使用Transformer提取特征[14]。通過(guò)訓(xùn)練BERT模型,我們可以得到它從HTML文檔中提取的字符串嵌入特征。具體來(lái)說(shuō),BERT會(huì)根據(jù)HTML文檔內(nèi)容的空間距離提取HTML字符串,將其映射到單詞文本來(lái)學(xué)習(xí)多維HTML字符串嵌入信息,最終得到一個(gè)多維向量來(lái)表示HTML文檔。
1.1.2 提取URL特征
對(duì)于網(wǎng)頁(yè)的URL特征,我們使用基于數(shù)學(xué)統(tǒng)計(jì)的計(jì)算詞頻和基于領(lǐng)域知識(shí)的人工選擇等方法進(jìn)行特征統(tǒng)計(jì),舍棄對(duì)于檢測(cè)釣魚(yú)網(wǎng)站不重要的特征,最終篩選出9維特征用于對(duì)分類器的訓(xùn)練。
1)IP地址。網(wǎng)絡(luò)釣魚(yú)網(wǎng)頁(yè)的域名有很大比例包含IP地址。本文用二值‘0’和‘1’表示URL的域名是否包含IP地址,例如‘1’表示URL包含IP地址。
2)URL長(zhǎng)度信息。長(zhǎng)度信息包括URL中的字符數(shù)及其域名。
3)可疑符號(hào)。釣魚(yú)網(wǎng)址通常會(huì)出現(xiàn)一些很少使用的符號(hào),包括‘@’和‘_’等等。本文用二值表示URL的域名是否包含特殊字符,‘1’表示URL包含特殊字符。
4)重定向。URL重定向跳轉(zhuǎn)中最常見(jiàn)的跳轉(zhuǎn)到登陸口、支付口。本文用二值表示URL的域名是否包含重定向,‘1’表示包含重定向。
5)相似的域名標(biāo)簽。釣魚(yú)網(wǎng)站通常會(huì)仿冒目標(biāo)網(wǎng)站的URL,以此來(lái)迷惑用戶。
6)URL的子域名數(shù)。通常合法網(wǎng)站的URL中只包含一個(gè)子域名。
7)URL的子域名長(zhǎng)度。類似整個(gè)URL長(zhǎng)度信息,子域名的長(zhǎng)度信息也同樣可以作為判別網(wǎng)站是否合法的有效特征。
8)活躍時(shí)間。釣魚(yú)網(wǎng)站的存活時(shí)間普遍很短,根據(jù)此可以用來(lái)訓(xùn)練模型。
9)域名中點(diǎn)的個(gè)數(shù)。網(wǎng)絡(luò)釣魚(yú)網(wǎng)頁(yè)傾向于在其URL中使用更多的‘.’。
Stacking是一種用于最小化一個(gè)或多個(gè)學(xué)習(xí)器的泛化誤差的方案[15],通過(guò)形成不同預(yù)測(cè)變量的線性組合以提高預(yù)測(cè)準(zhǔn)確性[16]。其基本思想是將模型分為一、二兩級(jí)學(xué)習(xí)器,使用原始數(shù)據(jù)集訓(xùn)練第一級(jí)學(xué)習(xí)器,將其輸出作為第二級(jí)學(xué)習(xí)器的輸入特征,并將原始對(duì)應(yīng)標(biāo)簽作為新標(biāo)簽,以此訓(xùn)練第二級(jí)學(xué)習(xí)器,并將得到的輸出結(jié)果作為最終的模型輸出,其算法過(guò)程如算法1所示。
算法1.Stacking過(guò)程輸入:訓(xùn)練集D={(x1,y1),(x2,y2),…,(xm,ym)}初級(jí)學(xué)習(xí)算法1,2,…,T次級(jí)學(xué)習(xí)算法過(guò)程:1:訓(xùn)練一級(jí)學(xué)習(xí)器2:FOR t=1,2,…,T DO3:ht=t(D)4:END FOR5:生成新的數(shù)據(jù)集6:D′=?7:FOR i=1,2,…,m DO8:FOR t=1,2,…,T DO9:zit=ht(xi)10:END FOR11:D′=D′∪((zi1,zi2,…,ziT),yi)12:END FOR13:在新的數(shù)據(jù)集D′上訓(xùn)練二級(jí)學(xué)習(xí)器h′=(D′)輸出:H(x)=h′(h1(x),h2(x),…,hT(x))
本文設(shè)計(jì)的Stacking算法由兩層組成,使用深度森林(Deep Forest, DF)[17]、極限梯度提升樹(shù)(Extreme Gradient Boosting, XGBoost)[18]和輕量級(jí)梯度提升機(jī)(Light Gradient Boosting Machine, LightGBM)[19]三個(gè)基學(xué)習(xí)器作為第一級(jí)學(xué)習(xí)器,使用梯度提升決策樹(shù)(Gradient Boosting Decision Tree, GBDT)[20]作為第二級(jí)學(xué)習(xí)器。同時(shí),為了增強(qiáng)模型的泛化性能,我們采用5-折交叉驗(yàn)證訓(xùn)練Stacking第一級(jí)學(xué)習(xí)器。
本文使用精確率(Accuracy,A)、查準(zhǔn)率(Precision,P)、召回率(Recall,R)和F1值(F-Measure)四個(gè)指標(biāo)[21]來(lái)評(píng)估此模型的性能,首先引入如表1所示的混淆矩陣。
表1 混淆矩陣Table 1 Confusion matrix
其中,TP表示預(yù)測(cè)的釣魚(yú)網(wǎng)頁(yè)實(shí)際為釣魚(yú)網(wǎng)頁(yè)的數(shù)量,FP表示預(yù)測(cè)的釣魚(yú)網(wǎng)頁(yè)實(shí)際為合法網(wǎng)頁(yè)的數(shù)量,TN表示預(yù)測(cè)的合法網(wǎng)頁(yè)實(shí)際為合法網(wǎng)頁(yè)的數(shù)量,FN表示預(yù)測(cè)的合法網(wǎng)頁(yè)實(shí)際為釣魚(yú)網(wǎng)頁(yè)的數(shù)量。各評(píng)價(jià)指標(biāo)的計(jì)算公式如下:
(1)
(2)
(3)
(4)
集成學(xué)習(xí)的模型效果通常要優(yōu)于使用單一模型[22],但是為了取得最優(yōu)的集成效果,我們需要對(duì)基學(xué)習(xí)器進(jìn)行篩選。在篩選兩兩組合模型時(shí),通常會(huì)使用Kappa統(tǒng)計(jì)量,其值越接近1,則所選組合模型越優(yōu),由于Kappa統(tǒng)計(jì)量與分類器的精確率和準(zhǔn)確率呈正相關(guān)[23],我們使用精確率來(lái)代替Kappa統(tǒng)計(jì)量。
我們從AdaBoost、k近鄰(k-Nearest Neighbors, KNN)、支持向量機(jī)(Support Vector Machine, SVM)、GBDT、LightGBM、XGBoost、DF中選擇Stacking第一級(jí)的基學(xué)習(xí)器,通過(guò)在本文收集的5萬(wàn)級(jí)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),得出如表2所示的結(jié)果。
表2 各基學(xué)習(xí)器在5萬(wàn)級(jí)數(shù)據(jù)集上精確率統(tǒng)計(jì)
由表2可以看出,DF、XGBoost、LightGBM三個(gè)基學(xué)習(xí)器的精確率相對(duì)較高,因此我們選擇此三個(gè)基學(xué)習(xí)器作為Stacking第一級(jí),選擇GBDT作為第二級(jí)。為進(jìn)一步說(shuō)明選擇三個(gè)基學(xué)習(xí)器的優(yōu)勢(shì),我們分別對(duì)其中不同的兩個(gè)基學(xué)習(xí)器進(jìn)行Stacking組合實(shí)驗(yàn),如表3。
表3 不同基學(xué)習(xí)器組成Stacking第一級(jí)精確率比較
由表3可以看出,使用三個(gè)基學(xué)習(xí)器作為Stacking第一級(jí)效果要優(yōu)于只使用其中兩個(gè)基學(xué)習(xí)器,因此我們最終選擇DF、XGBoost、LightGBM作為Stacking的第一級(jí)。
為證明我們提出的基于BERT提取的HTML字符串嵌入特征的有效性,我們首先使用XGBoost算法的特征排名功能對(duì)所有特征做重要性排名可視化,并且將1.1節(jié)中提取的特征依次簡(jiǎn)稱為F1-F10,其可視化結(jié)果如圖1。
圖1 特征重要性排名Figure 1 Ranking of feature importance
由圖1可以看出,基于BERT提取的HTML字符串嵌入特征在所有特征中重要性得分最高,而且超過(guò)排名第二的“URL長(zhǎng)度信息”兩倍,說(shuō)明在模型訓(xùn)練過(guò)程中,HTML字符串嵌入特征在判別網(wǎng)站類型時(shí)價(jià)值最高。
另外,我們對(duì)引入HTML字符串嵌入特征前后的模型性能進(jìn)行對(duì)比分析,在相同的數(shù)據(jù)集上分別進(jìn)行實(shí)驗(yàn),如表4。
表4 引入HTML字符串嵌入特征前后精確率比較
為證明本文提出的Stacking算法在釣魚(yú)網(wǎng)站檢測(cè)領(lǐng)域相較單個(gè)基學(xué)習(xí)器的優(yōu)越性,我們對(duì)2.2節(jié)中提到的基學(xué)習(xí)器以及本文提出的BERT-Stacking模型在相同數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)結(jié)果如表5。
表5 BERT-Stacking模型與單模型性能比較
由表5可以看出,本文提出的BERT-Stacking模型在精確率、查準(zhǔn)率、召回率、F1值四個(gè)指標(biāo)上均優(yōu)于單個(gè)基學(xué)習(xí)器。尤其值得注意的是,相較其Stacking第一級(jí)所用的DF、XGBoost、LightGBM三個(gè)基學(xué)習(xí)器,Stacking模型在四個(gè)指標(biāo)上均有三個(gè)百分點(diǎn)左右的提升,漏報(bào)率也大大降低。
為證明本文的模型相較其他檢測(cè)釣魚(yú)網(wǎng)站的機(jī)器學(xué)習(xí)模型也具有一定優(yōu)勢(shì),我們選取4種機(jī)器學(xué)習(xí)方法進(jìn)行實(shí)驗(yàn)比較,其中兩種為第2節(jié)中提到的文獻(xiàn)[8]的CNN-BiLSTM和文獻(xiàn)[11]的Nmap-RF。另外,我們選取了近兩年的兩種優(yōu)秀檢測(cè)算法:文獻(xiàn)[24]提出一種Texception架構(gòu)并使用FastText來(lái)構(gòu)建字符嵌入特征,并為單詞生成嵌入矢量,從而提高對(duì)特征的利用率;文獻(xiàn)[25]提出一種并行聯(lián)結(jié)神經(jīng)網(wǎng)絡(luò)(PNJ),通過(guò)提取URL的詞匯特征和字符特征,并轉(zhuǎn)換為詞嵌入向量和字符嵌入向量,結(jié)合膠囊網(wǎng)絡(luò)和獨(dú)立遞歸神經(jīng)網(wǎng)絡(luò)的并行聯(lián)結(jié)神經(jīng)網(wǎng)絡(luò)分析語(yǔ)義信息,以提高檢測(cè)準(zhǔn)確率。本文的BERT-Stacking算法與以上四種模型的對(duì)比實(shí)驗(yàn)結(jié)果如表6。
表6 BERT-stacking模型與其他模型性能比較
以上實(shí)驗(yàn)均在同一數(shù)據(jù)集上進(jìn)行,具有較好的可比性。由表6的實(shí)驗(yàn)結(jié)果可以看出,本文提出的BERT-Stacking在各指標(biāo)上均優(yōu)于其他模型,尤其是高于文獻(xiàn)[25]的提取URL字符串嵌入的方法,進(jìn)一步說(shuō)明了本文提出的基于BERT提取的HTML字符串嵌入特征的有效性和優(yōu)勢(shì)。
為進(jìn)一步證明本文提出的BERT-Stacking模型在大規(guī)模網(wǎng)站上的檢測(cè)性能,我們通過(guò)sklearn庫(kù)中的數(shù)據(jù)集分割功能,隨機(jī)的從本文使用的數(shù)據(jù)集Dataset-10中篩選出一個(gè)5萬(wàn)級(jí)的數(shù)據(jù)集Dataset-5。我們首先在Dataset-5的訓(xùn)練集上訓(xùn)練本文的模型,并在Dataset-5上驗(yàn)證其精度,另外,我們將Dataset-5的測(cè)試集與Dataset-10剩余的數(shù)據(jù)集合并,將其作為Dataset-10數(shù)據(jù)集的測(cè)試集,并在該測(cè)試集上驗(yàn)證模型精度,實(shí)驗(yàn)結(jié)果如表7。
表7 BERT-stacking模型在不同規(guī)模數(shù)據(jù)集的性能表現(xiàn)
由表7可以看出,模型在5萬(wàn)級(jí)數(shù)據(jù)集的測(cè)試集上已經(jīng)取得較好的檢測(cè)結(jié)果,當(dāng)測(cè)試集擴(kuò)大到10萬(wàn)級(jí)后依舊可以保持較高的檢測(cè)精度,說(shuō)明本文提出的模型具有較好的泛化能力,可以在大規(guī)模網(wǎng)站中檢測(cè)釣魚(yú)網(wǎng)站。
本文基于BERT設(shè)計(jì)了一種HTML字符串嵌入特征,將網(wǎng)站HTML文檔轉(zhuǎn)化為多維向量,并結(jié)合網(wǎng)站URL特征共同表征網(wǎng)站特征。另外,經(jīng)過(guò)實(shí)驗(yàn)篩選,將DF、XGBoost、LightGBM、GBDT通過(guò)集成學(xué)習(xí)組成一個(gè)Stacking模型,利用HTML字符串嵌入特征和URL特征深度挖掘網(wǎng)站特征從而檢測(cè)釣魚(yú)網(wǎng)站。實(shí)驗(yàn)結(jié)果顯示,本文提出的Stacking相較于單個(gè)基學(xué)習(xí)器在各指標(biāo)上均有明顯提升。另外,本文基于BERT本文設(shè)計(jì)的HTML字符串嵌入特征對(duì)于檢測(cè)釣魚(yú)網(wǎng)站具有很高的檢測(cè)精度。在未來(lái)的工作中,我們將使用相似的方法進(jìn)一步提取URL特征,進(jìn)一步優(yōu)化設(shè)計(jì)特征的流程。
中國(guó)計(jì)量大學(xué)學(xué)報(bào)2022年1期