一种HTTP请求双层递进式异常检测方法技术

技术编号:22333376 阅读:44 留言:0更新日期:2019-10-19 12:53
本发明专利技术公开了一种HTTP请求双层递进式异常检测方法,基于双层递进式异常检测模型进行异常检测,该模型由XGBoost梯度提升树模块和LSTM长短期记忆网络模块组成。在对一定规模的HTTP请求数据集进行训练之后,该模型先用第一层XGBoost梯度提升树模块进行快速判断,存疑的HTTP请求再输入到第二层LSTM模块进行仔细判断,实现HTTP请求异常检测,达到通过正常HTTP请求,拦截恶意HTTP请求的目的。本发明专利技术可以有效提高对HTTP请求异常检测的准确度,降低异常检测的假阳性,并使异常检测模型具有一定的长期依赖性。

A two-layer progressive anomaly detection method for HTTP requests

【技术实现步骤摘要】
一种HTTP请求双层递进式异常检测方法
本专利技术涉及网络安全
,特别是涉及一种面向网络应用防火墙的HTTP请求双层递进式异常检测方法。
技术介绍
随着云计算和大数据技术的发展,网络应用在海量数据下的安全性受到威胁。传统的网络应用防火墙使用规则匹配的方法进行HTTP请求的异常检测,无法应对需求多变、攻击复杂、数据量大等挑战。因此,研究者开始将机器学习的方法应用到网络应用防火墙中。单一的机器学习模型普遍存在模型复杂、特征工程复杂、准确度低、假阳性高、难以长期依赖等缺点。例如,在单一的K-Means聚类分析中,很难衡量两个HTTP请求的距离并分离出远离中心点的异常数据;单一的支持向量机(SVM)模型需要将输入数据映射到高维并进行高维超平面分割,存在高维数据稀疏,内存开销大,语法树重建复杂等问题。单一的隐马尔科夫模型(HMM)是在单词层面上识别HTTP请求中的URL,但其泛化能力有限,分词难度大。单一的决策树模型则过于简单,不能应对复杂多变的业务需求;而且决策树模型普遍存在假阳性高的问题,假阳性高将导致恶意HTTP请求被误识别为正常HTTP请求,引起很严重的网络安全问题。近年来出现了很多改进的单一机器学习模型,但都只能适用于特定的业务和数据中,灵活性不佳。因此,复合的机器学习模型开始用于入侵检测中。多种机器学习模型符合能克服彼此之间的缺点,最终的输出结果将由复合模型中的每一个模型的输出值综合后再给出,达到提高模型性能的目的。复合机器学习模型包括集成聚类、随机森林、SVM-DT算法等。这些算法均在准确性和普适性上做到了进一步的提升,其特征工程的好坏直接影响了模型的准确性和扩展性。这种复合方法优点与缺点并存。优点是集成了多个弱分类器,每一个弱分类器的特征提取相对简单;缺点在于弱分类器的选取和优化较难,弱分类器的重训练很耗时间;而且,一些简单的复合机器学习算法即使经过重训练后,其长期依赖效果也不好。因此,有必要设计一种新的面向网络应用防火墙的异常检测方法,以实现对更大规模的、假阳性低的、长期依赖性更好的用户请求过滤和异常检测。
技术实现思路
本专利技术所解决的技术问题是,针对现有技术的不足,提供一种HTTP请求双层递进式异常检测方法,准确度高,具有一定的长期依赖性。本专利技术所提供的技术方案为:一种HTTP请求双层递进式异常检测方法,包括以下步骤:步骤1、提取最近一段时间内的HTTP请求作为样本;基于现有方法获得样本类别标签,样本类别标签包括异常和正常两种;步骤2、对各个样本分别进行特征提取;步骤3、构建双层递进式异常检测模型,其中包括XGBoost(极端梯度提升)模块和LSTM(长短期记忆网络)模块两个子模块,基于样本的特征和类别标签对两个子模块分别进行训练,得到训练好的双层递进式异常检测模型;双层递进式异常检测模型的使用均包含两个阶段,其一是训练阶段,将所述步骤1中的特征向量制作成数据文件,调用python语言的XGBoost库和LSTM库进行训练,在使用XGBoost库的过程中,把目标函数设置为二分类逻辑回归函数,设置输出为相应的HTTP请求为正常的概率p;在使用LSTM库的过程中,设置LSTM模块的激活函数为softmax,属于相应的HTTP请求为正常和异常的概率;保存训练好的模型文件;其二是实际应用阶段,加载训练好的的模型文件,对待检测的HTTP请求进行异常检测。步骤4、对待检测的HTTP请求,提取其特征,将其特征输入双层递进式异常检测模型,判断该待检测的HTTP请求是否异常。进一步地,所述步骤2中,采用现有的防火墙中基于规则的HTTP请求异常检测方法,将HTTP请求样本标记为异常或正常。进一步地,所述步骤2和步骤4中,针对XGBoost模块,提取HTTP请求的六类特征作为XGBoost模块的输入数据,即HTTP请求的分类特征(包括协议类型和请求方法特征)、与HTTP请求的长度相关的特征、与HTTP请求的时间相关的特征、URL特殊符号个数、URL中是否存在特定的敏感词、URL的香农信息熵。进一步地,所述步骤2和步骤4中,针对LSTM模块,提取HTTP请求的九类特征作为LSTM模块的输入数据,包括HTTP请求解码后的内容长度(content_length)、请求长度、内容类型编码、用户代理编码、URL编码、URL中符号“?”的个数、URL中符号“/”的个数、URL中符号“&”的个数、URL中符号“=”的个数。进一步地,所述步骤3中,以降低检测结果的假阳性为目的,对双层递进式异常检测模型进行训练(联合优化)。将XGBoost模块的目标函数设置为二分类逻辑回归函数,其输出为输入数据对应的HTTP请求为正常的概率p。为了降低检测结果的假阳性,根据经验设定一个可疑阈值和一个正常阈值,其中可疑阈值小于正常阈值;若XGBoost模块输出的概率p大于正常阈值,则判定输入数据对应的HTTP请求是正常的;若p小于可疑阈值,则判定输入数据对应的HTTP请求是异常的。进一步地,设定正常阈值选为0.6,可疑阈值选为0.4。进一步地,设置LSTM模块输出层的激活函数为softmax,其输出为输入数据对应的HTTP请求为正常和异常的概率,分别记为p1和p2;若p1大于p2,则判定输入数据对应的HTTP请求是正常的;否则判定输入数据对应的HTTP请求是异常的。进一步地,双层递进式异常检测模型对HTTP请求样本/待检测的HTTP请求进行异常检测的过程为:先由XGBoost模块进行初步的异常检测,计算出该HTTP请求是正常的概率;若该概率大于正常阈值,则判定该HTTP请求是正常的,予以放行;若概率小于可疑阈值,则判定该HTTP请求是异常的,予以拦截;若概率处于可疑阈值和正常阈值之间,则判定该HTTP请求是可疑的,由LSTM模型进行进一步地异常检测,如果LSTM模块判定该HTTP请求是正常的,则予以放行;如果LSTM模块判定该HTTP请求是异常的,则予以拦截。进一步地,由于LSTM长短期记忆网络具有一定的长期依赖能力,同时为了复合模型的优化,实际应用中一段时间后需要对双层递进式异常检测模型中的XGBoost模块和LSTM模块进行重训练;所述的重训练的方法为:提取最近一段时间内的HTTP请求,构建重训练XGBoost模块的样本集,基于该样本集内的样本,按照步骤2~步骤3所述的方法重新训练XGBoost模块;并且,根据该段时间的HTTP请求,选取以往部分异常HTTP请求作为新的样本,与原样本一起构建成重训练LSTM模块的样本集,按照步骤2~步骤3所述的方法重新训练LSTM模块;得到新训练好的双层递进式异常检测模型,用新训练后好的模型对待检测的HTTP请求进行异常检测。其中,选取以往部分异常HTTP请求作为新的样本的具体方法为:随机选取该段时间内的Nr条HTTP请求,对选取的每一条HTTP请求,分别提取出其中的URL并进行URL进行编码,得到的Nr条HTTP请求的URL编码,其中第j条HTTP请求的URL编码记为UWjrandom,j=1,2,..,Nr;将以往第i条异常HTTP请求的URL编码记为UWianomaly,分别计算它与每一个UWjrandom的皮尔逊相关系数rij,并将rij映射到[0,1]之间,记为r’ij;最后计算N本文档来自技高网
...

【技术保护点】
1.一种HTTP请求双层递进式异常检测方法,其特征在于,包括以下步骤:步骤1、提取最近一段时间内的HTTP请求作为样本;步骤2、对各个样本分别进行特征提取;基于现有方法获得样本类别标签,样本类别标签包括异常和正常两种;步骤3、构建双层递进式异常检测模型,其中包括XGBoost模块和LSTM模块两个子模块,基于样本的特征和类别标签对两个子模块分别进行训练,得到训练好的双层递进式异常检测模型;步骤4、对待检测的HTTP请求,提取其特征,将其特征输入双层递进式异常检测模型,判断该待检测的HTTP请求是否异常。

【技术特征摘要】
1.一种HTTP请求双层递进式异常检测方法,其特征在于,包括以下步骤:步骤1、提取最近一段时间内的HTTP请求作为样本;步骤2、对各个样本分别进行特征提取;基于现有方法获得样本类别标签,样本类别标签包括异常和正常两种;步骤3、构建双层递进式异常检测模型,其中包括XGBoost模块和LSTM模块两个子模块,基于样本的特征和类别标签对两个子模块分别进行训练,得到训练好的双层递进式异常检测模型;步骤4、对待检测的HTTP请求,提取其特征,将其特征输入双层递进式异常检测模型,判断该待检测的HTTP请求是否异常。2.根据权利要求1所述的HTTP请求双层递进式异常检测方法,其特征在于,所述步骤2和步骤4中,针对XGBoost模块,提取HTTP请求的六类特征作为XGBoost模块的输入数据,六类特征分别为HTTP请求的分类特征、与HTTP请求的长度相关的特征、与HTTP请求的时间相关的特征、URL特殊符号个数、URL中是否存在特定的敏感词及URL的香农信息熵。3.根据权利要求1所述的HTTP请求双层递进式异常检测方法,其特征在于,所述步骤2和步骤4中,针对LSTM模块,提取HTTP请求的九类特征作为LSTM模块的输入数据,九类特征分别为HTTP请求解码后的内容长度、请求长度、内容类型编码、用户代理编码、URL编码、URL中符号“?”的个数、URL中符号“/”的个数、URL中符号“&”的个数及URL中符号“=”的个数。4.根据权利要求1所述的HTTP请求双层递进式异常检测方法,其特征在于,所述步骤3中,将XGBoost模块的目标函数设置为二分类逻辑回归函数,其输出为输入数据对应的HTTP请求为正常的概率p;设定一个可疑阈值和一个正常阈值,其中可疑阈值小于正常阈值;若XGBoost模块输出的概率p大于正常阈值,则判定输入数据对应的HTTP请求是正常的;若p小于可疑阈值,则判定输入数据对应的HTTP请求是异常的。5.根据权利要求4所述的HTTP请求双层递进式异常检测方法,其特征在于,设定正常阈值选为0.6,可疑阈值选为0.4。6.根据权利要求1所述的HTTP请求双层递进式异常检测方法,其特征在于,设置LS...

【专利技术属性】
技术研发人员:谢逸航黄惟赵颖马小龙曹鸣佩康占英杨子彤周芳芳
申请(专利权)人:长沙市智为信息技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1