基於機器學習的惡意URL識別--選自《通信技術》

基於機器學習的惡意URL識別

原文作者:李澤宇,施勇,薛質

原文期刊:信息安全與通信保密雜誌社 選自《通信技術》2020年第二期 2020-03-10

原文鏈接:https://www.secrss.com/articles/17764

一、論文主要內容

對多種機器學習模型特別是集成學習模型在惡意URL識別問題上的效果進行研究,結果表明,集成學習方法在召回率、準確率、正確率、F1值、AUC值等多項指標上整體優於傳統機器學習模型,其中隨機森林算法表現最優。可見,集成學習模型在惡意URL識別問題上具有應用價值。

本文提出了一種特徵選取方法,嘗試多種機器學習模型,特別是幾種近年來較爲流行的集成學習模型,比較不同模型在同一測試集上的效果。

二、作者工作

2.1 相關工作

惡意URL識別最傳統的方法是黑名單方法,即將已知的惡意URLs建立黑名單,並通過多種手段進行維護,從而根據黑名單直接判斷待檢測URL是否爲惡意。該方法簡單直接,查準率高,但只能識別已有的惡意URL,查全率低,時效性差。在此基礎上,一些啓發式算法和基於網頁內容的方法被提出,是黑名單方法的改進,但依然存在準確率低、規則制定難等問題。

近年來,隨着人工智能的發展,機器學習方法被應用於惡意URL檢測,包括邏輯迴歸、支持向量機等。機器學習的特徵提取和模型選擇,很大程度上決定了最終檢測效果的好壞。

2.2 模型設計

設計思想

本文提出了一種特徵選取方法,嘗試多種機器學習模型,特別是幾種近年來較爲流行的集成學習模型,比較不同模型在同一測試集上的效果。第1章介紹實驗的整體流程,包括數據集的獲取、特徵選擇、模型選擇和訓練;第2章給出不同模型的實驗結果,並進行對比分析;第3章對實驗作出總結。

具體實現

本實驗由數據獲取、特徵選取、特徵計算、模型訓練以及結果分析等環節構成,流程下圖所示。

img

特徵提取:

通過分析1.2中所述惡意URL數據集,可以發現惡意URL往往具有某些共性。基於這些共性可以提取相關的特徵,進而用於機器學習模型的訓練。這裏以URL長度這一特徵爲例,說明數據分析和特徵選取的方法。

觀察大量惡意URL數據可以發現,攻擊者常常使用很長的URL,試圖掩蓋URL中可疑的部分。例如:

https://greatertuckertonfoodpantry.org/wp-users/?id=EgjC8KkaZh&email=renaud.chambolle。

爲從數據角度證實這一觀點,分別畫出惡意/良性URL的長度分佈曲線,見下圖。從下圖可以較爲直觀地看出,惡意URL的平均長度更大,兩類URL的長度分佈存在明顯差異。因此,URL的長度可以作爲構建分類模型的一個重要特徵。

img

經試驗,最終總結出的重要特徵如下表所示。

img

模型訓練:

集成學習的基本思想是先訓練若干個弱分類器,再通過某種串行或並行方式將這些弱分類器組合起來,從而達到提高預測準確率的效果。基於組合方法和弱分類器的不同,有多種不同的集成學習模型。實驗中選取幾種最具代表性的集成學習算法進行研究,包括梯度提升算法(Gradient Boosting)、AdaBoost、隨機森林(Random Forest)和XGBoost。

在集成學習算法以外,實驗還選取了幾種經典的機器學習算法,包括決策樹(Decision Tree)、樸素貝葉斯(Gaussian NB)和邏輯迴歸(Logistic Regression),以進行對比研究。

三、實驗

3.1 實驗數據

  • 對惡意URL,實驗從知名反釣魚網站PhishTank使用爬蟲獲取經認證的惡意URL共計20 954條。

  • 對良性URL,實驗從流量統計網站Alexa獲取訪問量排行前100萬的所有網址,保留其中排名前1 000的網址,1 000至100萬名的網址按一定比例進行抽樣,共計獲得18 900條良性URL。

  • 考慮到PhishTank提供的惡意URL僅包含釣魚網站,實驗還參考了開源數據集ISCX-URL-2016獲取包括釣魚、垃圾郵件、病毒等多種類型的惡意URL作爲補充。

將上述渠道獲得的URL進行彙總、去重,得到實驗最終使用的數據集,共包含76 446條數據。其中,惡意URL共計22 808條,佔比29.8%;良性URL共計53 638條,佔比70.2%,數據示例如下表所示。

img

其中,標籤爲“1”表示該URL爲惡意URL,標籤爲“0”表示該URL爲良性。

3.2 實驗結果

評估方法

實驗將1.2中所述數據集進行劃分,隨機抽取其中20%作爲測試集,其餘作爲訓練集和交叉檢驗集。測試集共包含15 290條訓練數據,將惡意URL作爲正樣本,良性URL作爲負樣本。

評價分類模型好壞的常見指標有準確率(Precision)、召回率(Recall)、正確率(Accuracy)和F1值(F1-score)。由於惡意URL往往具有嚴重威脅,在對比各模型好壞的過程中,優先考慮召回率,其餘指標作爲參考。各常見指標的含義或計算方法如下表所示。

img

此外,爲了更直觀地對比各模型的好壞,繪製各模型的受試者工作特徵曲線(Receiver Operating Characteristic Curve,ROC)並進行對比。

ROC曲線的橫座標爲假陽性率(False Positive Rate,FPR),縱座標爲真陽性率(True Positive Rate,TPR),描述了在一定製約下模型所能達到的預測準確率。真/假陽性率的定義爲:

img

ROC曲線下面積(Area under ROC Curve,AUC)是指ROC曲線與橫座標軸圍成的面積大小。AUC值越大,代表模型的分類效果越好。

AUC值受正負樣本分佈變化的影響較小。實驗使用的數據集與真實情景下正負樣本的分佈可能差異較大,因此AUC值是一項重要的評估指標。

結果分析

爲控制無關變量,各模型訓練時的迭代次數均採用默認參數,其餘訓練參數簡單調優或使用默認值。

各模型的實驗指標由下表列出,其中每一項的最優值用*標明。

img

實驗結果表明,集成學習算法的整體表現優於傳統機器學習算法。其中,梯度提升算法(Gradient Boosting)有最高的預測準確率,而XGBoost算法有最高的正確率,隨機森林算法(Random Forest)在召回率、F1值、AUC值3項指標上均爲最優。綜合來看,隨機森林算法是研究算法中解決惡意URL識別問題的最優模型。

在傳統機器學習算法方面,決策樹算法(Decision Tree)表現尚可,而樸素貝葉斯算法(GNB)和邏輯迴歸算法(Logistic Regression)則表現不佳。此外,不同機器學習模型的ROC曲線如下圖所示。

img

由ROC曲線得到的結論類似,即在解決惡意URL識別問題上,集成學習方法的整體表現優於傳統機器學習方法。

四、總結

實驗結果表明,集成學習方法在惡意URL識別問題上的效果優於傳統機器學習模型。其中,隨機森林算法綜合表現最優,能夠達到76.26%的召回率和95.88%的準確率,表明集成學習方法在惡意URL的識別領域具有應用價值。

本文使用的數據集規模偏小(76 446條數據),在訓練集成學習模型時會出現過擬合等問題。預期隨着訓練數據的擴充和硬件水平的提高,集成學習方法在惡意URL識別問題上能夠取得更好的效果。

參考文章:
安全內參 https://www.secrss.com/articles/17764

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章