基于gcForest算法的惡意URL檢測(cè)
引言
惡意URL(MaliciousURLs)是網(wǎng)絡(luò)犯罪的重要途徑,它作為釣魚(yú)網(wǎng)站、網(wǎng)絡(luò)惡意程序和腳本的載體,為網(wǎng)絡(luò)違法犯罪活動(dòng)提供了可乘之機(jī)。這些惡意URL有著和一般URL幾乎一致的特征,一般不易被檢測(cè)出,且具有誘導(dǎo)、欺騙的特征,對(duì)用戶和企業(yè)的隱私、數(shù)據(jù)和財(cái)產(chǎn)等安全問(wèn)題造成很大威脅。隨著網(wǎng)絡(luò)攻擊形式逐漸多樣化,惡意URL變得更加復(fù)雜、隱蔽且更具危害性,這就要求網(wǎng)絡(luò)安全研究人員研究更加高效的檢測(cè)方案以實(shí)現(xiàn)對(duì)其有效檢測(cè)。因此,對(duì)惡意URL的高效識(shí)別與檢測(cè)至關(guān)重要。
傳統(tǒng)的惡意URL檢測(cè)方法包括黑名單技術(shù)、啟發(fā)式技術(shù),隨著新型惡意URL的逐漸復(fù)雜化,傳統(tǒng)技術(shù)的檢測(cè)水平逐漸下降,且具有誤報(bào)率高、更新復(fù)雜等特點(diǎn),無(wú)法滿足網(wǎng)絡(luò)安全的需求。
近年來(lái),機(jī)器學(xué)習(xí)為惡意URL的檢測(cè)提供了新的研究方向。其中具有代表性的算法為k近鄰算法)KNN)、RandomForest,此類(lèi)算法常被用于一般的惡意URL檢測(cè)場(chǎng)景。但是隨著時(shí)間的推移以及惡意URL的逐漸復(fù)雜化、隱蔽化,這種分類(lèi)模型往往不能達(dá)到預(yù)期的分類(lèi)效果,變得誤判率高且穩(wěn)定性隨時(shí)間下降。而gcForest算法由于其易訓(xùn)練、可擴(kuò)展、效率高的優(yōu)點(diǎn),在惡意URL檢測(cè)領(lǐng)域具有很大的發(fā)展空間。
本文對(duì)URL的特性展開(kāi)針對(duì)性研究,并對(duì)機(jī)器學(xué)習(xí)模型訓(xùn)練過(guò)程中的特征工程技術(shù)與分類(lèi)算法展開(kāi)實(shí)驗(yàn),結(jié)果表明,gcForest算法訓(xùn)練出的模型在準(zhǔn)確率、精確率、召回率、F1-score等各方面遠(yuǎn)優(yōu)于一般機(jī)器學(xué)習(xí)算法,能實(shí)現(xiàn)對(duì)惡意URL的高效檢測(cè)。
1總體處理框架
機(jī)器學(xué)習(xí)的一般流程包括數(shù)據(jù)集獲取、數(shù)據(jù)集預(yù)處理、特征工程、選取算法訓(xùn)練模型、模型調(diào)優(yōu)與應(yīng)用等步驟。因此,惡意URL高效檢測(cè)的機(jī)器學(xué)習(xí)模型包括以下步驟:
(1)獲取由正常URL和惡意URL組成的數(shù)據(jù)集,并分析其特征:
(2)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,劃分訓(xùn)練集、測(cè)試集,去除冗余信息:
(3)開(kāi)展特征工程,對(duì)URL數(shù)據(jù)集進(jìn)行分詞、特征提取,并轉(zhuǎn)化為詞向量形式:
(4)部署gcForest算法,輸入U(xiǎn)RL數(shù)據(jù)進(jìn)行模型訓(xùn)練:
(5)選取評(píng)估指標(biāo),通過(guò)測(cè)試集對(duì)模型進(jìn)行評(píng)估,判斷其是否符合標(biāo)準(zhǔn):
(6)將訓(xùn)練完的模型導(dǎo)出并應(yīng)用,實(shí)現(xiàn)對(duì)新的URL的檢測(cè),判斷其是否為惡意URL。
以上步驟的流程圖如圖1所示。
其中,最為關(guān)鍵的部分為特征工程和機(jī)器學(xué)習(xí)算法選取與模型訓(xùn)練。在特征工程部分,本文對(duì)原始的URL數(shù)據(jù)進(jìn)行分詞、特征提取、詞向量表示,最終作為機(jī)器學(xué)習(xí)模型訓(xùn)練的數(shù)據(jù)輸入。在算法選取與模型訓(xùn)練部分,本文利用gcForest研究在惡意URL檢測(cè)方面的應(yīng)用,通過(guò)準(zhǔn)確度、精確率、召回率、F1-score等多項(xiàng)指標(biāo)對(duì)其進(jìn)行評(píng)估,并將其與傳統(tǒng)的k近鄰算法(KNN)和RandomForest算法進(jìn)行對(duì)比。最終,將模型導(dǎo)出并應(yīng)用于惡意URL的檢測(cè)。
2實(shí)驗(yàn)原理
gcForest[9]即多粒度級(jí)聯(lián)森林算法,是一種基于決策樹(shù)的集成方法,其思想是通過(guò)隨機(jī)森林的級(jí)聯(lián)結(jié)構(gòu)進(jìn)行學(xué)習(xí)。gcForest的性能較之深度神經(jīng)網(wǎng)絡(luò)有很強(qiáng)的競(jìng)爭(zhēng)力,將其用于惡意URL檢測(cè)模型中,可以達(dá)到極佳的性能。本部分將介紹gcForest應(yīng)用于URL分類(lèi)問(wèn)題的原理以及實(shí)現(xiàn)方法。
gcForest采用的多層級(jí)結(jié)構(gòu)如圖2所示,每層(layer)由4個(gè)隨機(jī)森林組成,包括2個(gè)隨機(jī)森林和2個(gè)極端隨機(jī)森林,每個(gè)森林都會(huì)對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練并輸出結(jié)果,這個(gè)結(jié)果被稱為森林生成的類(lèi)向量。同時(shí)由圖2可知,每層都會(huì)輸出2個(gè)結(jié)果,即每個(gè)森林的預(yù)測(cè)結(jié)果與4個(gè)森林的預(yù)測(cè)的平均結(jié)果。
如圖3所示,為防止過(guò)擬合,先對(duì)輸入給每個(gè)森林的訓(xùn)練數(shù)據(jù)進(jìn)行k折交叉驗(yàn)證。同時(shí),由于每一層結(jié)構(gòu)(layer)都會(huì)生成4個(gè)類(lèi)向量,故將上一層的4個(gè)類(lèi)向量以及原有的數(shù)據(jù)作為新的訓(xùn)練數(shù)據(jù),輸入下一層進(jìn)行訓(xùn)練,如此疊加,最后一層將類(lèi)向量進(jìn)行平均,作為預(yù)測(cè)結(jié)果。
3實(shí)驗(yàn)及結(jié)果
3.1環(huán)境配置
實(shí)驗(yàn)平臺(tái)為windows10,64位操作系統(tǒng),CPU為i5-10200H,2.40GHz,GPU為NVIDAGeForceGTx1650,內(nèi)存為16.0GB。Python版本為3.9.12,pandas為1.3.4,conda為4.12.0。
3.2模型評(píng)估指標(biāo)
本文使用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1-score、maroavg和weightedavg這6種指標(biāo)來(lái)評(píng)估模型的分類(lèi)能力。
準(zhǔn)確率(Accuracy)表示分類(lèi)正確樣本占總樣本的比例,是最直觀的評(píng)價(jià)指標(biāo),其公式為:
式中:TP表示預(yù)測(cè)為正樣本且實(shí)際為正樣本:FP表示預(yù)測(cè)為正樣本而實(shí)際為負(fù)樣本:TN表示預(yù)測(cè)為負(fù)樣本且實(shí)際為負(fù)樣本:FN表示預(yù)測(cè)為負(fù)樣本而實(shí)際為正樣本。
精確率(Precision)表示所有預(yù)測(cè)結(jié)果為正例樣本中真實(shí)為正例的比例,其計(jì)算公式為:
召回率(Recall)表示在所有真實(shí)為正例的樣本中預(yù)測(cè)結(jié)果為正例的比例,其計(jì)算公式為:
Fl-score是對(duì)模型精確率和召回率的加權(quán)平均計(jì)算,反映了模型的穩(wěn)健性,結(jié)合精確率和召回率計(jì)算公式如下:
maroavg為宏平均,其計(jì)算方式是對(duì)某個(gè)指標(biāo)求其所有類(lèi)別指標(biāo)值的算術(shù)平均,以精確率Pi為例,Pi的maroavg計(jì)算公式如下:
5ewgitedavg為加權(quán)平均,其計(jì)算方式是對(duì)某個(gè)指標(biāo)求其所有類(lèi)別指標(biāo)值的加權(quán)平均,記si表示支持第i類(lèi)的樣本數(shù),以精確率Pi為例,Pi的5ewgitedavg計(jì)算公式如下:
3.3數(shù)據(jù)集準(zhǔn)備
在數(shù)據(jù)集的選取上,本實(shí)驗(yàn)中所需的6UR數(shù)據(jù)集來(lái)源于Laggke,網(wǎng)址為:ittps://555.Laggke.com/taruntw5arwip/piwsiwng-swte-urks。先對(duì)6UR數(shù)據(jù)進(jìn)行初步篩選,并按照8:2的比例劃分訓(xùn)練集和測(cè)試集,得到數(shù)據(jù)集情況如表1所示。
3.4特征工程
由于6UR中的協(xié)議部分中如"ittp""ittps"和"555."等字段對(duì)6UR分類(lèi)基本無(wú)影響[+],因此,在對(duì)6UR分詞前可先將這些部分去除掉,以提高分類(lèi)效率。去除協(xié)議部分后的部分6UR如表2所示。
其次,由于URL是緊密連接的字符與符號(hào),因此要對(duì)其進(jìn)行分詞,以此為基礎(chǔ)才能實(shí)現(xiàn)對(duì)URL的詞向量表示。如表3所示,經(jīng)過(guò)對(duì)比測(cè)試常用的分詞工具發(fā)現(xiàn),基于正則表達(dá)式Re工具可以實(shí)現(xiàn)對(duì)URL的最準(zhǔn)確分詞,其效果遠(yuǎn)優(yōu)于diesa或Nltk等分詞工具。
最后,本文借助sklearn中的TfiBfVectorizer工具,完成對(duì)URL的文本特征提取和詞向量表示工作,以作為機(jī)器學(xué)習(xí)分類(lèi)算法的數(shù)據(jù)輸入。
3.5檢測(cè)結(jié)果
將上述預(yù)處理數(shù)據(jù)作為初始訓(xùn)練數(shù)據(jù)輸入gcForest,進(jìn)行模型訓(xùn)練即可得到分類(lèi)模型。使用gcForest模型得到的訓(xùn)練結(jié)果評(píng)估如表4所示。
由表4可知,該模型的分類(lèi)準(zhǔn)確率(Accuracy)達(dá)到了99.53%,在保留兩位小數(shù)的情況下,該模型對(duì)惡意URL識(shí)別的精確率(Precision)、召回率(Recall)、F1-score均達(dá)到0.996以上:而對(duì)正常URL識(shí)別的精確率(Precision)、召回率(Recall)、F1-score能達(dá)到0.992以上。因此,該模型在惡意URL檢測(cè)的應(yīng)用中具有極高的準(zhǔn)確度與穩(wěn)定性,具有很大的應(yīng)用價(jià)值。
此外,本文將基于gcForest算法訓(xùn)練出的模型與KNN和RanBomForest算法模型進(jìn)行對(duì)比,結(jié)果如圖4所示。
gcForest在準(zhǔn)確率、精確率、召回率、F1-score、macroavg和weighteBavg指標(biāo)下均遠(yuǎn)高于傳統(tǒng)的KNN算法,其中準(zhǔn)確率提升4.40%,精確率提升3.17%。而對(duì)比gcForest底層的RanBomForest算法,其在精確率上帶來(lái)了3.42%的提升,衡量模型穩(wěn)定性的F1-score提升了2.31%。由此可以得出,gcForest在惡意URL檢測(cè)方面具有遠(yuǎn)優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法的性能。
4結(jié)論
本文將gcForest算法應(yīng)用于惡意URL檢測(cè),訓(xùn)練出能夠準(zhǔn)確且高效識(shí)別惡意URL的機(jī)器學(xué)習(xí)模型,并從原理出發(fā),系統(tǒng)介紹了基于gcForest算法的惡意URL檢測(cè)模型訓(xùn)練過(guò)程。本文的機(jī)器學(xué)習(xí)模型準(zhǔn)確率達(dá)到99.53%,遠(yuǎn)高于傳統(tǒng)的機(jī)器學(xué)習(xí)分類(lèi)算法,且其精確率、召回率、F1-score、maroavg和weighteBavg值均高于0.99,具有很好的檢測(cè)效果。