魏璐露 程楠楠



收稿日期:2023-07-05
基金項目:江西省教育廳科學技術研究項目(GJJ2202609)
DOI:10.19850/j.cnki.2096-4706.2024.04.035
摘? 要:隨著Web應用程序的普及,網絡攻擊和安全漏洞的風險日益增加。Web日志文件詳細記錄了網站運行信息,對日志中的流量進行分類從而檢測出異常攻擊流量是保障網頁長期提供穩定、安全服務行之有效的方法之一。文中將Voting特征選擇與Stacking集成相結合,構建了SVM-DT-MLP模型,并將其用于Web日志異常流量檢測。測試結果表明,SVM-DT-MLP模型的性能顯著優于單一算法模型,其Precision(精確度)達到92.44%,Recall(召回率)達到92.43%,F1-Score(F1值)達到92.44%。這意味著該模型能夠有效地檢測出異常攻擊流量,并在保障網頁提供穩定和安全服務方面具有很好的效果。
關鍵詞:Web日志;異常流量檢測;Stacking集成;Voting特征選擇;機器學習
中圖分類號:TP391.1;TP183? 文獻標識碼:A? 文章編號:2096-4706(2024)04-0171-05
Research on Web Log Abnormal Traffic Detection Based on the SVM-DT-MLP Model
WEI Lulu, CHENG Nannan
(Information Engineering College, Jiangxi University of Technology, Nanchang? 330029, China)
Abstract: With the popularity of Web applications, the risk of cyber attacks and security vulnerabilities is increasing. Web log files record the running information of websites in detail. Classifying the traffic in logs to detect abnormal attack traffic is one of the effective methods to ensure the long-term stability and security service provided by Web pages. In this paper, Voting feature selection and the Stacking integration are combined to construct the SVM-DT-MLP model, and it is used to detect abnormal traffic in Web logs. The test results show that the performance of SVM-DT-MLP model is significantly better than that of the single algorithm model, with the precision reaching 92.44%, the recall reaching 92.43% and the F1-Score reaching 92.44%. This means that the model can effectively detect abnormal attack traffic and has a good effect in ensuring stable and secure services provided by Web pages.
Keywords: Web log; abnormal traffic detection; Stacking integration; Voting feature selection; Machine Learning
0? 引? 言
隨著信息技術的迅猛發展,Web程序在各個領域得到了廣泛的應用和普及。Web程序的優勢在于其便捷性和靈活性,使得用戶可以通過互聯網輕松訪問和利用各種服務和資源。無論是電子商務、在線教育、社交娛樂還是企業管理,Web程序為人們的生活和工作帶來了巨大的益處。然而,正是因為Web程序部署在開放共享的互聯網上,它也面臨著一系列的攻擊威脅。黑客和惡意分子利用網絡漏洞和弱點,可能會進行各種形式的攻擊,如數據泄露、拒絕服務攻擊和惡意代碼注入等。這些安全威脅不僅對個人用戶造成風險,也對企業和組織的信息資產和業務運營帶來嚴重的威脅。為了應對這些安全威脅,Web日志的檢測和分析成為一種有效的方法。通過監控和分析Web日志,可以檢測出異常流量和潛在的攻擊行為,提前采取相應的防護措施。然而,以往基于規則匹配的Web日志分析方法存在一定的局限性。這些方法依賴于預先定義的規則和模式來識別攻擊,但隨著攻擊手段的不斷演變和變異,這種基于規則的方法往往無法準確地檢測新型的和未知的攻擊[1]。
近年來,隨著人工智能的興起,機器學習算法模型成為改進Web日志處理的一種更好的選擇。采取機器學習算法模型處理Web日志不僅能超越基于規則的方法的限制,還可以提高威脅檢測的準確性和效率[2]。為此,本課題從大量的Web日志數據中提取特征和模式,通過機器學習算法模型的訓練和學習,以期實現對異常流量的準確分類。
1? 數據處理
1.1? 實驗環境
本實驗是在64位Windows 10操作系統中進行的,計算機型號和參數為Intel(R)Core(TM)i7-4790K的CPU,主頻是3.60 GHz,主要開發平臺是PyCharm,采用的編程語言是Python 3.6。
1.2? 數據獲取與清洗
實驗數據一部分為HTTP CSIC 2010數據集,這是西班牙研究委員會信息安全研究所制作的一套開源網絡流量數據集,制作初衷是為了測試Web攻擊進而對系統加以安全保護。該數據集中涵蓋了36 000條正常HTTP行記錄(分類標簽為1)以及逾25 000條異常HTTP行記錄(分類標簽為0),現已廣泛應用于Web異常流量檢測研究中。實驗數據另一部分是已發表油菜多組學數據庫BnIR從2021年12月6日到2022年3月4日期間自身產生的1 668 668條Web日志原始記錄[3,4]。本研究對原始Web日志文件進行了數據清洗,已刪除毫無意義的HTTP請求記錄以及狀態碼為403或者404的HTTP請求記錄。經過數據清洗這一操作,1 668 668條原始記錄轉換為392 291條有效記錄[5]。
1.3? 基于URL的特征提取
基于Web日志的異常檢測是為站點提供系統應用層面的安全防護,并不是要對惡意網站、釣魚鏈接進行排查。所以在特征提取過程中,本研究重點關注的是如何從URL參數中提煉出適合的特征。本課題重點分析了Web日志中HTTP請求字符串包含的參數所具有的數學特征,共提取出以下9個特征:1)url_total_len:表示HTTP請求的長度。2)path_str_len:表示HTTP請求中訪問路徑的長度。3)canshu_len:表示HTTP請求中參數的長度。4)canshu_num:表示HTTP請求中參數的數量。5)big_num:表示HTTP請求中包含的大寫字符的數量。6)small_num:表示HTTP請求中包含的小寫字符的數量。7)not_alpha_fre:表示HTTP請求中特殊字符出現的頻率。8)digit_num:表示HTTP請求中數字出現的頻率。9)key_num:表示HTTP請求中包含的關鍵字的數量。其中關鍵字是指攻擊流量中常包含的字符[6,7]。
基于URL提取出的各個特征單位各不相同,而每維特征需同等處理,故為消除特征間單位和尺度差異的影響以提高模型訓練效率,本實驗還使用scikit-learn庫中的MinMaxScaler來對提取出的9個特征進行歸一化處理。設x是需歸一化的數據,x.min(axis=0)和x.max(axis=0)分別為表示每列最小和最大值組成的行向量,min和max控制數據壓縮范圍,默認是[0,1]。
2? 算法介紹
2.1? 向量機算法
支持向量機算法(Support Vector Machine, SVM)為二分類模型,是構建在特征空間上間隔的最大線性分類器。例如對于給定的訓練樣本集為T,xi為第i個特征向量,yi為類標記,可以使用如式(1)表示的超平面進行劃分:
(1)
兩個不同分類下訓練樣本點間的最小距離定義為式(2):
(2)
于是如式(3),最優化以下約束即可以求解出SVM算法模型最大分割超平面問題:
(3)
對于包含了不等式約束的凸二次規劃公式,最優參數w和b可以使用拉格朗日乘子法和對偶算法求解出來。
2.2? 決策樹
決策樹(Decision Tree, DT)是樹結構,由節點和有向邊組成,其學習的關鍵是選擇最優屬性進行劃分。決策過程從決策樹的根節點開始,將待測數據與決策樹中的特征節點進行比較,使得樹的分支節點所包含的樣本盡可能屬于同一個類別,即節點的“純度”越來越高。決策樹模型包含有基于信息熵劃分的ID3決策樹、基于信息增益率劃分的C4.5決策樹和基于基尼指數劃分的CART決策樹。
假定當前樣本集合D中第i類樣本所占的比例為Pi(i = 1,2,…,| n |),則D的信息熵定義為式(4),熵值越小則樣本純度越高。
(4)
選用屬性a對D進行劃分,并且a有V個可能值,所有值為av的樣本記為DV,那么信息增益定義為式(5),信息增益率定義為式(6),基尼值定義為式(7):
(5)
(6)
(7)
2.3? 人工神經網絡
人工神經網絡(Artificial Neural Network, ANN)是對生物神經網絡抽象模擬的算法模型。多層感知器(Multilayer Perceptron, MLP)是ANN中的一種,輸入層、輸出層及多個隱藏層組成了MLP的前向結構。本研究使用了深度學習框架PyTorch中已安裝好的庫torch.nn來搭建三層感知器算法模型,選用Adam優化器來更好地實現二分類任務,并利用包含各種優化算法的庫torch.optim優化神經網絡中的參數。此外,在三層MLP算法中引入迭代優化思想,其步驟如下:
一是先就有標簽的數據訓練,訓練完后再在無標簽的數據上進行一輪預測,形成偽標簽數組predictions,元素為0或者1。
二是使用激活函數求0和1類別對應的概率,表達式如式(8):
(8)
三是設定閾值,如果在0或1下的概率高于設定的值,則將其作為高質量的預測值,對應的樣本可加入訓練集。該方法具有擴充和均衡訓練集的效果,MLP能在新的數據上繼續訓練以提高模型精度。
3? 單個機器學習算法模型的訓練與評估
如圖1所示,為檢測出BnIR的Web日志中的異常流量記錄,本實驗首先從HTTP CSIC 2000數據集中隨機取70%作為初始訓練集,另外30%當作測試集。其次將初始訓練集分別輸入到各個機器學習算法模型中,經參數配置調優后創建初始異常檢測模型。然后將未分類的油菜多組學數據庫的Web日志數據作為初始檢測模型的輸入以獲取每行日志記錄的偽標簽。鑒于油菜多組學數據庫系統其本身是一個面向科研人員的知識傳播站點,Web日志中必然客觀存在正常流量記錄條數遠遠大于異常流量記錄條數的情況。而樣本類別的不均衡率越低,模型的效果越好[8]。所以我們利用Python中imbalanced-learn庫下的過采樣(增加標簽少樣本的數量)、欠采樣(減少標簽多樣本的數量)和設置樣本類別不同權重的方法來均衡類別失衡的數據集,再將數據集二次輸入到初始模型中,最后用測試集來驗證各個算法模型在BnIR日志異常檢測問題上的可應用性,評估指標包含有精確度、召回率、F1-Score。
圖2為各個機器學習算法模型在異常檢測問題上的性能對比,可以得出以下結論:與SVM模型對比,DT模型和MLP模型在BnIR日志異常檢測問題上表現更為良好。SVM算法的精確度、召回率和F1-Score分別是75.70%、74.84%、73.55%。而MLP算法的精確度、召回率和F1-Score分別是82.84%、82.92%、82.82%。DT算法的精確度、召回率和F1-Score均是最高值,分別為91.52%、91.52%、91.48%。
圖1? 基于單一機器學習分類器的異常檢測流程
圖2? LR、SVM、DT和MLP模型在BnIR日志異常流量檢測問題上的性能對比
4? Stacking集成算法模型的訓練與評估
為構建更適用于Web日志流量分類問題的算法模型,本課題將Stacking集成策略引入日志中流量記錄的分類預測中[9,10]。LR、SVM、DT和MLP組合形成了若干Stacking模型,圖3為元分類器是LR的實驗流程。
特征選擇是提高分類器性能的必要預處理步驟,能獲取兼具冗余最小化和相關性最大化的特征子集,本實驗對特征集的二次選擇主要采用過濾法和嵌入法:1)過濾法:選用單變量特征選擇方法中的SelectBest和SelectFdr,根據卡方檢驗保留了若干個最高分的特征。2)嵌入法:在若干機器學習算法模型上采用SelectFromModel方法對特征集中的每個特征按照重要性權重排序。設[M0, M2, …, M8]為初始特征集,n需獲取的特征子集的維數,最優特征子集選擇的具體步驟為:1)設n為4,在SelectBest中采用chi2方法篩選出4個最佳特征,形成Mvoting_1特征子集。2)在SelectFdr中為估計的錯誤發現率選擇P值,設置預期的錯誤發現率上限為0.01,形成Mvoting_2特征子集。3)在SelectFromModel中選擇DT作為基本估算器,形成Mvoting_3特征子集。4)在SelectFromModel中選擇SVM作為基本估算器,形成Mvoting_4特征子集。5)在SelectFromModel中選擇LR作為基本估算器,形成Mvoting_5特征子集。6)在SelectFromModel中選擇XGBoost作為基本估算器,形成Mvoting_6特征子集。7)在SelectFromModel中選擇RF作為基本估算器,形成Mvoting_7特征子集。8)排列Mvoting_1、Mvoting_2、Mvoting_3、Mvoting_4、Mvoting_5、Mvoting_6和Mvoting_7,依次計算Mi在各個特征子集中的出現次數。9)得出[M0,M2,…,M8]基于投票機制下擇選出的最優特征子集Mmix。
圖3? 元分類器為LR的實驗流程
表1記錄了以上方法對特征集[M0,M2,…,M8]的選擇情況,Fi為第i個SelectFromModel方式。參照Voting原則中的“少數服從多數思想”,實驗最后選取[M0,M2,M3,M5,M6]形成新的特征子集,用于接下來的模型訓練。
表1? 不同特征選擇方式下的特征子集
方式 特征子集
SelectBest [M0,M2,M3,M8]
SelectFdr [M0,M1,M2,M3,M4,M5,M6,M7,M8]
F1 [M0,M2,M5,M6]
F2 [M0,M2,M3,M6]
F3 [M0,M2,M3,M6]
F4 [M0,M2,M5,M6]
F5 [M0,M2,M5,M6,M7]
MIDS具有精準識別出已知的攻擊模式的優勢,故在Stacking模型為未分類的BnIR日志數據集生成偽標簽后,加入MIDS的判斷,如果類別為1(正常)的記錄被MIDS判定包含有攻擊關鍵詞,則將其類別轉換為0(異常)。
表2為Stacking模型在異常流量檢測問題上的實驗結果,可得出結論:1)組合多個機器學習分類器形成的Stacking分類器比單一分類器更適于BnIR的日志異常檢測。2)在日志異常流量檢測問題上,當我們將LR作為元分類器時,基于SVM-DT-MLP的Stacking模型分類效果達至最佳,精確度是92.44%,召回率是92.43%,F1-Score是92.44%。這些評估指標均體現了該模型對正常流量和異常流量的檢測效果較好。
表2? 不同算法組合下的Stacking模型實驗結果
基分類器 元分類器 Precision / % Recall / % F1-Score / %
SVM-DT-MLP LR 92.44 92.43 92.44
LR-DT-MLP SVM 91.55 91.54 91.50
LR-SVM-MLP DT 87.35 83.95 82.94
圖4中記錄了3個單一分類器(SVM、DT和MLP)和基于SVM-DT-MLP的Stacking分類器的性能對比,并以折線圖的形式展示。對比結果顯示了SVM-DT-MLP的Stacking模型具有較高的性能優勢,其比SVM模型在精確度、召回率和F1-Value分別多出16.74%、17.59%和18.89%,其比DT模型在精確度、召回率和F1-Value分別多出0.92%、0.91%和0.96%,其比MLP模型在精確度、召回率和F1-Value分別多出9.6%、9.51%和9.62%。
圖4? 多個異常檢測模型在最優性能上的對比
5? 結? 論
本文收集了HTTP CSIC 2010數據集和BnIR的Web日志數據,并通過Stacking集成思想和Voting特征選擇提出了SVM-DT-MLP的算法模型,用于解決Web日志中異常流量檢測問題,實驗結果顯示,與單一分類器模型相比,該模型展現出更高的檢測性能,因此適用于解決Web日志異常流量檢測問題。本研究的Web檢測研究實質上是對日志流量的二分類問題,后續將使用更多的公共數據集,嘗試使用更多不同的特征集,同時結合更多前沿的深度學習算法,通過實驗來尋找能給出最優解的模型,并輸出不同類別的攻擊流量。
參考文獻:
[1] JEUNE L L,GOEDEME T,MENTENS N. Machine Learning for Misuse-Based Network Intrusion Detection:? Overview, Unified Evaluation and Feature Choice Comparison Framework [J].IEEE Access,2021,9:63995-64015.
[2] AGOSTI M,CRIVELLARI F,DI NUNZIO G M. Web log analysis: a review of a decade of studies about information acquisition, inspection and interpretation of user interaction [J].Data Mining and Knowledge Discovery,2012,24:663-696.
[3] 蹇詩婕,盧志剛,杜丹,等.網絡入侵檢測技術綜述 [J].信息安全學報,2020,5(4):96-122.
[4] YANG Z Q,WANG S B,WEI L L,et al. BnIR: A multi-omics database with various tools for Brassica napus research and breeding [J].Molecular Plant,2023,16(4):775-789.
[5] 魏璐露.油菜多組學數據庫開發及基于Web日志的異常檢測 [D].武漢:華中農業大學,2022.
[6] ZHANG J Q,WANG Z Z,MENG J J,et al. Boosting Positive and Unlabeled Learning for Anomaly Detection With Multi-Features [J].IEEE Transactions Multimedia,2019,21(5):1332-1344.
[7] 巫家宏,楊振國,劉文印.基于多尺度特征融合的惡意HTTP請求檢測方法 [J].計算機應用研究,2021,38(3):871-874+880.
[8] LIANG X W,JIANG A P,LI T,et al. LR-SMOTE-An improved unbalanced data set oversampling based on K-means and SVM [J].Knowledge-Based Systems,2020,196(21):1-10.
[9] BOL?N CANEDO V,ALONSO BETANZOS A. Ensembles for feature selection: A review and future trends [J].Information Fusion,2019,52:1-12.
[10] MATLOOB F,GHAZAL T M,TALEB N,et al. Software Defect Prediction Using Ensemble Learning: A Systematic Literature Review [J].IEEE Access,2021,9:98754-98771.
作者簡介:魏璐露(1998.01—),女,漢族,江西南昌人,助教,碩士,研究方向:機器學習、生物信息學;程楠楠(1987.12—),女,漢族,江蘇南通人,高級工程師,博士在讀,研究方向:知識推薦算法、深度學習。