CN110351301B - 一种http请求双层递进式异常检测方法 - Google Patents

一种http请求双层递进式异常检测方法 Download PDF

Info

Publication number
CN110351301B
CN110351301B CN201910681004.3A CN201910681004A CN110351301B CN 110351301 B CN110351301 B CN 110351301B CN 201910681004 A CN201910681004 A CN 201910681004A CN 110351301 B CN110351301 B CN 110351301B
Authority
CN
China
Prior art keywords
http request
anomaly detection
module
url
double
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910681004.3A
Other languages
English (en)
Other versions
CN110351301A (zh
Inventor
谢逸航
黄惟
赵颖
马小龙
曹鸣佩
康占英
杨子彤
周芳芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changsha Zhiwei Information Technology Co ltd
Original Assignee
Changsha Zhiwei Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changsha Zhiwei Information Technology Co ltd filed Critical Changsha Zhiwei Information Technology Co ltd
Priority to CN201910681004.3A priority Critical patent/CN110351301B/zh
Publication of CN110351301A publication Critical patent/CN110351301A/zh
Application granted granted Critical
Publication of CN110351301B publication Critical patent/CN110351301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Abstract

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

Description

一种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编码记为UWj random,j=1,2,..,Nr;将以往第i条异常HTTP请求的URL编码记为UWi anomaly,分别计算它与每一个UWj random的皮尔逊相关系数rij,并将rij映射到[0,1]之间,记为r’ij;最后计算Nr个r’ij的平均值,记为ri;若ri大于设定阈值,则选取此条异常HTTP请求作为新的样本。
进一步地,所述设定阈值为0.2。
UWi anomaly与UWj random的皮尔逊相关系数rij计算公式如下:
Figure BDA0002144776020000031
其中,
Figure BDA0002144776020000041
Figure BDA0002144776020000042
分别为向量UWj random和向量UWi anomaly中第k个元素。
Figure BDA0002144776020000043
Figure BDA0002144776020000044
分别为向量UWj raandom和向量UWi anomaly中所有元素的平均值。
将rij映射到[0,1]之间,得到r’ij。计算公式如下:
r’ij=0.5×rij+0.5
然后,再计算上述Nr个皮尔逊相关系数的平均值,公式如下:
Figure BDA0002144776020000045
有益效果:
本发明公开了一种面向网络应用防火墙的HTTP请求双层递进式异常检测模型。该模型由XGBoost模块和LSTM模块组成,通过对一定规模的HTTP请求数据集进行训练,先用第一层XGBoost模块进行快速判断,存疑的HTTP请求再输入到第二层LSTM模块进行仔细判断,达到通过正常HTTP请求,拦截恶意HTTP请求的目的。本发明可以适用于大规模的HTTP请求异常检测,可以有效提高对HTTP请求异常检测的准确度,降低异常的检测的假阳性,并使异常检测模型具有一定的长期依赖性。
附图说明
图1是本发明实施的流程图。
具体实施方式
为使本发明的目的、设计思路和优点更加清楚,以下结合具体实例,并参照附图,对本发明作进一步详细说明。
本发明公开了一种HTTP请求双层递进式异常检测方法,基于双层递进式异常检测模型进行异常检测。该模型由XGBoost梯度提升树模块和LSTM长短期记忆网络模块组成。在对一定规模的HTTP请求数据集进行训练之后,该模型先用第一层XGBoost梯度提升树模块进行快速判断,存疑的HTTP请求再输入到第二层LSTM模块进行仔细判断,实现HTTP请求异常检测,达到通过正常HTTP请求,拦截恶意HTTP请求的目的。本发明可以有效提高对HTTP请求异常检测的准确度,降低异常检测的假阳性,并使异常检测模型具有一定的长期依赖性。
所述双层递进式异常检测模型如图1所示,其训练过程包括以下4个主要步骤:
步骤1、提取一个时间段内的HTTP请求作为样本。HTTP请求数据来自于智为公司2018年5月天网云服务网络应用防火墙的Nginx访问日志;Nginx访问日志包含用户请求信息、TCP连接信息等多种信息。对每一条日志信息,按照表1中所述的属性提取属性值得到其中的一个HTTP请求。需要提取的属性以及其说明和示例如下表所示:
表1从Nginx日志中提取出HTTP请求
属性 属性说明 属性值示例
content_length 内容长度 161
Request_length 请求长度 849
request_time 请求时间 0.892
URL 统一资源标识符 /index.action api_index=xxxx-xxx
request_body 请求体 api_index=xxxx-xxx
scheme 协议类型 https
request_method 请求方法 POST
IP IP地址 113.246.107.46
Content-type 内容类型 application/x-WWW-xxx charset=UTF-8
User-Agent 用户代理 Mozilla/5.0(Macintosh;Intel Mac OS...
接着,对所述提取的HTTP请求做去重处理。
步骤2、对步骤2所述的HTTP请求进行类别标记和特征提取;
设定一个类别标签,名为is_anomaly,其含义如下:HTTP请求为异常时,is_anomaly=1,HTTP请求为正常时,is_anomaly=0。是布尔型变量。根据现有的防火墙基于规则的HTTP请求异常检测方法,将每一条HTTP请求标记为异常或者正常。步骤1中的90000多条日志信息,其中5000多条日志信息中的HTTP请求已经被网络应用防火墙判定为异常请求。异常原因为这些异常的HTTP请求疑似为SQL注入、跨站脚本攻击等网络应用层攻击。
针对XGBoost模块,特征提取工作包括如下步骤:
步骤2.11、对表1中所述的属性值,进一步提取HTTP请求的协议类型和请求方法特征,包括:
协议类型(scheme),如http,https。
请求方法(request_method),如POST,GET。
步骤2.12、对表1中所述的属性值,进一步提取与HTTP请求的长度相关的特征,包括:
内容长度(content_length),是数值型变量。
请求长度(request_length),是数值型变量。
步骤2.13、对表1中所述的属性值,进一步提取与HTTP请求的时间相关的特征,包括:
请求时间(request_time),是数值型变量。
设定时间窗口内,该IP地址是否重复访问(is_repeat_request),是布尔型变量。
设定时间窗口内,该IP地址重复的次数(repeat_count)。
步骤2.14、对表1中所述的属性值,进一步提取特殊符号类的特征,包括URL字符串中“.”、“-”、“_”、“=”、“/”、“\”、“?”、“;”、“&”、“@”等特殊符号的个数。是数值型变量。
步骤2.15、对表1中所述的属性值,进一步根据业务需求提取敏感词类的特征,包括是否存在select、.jar、.jPg、cookie等敏感词,是布尔型变量。
步骤2.16、对表1中所述的属性值,进一步提取URL,对URL进行解码后,计算URL的香农信息熵。香农信息熵的计算方法为,将一条URL视为一个有n个字符的字符串,在一条URL中,将每一个字符ci出现的频率视为该字符在此条URL中出现的概率p(ci),则该条URL的香农信息熵H的计算公式如下:
Figure BDA0002144776020000061
上述所有的特征构成了XGBoost模块的输入,即HTTP请求的分类特征。如下表所示:
表2 XGBoost模块的输入
Figure BDA0002144776020000062
Figure BDA0002144776020000071
将所有针对XGBoost模块提取的特征和HTTP请求的类别标签制作成csv格式的文件,作为XGBoost库训练时调用的样本文件;
针对LSTM模块,特征提取工作包括如下步骤:
步骤2.21、将所有HTTP请求中的内容类型提取出来构成一个元素不重复(元素互不相同)的集合,并对集合中的元素进行独热编码(One-Hot编码,又称一位有效编码)。编码完成后,将每条HTTP请求中的内容类型用其编码代替。
步骤2.22、将所有HTTP请求中的用户代理(User Agent)提取出来构成一个元素不重复的集合,并对集合中的元素进行独热编码。编码完成后,将每条HTTP请求中的用户代理用其编码代替。
步骤2.23、将所有HTTP请求中的URL提取出来,使用编程语言,根据“/”、“&”、“=”、“?”四个符号对URL进行分词,得到多个字符串。所有URL的分词结果,即字符串构成一个元素不重复的集合,然后对集合中的元素按字符串长度进行从小到大排序,构成一个有序的集合,并对集合中的元素编码,编码方法为:
取一个较小的阈值m,如取m=15,将有序集合中的字符串分为两个部分。前一部分的字符串长度均小于阈值m,将它们用自然数1,2,3...进行顺序编码;后一部分的字符串长度均大于阈值m,按照步骤2.6的香农信息熵的计算方法,计算其香农信息熵,并将其扩大10倍取整,作为它们的编码;
将URL中的各个分词结果,即字符串用其编码代替,得到URL编码;
将URL按上述方法编码后,将会出现各个URL编码的长度不一致的情况。此时,选出一个最长编码,其他比之短的编码进行补零处理直至长度与最长编码的长度N相同为止。经过此处理后,所有URL编码的长度都是一致的,即都为N。
步骤2.24、经步骤2.21~步骤2.23提取得到的特征,构建最终的特征,即LSTM模块的输入数据X,X=[CT;UA;UW],其中X由向量CT、UA和UW拼接而成,CT、UA和UW分别为HTTP请求经步骤2.21~步骤2.23提取得到的内容类型编码、用户代理编码和URL编码。以第i条HTTP请求为例,由其经步骤2.21~步骤2.23提取得到的特征构建的LSTM模块的输入数据为Xi=[CTi;UAi;UWi],CTi为第i条HTTP请求的内容类型编码,UAi为第i条HTTP请求的用户代理编码,UWi=[UWi1,UWi2,...,UWij,...]为第i条HTTP请求的URL编码,UWij表示第i条HTTP请求中的URL第j个分词的编码。在应用LSTM模块对第i条HTTP请求进行异常检测时,将Xi中的各个元素依次输入LSTM模块中。
表3 LSTM模块的输入数据以及取值示例
输入数据 取值
内容类型编码CT<sub>i</sub> (0,0,0,..,0,1)
用户代理编码UA<sub>i</sub> (0,0,0,..,0,1)
URL编码UW<sub>i</sub> (1,2,4,...,47,50,0,0)
将所有HTTP请求针对LSTM模块取的特征和HTTP请求的类别标签制作成csv格式的文件,作为和LSTM库训练时调用的样本文件;
步骤4、对所述的XGBoost模块和LSTM模块进行训练,训练的方法为:基于样本文件,调用Python语言的XGBoost库和LSTM库训练双层递进式异常检测模型。在使用XGBoost库的过程中,需要把目标函数设置为二分类逻辑回归函数(即设置xgboost库的训练参数’objective’项为’binary:logistic’),设置输出为输入数据对应的HTTP请求是正常的概率,并对训练完成的XGBoost进行交叉认证,评估其正确率和假阳性。在使用LSTM库的过程中,设置输出层的激活函数为softmax激活函数,输出为输入数据对应的异常和正常的概率。
步骤5、设置正常阈值和可疑阈值。本实施例中设定正常阈值选为0.6,可疑阈值选为0.4。
所述的网络应用防火墙的HTTP请求双层递进式异常检测模型实际使用方法为:
接收客户发送的HTTP请求,首先由XGBoost模块进行初步的异常检测,计算出该HTTP请求是正常的概率。若该概率大于正常阈值,则认为该HTTP请求是正常的;若概率小于可疑阈值,则认为该HTTP请求是异常的,予以拦截。若概率处于可疑阈值和正常阈值之间,则认为该HTTP请求是可疑的,传递给LSTM模块进行异常检测,如果LSTM模块判定为异常,则拦截该HTTP请求,并记录该HTTP请求的通过步骤2提取到的所有特征信息。如果LSTM模块判定为正常则放行该HTTP请求。
所述的网络应用防火墙的HTTP请求双层递进式异常检测模型重训练方法为:
在一个月之后,提取最近一段时间内的HTTP请求,构建重训练XGBoost模块的样本集,基于该样本集内的样本,按上述方法重新训练XGBoost模块。同时,根据该段时间的HTTP请求,选取以往部分异常HTTP请求作为新的样本,与原样本一起构建成重训练LSTM模块的样本集,按照步骤2~步骤4所述的方法重新训练LSTM模块;选取以往部分异常HTTP请求的具体方法为:
随机选取Nr条该段时间内的HTTP请求,本实施例中取Nr=500;对每一条HTTP请求,分别提取出其中的URL并按照步骤2.23的方法进行URL进行编码,得到的500条HTTP请求的URL编码,其中第j条HTTP请求的URL编码记为UWj random。将以往第i条异常HTTP请求的URL编码记为UWi anomaly。对第i条异常HTTP请求的URL编码UWi anomaly,分别计算它与每一个UWj random的皮尔逊相关系数rij,并将计算结果映射到[0,1]之间,得到r’ij。最后计算500个r’ij的平均值,记为ri;若ri大于0.2,则将此条异常HTTP请求加入到重训练的样本集当中。
UWi anomaly与UWj random的皮尔逊相关系数rij计算公式如下:
Figure BDA0002144776020000091
其中,
Figure BDA0002144776020000092
Figure BDA0002144776020000093
分别为向量UWj random和向量UWi anomaly中第k个元素。
Figure BDA0002144776020000094
Figure BDA0002144776020000095
分别为向量UWj random和向量UWi anomaly中所有元素的平均值。
将rij映射到[0,1]之间,得到r’ij。计算公式如下:
r’ij=0.5×rij+0.5
然后,再计算上述500个皮尔逊相关系数的平均值,公式如下:
Figure BDA0002144776020000096
对于新的样本,按照步骤2.11~步骤2.16所述的方法构建LSTM模块的输入数据;然后调用Python中的LSTM库来重新训练LSTM模块。
对于新的样本,按照步骤2.21~步骤2.24所述的方法构建LSTM模块的输入数据;然后调用Python中的LSTM库来重新训练LSTM模块。
模型训练完成后,对待检测的HTTP请求,按照步骤2提取其特征,并将提取到的特征输入双层递进式异常检测模型,判断该待检测的HTTP请求是否异常。
本发明相比于传统的基于规则的网络应用防火墙,能适应需求的变化、应对更加复杂的网络攻击、处理大量的数据,并且具有更好的长期依赖性,对未知的网络应用层攻击起到了更好的防护作用。另外,对XGBoost模块和LSTM模块的联合优化也同时降低了HTTP请求异常检测的假阳性。

Claims (8)

1.一种HTTP请求双层递进式异常检测方法,其特征在于,包括以下步骤:
步骤1、提取最近一段时间内的HTTP请求作为样本;
步骤2、对各个样本分别进行特征提取;基于现有方法获得样本类别标签,样本类别标签包括异常和正常两种;
步骤3、构建双层递进式异常检测模型,其中包括XGBoost模块和LSTM模块两个子模块,基于样本的特征和类别标签对两个子模块分别进行训练,得到训练好的双层递进式异常检测模型;
步骤4、对待检测的HTTP请求,提取其特征,将其特征输入双层递进式异常检测模型,判断该待检测的HTTP请求是否异常;
其中,双层递进式异常检测模型对HTTP请求样本/待检测的HTTP请求进行异常检测的过程为:先由XGBoost模块进行初步的异常检测,计算出该HTTP请求是正常的概率;若该概率大于正常阈值,则判定该HTTP请求是正常的;若概率小于可疑阈值,则判定该HTTP请求是异常的;若概率处于可疑阈值和正常阈值之间,则判定该HTTP请求是可疑的,由LSTM模块进行进一步地异常检测,判定其是否异常。
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请求双层递进式异常检测方法,其特征在于,设置LSTM模块输出层的激活函数为softmax,其输出为输入数据对应的HTTP请求为正常和异常的概率,分别记为p1和p2;若p1大于p2,则判定输入数据对应的HTTP请求是正常的;否则判定输入数据对应的HTTP请求是异常的。
7.根据权利要求1所述的HTTP请求双层递进式异常检测方法,其特征在于,实际应用一段时间后,对双层递进式异常检测模型中的XGBoost模块和LSTM模块进行重训练;所述的重训练的方法为:
提取最近一段时间内的HTTP请求,构建重训练XGBoost模块的样本集,基于该样本集内的样本,按照步骤2~步骤3所述的方法重新训练XGBoost模块;
根据该段时间的HTTP请求,选取以往部分异常HTTP请求作为新的样本,与原样本一起构建成重训练LSTM模块的样本集,按照步骤2~步骤3所述的方法重新训练LSTM模块;选取以往部分异常HTTP请求作为新的样本的具体方法为:
随机选取该段时间内的Nr条HTTP请求,对选取的每一条HTTP请求,分别提取出其中的URL并进行URL进行编码,得到的Nr条HTTP请求的URL编码,其中第j条HTTP请求的URL编码记为
Figure FDA0003225337590000021
将以往第i条异常HTTP请求的URL编码记为UWi anomaly,分别计算它与每一个
Figure FDA0003225337590000022
的皮尔逊相关系数rij,并将rij映射到[0,1]之间,记为r′ij;最后计算Nr个r′ij的平均值,记为ri;若ri大于设定阈值,则选取此条异常HTTP请求作为新的样本。
8.根据权利要求7所述的HTTP请求双层递进式异常检测方法,其特征在于,所述设定阈值为0.2。
CN201910681004.3A 2019-07-26 2019-07-26 一种http请求双层递进式异常检测方法 Active CN110351301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910681004.3A CN110351301B (zh) 2019-07-26 2019-07-26 一种http请求双层递进式异常检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910681004.3A CN110351301B (zh) 2019-07-26 2019-07-26 一种http请求双层递进式异常检测方法

Publications (2)

Publication Number Publication Date
CN110351301A CN110351301A (zh) 2019-10-18
CN110351301B true CN110351301B (zh) 2021-09-28

Family

ID=68180300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910681004.3A Active CN110351301B (zh) 2019-07-26 2019-07-26 一种http请求双层递进式异常检测方法

Country Status (1)

Country Link
CN (1) CN110351301B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073360B (zh) * 2019-11-22 2022-12-20 深圳大学 超文本传输数据的检测方法、装置、终端设备及介质
CN110958160B (zh) * 2019-11-25 2021-06-15 睿哲科技股份有限公司 网站检测方法、装置、系统以及计算机可读存储介质
CN110912909A (zh) * 2019-11-29 2020-03-24 北京工业大学 一种针对dns服务器的ddos攻击检测方法
CN111030894B (zh) * 2020-01-07 2022-01-18 燕东科技(广东)有限公司 分布式通信系统的前端测试方法
CN111277603B (zh) * 2020-02-03 2021-11-19 杭州迪普科技股份有限公司 无监督异常检测系统和方法
CN111327608B (zh) * 2020-02-14 2021-02-02 中南大学 基于级联深度神经网络的应用层恶意请求检测方法及系统
CN113595967A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 数据识别方法、设备、存储介质及装置
CN112118259B (zh) * 2020-09-17 2022-04-15 四川长虹电器股份有限公司 一种基于提升树的分类模型的越权漏洞检测方法
CN112565270B (zh) * 2020-12-08 2022-04-29 国网湖南省电力有限公司 Http会话异常检测方法及检测系统
CN112769752B (zh) * 2020-12-15 2021-11-23 浙江大学 一种基于机器学习集成模型的网络入侵检测方法
CN113141373B (zh) * 2021-04-30 2023-02-07 平安普惠企业管理有限公司 检测异常入侵的方法、装置、设备和存储介质
CN114124448B (zh) * 2021-10-14 2024-03-19 北京墨云科技有限公司 一种基于机器学习的跨站脚本攻击识别方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108616498A (zh) * 2018-02-24 2018-10-02 国家计算机网络与信息安全管理中心 一种web访问异常检测方法和装置
CN109829543A (zh) * 2019-01-31 2019-05-31 中国科学院空间应用工程与技术中心 一种基于集成学习的数据流在线异常检测方法
CN110011990A (zh) * 2019-03-22 2019-07-12 南开大学 内网安全威胁智能分析方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180262525A1 (en) * 2017-03-09 2018-09-13 General Electric Company Multi-modal, multi-disciplinary feature discovery to detect cyber threats in electric power grid

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108616498A (zh) * 2018-02-24 2018-10-02 国家计算机网络与信息安全管理中心 一种web访问异常检测方法和装置
CN109829543A (zh) * 2019-01-31 2019-05-31 中国科学院空间应用工程与技术中心 一种基于集成学习的数据流在线异常检测方法
CN110011990A (zh) * 2019-03-22 2019-07-12 南开大学 内网安全威胁智能分析方法

Also Published As

Publication number Publication date
CN110351301A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
CN110351301B (zh) 一种http请求双层递进式异常检测方法
CN109413028B (zh) 基于卷积神经网络算法的sql注入检测方法
CN105915555B (zh) 网络异常行为的检测方法及系统
CN109639739B (zh) 一种基于自动编码器网络的异常流量检测方法
CN111198995B (zh) 一种恶意网页识别方法
CN107835496B (zh) 一种垃圾短信的识别方法、装置和服务器
CN111783100A (zh) 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN108717408B (zh) 一种敏感词实时监控方法、电子设备、存储介质及系统
CN110602113B (zh) 一种基于深度学习的层次化钓鱼网站检测方法
CN112513851A (zh) 使用机器学习的敏感数据标识
US20170289082A1 (en) Method and device for identifying spam mail
CN110175851B (zh) 一种作弊行为检测方法及装置
CN111798312A (zh) 一种基于孤立森林算法的金融交易系统异常识别方法
CN111740946B (zh) Webshell报文的检测方法及装置
CN113194064B (zh) 基于图卷积神经网络的webshell检测方法及装置
CN111758098A (zh) 利用遗传编程的命名实体识别和提取
CN112016313A (zh) 口语化要素识别方法及装置、警情分析系统
CN112884121A (zh) 基于生成对抗深度卷积网络的流量识别方法
CN110866169B (zh) 一种基于学习的物联网实体消息解析方法
KR102425525B1 (ko) 베이지안 확률 및 폐쇄 패턴 마이닝 방식을 이용한 로그 이상 탐지 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
WO2020088338A1 (zh) 一种建立识别模型的方法及装置
CN113378156B (zh) 一种基于api的恶意文件检测方法和系统
CN116107834A (zh) 日志异常检测方法、装置、设备及存储介质
CN113657443A (zh) 一种基于soinn网络的在线物联网设备识别方法
CN112069392B (zh) 涉网犯罪防控方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant