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

網絡攻擊成為日益重要的安全問題,而多種網絡攻擊手段多以惡意URL為途徑。基於黑名單的惡意URL識別方法存在查全率低、時效性差等問題,而基於機器學習的惡意URL識別方法仍在發展中。對多種機器學習模型特別是集成學習模型在惡意URL識別問題上的效果進行研究,結果表明,集成學習方法在召回率、準確率、正確率、F1值、AUC值等多項指標上整體優於傳統機器學習模型,其中隨機森林算法表現最優。可見,集成學習模型在惡意URL識別問題上具有應用價值。

因此,基於BP神經網絡,設計並實現了命名數據網絡的入侵檢測方法。仿真結果表明,該方法對網絡攻擊的分類準確性和辨識效率較高。

隨著互聯網的發展,網絡攻擊成為日益重要的安全問題。釣魚、木馬、惡意軟件等多種攻擊類型,常常以惡意URL作為途徑。因此,識別惡意URL對阻止各類網絡攻擊、維護網絡安全具有重要意義。

惡意URL識別最傳統的方法是黑名單方法,即將已知的惡意URLs建立黑名單,並通過多種手段進行維護,從而根據黑名單直接判斷待檢測URL是否為惡意。該方法簡單直接,查準率高,但只能識別已有的惡意URL,查全率低,時效性差。在此基礎上,一些啟發式算法和基於網頁內容的方法被提出,是黑名單方法的改進,但依然存在準確率低、規則制定難等問題。近年來,隨著人工智能的發展,機器學習方法被應用於惡意URL檢測,包括邏輯迴歸、支持向量機等。機器學習的特徵提取和模型選擇,很大程度上決定了最終檢測效果的好壞。本文提出了一種特徵選取方法,嘗試多種機器學習模型,特別是幾種近年來較為流行的集成學習模型,比較不同模型在同一測試集上的效果。第1章介紹實驗的整體流程,包括數據集的獲取、特徵選擇、模型選擇和訓練;第2章給出不同模型的實驗結果,並進行對比分析;第3章對實驗作出總結。

01


實驗設計


1.1 實驗流程

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

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

圖1 實驗總體流程
1.2 數據獲取

構建惡意URL的分類模型,需要惡意URL和良性URL的相關數據。本實驗通過多種渠道進行數據收集工作。

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

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

(3)考慮到PhishTank提供的惡意URL僅包含釣魚網站,實驗還參考了開源數據集ISCX-URL-2016獲取包括釣魚、垃圾郵件、病毒等多種類型的惡意URL作為補充。將上述渠道獲得的URL進行彙總、去重,得到實驗最終使用的數據集,共包含76 446條數據。其中,惡意URL共計22 808條,佔比29.8%;良性URL共計53 638條,佔比70.2%,數據示例如表1所示。表1 數據示例

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

其中,標籤為“1”表示該URL為惡意URL,標籤為“0”表示該URL為良性。
1.3 特徵選取

通過分析1.2中所述惡意URL數據集,可以發現惡意URL往往具有某些共性。基於這些共性可以提取相關的特徵,進而用於機器學習模型的訓練。這裡以URL長度這一特徵為例,說明數據分析和特徵選取的方法。觀察大量惡意URL數據可以發現,攻擊者常常使用很長的URL,試圖掩蓋URL中可疑的部分。例如:https://greatertuckertonfoodpantry.org/wp-users/?id=EgjC8KkaZh&email=renaud.chambolle。為從數據角度證實這一觀點,分別畫出惡意/良性URL的長度分佈曲線,見圖2。從圖2可以較為直觀地看出,惡意URL的平均長度更大,兩類URL的長度分佈存在明顯差異。因此,URL的長度可以作為構建分類模型的一個重要特徵。

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

圖2 惡意/良性URL長度的分佈
其餘特徵的分析方法類似,這裡不再一一列出。經試驗,最終總結出的重要特徵如表2所示。表2 惡意URL分類模型的特徵

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

1.4 模型選擇
近年來,集成學習(Ensemble Learning)在大規模數據集上的良好表現,使其成為傳統機器學習領域最流行的方法。集成學習的基本思想是先訓練若干個弱分類器,再通過某種串行或並行方式將這些弱分類器組合起來,從而達到提高預測準確率的效果。基於組合方法和弱分類器的不同,有多種不同的集成學習模型。實驗中選取幾種最具代表性的集成學習算法進行研究,包括梯度提升算法(Gradient Boosting)、AdaBoost、隨機森林(Random Forest)和XGBoost。在集成學習算法以外,實驗還選取了幾種經典的機器學習算法,包括決策樹(Decision Tree)、樸素貝葉斯(Gaussian NB)和邏輯迴歸(Logistic Regression),以進行對比研究。

02


實驗結果


2.1 評估方法

實驗將1.2中所述數據集進行劃分,隨機抽取其中20%作為測試集,其餘作為訓練集和交叉檢驗集。測試集共包含15 290條訓練數據,將惡意URL作為正樣本,良性URL作為負樣本。評價分類模型好壞的常見指標有準確率(Precision)、召回率(Recall)、正確率(Accuracy)和F1值(F1-score)。由於惡意URL往往具有嚴重威脅,在對比各模型好壞的過程中,優先考慮召回率,其餘指標作為參考。各常見指標的含義或計算方法如表3所示。表3 分類模型的常用評估指標

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

此外,為了更直觀地對比各模型的好壞,繪製各模型的受試者工作特徵曲線(Receiver Operating Characteristic Curve,ROC)並進行對比。
ROC曲線的橫座標為假陽性率(False Positive Rate,FPR),縱座標為真陽性率(True Positive Rate,TPR),描述了在一定製約下模型所能達到的預測準確率。真/假陽性率的定義為:

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

ROC曲線下面積(Area under ROC Curve,AUC)是指ROC曲線與橫座標軸圍成的面積大小。AUC值越大,代表模型的分類效果越好。AUC值受正負樣本分佈變化的影響較小。實驗使用的數據集與真實情景下正負樣本的分佈可能差異較大,因此AUC值是一項重要的評估指標。

2.2 結果分析為控制無關變量,各模型訓練時的迭代次數均採用默認參數,其餘訓練參數簡單調優或使用默認值。各模型的實驗指標由表4列出,其中每一項的最優值用*標明。表4 不同機器學習模型的實驗指標

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

實驗結果表明,集成學習算法的整體表現優於傳統機器學習算法。其中,梯度提升算法(Gradient Boosting)有最高的預測準確率,而XGBoost算法有最高的正確率,隨機森林算法(Random Forest)在召回率、F1值、AUC值3項指標上均為最優。綜合來看,隨機森林算法是研究算法中解決惡意URL識別問題的最優模型。在傳統機器學習算法方面,決策樹算法(Decision Tree)表現尚可,而樸素貝葉斯算法(GNB)和邏輯迴歸算法(Logistic Regression)則表現不佳。此外,不同機器學習模型的ROC曲線如圖3所示。

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

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

03


結 語


本文對不同機器學習模型在惡意URL識別問題上的應用進行了研究。實驗結果表明,集成學習方法在惡意URL識別問題上的效果優於傳統機器學習模型。其中,隨機森林算法綜合表現最優,能夠達到76.26%的召回率和95.88%的準確率,表明集成學習方法在惡意URL的識別領域具有應用價值。本文使用的數據集規模偏小(76 446條數據),在訓練集成學習模型時會出現過擬合等問題。可以預期,隨著訓練數據的擴充和硬件水平的提高,集成學習方法在惡意URL識別問題上能夠取得更好的效果。作者簡介 >>>

李澤宇(1994—),男,碩士,主要研究方向為網絡安全;

施 勇(1979—),男,博士,講師,主要研究方向為網絡安全、網絡攻防;

薛 質(1971—),男,博士,教授,主要研究方向為計算機通信網、網絡安全。

選自《通信技術》2020年第二期 (為便於排版,已省去原文參考文獻)


分享到:


相關文章: