魏璐露 程楠楠
收稿日期: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—),女,汉族,江苏南通人,高级工程师,博士在读,研究方向:知识推荐算法、深度学习。