汪俊明 俞詩博 李素云



摘要:違法URL是網絡違法犯罪傳播的方式之一,當前,依托互聯網進行的詐騙、賭博等違法行為日益猖獗,上當受騙者眾多,嚴重危害人民群眾財產安全和正常生活秩序。針對上述問題,該實驗利用深度學習方法,挖掘歷史違法URL數據特征,建立違法URL快速識別模型,為打擊網絡犯罪提供支撐。
關鍵詞:深度學習;神經網絡;惡意URL
中圖分類號:TP183? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)11-0181-03
近年來,隨著移動網絡應用的蓬勃發展,依托互聯網進行的違法行為日益猖獗,通過App、網站進行的網絡犯罪現象持續高發,雖然經過公安、電信、銀行、互聯網企業等單位的多方努力,進行了大量宣傳、采取各種防范措施,但上當受騙者仍不在少數,嚴重危害人民群眾財產安全,擾亂正常生產生活秩序,已成為影響社會穩定的突出問題。特別是網絡詐騙,具有方式多樣、手段翻新快、隱匿性強、技術化程度高、目標針對性廣等特點,大量詐騙通過短信和通聯應用向不特定對象傳播、發送惡意URL,誘使當事人訪問違法頁面,進而落入各種詐騙陷阱。因此,及時準確識別違法URL,采取有效措施預先防范潛在違法行為,是構建網絡安全防護體系的重要環節。
本文提出了一種基于字符卷積神經網絡(Char-CNN)的違法URL識別算法[1],在第一節中,我們介紹當前識別違法URL的主流技術手段;第二節中,我們對本文提出的違法URL識別算法進行了詳細介紹,第三節報告該算法在真實數據上的實驗結果,最后對算法的應用進行了總結。
1 相關技術
1.1 啟發式學習
針對違法URL的識別,黑名單是使用時間最久且目前仍然廣泛使用的技術。使用黑名單作為違法URL的判別標準具有明顯的優勢和劣勢,一方面,由于黑名單數據均經過人工確認,正確率高;另一方面,違法URL活躍時間較短,歷史積累的黑名單數據隨著時間推移會逐漸失效,基于人工舉報、標記的黑名單數據更新速度遠低于犯罪分子啟用新URL的速度,導致無法識別新近出現的違法URL,漏報率高,僅能提供給較低程度的防護[2]。
為彌補其缺點,啟發式算法應運而生。啟發式算法利用累計的黑名單數據,挖掘歷史數據的相似性規律,尋找歷史數據的違法“簽名”,使用相似性規則對違法URL進行判別。這些算法常常基于針對頁面的動態分析,抓取多次重定向、非常規操作步驟等特征[3,4],因此有一定概率遭受網絡攻擊。這些算法可在一定程度上彌補黑名單技術僅使用精準碰撞來判別的弊端,但仍然具有規則更新慢、準確率低的缺點,時效性仍然較差。
1.2 機器學習
機器學習算法通過分析URL頁面信息,提取頁面內容特征,訓練預測模型對頁面內容進行判別[5-7]。機器學習算法主要分為監督學習和無監督學習兩類。監督學習基于標注數據,不斷基于已標注URL,提取頁面特征進行訓練,常用于URL識別的算法有支持向量機(SVM)、隨機森林、C5.0等。無監督學習則使用沒有標注的數據,通過對無標簽樣本的學習來揭示數據的內在特性及規律,按照數據的相對標準進行學習。無監督學習的URL識別模型中,常使用聚類方法來進行特征提取,將相似度較高的對象聚到同一個簇,不同簇間相似度較低,以此來區分違法URL和正常URL[8]。
相對啟發式學習,使用機器學習方法判別違法URL不必拘泥于歷史數據集,基于樣本數據訓練的模型可以挖掘更多違法URL,具有一定主動性。但“數據決定了機器學習的上限,而算法只是盡可能逼近這個上限”,高度依賴于訓練集數據及特征工程的機器學習方法依然有其局限性。要建立價值較高的判別模型,首先需要準確率非常高的樣本,且需不斷更新,以適應違法URL的更新速度;其次,還需要通過特征工程進行特征構建、特征提取和特征選擇,以最大限度地從原始數據中提取特征供算法和模型使用,人工預處理對模型的效果仍然有著至關重要的作用。
1.3 深度學習
深度學習是機器學習的一個分支,是一種基于對數據進行表征學習的算法。相較于需要大量人工參與進行特征工程的機器學習,深度學習預處理工作較少,使用非監督式或半監督式的特征學習和高效分層特征提取算法來代替人工,可以實現自動提取數據中包含的特征,避免人工耗費和可能出現的主觀錯誤,本文使用的卷積神經網絡(CNN)即為常用的一種深度學習算法[1,9,10]。
CNN與普通神經網絡非常相似,由可學習的權重和偏置常量神經元組成。每個神經元都接收一些輸入,并做點積計算,輸出是每個分類的分數。卷積神經網絡常應用于計算機視覺和自然語言處理領域,它能將大信息量數據在不影響結果的前提下降維為小量數據,并保留數據特征。CNN包含卷積層、池化層和全連接層。卷積層對信息的局部進行提取,保留數據的重要特征,類似于人類視覺原理,在每一小塊中深入分析從而得到抽象程度更高的特征;池化層即下采樣,通過數據降維減少運算量,可以有效避免過擬合;全連接層則根據算法需要,輸出最終結果。CNN通過疊加上述三種結構,設計出適合應用場景的算法。
2 基于字符級卷積神經網絡的違法URL識別模型與實現
字符級別的卷積神經網絡,即Character-level Convolutional Networks(Char-CNN)。相較于基于短語和單詞的自然語言處理算法,Char-CNN從字符粒度訓練神經網絡,不需要預先掌握單詞、語法和語義知識,可以跨語言使用。不同于普通文本文章,URL文本較短,可提取信息量有限,且URL生成方式多樣,多數不以單詞為基本單位組成,缺乏語法語義特征,故對于URL的判別,使用字符作為基本單位是更加合適的信息挖掘方式[1,11]。
Char-CNN識別算法分為生成嵌入式表示、特征挖掘和分類三個階段。生成特征圖像環節需固定URL長度,將輸入URL通過索引方式生成輸入神經網絡的二維張量;特征挖掘通過多個尺寸的卷積層,提取URL編輯距離、前后順序等重要信息,并將這些信息合成為一個固定長度的特征向量;最后,被提取的信息通過全連接層進行判別分類。
圖1為模型流程,整個算法由訓練和預測兩部分構成。在模型訓練完成后,我們使用測試集對模型進行評估,通過準確率、召回率、F1值對模型進行評價,并依據結果對模型進行參數和層數調整。下面將詳細闡述模型的訓練過程。
2.1 生成特征圖像
模型使用單個字符作為語義單元,單條URL可以看作是一個由基本語義單元組成的普通語句。根據RFC3986編碼規范,URL只允許包含英文字母(a-zA-Z)、數字(0-9)、-_.~4個特殊字符以及所有保留字符!*'();:@&=+$,/?#[],共計84個有效字符[12]。在本次實驗中,我們嘗試將所有大寫字母轉換為小寫字母,即使用58個有效字符,作為模型的語料庫,同時,考慮到可能出現的非法字符,我們另增加一個詞語unknown作為非法字符的表示,若出現語料庫之外的字符,則使用unknown作為代替。
卷積神經網絡最初運用于計算機視覺領域,對數據輸入大小有一定要求,例如在LeNet-5中,每個輸入都是[32×32]的圖像文件[10]。一旦圖像分辨率發生了變化,造成多余卷積操作結果丟失,就會對模型結果產生影響,或者使得網絡內部狀態發生混亂,在圖像處理中,主要通過設置輸入圖像固定分辨率來解決這個問題。但是,在自然語言處理中,由于輸入的是文檔或者語句,輸入內容長度是不固定的,通常采用截斷過長文本、填充不足文本的方式進行處理,以保持文本長度的一致性[8]。不同于普通文本,URL的前半部分相對于后半部分而言包含的有用的信息更多,本實驗中我們選擇從后段進行截斷或者填充。在對實驗數據進行預處理和統計分析后發現數據集中95%的URL的字符數小于等于80個字符,使用80作為輸入長度可以保留絕大部分實驗樣本的信息,在本文模型試驗中,長度長于80個字符的URL從尾部進行截斷,短于80的使用填充字符填充。
由于URL語料庫較小,不會造成維度災難,為方便實驗,使用1-60代表語料庫中60個字符(59個原始字符及1個填充字符)建立索引,根據索引使用一個一維向量對URL中字符進行表示,使得每條URL都生成一個[80×60]特征圖像,輸入后續的卷積層中。
2.2 特征挖掘
實驗使用CNN作為分類模型,將上述階段生成的特征圖像作為輸入,進行特征挖掘和分類。特征挖掘過程包含多個并列的卷積層[Convt, k]和對應的池化層,其中[t]為卷積核個數,[k]為卷積層大小。為提取足夠多的上下文信息,實驗中使用多個不同大小的卷積層,設置[k∈2, 3, 4, 5],并依據經驗設置[t]值為256。
特征挖掘過程中,設初始輸入一個長度為[M]的URL字符串,一個大小為[k]的卷積核應用到[第i]個長度為[k]的窗口上,將生成一個新特征[zi],新特征[zi]生成計算式如下文所示,其中[ωm]表示卷積核的[m]位置的權重,[xi:i+k-1]表示URL從[i]位置到[i+k-1]位置的字符數據,[b]是偏置項,[f]是一個非線性函數,實驗使用RELU作為激活函數。
[zi=fm=0M-k-1ωm×xi:i+k-1+b]? ? ? ? ? (1)
每一個卷積層對應一個最大池化層,只保留區域內的最大特征,忽略其他值,以降低噪聲的影響、提高模型健壯性、避免過擬合。實驗中256個卷積核在經過池化層后會得到256個[1×1]維度的輸出,4個大小為[1×256]的卷積層輸出結果將拼接展開為一個長度為1024的向量,進入RELU全連接層后再接一個sigmoid全連接層,最后輸出二分類結果。
2.3 過擬合處理
在深度學習中,經常會出現某些神經元比另一些神經元具有更重要的預測能力,這種現象導致預測模型過度依賴于個別神經元以致模型對新樣本的預測能力較差,通常使用dropout解決該問題,即隨機移除神經網絡中的一些神經元,防止過擬合,同時實現提高模型訓練速度。在本文模型實驗中,我們增加了Spatial dropout,并依據經驗設置dropout參數為0.5,每個卷積層在經過池化后和第一次經過全連接層后做一次dropout,以防止本實驗樣本量不大的情況下出現過擬合。
然而,在實際實驗中,因為初始epoch值設置過大,依然出現了過擬合問題。因此,除去dropout,在實驗中我們還設置了早停機制,以解決epoch數量需要手動設置的問題,即使用一個及時停止的標準來提前結束訓練,使模型盡可能產生最低的泛化錯誤[13]。具體過程如下所示。
1)將原始訓練數據集劃分成訓練集和驗證集。
2)只在訓練集上進行訓練,在驗證集上進行驗證并計算誤差。實驗中,我們使用100步作為計算周期,即每100步計算一次驗證集誤差,并統計比較驗證集歷史最低誤差值。
3)當模型效果經過多輪訓練后無明顯提升時,結束實驗。實驗中,我們設置模型訓練效果在1000輪后仍未提升,則結束訓練。
4)使用最后一次迭代參數作為模型最終參數,生成預測模型。
3 實驗
3.1 實驗數據及評估標準
本次實驗違法樣本數據來源于公安、互聯網安全公司,包含賭博、色情、詐騙等違法URL數據共70648條。合法樣本則使用爬蟲從Alexa爬取,共70571條數據。實驗共包含141219條URL數據。
實驗使用準確率、召回率及F1值對模型進行評估。由于實際運用中,違法網站被錯誤識別為合法網站可能產生較大風險,故在對比算法準確程度時,本文使用召回率作為主要評價標注。
3.2 實驗結果及分析
本文實驗使用一臺Centos 7服務器進行訓練,服務器均安裝python3.7.7及TensorFlow 2.0.0軟件環境,使用scikit-learn對實驗結果進行評估。
實驗設置訓練集、驗證集及測試集樣本比例為8:1:1。為防止過擬合問題,設置1000步為早停參數,每100步使用當前模型對驗證集進行測試,若1000步后模型對驗證集預測的準確率沒有提升,則停止訓練。
圖2為模型訓練過程,試驗中,約400步后準確率逐漸穩定于0.95。由于實驗加入了早停機制,驗證集正確率未因epoch值設置有誤出現明顯過擬合。
表1為訓練完成后準確率、召回率及F1值,表2為測試集上的混淆矩陣。在實驗測試集上,完成訓練后的模型準確率達到0.980,召回率達到0.987,F1值為0.983,三個判別評價標準均顯示出良好的模型擬合效果。
實驗中,早停機制發揮出了極大效果。前期測試中,因epoch設置過大,訓練過程耗時過長,超過10個小時,且驗證集準確率一度低于0.6。因此,對于該類型數據集而言,加入過擬合機制尤為重要。經試驗,在本文數據集上,當全連接層核數為1024,截斷長度為80,批處理數量為128,學習率為0.005時,試驗效果最好。
4 結語
URL作為大量網絡違法犯罪過程中的要素信息之一,實時識別并阻斷違法網絡請求可有效降低犯罪行為的發生,當前,各類模型和算法識別違法URL的效果還有待提高,但是計算機智能模型作為快速識別、自動處置的手段之一,具有較高的工程應用價值。本文針對如何利用機器學習算法進行違法URL識別的問題,提出了一種基于URL字符串的深度學習分類算法,并利用TensorFlow進行了代碼實現。實驗證明, 本文提出的違法URL識別分類方法, 在準確率與召回率方面都達到了較好的效果。目前模型僅實現了違法URL識別的二分類,主要用于判斷URL是否為違法,隨著數據的積累,我們將開展多分類模型研究,識別違法URL具體類型,促進網絡違法行為的精確識別。
參考文獻:
[1] ZhangXiang,ZhaoJun-bo,LeCunYann.Character-level Convolutional Networksfor Text Classification[J].NIPS'15:Proceedings of the 28th International Conferenceon Neural Information Processing Systems-Volume1,2015(12):649-657.
[2] KivinenJ,Smola A J,Williamson R C.Online learning with kernels[J].IEEE Transactions on Signal Processing,2004,52(8):2165-2176.
[3] Moshchuk Alexander,Bragin Tanya,Deville Damien,GribbleSteven D,Levy Henry M.SpyProxy:Executionbased Detection of Malicious Web Content[M].In Proceeding of the 16th USENIX Security Symposium.Berkeley,CA,United States:USENIX Association,2007:27-42.
[4] Khonji M,Iraqi Y,Jones A.Phishing detection:a literature survey[J].IEEE Communications Surveys&Tutorials,2013,15(4):2091-2121.
[5] PatilDharmaraj Rajaram,Patil J B.Surveyon Malicious Web Pages Detection Techniques[J].International Journal of uande Service,Science and Technology,2015,8(5):195-206
[6] 沙泓州,劉慶云,柳廳文,等.惡意網頁識別研究綜述[J].計算機學報,2016,39(3):529-542.
[7] 凡友榮,楊濤,王永劍,等.基于URL特征檢測的違法網站識別方法[J].計算機工程,2018,44(3):171-177.
[8] Kim,Y.ConvolutionalNeuralNetworksforSentenceClassification[M].Proceedingsof the 2014ConferenceonEmpiricalMethodsinNaturalLanguageProcessing(EMNLP),Doha,Qatar:Association for Computational Linguistics,2014:1746-1751.
[9] Sinha S,Bailey M,Jahanian F.Shades of grey: On the effectiveness of reputation-based “blacklists”[C]//2008 3rd International Conference on Malicious and Unwanted Software (MALWARE).October 7-8,2008,Alexandria,VA,USA.IEEE,2008:57-64.
[10] LeCun Y,BottouL,Bengio Y,et al.Gradient-based learning applied to document recognition[J].Proceedings of the IEEE,1998,86(11):2278-2324.
[11] 陳康,付華崢,向勇.基于深度學習的惡意URL識別[J].計算機系統應用,2018,27(6):27-33.
[12] Internet Engineering Task Force.Uniform Resource Identifier(URI):GenericSyntax(RFC3986)[Z].2005.
[13] Prechelt Lutz.Early Stopping But When?[M].Neural Networks:Tricks of the Trade,volume1524of LNCS,chapter2,Berlin:Springer Verlag,1997:55-69.
【通聯編輯:唐一東】