国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  行業(yè)資訊 >  其他 >  基于機(jī)器學(xué)習(xí)的Web應(yīng)用入侵威脅檢測(cè)

基于機(jī)器學(xué)習(xí)的Web應(yīng)用入侵威脅檢測(cè)

2021-04-23 09:14:29 10056

隨著移動(dòng)互聯(lián)網(wǎng)的蓬勃發(fā)展,Web應(yīng)用已經(jīng)廣泛深入各行各業(yè)。針對(duì)Web應(yīng)用的攻擊已成為企業(yè)面臨的主要安全問題之一。面對(duì)日益增加的Web應(yīng)用攻擊,傳統(tǒng)基于規(guī)則的安全產(chǎn)品難以實(shí)現(xiàn)對(duì)未知威脅的攔截,且隨著規(guī)則的逐漸增加,將嚴(yán)重影響安全產(chǎn)品的性能。因此,研究多分類檢測(cè)模型,實(shí)現(xiàn)模型對(duì)威脅數(shù)據(jù)的識(shí)別檢測(cè),并通過模型優(yōu)化及真實(shí)環(huán)境數(shù)據(jù)進(jìn)行對(duì)比驗(yàn)證。結(jié)果證明,基于隨機(jī)森林及l(fā)ightGBM算法構(gòu)建的多分類模型,在多分類模型的評(píng)估指標(biāo)上優(yōu)于基于SVM的多分類檢測(cè)模型,能夠達(dá)到理想的檢測(cè)效果。

近年來,隨著移動(dòng)互聯(lián)網(wǎng)的蓬勃發(fā)展,Web應(yīng)用已經(jīng)廣泛深入各行各業(yè),承載著各大公司的關(guān)鍵、核心業(yè)務(wù)。現(xiàn)階段,Web應(yīng)用已成為網(wǎng)絡(luò)安全攻擊的主要目標(biāo)。為了應(yīng)對(duì)威脅攻擊,傳統(tǒng)基于規(guī)則的安全防護(hù)產(chǎn)品起到了至關(guān)重要的作用。但是,隨著Web應(yīng)用及組件漏洞的逐漸增加和攻擊方式的逐漸演進(jìn),傳統(tǒng)基于規(guī)則的安全產(chǎn)品難以實(shí)現(xiàn)對(duì)眾多已知及未知威脅的有效攔截。所以,研究、探索新一代檢測(cè)技術(shù)已經(jīng)成為各大安全公司及科研究機(jī)構(gòu)的重點(diǎn)研究內(nèi)容。本文主要基于機(jī)器學(xué)習(xí)對(duì)Web應(yīng)用入侵檢測(cè)技術(shù)進(jìn)行研究,構(gòu)建了多分類Web應(yīng)用入侵威脅檢測(cè)模型,包括基于隨機(jī)森林的多分類檢測(cè)模型、基于lightGBM的多分類檢測(cè)模型及基于SVM的多分類檢測(cè)模型,并通過實(shí)驗(yàn)對(duì)比了3種不同機(jī)器學(xué)習(xí)算法的多分類檢測(cè)模型。結(jié)果證明,基于隨機(jī)森林及l(fā)ightGBM算法構(gòu)建的多分類模型,在多分類模型的評(píng)估指標(biāo)上優(yōu)于基于SVM的多分類檢測(cè)模型,能夠達(dá)到理想的檢測(cè)效果。

一、國內(nèi)外研究現(xiàn)狀

Web應(yīng)用的飛速發(fā)展,極大地方便了人們的日常生活,已經(jīng)成為互聯(lián)網(wǎng)時(shí)代最重要的基礎(chǔ)設(shè)施之一。Web應(yīng)用在給人們帶來巨大便利的同時(shí),也伴隨著不可忽視的安全風(fēng)險(xiǎn)。用戶爆炸性增長,使得新威脅和攻擊不斷出現(xiàn)。大量網(wǎng)站遭受攻擊、用戶數(shù)據(jù)泄露,給企業(yè)與用戶造成了嚴(yán)重影響。Web應(yīng)用入侵安全問題已成為企業(yè)面臨的重要問題。

現(xiàn)有基于規(guī)則的Web應(yīng)用入侵威脅檢測(cè)、防護(hù)產(chǎn)品都存在誤報(bào)率、漏報(bào)率高等問題,主要原因在于威脅在不斷演進(jìn),但威脅規(guī)則更新不實(shí)時(shí),無法抵抗0day漏洞攻擊。

Rieck等人提出了一種基于網(wǎng)頁內(nèi)容分析的啟發(fā)式威脅檢測(cè)方法,經(jīng)過規(guī)則過濾后再對(duì)Web入侵的最終執(zhí)行動(dòng)作進(jìn)行分析,通過一些異常指標(biāo)進(jìn)行威脅判定。Prakash等人利用帶有相似性規(guī)則的啟發(fā)式檢測(cè)技術(shù),構(gòu)建了一個(gè)PhishNet系統(tǒng),利用威脅數(shù)據(jù)及所體現(xiàn)出來的相似規(guī)則對(duì)異常URL進(jìn)行檢測(cè)。但是,該系統(tǒng)的性能依賴于威脅的數(shù)據(jù)量。當(dāng)威脅數(shù)據(jù)量較大時(shí),需要大量及專業(yè)的安全研究人員支持以構(gòu)建相關(guān)規(guī)則。Le等人選擇先將Web入侵的URL根據(jù)不同的部分進(jìn)行切割,包括URL的域名、路徑、參數(shù)等部分,并對(duì)每個(gè)部分進(jìn)行選定特征的提取,如參數(shù)的長度及個(gè)數(shù)等。Ma等人提取對(duì)Web入侵的URL中的host等特征,以此進(jìn)行Web應(yīng)用入侵威脅檢測(cè)。Kolari等人則采用詞袋模型解決Web威脅入侵的檢測(cè)問題。劉健等人通過訓(xùn)練多個(gè)機(jī)器學(xué)習(xí)模型,定義每個(gè)模型對(duì)Web入侵URL檢測(cè)的層級(jí)關(guān)系,設(shè)置每個(gè)機(jī)器學(xué)習(xí)模型的判別閾值。如果上層機(jī)器學(xué)習(xí)模型對(duì)URL的檢測(cè)結(jié)果超過所指定的判別閾值,則該URL被判定為異常URL,判斷為威脅入侵。它利用將URL逐層傳遞到每層機(jī)器學(xué)習(xí)模型中檢測(cè)的方式,以降低對(duì)Web入侵威脅檢測(cè)結(jié)果的誤報(bào)率。陳光英等人研究以系統(tǒng)調(diào)用序列和網(wǎng)絡(luò)數(shù)據(jù)包作為檢測(cè)對(duì)象,建立以支持向量機(jī)算法模型的入侵檢測(cè)方法。

綜上所述,將機(jī)器學(xué)習(xí)應(yīng)用于Web應(yīng)用威脅檢測(cè),國內(nèi)外均有大量的研究基礎(chǔ)??梢?,將機(jī)器學(xué)習(xí)技術(shù)融入安全防護(hù)產(chǎn)品是威脅檢測(cè)發(fā)展的必然趨勢(shì)。

二、機(jī)器學(xué)習(xí)算法及特征工程

1.機(jī)器學(xué)習(xí)算法

隨機(jī)森林

隨機(jī)森林指的是利用多棵決策樹對(duì)樣本進(jìn)行訓(xùn)練并預(yù)測(cè)的一種分類器。通過組合多個(gè)弱分類器,最終結(jié)果通過投票或取均值使得整體模型的結(jié)果具有較高的精確度和泛化性能。隨機(jī)森林算法模型,如圖1所示。


1.png

圖1 隨機(jī)森林算法


隨機(jī)森林構(gòu)建過程如下。

(1)隨機(jī)抽樣,訓(xùn)練決策樹。N個(gè)樣本的樣本集,有放回地抽取N次,每次抽取1個(gè),形成一個(gè)有N個(gè)樣本的樣本集,用來訓(xùn)練一個(gè)決策樹,作為決策樹根節(jié)點(diǎn)處的樣本。

(2)選擇節(jié)點(diǎn)分裂屬性。當(dāng)每個(gè)樣本有M個(gè)屬性時(shí),在決策樹的每個(gè)節(jié)點(diǎn)需要分裂時(shí),隨機(jī)從這M個(gè)屬性中選取出m個(gè)屬性,m應(yīng)遠(yuǎn)小于M,然后從這m個(gè)屬性中采用某種策略(如信息增益)來選擇1個(gè)屬性作為該節(jié)點(diǎn)的分裂屬性。

(3)重復(fù)步驟2,直到不能分裂。決策樹形成過程中每個(gè)節(jié)點(diǎn)都要按照步驟2來分裂。如果下一次該節(jié)點(diǎn)選出來的屬性是剛剛其父節(jié)點(diǎn)分裂時(shí)用過的屬性,則該節(jié)點(diǎn)已經(jīng)達(dá)到了葉子節(jié)點(diǎn),不再繼續(xù)分裂。需要注意,每棵樹都會(huì)完整成長而不會(huì)剪枝。

(4)將生成的多棵分類數(shù)組成隨機(jī)森林。如果是回歸問題,則最后的輸出是每個(gè)樹輸出的均值;如果是分類問題,則根據(jù)投票原則,確定最終的類別。

LightGBM

LightGBM(Light Gradient Boosting Machine)是微軟開源的實(shí)現(xiàn)GBDT算法的框架,支持高效率的并行訓(xùn)練。梯度提決策升樹(Gradient Boosting Decision Tree,GBDT)是一種基于迭代所構(gòu)造的決策樹算法,既可以做回歸也可以做分類。它以分類回歸樹(Classification and Regression Trees,CART)模型作為弱學(xué)習(xí)器,將新學(xué)習(xí)器建立在之前學(xué)習(xí)器損失函數(shù)梯度下降的方向,通過不斷迭代來訓(xùn)練模型。迭代過程中,每一輪預(yù)測(cè)值和實(shí)際值有殘差,下一輪根據(jù)殘差再進(jìn)行預(yù)測(cè),最后將所有預(yù)測(cè)相加作為最終結(jié)論。因此,GBDT可以表示為決策樹的加法模型,如式(1)所示:


2.png


式中,3.png表示決策樹,4.png為決策樹參數(shù),M為樹的個(gè)數(shù)。根據(jù)向前分步算法,第m步的模型可以表示為:


5.png


設(shè)定6.png為第i個(gè)樣本的真實(shí)值,7.png為第i個(gè)樣本的預(yù)測(cè)值,取損失函數(shù)為平方損失,那么損失函數(shù)可以表示為:


8.png


根據(jù)式(4)極小化損失函數(shù)可得到參數(shù)9.png


10.png


通過多次迭代,更新回歸樹可以得到最終模型。LightGBM使用基于直方圖的分割算法取代了傳統(tǒng)的預(yù)排序遍歷算法,不僅在訓(xùn)練速度和空間效率上均優(yōu)于GBDT,還能有效防止過擬合,更加適用于訓(xùn)練海量高維數(shù)據(jù)。

支持向量機(jī)

支持向量機(jī)(Support Vector Machine,SVM)是在分類與回歸中分析數(shù)據(jù)的機(jī)器學(xué)習(xí)算法。

SVM通過尋找一個(gè)滿足分類要求的最優(yōu)分類超平面,將實(shí)例表示為空間中的點(diǎn)。最優(yōu)超平面將實(shí)例明顯地間隔分開,通過判斷實(shí)例在超平面的哪一側(cè)來預(yù)測(cè)所屬類別。理論上,SVM可以實(shí)現(xiàn)對(duì)線性可分?jǐn)?shù)據(jù)的最優(yōu)分類。

除了進(jìn)行線性分類之外,SVM還可以使用核技巧將原空間的數(shù)據(jù)映射到高維特征空間,然后在高維特征空間進(jìn)行線性分類模型訓(xùn)練,從而有效實(shí)現(xiàn)非線性分類。

2.特征工程

特征工程是指從原始數(shù)據(jù)中提取特征并將其轉(zhuǎn)換為適合機(jī)器學(xué)習(xí)模型的格式,通常指的是從N個(gè)特征集合中選出M個(gè)特征的子集并滿足條件。它包括特征處理和特征提取兩個(gè)方面。特征處理指通過包括一組特征中去除冗余或不相關(guān)的特征來降維。特征提取廣義上指的是一種變換,將處于高維空間的樣本通過映射或變換的方式轉(zhuǎn)換到低維空間,達(dá)到降維的目的。兩者常聯(lián)合使用,如先通過變換將高維特征空間映射到低維特征空間,后去除冗余和不相關(guān)的特征來進(jìn)一步降低維數(shù)。

特征處理訓(xùn)練機(jī)器學(xué)習(xí)模型的數(shù)據(jù)集由于數(shù)據(jù)量通常很大,會(huì)存在數(shù)據(jù)不全(缺失值)、數(shù)據(jù)重復(fù)(冗余數(shù)據(jù))及數(shù)據(jù)錯(cuò)誤(異常值)等問題(如收入-15元,或身高1 688 cm)。

(1)缺失值可以采用局部數(shù)據(jù)的線性插值法進(jìn)行補(bǔ)缺或使用一個(gè)全局常量或?qū)傩缘钠骄堤畛淇杖敝怠H鐭o法填充,則可考慮進(jìn)行忽略。

(2)冗余數(shù)據(jù)數(shù)據(jù)集中的冗余數(shù)據(jù),可以采用對(duì)數(shù)據(jù)去重、刪除冗余的方式。

(3)異常值數(shù)據(jù)集中存在的錯(cuò)誤數(shù)據(jù),可以根據(jù)已有數(shù)據(jù)的規(guī)律及數(shù)據(jù)類型的特點(diǎn)進(jìn)行修改,或者采用將錯(cuò)誤數(shù)據(jù)移除數(shù)據(jù)集的方式。

特征提取

本文研究的主要特征即為文本特征。數(shù)據(jù)主要來源于Web,表示形式通常表現(xiàn)為URL形式。

對(duì)于文本特征的處理國內(nèi)外研究很多。羅燕等人針對(duì)詞頻-逆向文件頻率(Term Frequency-Inverse Document Frequency,TF-IDF)提取特征效率低、準(zhǔn)確性差的問題,提出了一種基于詞頻統(tǒng)計(jì)的關(guān)鍵詞提取方法。實(shí)驗(yàn)結(jié)果表明,基于詞頻統(tǒng)計(jì)的關(guān)鍵詞提取方法的精確率、召回率等指標(biāo)方面均優(yōu)于傳統(tǒng)的TF-IDF算法,且能提高關(guān)鍵詞提取的效率;龐劍鋒等人利用向量空間模型對(duì)3種分類方法進(jìn)行研究,提出了文本分類系統(tǒng)模型。

本文對(duì)于特征提取方法采用TF-IDF模型,是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù)。

詞頻(Term Frequency,TF),某個(gè)詞語在文件中(或單個(gè)語句中)出現(xiàn)的次數(shù)。這個(gè)數(shù)字通常會(huì)被歸一化,一般是詞頻除以文章總詞數(shù),以防止它偏向長的文件(同一個(gè)詞語在長文件里可能會(huì)比短文件有更高的詞頻,而不管該詞語重要與否)。

逆文本頻率(Inverse Document Frequency,IDF)反映了一個(gè)詞在所有文本(整個(gè)數(shù)據(jù)集)中出現(xiàn)的頻率。如果一個(gè)詞在很多文本中出現(xiàn),那么它的IDF值應(yīng)該低。反過來,如果一個(gè)詞在比較少的文本中出現(xiàn),那么它的IDF值應(yīng)該高。常見的詞如“是”“或”“好”等,IDF值應(yīng)該低。如果一個(gè)詞在所有的文本中都出現(xiàn),那么它的IDF值為0。

TF-IDF的計(jì)算方式如下。

TF計(jì)算公式:


1.png

式中,2.png是在某一文本中詞w出現(xiàn)的次數(shù),N是該文本總詞數(shù)。

IDF計(jì)算公式:


3.png


式中,Y是文檔總數(shù),4.png是包含詞條w的文檔數(shù).需要說明的是,分母加1是為了避免w未出現(xiàn)在任何文檔中從而導(dǎo)致分母為0的情況。

TF-IDF的是將TF和IDF相乘,即:


5.png


從以上計(jì)算公式可以看出,某一特定文件內(nèi)的高詞語頻率,以及該詞語在整個(gè)文件集合中的低文件頻率,可以產(chǎn)生高權(quán)重的TF-IDF。因此,TF-IDF傾向于過濾掉常見的詞語,保留重要的詞語。

三、威脅入侵檢測(cè)模型構(gòu)建

Web應(yīng)用入侵通常通過在URL上構(gòu)建惡意文本的方式進(jìn)行,因此本文根據(jù)Web應(yīng)用入侵的文本特征構(gòu)建了基于TF-IDF特征提取的隨機(jī)森林、LightGBM及SVM多分類模型。通過優(yōu)化并比較3個(gè)模型,結(jié)合生產(chǎn)環(huán)境及搜集的開源數(shù)據(jù),對(duì)3個(gè)模型進(jìn)行優(yōu)化及驗(yàn)證。通過多分類評(píng)估指標(biāo)進(jìn)行評(píng)估,可得出各模型的分類效果。

構(gòu)造本研究中所提出的模型需要經(jīng)歷多個(gè)階段的處理,包括數(shù)據(jù)集的收集及預(yù)處理、特征的提取和選定、機(jī)器學(xué)習(xí)模型的訓(xùn)練及模型的參數(shù)調(diào)優(yōu)等。

1.數(shù)據(jù)收集及特征工程

數(shù)據(jù)集來源

在本次研究工作中,采用多種渠道多種來源獲取訓(xùn)練所需的數(shù)據(jù)。所收集的數(shù)據(jù)整體分為正常數(shù)據(jù)和異常數(shù)據(jù)。

(1)正常數(shù)據(jù)集搜集通過網(wǎng)頁爬蟲,選定某幾個(gè)網(wǎng)站,對(duì)網(wǎng)站進(jìn)行訪問,爬蟲自動(dòng)獲取網(wǎng)站訪問的URL鏈接,以此作為正常訪問數(shù)據(jù);搜集生產(chǎn)系統(tǒng)中通過WAF訪問并標(biāo)記為正常的日志,提取訪問URL。

(2)異常數(shù)據(jù)集搜集通過開源數(shù)據(jù)集進(jìn)行搜集;搜集生產(chǎn)系統(tǒng)中通過WAF訪問并標(biāo)記為異常的日志,提取數(shù)據(jù)URL鏈接;基于開源軟件生成。

總體訓(xùn)練數(shù)據(jù)包含7種類型,分別為XSS、SQL注入、LFI、命令執(zhí)行、目錄遍歷、RFI以及正常的流量樣本數(shù)據(jù),數(shù)量如表1所示??傮w搜集數(shù)據(jù)量為286 951條。


表1 訓(xùn)練數(shù)據(jù)類別及數(shù)量

6.png


特征工程

對(duì)搜集到的數(shù)據(jù)進(jìn)行統(tǒng)一的格式化處理,以便能夠進(jìn)行特征工程。

正常數(shù)據(jù)。爬蟲獲取的數(shù)據(jù),為單個(gè)URL完整的連接,因此需要對(duì)URL進(jìn)行處理。根據(jù)URL的組成結(jié)構(gòu),惡意payload不會(huì)存在于protocol協(xié)議部分、hostname主機(jī)地址以及port端口部分(或域名)。所以,對(duì)于URL數(shù)據(jù),只需提取URL中的path及parameter部分即可。將提取的結(jié)果逐行存儲(chǔ)為json格式,并將文件命名為normal,作為正常數(shù)據(jù)的標(biāo)簽。WAF訪問日志需要分析日志格式,批量進(jìn)行日志篩選,提取WAF標(biāo)記為normal的日志數(shù)據(jù),再將日志數(shù)據(jù)中GET請(qǐng)求的URL(包含parameter)進(jìn)行切分處理并存儲(chǔ)于normal文件。如果為POST請(qǐng)求,則分別提取URL和parameter中的數(shù)據(jù),存儲(chǔ)于normal文件。

異常數(shù)據(jù)。開源數(shù)據(jù)集,根據(jù)數(shù)據(jù)集單條數(shù)據(jù)的標(biāo)簽對(duì)數(shù)據(jù)進(jìn)行提取分類。不同標(biāo)簽數(shù)據(jù)類型存儲(chǔ)于不同的文件,如sql.json。單條數(shù)據(jù)格式同樣存儲(chǔ)為json格式,以便模型提取訓(xùn)練。WAF訪問日志篩選標(biāo)記為攻擊的數(shù)據(jù),提取日志中attack字段,即為異常payload。同樣,按照開源數(shù)據(jù)集的處理方式進(jìn)行存儲(chǔ)。開源軟件生成,根據(jù)不同的開源軟件類型生成的payload,按照異常數(shù)據(jù)類型進(jìn)行存儲(chǔ)。

(1)數(shù)據(jù)預(yù)處理

①異常值處理。刪除訓(xùn)練集中所存在的空數(shù)據(jù)及其他異常數(shù)據(jù)。

②數(shù)據(jù)變換。Web攻擊通常會(huì)存在變換Payload大小寫、添加空字符、URL html編碼以及base64編碼等操作,以試圖繞過安全防護(hù)產(chǎn)品的檢測(cè)。所以,為了使機(jī)器學(xué)習(xí)模型能夠達(dá)到更好的識(shí)別能力,需要將搜集的訓(xùn)練集中的數(shù)據(jù)進(jìn)行變換操作,包括將每一條數(shù)據(jù)中的內(nèi)容統(tǒng)一轉(zhuǎn)為小寫字符、解析樣本數(shù)據(jù)中的URL編碼、對(duì)html轉(zhuǎn)義字符進(jìn)行處理以及將樣本中出現(xiàn)的數(shù)字統(tǒng)一替換為0等。字符類型的標(biāo)簽數(shù)據(jù)轉(zhuǎn)換為數(shù)值類型,如標(biāo)簽為[xss,sqli,os_command],轉(zhuǎn)換后為[0,1,2]。

以XSS為例,其他類型樣本的處理流程一致,原始樣本如下:d%3D375%22%3E%3Cscript%3Ealert%281337%29%3C/script%3E原始樣本依次執(zhí)行以下處理。

(1)樣本轉(zhuǎn)小寫處理:id%3d375%22%3e%3cscript%3ealert%281337%29%3c/script%3e

(2)解析樣本數(shù)據(jù)中的URL編碼以及進(jìn)行html轉(zhuǎn)義字符處理:id=375">

(3)將樣本中出現(xiàn)的數(shù)字統(tǒng)一替換為0:id=0">

(4)處理URL中的Schemes和地址等無效信息:示例樣本無Scheme輸出結(jié)果無變化

(5)字符類型的標(biāo)簽數(shù)據(jù)轉(zhuǎn)換為數(shù)值類型:本樣本標(biāo)簽是XSS,將標(biāo)簽“XSS”編碼為0,作為模型訓(xùn)練的標(biāo)簽。經(jīng)過數(shù)據(jù)預(yù)處理后的樣本變?yōu)橐韵滦问?,如?所示。


表2 特征變換結(jié)果

7.png


③數(shù)據(jù)去重。經(jīng)過異常值處理及數(shù)據(jù)變換后,存在部分冗余數(shù)據(jù),如上一步示例中的處理結(jié)果。因此,需要對(duì)整個(gè)數(shù)據(jù)集數(shù)據(jù)進(jìn)行去重處理。

(2)特征提取本文研究的內(nèi)容為文本數(shù)據(jù)特征提取,包含樣本分詞、分詞后的ngram處理及tfidf轉(zhuǎn)換。

①樣本分詞。將樣本數(shù)據(jù)以‘char’的粒度進(jìn)行分詞處理,如?id=0&age=0分詞后為?,i,d,=,0,&,a,g,e,=,0。②Ngram處理。將分過詞的樣本進(jìn)行ngram處理。ngram中n的取值范圍是(1,2),n為1表示每條樣本中分好的詞不考慮前后組合,轉(zhuǎn)換后?,i,d,=,0,&,a,g,e,=,0的形式保持不變。n為2表示樣本中分好的詞進(jìn)行前后相鄰的兩兩組合,如i,d,=,0,&,a,g,e,=,0,處理后為id,d=,=0,0&,&a,ag,ge,e=,=0。ngram和分詞的方法已封裝在sklearn庫中。

③tfidf轉(zhuǎn)換。tfidf用于將非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)換成結(jié)構(gòu)化的數(shù)值矩陣。樣本數(shù)據(jù)經(jīng)過分詞、ngram處理后進(jìn)行去重,得到一個(gè)不重復(fù)的詞集,在不限制特征數(shù)量的情況下,將詞集中每個(gè)詞作為一個(gè)特征形成一個(gè)詞向量空間。每篇文檔都會(huì)轉(zhuǎn)化成一個(gè)向量,向量的維度等于詞集中詞的數(shù)量。假如有10 000個(gè)文檔,處理后有2 000個(gè)不重復(fù)的詞。這些文檔將會(huì)轉(zhuǎn)換成一個(gè)10 000×2 000的數(shù)值矩陣。矩陣中任意的第m行、第n列的取值表示n所對(duì)應(yīng)的詞在m對(duì)應(yīng)的文本中的tfidf值。tfidf已封裝在sklearn庫中。

同樣以XSS為例,經(jīng)過數(shù)據(jù)預(yù)處理后為:

id=0">

以char為單位的分詞:

i,d,=,0,",>,<,s,c,r,i,p,t,>,a,l,e,r,t,(,0,),<,>

ngram處理,組合方式是單個(gè)字符自成一組,以及進(jìn)行兩個(gè)相鄰字符的兩兩組合:

i,d,=,0,",>,<,s,c,r,p,t,a,l,e,(,), d=",=0,0","">,><,,>a,al,le,er,rt,t(,(0,0),)<,

tfidf處理,將文本數(shù)據(jù)轉(zhuǎn)換成數(shù)值矩陣,行表示樣本數(shù),每一列表示一個(gè)詞,所有樣本中有多少個(gè)不重復(fù)的詞,矩陣就有多少列,并通過tfidf的取值反映出每個(gè)詞在文檔中的權(quán)重。

示例中只有1個(gè)樣本,樣本包含42個(gè)不同的詞,所以輸出是一個(gè)1×42的矩陣。經(jīng)過特征工程后,可以利用算法進(jìn)行模型訓(xùn)練,特征是一個(gè)1×42的矩陣,如表3所示。

表3 tfidf結(jié)果

8.png


其他類型數(shù)據(jù)的處理步驟和XSS樣本處理一致,只是不同的種類樣本,標(biāo)簽對(duì)應(yīng)不同的值,所有類型樣本的特征的維度是固定的。比如,設(shè)定1 000維,樣本條數(shù)為n,那么特征就是一個(gè)n×1 000的數(shù)值矩陣,標(biāo)簽就是一個(gè)n×1的矩陣。

2.多分類模型構(gòu)建

訓(xùn)練環(huán)境說明模型構(gòu)建編程語言為Python,版本為python3.6。訓(xùn)練模型用到的Python主要工具庫以及功能描述如下。

re:Python正則表達(dá)式模塊,用于數(shù)據(jù)預(yù)處理階段,結(jié)合其他工具對(duì)數(shù)據(jù)進(jìn)行處理;

URLlib:用于前期的數(shù)據(jù)預(yù)處理,對(duì)URL數(shù)據(jù)進(jìn)行解析;

pandas:數(shù)據(jù)分析工具,用于數(shù)據(jù)讀取、數(shù)據(jù)處理和分析;

sklearn:機(jī)器學(xué)習(xí)工具,用于特征工程、訓(xùn)練隨機(jī)森林及SVM模型以及模型評(píng)估;

lightgbm:用于訓(xùn)練LightGBM模型。

模型訓(xùn)練分別基于sklearn及l(fā)ightgbm庫構(gòu)建隨機(jī)森林、LightGBM及SVM多分類模型。如圖2所示。訓(xùn)練時(shí),將特征和標(biāo)簽輸入到算法進(jìn)行訓(xùn)練,訓(xùn)練后得到模型。


9.png

圖2 多分類模型訓(xùn)練


預(yù)測(cè)時(shí),輸入新樣本的特征到模型,模型預(yù)測(cè)出新樣本的標(biāo)簽。

模型評(píng)估將原數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。訓(xùn)練集訓(xùn)練模型,并根據(jù)測(cè)試集的特征做預(yù)測(cè),將預(yù)測(cè)結(jié)果與測(cè)試集本身的標(biāo)簽進(jìn)行對(duì)比。本文研究的模型為多分類模型。模型評(píng)估基于多分類模型的評(píng)估準(zhǔn)則。評(píng)估指標(biāo)是精確率、召回率和F值,這些數(shù)值在測(cè)試集上越高表示模型性能越好。以上評(píng)估方法已封裝在sklearn庫中。

四、實(shí)驗(yàn)及模型對(duì)比

1.實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)備實(shí)驗(yàn)使用數(shù)據(jù)286 951條,類型分別為XSS、SQL注入、LFI、命令執(zhí)行、目錄遍歷、RFI以及正常的流量樣本數(shù)據(jù)。數(shù)據(jù)分布如圖3所示。


10.png

圖3 實(shí)驗(yàn)數(shù)據(jù)分布


訓(xùn)練數(shù)據(jù)存儲(chǔ)在csv文件中,每個(gè)csv文件代表一種類型的數(shù)據(jù),文件中每一行代表一個(gè)樣本。

按照8:2比例劃分為訓(xùn)練集和測(cè)試集。

2.模型對(duì)比分析

隨機(jī)森林通過訓(xùn)練及優(yōu)化隨機(jī)森林模型參數(shù),當(dāng)設(shè)置n_estimators參數(shù)為300,criterion設(shè)置為gini時(shí),模型識(shí)別效果最好。最終在模型參數(shù)固定情況下,使用20%的數(shù)據(jù)為測(cè)試集,80%數(shù)據(jù)為訓(xùn)練集,重復(fù)執(zhí)行多次得到隨機(jī)森林的實(shí)驗(yàn)結(jié)果如表4所示。


表4 隨機(jī)森林多分類結(jié)果

11.png


觀察多次實(shí)驗(yàn)結(jié)果,得到平均精確率為99.5%,平均召回率為99.2%,平均F1值為99.3%。從實(shí)驗(yàn)結(jié)果來看,多次實(shí)驗(yàn)結(jié)果相近,證明隨機(jī)森林多分類效果穩(wěn)定,同時(shí)分類結(jié)果各評(píng)估值均能達(dá)到理想的結(jié)果。

LightGBM

通過訓(xùn)練及優(yōu)化LightGBM模型參數(shù),當(dāng)設(shè)置n_estimators參數(shù)為533、random_state設(shè)置為7時(shí),模型識(shí)別效果最好。最終在模型參數(shù)固定情況下,使用20%的數(shù)據(jù)作為測(cè)試集,80%數(shù)據(jù)作為訓(xùn)練集,重復(fù)執(zhí)行多次得到LightGBM的實(shí)驗(yàn)結(jié)果,如表5所示。


表5 LightGBM多分類結(jié)果

12.png


觀察多次實(shí)驗(yàn)結(jié)果,得到平均精確率為99.4%,平均召回率為99.2%,平均F1值為99.3%。從實(shí)驗(yàn)結(jié)果來看,多次測(cè)試結(jié)果指標(biāo)穩(wěn)定,分類準(zhǔn)確率較高。

SVM通過訓(xùn)練及優(yōu)化SVM模型參數(shù),設(shè)定kernel參數(shù)為rbf、gamma設(shè)置為scale時(shí),模型識(shí)別效果最好。最終在模型參數(shù)固定情況下,使用20%的數(shù)據(jù)作為測(cè)試集,80%數(shù)據(jù)作為訓(xùn)練集,重復(fù)執(zhí)行多次得到SVM模型的實(shí)驗(yàn)結(jié)果,如表6所示。

表6 SVM多分類結(jié)果

13.png


觀察多次實(shí)驗(yàn)結(jié)果,得到平均精確率為99.1%,平均召回率為99.1%,平均F1值為99.1%。

綜合對(duì)比分析綜合結(jié)果可以分析出,在使用相同樣本進(jìn)行訓(xùn)練的情況下,基于隨機(jī)森林算法和LightGBM算法的多分類模型,效果較SVM多分類模型更好。

隨機(jī)森林分類模型在分類評(píng)估指標(biāo)上同LightGBM分類模型指標(biāo)接近,證明其分類效果相近。SVM由于徑向基核函數(shù),理論上會(huì)擬合任何數(shù)據(jù)分布,但是會(huì)不斷給數(shù)據(jù)升維,增加特征數(shù)量,導(dǎo)致SVM訓(xùn)練效率非常低。同時(shí),實(shí)驗(yàn)中發(fā)現(xiàn),SVM模型的分類效率明顯低于隨機(jī)森林分類模型和LightGBM分類模型。

五、結(jié) 語

本文研究了基于機(jī)器學(xué)習(xí)模型在Web應(yīng)用入侵檢測(cè)的可行性,并通過實(shí)驗(yàn)驗(yàn)證了基于隨機(jī)森林及l(fā)ightGBM算法構(gòu)建的多分類模型,在多分類模型的評(píng)估指標(biāo)上優(yōu)于基于SVM的多分類檢測(cè)模型,能夠達(dá)到理想的檢測(cè)效果。綜上所述,將機(jī)器學(xué)習(xí)用于信息安全領(lǐng)域,在理論與實(shí)踐中具有巨大意義。但是,由于機(jī)器學(xué)習(xí)模型檢測(cè)效率較傳統(tǒng)規(guī)則檢測(cè)效率低,本文研究成果目前僅能與已有的安全防護(hù)軟件進(jìn)行融合(如WAF)進(jìn)行離線威脅檢測(cè),通過檢測(cè)結(jié)果補(bǔ)充已有的安全規(guī)則,提升安全產(chǎn)品的防護(hù)能力。所以,研究如何提升機(jī)器學(xué)習(xí)模型的威脅識(shí)別效率,實(shí)現(xiàn)模型的實(shí)時(shí)檢測(cè)能力,替換傳統(tǒng)的規(guī)則檢測(cè)方式,將會(huì)是本文后續(xù)的研究工作。


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: