999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于機器學習的Web應用入侵威脅檢測*

2021-05-08 06:10:38楊成剛
通信技術 2021年4期
關鍵詞:分類特征檢測

楊成剛

(綿陽市人社信息中心,四川 綿陽 621000)

0 引言

近年來,隨著移動互聯網的蓬勃發展,Web應用已經廣泛深入各行各業,承載著各大公司的關鍵、核心業務。現階段,Web應用已成為網絡安全攻擊的主要目標。為了應對威脅攻擊,傳統基于規則的安全防護產品起到了至關重要的作用。但是,隨著Web應用及組件漏洞的逐漸增加和攻擊方式的逐漸演進,傳統基于規則的安全產品難以實現對眾多已知及未知威脅的有效攔截。所以,研究、探索新一代檢測技術已經成為各大安全公司及科研究機構的重點研究內容。本文主要基于機器學習對Web應用入侵檢測技術進行研究,構建了多分類Web應用入侵威脅檢測模型,包括基于隨機森林的多分類檢測模型、基于lightGBM的多分類檢測模型及基于SVM的多分類檢測模型,并通過實驗對比了3種不同機器學習算法的多分類檢測模型。結果證明,基于隨機森林及lightGBM算法構建的多分類模型,在多分類模型的評估指標上優于基于SVM的多分類檢測模型,能夠達到理想的檢測效果。

1 國內外研究現狀

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

現有基于規則的Web應用入侵威脅檢測、防護產品都存在誤報率、漏報率高等問題,主要原因在于威脅在不斷演進,但威脅規則更新不實時,無法抵抗0day漏洞攻擊。

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

綜上所述,將機器學習應用于Web應用威脅檢測,國內外均有大量的研究基礎。可見,將機器學習技術融入安全防護產品是威脅檢測發展的必然趨勢。

2 機器學習算法及特征工程

2.1 機器學習算法

2.1.1 隨機森林

隨機森林指的是利用多棵決策樹對樣本進行訓練并預測的一種分類器。通過組合多個弱分類器,最終結果通過投票或取均值使得整體模型的結果具有較高的精確度和泛化性能[8-9]。隨機森林算法模型,如圖1所示。

隨機森林構建過程如下。

(1)隨機抽樣,訓練決策樹。N個樣本的樣本集,有放回地抽取N次,每次抽取1個,形成一個有N個樣本的樣本集,用來訓練一個決策樹,作為決策樹根節點處的樣本。

(2)選擇節點分裂屬性。當每個樣本有M個屬性時,在決策樹的每個節點需要分裂時,隨機從這M個屬性中選取出m個屬性,m應遠小于M,然后從這m個屬性中采用某種策略(如信息增益)來選擇1個屬性作為該節點的分裂屬性。

(3)重復步驟2,直到不能分裂。決策樹形成過程中每個節點都要按照步驟2來分裂。如果下一次該節點選出來的屬性是剛剛其父節點分裂時用過的屬性,則該節點已經達到了葉子節點,不再繼續分裂。需要注意,每棵樹都會完整成長而不會剪枝。

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

圖1 隨機森林算法

2.1.2 LightGBM

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

式中,T(x,θm)表示決策樹,θm為決策樹參數,M為樹的個數。根據向前分步算法,第m步的模型可以表示為:

設定yi為第i個樣本的真實值,fm(xi)為第i個樣本的預測值,取損失函數為平方損失,那么損失函數可以表示為:

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

2.1.3 支持向量機

支持向量機(Support Vector Machine,SVM)是在分類與回歸中分析數據的機器學習算法。

SVM通過尋找一個滿足分類要求的最優分類超平面,將實例表示為空間中的點。最優超平面將實例明顯地間隔分開,通過判斷實例在超平面的哪一側來預測所屬類別。理論上,SVM可以實現對線性可分數據的最優分類。

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

2.2 特征工程

特征工程是指從原始數據中提取特征并將其轉換為適合機器學習模型的格式[15-16],通常指的是從N個特征集合中選出M個特征的子集并滿足條件。它包括特征處理和特征提取兩個方面。特征處理指通過包括一組特征中去除冗余或不相關的特征來降維。特征提取廣義上指的是一種變換,將處于高維空間的樣本通過映射或變換的方式轉換到低維空間,達到降維的目的。兩者常聯合使用,如先通過變換將高維特征空間映射到低維特征空間,后去除冗余和不相關的特征來進一步降低維數。

2.2.1 特征處理

訓練機器學習模型的數據集由于數據量通常很大,會存在數據不全(缺失值)、數據重復(冗余數據)及數據錯誤(異常值)等問題(如收入-15元,或身高1 688 cm)。

(1)缺失值

可以采用局部數據的線性插值法進行補缺或使用一個全局常量或屬性的平均值填充空缺值。如無法填充,則可考慮進行忽略。

(2)冗余數據

數據集中的冗余數據,可以采用對數據去重、刪除冗余的方式。

(3)異常值

數據集中存在的錯誤數據,可以根據已有數據的規律及數據類型的特點進行修改,或者采用將錯誤數據移除數據集的方式。

2.2.2 特征提取

本文研究的主要特征即為文本特征。數據主要來源于Web,表示形式通常表現為URL形式。

對于文本特征的處理國內外研究很多。羅燕[17]等人針對詞頻-逆向文件頻率(Term Frequency-Inverse Document Frequency,TF-IDF)提取特征效率低、準確性差的問題,提出了一種基于詞頻統計的關鍵詞提取方法。實驗結果表明,基于詞頻統計的關鍵詞提取方法的精確率、召回率等指標方面均優于傳統的TF-IDF算法,且能提高關鍵詞提取的效率;龐劍鋒[18]等人利用向量空間模型對3種分類方法進行研究,提出了文本分類系統模型。

本文對于特征提取方法采用TF-IDF模型,是一種用于信息檢索與數據挖掘的常用加權技術[19]。

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

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

TF-IDF的計算方式如下。

TF計算公式:

式中,Nw是在某一文本中詞w出現的次數,N是該文本總詞數。

IDF計算公式:

式中,Y是文檔總數,Yw是包含詞條w的文檔數.需要說明的是,分母加1是為了避免w未出現在任何文檔中從而導致分母為0的情況。

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

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

3 威脅入侵檢測模型構建

Web應用入侵通常通過在URL上構建惡意文本的方式進行,因此本文根據Web應用入侵的文本特征構建了基于TF-IDF特征提取的隨機森林、LightGBM及SVM多分類模型。通過優化并比較3個模型,結合生產環境及搜集的開源數據,對3個模型進行優化及驗證。通過多分類評估指標進行評估,可得出各模型的分類效果。

構造本研究中所提出的模型需要經歷多個階段的處理,包括數據集的收集及預處理、特征的提取和選定、機器學習模型的訓練及模型的參數調優等。

3.1 數據收集及特征工程

3.1.1 數據集來源

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

(1)正常數據集搜集

通過網頁爬蟲,選定某幾個網站,對網站進行訪問,爬蟲自動獲取網站訪問的URL鏈接,以此作為正常訪問數據;搜集生產系統中通過WAF訪問并標記為正常的日志,提取訪問URL。

(2)異常數據集搜集

通過開源數據集進行搜集;搜集生產系統中通過WAF訪問并標記為異常的日志,提取數據URL鏈接;基于開源軟件生成。

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

表1 訓練數據類別及數量

3.1.2 特征工程

對搜集到的數據進行統一的格式化處理,以便能夠進行特征工程。

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

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

(1)數據預處理

①異常值處理。刪除訓練集中所存在的空數據及其他異常數據。

②數據變換。Web攻擊通常會存在變換Payload大小寫、添加空字符、URL html編碼以及base64編碼等操作,以試圖繞過安全防護產品的檢測。所以,為了使機器學習模型能夠達到更好的識別能力,需要將搜集的訓練集中的數據進行變換操作,包括將每一條數據中的內容統一轉為小寫字符、解析樣本數據中的URL編碼、對html轉義字符進行處理以及將樣本中出現的數字統一替換為0等。字符類型的標簽數據轉換為數值類型,如標簽為[xss,sqli,os_command],轉換后為[0,1,2]。

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

字符類型的標簽數據轉換為數值類型:本樣本標簽是XSS,將標簽“XSS”編碼為0,作為模型訓練的標簽。

經過數據預處理后的樣本變為id=0">,標簽為0。

③數據去重。經過異常值處理及數據變換后,存在部分冗余數據,如上一步示例中的處理結果。因此,需要對整個數據集數據進行去重處理。

(2)特征提取

本文研究的內容為文本數據特征提取,包含樣本分詞、分詞后的ngram處理及tfidf轉換。

①樣本分詞。將樣本數據以‘char’的粒度進行分詞處理,如?id=0&age=0分詞后為?,i,d,=,0,&,a,g,e,=,0。

②Ngram處理。將分過詞的樣本進行ngram處理[20]。ngram中n的取值范圍是(1,2),n為1表示每條樣本中分好的詞不考慮前后組合,轉換后?,i,d,=,0,&,a,g,e,=,0的形式保持不變。n為2表示樣本中分好的詞進行前后相鄰的兩兩組合,如i,d,=,0,&,a,g,e,=,0,處理后為id,d=,=0,0&,&a,ag,ge,e=,=0。ngram和分詞的方法已封裝在sklearn庫中。

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

tfidf處理,將文本數據轉換成數值矩陣,行表示樣本數,每一列表示一個詞,所有樣本中有多少個不重復的詞,矩陣就有多少列,并通過tfidf的取值反映出每個詞在文檔中的權重。

示例中只有1個樣本,樣本包含42個不同的詞,所以輸出是一個1×42的矩陣。經過特征工程后,可以利用算法進行模型訓練,特征是一個1×42的矩陣,如表2所示。

表2 tfidf結果

其他類型數據的處理步驟和XSS樣本處理一致,只是不同的種類樣本,標簽對應不同的值,所有類型樣本的特征的維度是固定的。比如,設定1 000維,樣本條數為n,那么特征就是一個n×1 000的數值矩陣,標簽就是一個n×1的矩陣。

3.2 多分類模型構建

3.2.1 訓練環境說明

模型構建編程語言為Python,版本為python3.6。訓練模型用到的Python主要工具庫以及功能描述如下。

re:Python正則表達式模塊,用于數據預處理階段,結合其他工具對數據進行處理;

URLlib:用于前期的數據預處理,對URL數據進行解析;

pandas:數據分析工具,用于數據讀取、數據處理和分析;

sklearn:機器學習工具,用于特征工程、訓練隨機森林及SVM模型以及模型評估[21];

lightgbm:用于訓練LightGBM模型。

3.2.2 模型訓練

分別基于sklearn及lightgbm庫構建隨機森林、LightGBM及SVM多分類模型。如圖2所示。訓練時,將特征和標簽輸入到算法進行訓練,訓練后得到模型。

預測時,輸入新樣本的特征到模型,模型預測出新樣本的標簽。

3.2.3 模型評估

將原數據分為訓練集和測試集。訓練集訓練模型,并根據測試集的特征做預測,將預測結果與測試集本身的標簽進行對比。

本文研究的模型為多分類模型。模型評估基于多分類模型的評估準則。評估指標是精確率、召回率和F值,這些數值在測試集上越高表示模型性能越好。以上評估方法已封裝在sklearn庫中。

4 實驗及模型對比

4.1 實驗數據準備

實驗使用數據286 951條,類型分別為XSS、SQL注入、LFI、命令執行、目錄遍歷、RFI以及正常的流量樣本數據。數據分布如圖3所示。

圖2 多分類模型訓練

圖3 實驗數據分布

訓練數據存儲在csv文件中,每個csv文件代表一種類型的數據,文件中每一行代表一個樣本。

按照8:2比例劃分為訓練集和測試集。

4.2 模型對比分析

4.2.1 隨機森林

通過訓練及優化隨機森林模型參數,當設置n_estimators參數為300,criterion設置為gini時,模型識別效果最好。最終在模型參數固定情況下,使用20%的數據為測試集,80%數據為訓練集,重復執行多次得到隨機森林的實驗結果如表4所示。

觀察多次實驗結果,得到平均精確率為99.5%,平均召回率為99.2%,平均F1值為99.3%。從實驗結果來看,多次實驗結果相近,證明隨機森林多分類效果穩定,同時分類結果各評估值均能達到理想的結果。

表4 隨機森林多分類結果

4.2.2 LightGBM

通過訓練及優化LightGBM模型參數,當設置n_estimators參數為533、random_state設置為7時,模型識別效果最好。最終在模型參數固定情況下,使用20%的數據作為測試集,80%數據作為訓練集,重復執行多次得到LightGBM的實驗結果,如表5所示。

表5 LightGBM多分類結果

觀察多次實驗結果,得到平均精確率為99.4%,平均召回率為99.2%,平均F1值為99.3%。從實驗結果來看,多次測試結果指標穩定,分類準確率較高。

4.2.3 SVM

通過訓練及優化SVM模型參數,設定kernel參數為rbf、gamma設置為scale時,模型識別效果最好。最終在模型參數固定情況下,使用20%的數據作為測試集,80%數據作為訓練集,重復執行多次得到SVM模型的實驗結果,如表6所示。

表6 SVM多分類結果

觀察多次實驗結果,得到平均精確率為99.1%,平均召回率為99.1%,平均F1值為99.1%。

4.2.4 綜合對比分析

綜合結果可以分析出,在使用相同樣本進行訓練的情況下,基于隨機森林算法和LightGBM算法的多分類模型,效果較SVM多分類模型更好。

隨機森林分類模型在分類評估指標上同LightGBM分類模型指標接近,證明其分類效果相近。SVM由于徑向基核函數,理論上會擬合任何數據分布,但是會不斷給數據升維,增加特征數量,導致SVM訓練效率非常低。同時,實驗中發現,SVM模型的分類效率明顯低于隨機森林分類模型和LightGBM分類模型。

5 結語

本文研究了基于機器學習模型在Web應用入侵檢測的可行性,并通過實驗驗證了基于隨機森林及lightGBM算法構建的多分類模型,在多分類模型的評估指標上優于基于SVM的多分類檢測模型,能夠達到理想的檢測效果。

綜上所述,將機器學習用于信息安全領域,在理論與實踐中具有巨大意義。但是,由于機器學習模型檢測效率較傳統規則檢測效率低,本文研究成果目前僅能與已有的安全防護軟件進行融合(如WAF)進行離線威脅檢測,通過檢測結果補充已有的安全規則,提升安全產品的防護能力。所以,研究如何提升機器學習模型的威脅識別效率,實現模型的實時檢測能力,替換傳統的規則檢測方式,將會是本文后續的研究工作。

猜你喜歡
分類特征檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
分類算一算
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
抓住特征巧觀察
主站蜘蛛池模板: 久久国产精品国产自线拍| 久久狠狠色噜噜狠狠狠狠97视色 | 久久精品人人做人人爽电影蜜月 | 九九热精品在线视频| 色悠久久久| 综合天天色| 成人精品在线观看| 一区二区三区成人| 国产黄网站在线观看| 国产精品第一区| 久久亚洲国产一区二区| 日本亚洲欧美在线| 亚洲精品大秀视频| av一区二区人妻无码| 青草娱乐极品免费视频| 国产一级视频在线观看网站| 九九免费观看全部免费视频| 美女无遮挡免费网站| 精品国产福利在线| 国产福利拍拍拍| 亚洲精品成人福利在线电影| 一级爆乳无码av| 日本爱爱精品一区二区| 啊嗯不日本网站| 97人人做人人爽香蕉精品| 国产视频欧美| 青青青草国产| 亚洲性影院| 国产XXXX做受性欧美88| 亚洲人成网7777777国产| 色综合热无码热国产| 久无码久无码av无码| 91人妻日韩人妻无码专区精品| 91人人妻人人做人人爽男同| 国产在线视频欧美亚综合| 久久国产精品77777| 久久天天躁狠狠躁夜夜躁| 久久国产亚洲偷自| 波多野结衣国产精品| 97精品国产高清久久久久蜜芽| 国产尤物在线播放| 亚洲中文在线看视频一区| 婷婷综合亚洲| 在线观看免费黄色网址| 美女毛片在线| 精品国产自在在线在线观看| 国产乱子伦无码精品小说| 国产无码在线调教| 日韩小视频在线观看| 国产精品久久久久鬼色| 欧美精品高清| 色综合久久综合网| 成人国产小视频| 国产精品亚洲片在线va| 欧美成人看片一区二区三区| 日本五区在线不卡精品| 日本欧美成人免费| 最新国语自产精品视频在| 国产自无码视频在线观看| 亚洲成综合人影院在院播放| 亚洲日韩精品无码专区97| 自慰高潮喷白浆在线观看| 亚洲欧洲日本在线| 在线亚洲小视频| 日韩亚洲综合在线| 国产伦片中文免费观看| 亚洲 欧美 偷自乱 图片 | 久久久久人妻一区精品色奶水| 欧美在线网| 精品人妻一区二区三区蜜桃AⅤ| 免费av一区二区三区在线| 第一页亚洲| 国产成人综合久久精品下载| 中文国产成人精品久久一| 国内自拍久第一页| 欧美精品v| 亚洲日韩第九十九页| 免费A级毛片无码免费视频| 久久性妇女精品免费| 91精品网站| 精品成人一区二区| 无码高清专区|