柯家龍 邢 欣 尹魏昕
國家互聯(lián)網(wǎng)應(yīng)急中心江蘇分中心
近年來,隨著互聯(lián)網(wǎng)的快速發(fā)展,不法分子利用網(wǎng)站(如博彩、色情、小游戲等網(wǎng)站)實(shí)施詐騙的案例越來越多。如何高效、精準(zhǔn)地識(shí)別出詐騙網(wǎng)站顯得尤為重要。
對(duì)詐騙網(wǎng)站生存、傳播、訪問等特征進(jìn)行研究后發(fā)現(xiàn),詐騙網(wǎng)站一般具有存活周期短、域名劫持和通過社交分享傳播三類特征。本研究結(jié)合詐騙網(wǎng)站上述特征,設(shè)計(jì)三種算法,分別從不同維度提取具有高度業(yè)務(wù)價(jià)值的網(wǎng)站域名數(shù)據(jù),而后利用詐騙網(wǎng)站在網(wǎng)頁結(jié)構(gòu)(快照)上的關(guān)鍵性相似特征,結(jié)合CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))算法,設(shè)計(jì)并實(shí)現(xiàn)了一套基于高價(jià)值域名數(shù)據(jù)的詐騙網(wǎng)站識(shí)別深度學(xué)習(xí)系統(tǒng)。
為實(shí)現(xiàn)高價(jià)值域名數(shù)據(jù)的提取和分析,以某單位互聯(lián)網(wǎng)出口流量為基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù),每日提取DNS域名訪問和http日志數(shù)據(jù)。
詐騙網(wǎng)站域名通常具有存活周期較短的特征,即其域名在連續(xù)活躍一周后,往往就會(huì)陷入沉寂狀態(tài),此時(shí)該域名已無活動(dòng)頁面或者已經(jīng)被注銷。故本研究利用詐騙網(wǎng)站域名存活周期較短的特征,自主設(shè)計(jì)出了一套“環(huán)比新增域名集提取算法”。其核心過程如下:
(1)每日統(tǒng)計(jì)域名正確解析次數(shù),提取解析次數(shù)超過100次的域名生成A1;
(2)每日域名數(shù)據(jù)A1與Alexa TOP 10000域名集合B1比對(duì),丟棄命中TOP 10000的域名數(shù)據(jù),形成集合A2;
(3)將A2與安全廠商提供的非涉詐網(wǎng)站白名單B2比對(duì),丟棄命中非涉詐網(wǎng)站白名單的域名數(shù)據(jù),形成集合A3;
(4)每周一的凌晨生成上周DNS域名數(shù)據(jù)的并集白名單B3;
(5)將A3與并集白名單B3進(jìn)行比對(duì),得出新增域名A4。
經(jīng)過上述4個(gè)過程,最終提取出環(huán)比新增域名數(shù)據(jù)集。
詐騙網(wǎng)站為逃避執(zhí)法機(jī)關(guān)的定位,通常并不具備獨(dú)立的SEO優(yōu)化和網(wǎng)絡(luò)推廣能力。因此,詐騙網(wǎng)站多是通過劫持行為以及廣告投放的方式進(jìn)行目標(biāo)受害者人群的篩選。進(jìn)一步分析得知,詐騙網(wǎng)站的HTTP請(qǐng)求信息往往會(huì)產(chǎn)生302臨時(shí)性重定向行為。本研究基于此特征,自主設(shè)計(jì)了一套基于HTTP 302重定向分析的“網(wǎng)頁跳轉(zhuǎn)域名集提取算法”。其核心過程如下:
(1)提取每日HTTP日志中狀態(tài)碼為302的域名數(shù)據(jù)集C1;
(2)302域名數(shù)據(jù)集C1與Alexa TOP 10000域名集合B1比對(duì),丟棄命中TOP 10000的域名數(shù)據(jù),形成集合C2;
(3)將C2與安全廠商提供的非涉詐網(wǎng)站白名單B2比對(duì),丟棄命中非涉詐網(wǎng)站白名單的域名數(shù)據(jù),形成集合C3;
(4)將C3與搜索引擎及導(dǎo)航網(wǎng)站白名單D1比對(duì),丟棄命中搜索引擎及導(dǎo)航網(wǎng)站白名單的域名數(shù)據(jù),形成集合C4;
(5)將C4中具有本站跳轉(zhuǎn)本站的正常重定向行為的數(shù)據(jù)丟棄,得出疑似域名劫持的涉詐網(wǎng)站域名集C5。
經(jīng)過上述5個(gè)過程,最終提取網(wǎng)頁跳轉(zhuǎn)域名數(shù)據(jù)集C5。
社交軟件分享也是詐騙網(wǎng)站傳播的主要方式之一。對(duì)某款常見社交軟件的流量進(jìn)行分析后發(fā)現(xiàn),所有通過該軟件分享并直接打開的網(wǎng)站請(qǐng)求行為,其HTTP報(bào)文的UserAgent內(nèi),都會(huì)攜帶有明確的特征。
圖1列出了Windows操作系統(tǒng)和IOS操作系統(tǒng)下,某社交軟件客戶端在訪問網(wǎng)站時(shí)其UserAgent中所攜帶的特征。通過大量的測試得出:去除小部分Windows Phone的機(jī)型外,其余操作系統(tǒng)和版本并不影響此特征。因此我們根據(jù)此特征,自主設(shè)計(jì)了一套“社交軟件分享域名集提取算法”。其核心過程如下:
圖1 某社交軟件客戶端訪問網(wǎng)站UserAgent特征
(1)提取每日HTTP日志的域名數(shù)據(jù)集E1,與Alexa TOP 10000域名集合B1比對(duì),丟棄命中TOP 10000的域名數(shù)據(jù),形成集合E2;
(2)將E2與安全廠商提供的非涉詐網(wǎng)站白名單B2比對(duì),丟棄命中非涉詐網(wǎng)站白名單的域名數(shù)據(jù),形成集合E3;
(3)對(duì)E3數(shù)據(jù),判別其UserAgent中是否包含某社交軟件客戶端特征,丟棄不含有此特征的數(shù)據(jù),形成集合E4。
經(jīng)過上述3個(gè)過程,最終提取出某社交軟件分享并直接訪問的域名數(shù)據(jù)集E4。此時(shí),CNN卷積神經(jīng)網(wǎng)絡(luò)應(yīng)運(yùn)而生。
1962年生物學(xué)家Hubel和Wiesel研究了貓的視覺皮層(VI區(qū)),發(fā)現(xiàn)視覺皮層細(xì)胞中有一系列復(fù)雜結(jié)構(gòu)。1984年日本學(xué)者K.Fukushima等人提出的神經(jīng)認(rèn)知機(jī),被認(rèn)為是CNN模型的一個(gè)早期網(wǎng)絡(luò)架構(gòu)。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的代表性算法之一,常被用于圖片處理,后來也被用于文本分類、句子分類、情感分析等方面。
為更精準(zhǔn)識(shí)別詐騙網(wǎng)站域名,需對(duì)高價(jià)值域名數(shù)據(jù)集進(jìn)行再次檢測。本研究利用詐騙網(wǎng)站在網(wǎng)頁結(jié)構(gòu)(快照)上的關(guān)鍵性相似特征,結(jié)合CNN卷積神經(jīng)網(wǎng)絡(luò),設(shè)計(jì)一套基于高價(jià)值域名數(shù)據(jù)的詐騙網(wǎng)站識(shí)別深度學(xué)習(xí)系統(tǒng)。
2.1.1 卷積神經(jīng)網(wǎng)絡(luò)簡介
在傳統(tǒng)機(jī)器學(xué)習(xí)中,圖片識(shí)別效率低下且準(zhǔn)確率不高。
2.1.2 卷積神經(jīng)網(wǎng)絡(luò)分類原理
卷積神經(jīng)網(wǎng)絡(luò)由輸入層、卷積層、激勵(lì)層、池化層、全連接層、輸出層組成。卷積神經(jīng)網(wǎng)絡(luò)通過多個(gè)被稱為卷積核的矩陣,對(duì)輸入矩陣進(jìn)行特征提取。卷積核每移位一次,就會(huì)對(duì)該部分區(qū)域和卷積核的權(quán)重系數(shù)矩陣做乘法并疊加偏差量,這就是卷積核在特定區(qū)域上的特征提取過程。起初,卷積核的參數(shù)是完全隨機(jī)的,隨著不斷地訓(xùn)練,通過反向傳播算法,這些參數(shù)也得到了逐步優(yōu)化。
卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中需要用到損失函數(shù)和優(yōu)化器。損失函數(shù)用于評(píng)價(jià)模型的預(yù)測值與真實(shí)值之間的差異程度,其值(非負(fù))越小越好。優(yōu)化器的作用是采用優(yōu)化算法更新網(wǎng)絡(luò)參數(shù),以最小化損失函數(shù),常用的優(yōu)化器有ADAM、SDG、Momentum等。為了生成最終輸出,還需要全連接層/輸出層來完成分類和結(jié)果輸出。
2.2.1 黑盒數(shù)據(jù)標(biāo)注
無論是傳統(tǒng)機(jī)器學(xué)習(xí)還是近幾年火熱的深度學(xué)習(xí),在模型訓(xùn)練中都需要大量標(biāo)注好的樣本數(shù)據(jù)。本研究借助外部廠商的詐騙網(wǎng)站檢測“黑盒系統(tǒng)”標(biāo)注深度學(xué)習(xí)的訓(xùn)練數(shù)據(jù),并配合人工復(fù)查,以此來快速獲取大量帶有標(biāo)簽且噪聲少的訓(xùn)練數(shù)據(jù)集。
2.2.2 卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)
模型的輸入數(shù)據(jù)是網(wǎng)站首頁截圖,圖片像素大小統(tǒng)一轉(zhuǎn)換為180×180,信道個(gè)數(shù)為3。卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置及計(jì)算過程如下:
(1)卷積層1:卷積核大小16×16,卷積核移動(dòng)步長3,填充方式為same padding,池化大小2×2,池化步長2,池化類型為最大池化,激活函數(shù)ReLU。
(2)卷積層2:卷積核大小32×32,卷積核移動(dòng)步長3,填充方式為same padding,池化大小2×2,池化步長2,池化類型為最大池化,激活函數(shù)ReLU。
圖2 CNN模型預(yù)測結(jié)果與詐騙網(wǎng)站檢測“黑盒系統(tǒng)”結(jié)果比對(duì)流程圖
(3)卷積層3:卷積核大小64×64,卷積核移動(dòng)步長3,填充方式為same padding,池化大小2×2,池化步長2,池化類型為最大池化,激活函數(shù)ReLU。
(4)全連接層:隱藏層單元數(shù)64,激活函數(shù)ReLU。
該模型是一個(gè)具有三層卷積層的神經(jīng)網(wǎng)絡(luò),能夠快速完成圖像特征提取。使用Adam梯度下降法進(jìn)行參數(shù)更新,并使用交叉熵(Cross Entropy)作為損失函數(shù),學(xué)習(xí)率設(shè)為固定值0.001。
2.2.3 模型訓(xùn)練比對(duì)
基于前文分析,利用標(biāo)注好的訓(xùn)練數(shù)據(jù)集,進(jìn)行CNN卷積神經(jīng)網(wǎng)絡(luò)的模型訓(xùn)練。在正式部署上線前,對(duì)模型預(yù)測結(jié)果和詐騙網(wǎng)站檢測“黑盒系統(tǒng)”結(jié)果進(jìn)行比對(duì)(如圖2所示),以檢測模型性能指標(biāo),并對(duì)精度不足的模型進(jìn)行再訓(xùn)練。
以某單位互聯(lián)網(wǎng)出口流量為基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)。在兩個(gè)月時(shí)間內(nèi),每日提取相關(guān)域名訪問和http日志數(shù)據(jù)并全量存儲(chǔ)至數(shù)據(jù)中心。另外,根據(jù)本研究設(shè)計(jì)的高價(jià)值域名數(shù)據(jù)提取算法,對(duì)每日域名訪問和http日志數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,形成高價(jià)值域名數(shù)據(jù)另行存儲(chǔ)。本次實(shí)驗(yàn)數(shù)據(jù)如下:
(1)普通組:在未經(jīng)高價(jià)值域名數(shù)據(jù)提取算法處理的全量域名數(shù)據(jù)中,隨機(jī)選擇5天,每天隨機(jī)提取域名數(shù)據(jù)量為1000個(gè),形成5個(gè)批次共計(jì)5000個(gè)樣本數(shù)據(jù)。
(2)高價(jià)值組:在高價(jià)值域名數(shù)據(jù)集中隨機(jī)選擇5天,每天隨機(jī)提取域名數(shù)據(jù)量為1000個(gè),形成5個(gè)批次共計(jì)5000個(gè)樣本數(shù)據(jù)。
(3)網(wǎng)絡(luò)模型測試集:在5000個(gè)高價(jià)值組域名數(shù)據(jù)集中,隨機(jī)抽樣75%用作網(wǎng)絡(luò)模型測試集,即訓(xùn)練數(shù)據(jù)。
(4)網(wǎng)絡(luò)模型驗(yàn)證集:將5000個(gè)高價(jià)值組域名數(shù)據(jù)集中除去測試集后剩余的25%用作網(wǎng)絡(luò)模型驗(yàn)證集。
3.2.1 高價(jià)值域名數(shù)據(jù)集分析
為驗(yàn)證本研究所設(shè)計(jì)的高價(jià)值域名數(shù)據(jù)提取算法的優(yōu)越性,設(shè)計(jì)如下比對(duì)實(shí)驗(yàn)。
(1)普通組實(shí)驗(yàn):將隨機(jī)提取的5個(gè)批次普通組域名樣本數(shù)據(jù)送至“黑盒系統(tǒng)”進(jìn)行標(biāo)注,并加以人工復(fù)核,從而得出普通組中的詐騙網(wǎng)站數(shù)量。
(2)高價(jià)值組實(shí)驗(yàn):將隨機(jī)提取的5個(gè)批次高價(jià)值組域名樣本數(shù)據(jù),送至“黑盒系統(tǒng)”進(jìn)行標(biāo)注,并加以人工復(fù)核,從而得出高價(jià)值組中的詐騙網(wǎng)站數(shù)量。
將普通組和高價(jià)值組進(jìn)行比對(duì),如表1所示。
表1 普通組和高價(jià)值組域名樣本比對(duì)實(shí)驗(yàn)結(jié)果
從表1普通組和高價(jià)值組比對(duì)實(shí)驗(yàn)結(jié)果可以看出:未經(jīng)過任何處理的普通組域名樣本中,詐騙網(wǎng)站平均占比為0.34%,而經(jīng)過高價(jià)值域名數(shù)據(jù)提取算法處理后的高價(jià)值組域名樣本中,詐騙網(wǎng)站平均占比為17.5%,高價(jià)值組詐騙網(wǎng)站占比約是普通組的51倍。本研究設(shè)計(jì)的三種高價(jià)值域名數(shù)據(jù)提取算法能有效提高集中發(fā)現(xiàn)詐騙網(wǎng)站域名的效率。
3.2.2 深度學(xué)習(xí)檢測結(jié)果分析
通過前述構(gòu)造的模型測試集和驗(yàn)證集,對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和驗(yàn)證。共執(zhí)行50個(gè)Epoch,分別記錄測試集和驗(yàn)證集的準(zhǔn)確率。
分析得出,在卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練20個(gè)Epoch時(shí),模型基本收斂,測試集上可以獲得穩(wěn)定且很高的準(zhǔn)確率,最終在驗(yàn)證集上的準(zhǔn)確率也能穩(wěn)定達(dá)到91%以上。從而可以得出結(jié)論:采用卷積神經(jīng)網(wǎng)絡(luò)算法進(jìn)行網(wǎng)頁結(jié)構(gòu)(快照)特征的二分類以實(shí)現(xiàn)詐騙網(wǎng)站識(shí)別檢測是可行的。
3.2.3 識(shí)別系統(tǒng)綜合結(jié)果分析
為綜合比對(duì)高價(jià)值域名數(shù)據(jù)集、CNN算法對(duì)本研究設(shè)計(jì)的檢測識(shí)別系統(tǒng)的準(zhǔn)確率影響,對(duì)普通組域名、高價(jià)值組域名、黑盒系統(tǒng)、CNN模型進(jìn)行了綜合比對(duì)分析,結(jié)果如表2所示。
表2 識(shí)別系統(tǒng)綜合分析結(jié)果
從表2四種不同組合模式所得出的詐騙網(wǎng)站檢測識(shí)別結(jié)果可以看出:基于高價(jià)值組域名和CNN的組合模式,可以得出更高的檢測準(zhǔn)確率。本研究設(shè)計(jì)的詐騙網(wǎng)站識(shí)別深度學(xué)習(xí)系統(tǒng),能夠有效提取高價(jià)值域名并提高檢測準(zhǔn)確率。
本研究根據(jù)詐騙網(wǎng)站普遍特征,設(shè)計(jì)了三類算法提取高價(jià)值域名數(shù)據(jù),并借助卷積神經(jīng)網(wǎng)絡(luò),基于詐騙網(wǎng)站網(wǎng)頁結(jié)構(gòu)(快照)特征,設(shè)計(jì)并實(shí)現(xiàn)了一套詐騙網(wǎng)站識(shí)別深度學(xué)習(xí)系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,本套系統(tǒng)能夠有效提高發(fā)現(xiàn)詐騙網(wǎng)站的能力,為詐騙網(wǎng)站檢測識(shí)別提供了一種新的思路。由于精力有限,本次研究未能引入更多特征檢測方法。后續(xù)可考慮結(jié)合URL文本、網(wǎng)頁源碼、網(wǎng)頁關(guān)鍵詞、Web請(qǐng)求參數(shù)等特征,開展多特征融合分析研究工作。