一种基于集成学习的WEB异常流量监测方法与流程

文档序号:12037882阅读:250来源:国知局
一种基于集成学习的WEB异常流量监测方法与流程

本发明属于机器学习技术领域,具体涉及多种统计学算法与机器学习算法,本算法采用了新的特征提取方式,对统计学与机器学习算法进行创新性融合,实现对web异常流量的监测。



背景技术:

1、信息时代的网络安全问题

在信息大爆炸的今天,计算机网络的规模与互联网使用人数都达到了空前规模,而接踵而至的,是网络安全问题的愈加凸显。作为抵御网络攻击的最主要手段,异常流量监测的研发与升级迫在眉睫。经过二十多年的发展,流量监测的研究进化出了多个分支,然而在实际应用中,效果却并不尽如人意,其难点主要集中在下面几个方面:

1)将违规行为模式用固定规则进行实时监测导致误报率过高;

2)运用特征匹配时,特征库需要手动更新,无法检测未知攻击方式;

3)庞大的规则数量使得系统检测性能受到了很大的影响,规则库的维护变得难以维护;

4)具有阻断功能的异常流量检测系统在误检正常通信行为时,正常通信会被阻断;

5)在监测系统数据存储能力存在瓶颈时,易遭受拒绝服务攻击,通信将被阻断。

基于异常流量检测系统存在以上问题,当前关于该系统的研究主要集中在三个方向上:特征匹配、规则推理与机器学习。

2、机器学习

近年来,机器学习的方法越来越多的应用到异常流量检测的算法设计中来。不需要太多人工干预解决了特征匹配中特征库的更新与规则库的人力维护问题,大大提高了自动化程度;对不同的输入数据的适应性强,打破了规则推理的高误报率僵局,面对未知攻击能得到较高的准确率。

然而,单一的机器学习并不能完美的解决问题。其中的统计方法认为所有事件皆由统计模型产生,这种方法忽略了参数方法中事先设定的分布模型可能与真实数据不符的风险,从而与预期结果产生很大偏差。另外统计模型构成的系统大多在离线状态下工作,无法满足实时监测的要求,因而要到达高准确率需要非常高效的性能;且统计方法对于阈值的确定非常困难,阈值过高、过低都会引起会引起漏报率的上升。

而机器学习算法尽管能将先验后验知识无缝结合,克服框架不够直观的缺点,然而单纯的分类、聚类算法由于噪声数据干扰、抽样方法错误、建模变量过多等问题会导致过拟合,并不能达到很好的监测效果。且模型的精确性需依赖一定的假设,这些假设是体现在目标系统、网络的行为模式上的,与假设违背将会造成准确率的大幅度下降。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种有效提升了原机器学习方法对异常流量监测的准确率的基于集成学习的web异常流量监测方法方法。本发明的技术方案如下:

一种基于集成学习的web异常流量监测方法,其包括以下步骤:

1)数据预处理:获取统一资源定位符url记录,并对统一资源定位符url记录进行切割分离,提取有效信息;

2)构建特征工程:运用统计学方法对常见的指令攻击、数据库攻击、跨站脚本攻击与本地文件包含攻击以及正常网络访问的统一资源定位符url分别进行特征的提取;

3)数据集重构:针对五种访问性质,分别根据各自特征对总数据集进行整理,将标签调整为该访问性质及其他;

4)模型建立:对五种访问性质所对应的数据集,分别运用xgboost(极端梯度提升)、lightgbm(轻量级梯度提升机)、rf(随机森林)、lr(逻辑回归)四种机器学习算法对数据进行有监督学习,运用bagging框架集成学习器,得到针对这五种访问性质各自的识别模型;

5)模型测试:对步骤4中提前预留的部分数据集进行测试,检验模型准确率。

进一步的,所述步骤1)url有效信息的抽取包括步骤:对于一条未处理的url:首先去除“#”后的无效数据;将剩余片段按“?”进行切割;分理出文件路径片段,以“/”与“=”划分;查询部分以“&”与“=”划分;划分所得的参数与值分别放入处理函数中进行正则匹配。

进一步的,所述处理函数会将数字用日期与时间代替,乱符更换为“$0”,长度小于10的小写字母组成的字符串改为“s”,长度大于2的“ox”开头的字符串改为“ox1234”,多个空格缩为一个空格,处理完毕后的片段即为模型需要的url信息片段。

进一步的,所述步骤2)构建特征工程具体包括:url参数值的长度,利用统计学中的切比雪夫不等式,以及长度的均值与方差计算出长度的异常值p:字符分布,利用统计学中的卡方检验计算字符分布的异常值α;枚举类型,计算属性值的输入所属枚举异常类型中的情况;关键词抽取,寻找相同访问性质的url共同特征,在扫描所有url数据后,对所有物理位置相邻的字符串进行频次记录,筛除频次过低的字符串后对剩余字符串做互信息计算。

进一步的,所述url参数值的长度异常值,利用统计学中的切比雪夫不等式以及长度的均值与方差可以计算出长度的异常值p,计算公式包括:

其中x表示url参数值的长度,μ为长度均值,σ2为长度方差,k表示标准差个数;

进一步的,所述字符分布利用统计学中的卡方检验计算字符分布的异常值α具体包括:对于字符串{s1,s2,…,sn},cd(s)i表示cd(s)中的第i个概率值,icdi表示icd中的第i个概率值,则其中i=1,2,…,n,即icd中的第i个概率值是样本集中所有样本分布的第i个概率值的均值;

进一步的,所述枚举类型,计算属性值的输入所属枚举异常类型中的情况,所述定义函数f和g,函数f是线性递增函数,g(x)表示样本函数,当依次输入训练样本时,倘若遇到新样本则g加1,否则g减1,

f(x)=x

当所有样本都学习结束后得到的函数f和g的相关系数ρ可由下面的公式定义:

其中var(f)和var(g)分别是函数f和g的方差,covar(f,g)是函数f和g的协方差。

进一步的,所述关键词抽取互信息体现了字符串内部结合方式是否紧密,其计算公式如下:

其中,p(s1s2s3)表示字符串s1s2s3出现的概率,p(s1s2)、p(s2s3)含义相仿。

进一步的,还包括计算字符串邻字的左右邻字丰富程度的步骤,其左右邻字的丰富程度可以使用信息熵获得其中p(i)表示该字符串的邻字i出现的概率。

进一步的,所述bagging是从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果的集成学习框架,在学习器的基础上,从原始数据集上重新选取数据集进行分类预测,以多数投票的方式敲定标签,同时,检验模型准确率。

本发明的优点及有益效果如下:

本发明运用统计学方法,对url进行切片、特征提取,保证了特征提取的完整性与可靠性。同时集成多种机器学习算法,包括准确率极高的xgboost(极端梯度提升)、rf(随机森林)等,保证了模型进行流量异常监测时的高精度,在监测过程中将来访url输入五个模型中进行预测来鉴定是否为已知异常,同时还能对未知异常进行识别。

附图说明

图1是本发明提供优选实施例的方法整体流程图;

图2为本方法中对url的切割提取示例图;

图3为本方法bagging框架集成过程图;

图4为本模型下异常流量监测流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

本发明解决上述技术问题的技术方案是:

本发明提出了一个用于解决异常流量监测的模型。图1所示为整个模型的流程图。对数据集进行预处理,如对“&”、“=”等符号进行分割,提取url中的有效信息,来提高处理效率。图2为url切割示例。处理后的数据通过互信息、信息熵等统计学方法进行特征提取。特征工程构造完毕后,根据访问性质的不同,分别构造不同特征的数据集,更换标签为两类:当前访问性质及其他。与此同时,抽取部分数据作为测试集。对重构后的五个数据集分别进行机器学习。引入extremegradientboosting、lightgradientboostingmachine、randomforest、logisticregression四种机器学习算法对数据集进行有监督学习,并通过bagging框架集成学习器,得到针对不同访问性质的相互独立的识别模型。图3为bagging框架集成过程。将预留的测试集分别带入识别模型中进行测试,检验模型准确性。

整个改进的异常流量监测模型的重要过程包括:url的信息抽取,特征工程的构造,多算法学习器的训练,bagging框架集成。

一、url的信息抽取

为了提高模型的处理效率,对url的有效信息抽取至关重要。对于一条未处理的url:

1)首先需去除“#”后的无效数据;

2)将剩余片段按“?”进行切割

3)分理出文件路径片段,以“/”与“=”划分;

4)查询部分以“&”与“=”划分;

将3)、4)划分所得的参数与值分别放入处理函数中进行正则匹配。处理函数会将数字用日期与时间代替,乱符更换为“$0”,长度小于10的小写字母组成的字符串改为“s”,长度大于2的“ox”开头的字符串改为“ox1234”,多个空格缩为一个空格。处理完毕后的片段即为模型需要的url信息片段。

二、特征工程的构造

众所周知,特征工程的构造严重影响着模型的有效性与准确率。

1)url参数值的长度:利用统计学中的切比雪夫不等式以及长度的均值与方差可以计算出长度的异常值p,

其中μ为长度均值,σ2为长度方差,k表示标准差个数;

2)字符分布:利用统计学中的卡方检验计算字符分布的异常值α。对于字符串{s1,s2,…,sn},cd(s)i表示cd(s)中的第i个概率值,icdi表示icd中的第i个概率值,则其中i=1,2,…,n。即icd中的第i个概率值是样本集中所有样本分布的第i个概率值的均值;

3)枚举类型:某个属性值的合法输入属于枚举类型的情况非常普遍,例如“gender”属性的合法参数是“{male,female}”,任何不属于这两种情况的输入都应该属于异常情况。定义函数f和g,函数f是线性递增函数,当依次输入训练样本时,倘若遇到新样本则g加1,否则g减1。

f(x)=x

当所有样本都学习结束后得到的函数f和g的相关系数ρ可由下面的公式定义:

其中var(f)和var(g)分别是函数f和g的方差,covar(f,g)是函数f和g的协方差;

4)关键词抽取:为了寻找相同访问性质的url共同特征,对同访问类型的url做关键词抽取显得尤为重要。在扫描所有url数据后,对所有物理位置相邻的字符串进行频次记录。筛除频次过低的字符串后对剩余字符串做互信息计算。互信息体现了字符串内部结合方式是否紧密,其计算公式如下:

其中,p(s1s2s3)表示字符串s1s2s3出现的概率,p(s1s2)、p(s2s3)含义相仿。

此外,还需要计算字符串邻字的左右邻字丰富程度,左右邻字越丰富,该字符串在数据集中就越灵活,是该种url关键词的可能性就越大。其左右邻字的丰富程度可以使用信息熵获得其中p(i)表示该字符串的邻字i出现的概率。

三、多算法学习器的训练

在训练数据前,需要对数据做少许改动。针对每种访问性质的url特征扩展到整个数据集中,形成五个不同的数据集。同时改变原标签,仅保留该访问性质的标签,剩余访问性质的url数据的标签皆用其他代替。

算法上所选取上的xgboost、lightgbm、rf、lr,经过测试,是准确率较高、与问题贴合性最强的机器学习算法。

1)xgboost:xgboost是在adaboost和gbdt等提升算法基础上进行了优化的算法,可用于线性分类,可看做带有l1和l2正则化的线性回归算法;相比于传统gbdt多了正则化函数所以在防止过拟合方面提升很多、在分布式算法方面,xgboost会把每一维度的特征在一台机器内进行排序,并保存在block结构内。所以多个特征计算可以分布在不同机器内执行,最后结果汇总。这样使得xgboost具有了分布计算的能力;因为特征值最后只是用在了排序,所以异常特征值对xgboost模型学习影响较少;每次的计算只是选择梯度减少最大的特征所以特征相关性选择问题也解决了;

2)lightgbm:lightgbm是一个实现gbdt算法的框架,支持高效率的并行训练,并且拥有更快的速度、更低的内存消耗、更好的准确率、更好的分布式支持,可以快速处理海量数据。

3)randomforest:randomforest尤为适合做多分类问题,训练和预测速度快,在数据集上表现良好;对训练数据的容错能力强;能够处理很高维度的数据,并且不用做特征选择,即:可以处理没有删减的成千上万的变量,在处理用关键提取出的大量特征时发挥了很好的效用;能够在分类的过程中可以生成一个泛化误差的内部无偏估计;能够在训练过程中检测到特征之间的相互影响以及特征的重要性程度;不会出现过度拟合;

4)logisticregression:逻辑回归的思想是用一个超平面将数据集分为两部分,这两部分分别位于超平面的两边,且属于两个不同类别,刚好切合在处理数据集时将每种访问性质的url数据集重新打标签的数据。图4为logisticregression两分类原理示意图。此外,其分类时计算量非常小,速度很快,存储资源极低,且便于观测样本概率分数。

四、bagging框架集成

bagging是一种从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果的集成学习框架。在学习器的基础上,从原始数据集上重新选取数据集进行分类预测,以多数投票的方式敲定标签,同时,检验模型准确率。由于该框架的整体模型期望近似于基模型的期望,这也就意味着整体模型的偏差与基模型的偏差近似,同时整体模型的方差会随着基模型数的增多而减少,防止了过拟合能力的增强,模型准确率会显著提高。表1为各机器学习算法与bagging集成后实验准确率对照表;

表1模型准确率对照表

以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1