CN115695054B - 基于机器学习的waf拦截页面识别的方法、装置及相关组件 - Google Patents

基于机器学习的waf拦截页面识别的方法、装置及相关组件 Download PDF

Info

Publication number
CN115695054B
CN115695054B CN202310005406.8A CN202310005406A CN115695054B CN 115695054 B CN115695054 B CN 115695054B CN 202310005406 A CN202310005406 A CN 202310005406A CN 115695054 B CN115695054 B CN 115695054B
Authority
CN
China
Prior art keywords
response data
attack response
waf
sample
target
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
CN202310005406.8A
Other languages
English (en)
Other versions
CN115695054A (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.)
Beijing Zhiqi'an Technology Co ltd
Original Assignee
Beijing Zhiqi'an 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 Beijing Zhiqi'an Technology Co ltd filed Critical Beijing Zhiqi'an Technology Co ltd
Priority to CN202310005406.8A priority Critical patent/CN115695054B/zh
Publication of CN115695054A publication Critical patent/CN115695054A/zh
Application granted granted Critical
Publication of CN115695054B publication Critical patent/CN115695054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于机器学习的WAF拦截页面识别的方法、装置及相关组件,涉及网络安全的领域。该方法包括获取目标攻击响应数据集;对目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个类别组合由标签为已拦截的目标样本攻击响应数据组成;对已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;接收目标攻击响应数据,利用WAF拦截页面识别模型对目标攻击响应数据进行分类,输出分类结果。该方法可以有效提高WAF拦截判断的精准度。

Description

基于机器学习的WAF拦截页面识别的方法、装置及相关组件
技术领域
本发明涉及网络安全的领域,尤其涉及一种基于机器学习的WAF拦截页面识别的方法、装置及相关组件。
背景技术
随着科学技术的不断发展,社会对网络信息系统的依赖也日益增强。网络信息安全主要是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行。企业用户通常采用防火墙为安全保障体系的第一道防线,而对于防火墙一类传统设备束手无策的Web应用安全问题,现采用Web应用防火墙(Web Application Firewall)简称WAF,进行防护。WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类站点进行有效防护。
相关技术中在判断某个站点是否处于WAF的防护下时,采用WAF拦截识别方法。常见的WAF拦截识别方法有,方法一:将站点的页面响应状态特征,进行关键字匹配,并当定义的所有参数符合预设条件时,认为页面是WAF拦截页面;方法二:发出基础请求和攻击请求,并观察攻击响应相较于基础响应的区别,从而判断页面是否处于WAF防护下。
针对上述相关技术,发明人认为方法一的精准率较高,但是在WAF种类不够齐全时,识别的准确率会下降;方法二中若发送的攻击请求为无法被服务器理解的特殊代码,此时攻击响应是未拦截的响应,但此时的攻击响应仍然与基础请求不相同,因此方法二会将其误判为已拦截的响应,从而导致识别的准确率下降。
发明内容
本发明的目的是提供一种基于机器学习的WAF拦截页面识别的方法、装置及相关组件,旨在提高现有的WAF拦截识别的准确率。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的:提供一种基于机器学习的WAF拦截页面识别的方法,其包括:
获取目标攻击响应数据集;
对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;
对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;
利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;
接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果。
优选地,所述获取目标攻击响应数据,包括:
获取样本攻击响应数据,以形成第一样本数据集;
对所述第一样本数据集进行随机抽样,以形成目标攻击响应数据集。
优选地,所述对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,包括:
获取所述目标攻击响应数据集中所有的样本攻击响应数据中的三元组信息,其中,所述三元组信息包括Status_code信息、Headers信息、Body信息;
对所述Headers信息按照键的字母序进行排序和进行关键字过滤,构建得到三元组信息;
基于预设的标签分类规则和三元组信息,对所有的样本攻击响应数据进行标签分类,得到已拦截的目标样本攻击响应数据。
优选地,所述对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量,包括:
提取所述已拦截的目标样本攻击响应数据中的文本内容信息;
对所述文本内容信息进行数据清理,以删除所述文本内容信息中与“是否拦截”弱关联的文本信息;
对数据清理后的所述文本内容信息进行分词处理,得到目标分词;
利用预设的词频模型对所有所述目标分词进行词频统计,得到词频次数;
利用所述词频模型对所有所述目标分词进行特征提取,得到对应的词向量;
将当前词向量转化为长度与词表长度相同的向量,得到对应的特征向量。
优选地,所述利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型,包括:
利用所有特征向量对预搭建的K-means算法的机器学习模型或逻辑回归算法的机器学习模型或SVM支持向量机算法的机器学习模型进行训练,构建得到WAF拦截页面识别模型。
优选地,所述利用所有特征向量对预搭建的K-means算法的机器学习模型进行训练,构建得到WAF拦截页面识别模型,包括:
获取并初始化所有所述类别组合,随机选择每个类别组合的k个初始聚类中心,初始迭代次数为0;
分别计算类别组合中的每个样本到k个初始聚类中心的距离,并将对应的样本分类到与其距离最小的初始聚类中心所对应的类别组合中;
根据类别组合的重新划分,重新计算每个类别组合的聚类中心;
判断当前迭代次数是否大于最大迭代次数,若不是,则当前迭代次数加一,并重复计算每个类别组合的聚类中心;若是,则将最后一次迭代后所输出的聚类中心作为最终聚类中心;
基于所述最终聚类中心,获取对应的分类结果。
另外,本发明要解决的技术问题是还在于提供一种基于机器学习的WAF拦截页面识别的装置,其包括:
获取单元,用于获取目标攻击响应数据;
分类单元,用于对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;
提取单元,用于对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;
预测单元,用于利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;
判断单元,用于接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果。
优选地,所述分类单元,还包括:
信息获取单元,用于获取所述目标攻击响应数据集中所有的样本攻击响应数据中的三元组信息,其中,所述三元组信息包括Status_code信息、Headers信息、Body信息;
信息处理单元,用于对所述Headers信息按照键的字母序进行排序和进行关键字过滤,构建得到三元组信息;
信息分类单元,用于基于预设的标签分类规则和三元组信息,对所有的样本攻击响应数据进行标签分类,得到已拦截的目标样本攻击响应数据。
另外,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于机器学习的WAF拦截页面识别的方法。
另外,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于机器学习的WAF拦截页面识别的方法。
本发明实施例公开了一种基于机器学习的WAF拦截页面识别的方法、装置及相关组件,其中,方法包括:获取目标攻击响应数据集;对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果。该方法可以有效提高WAF拦截判断的精准度。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于机器学习的WAF拦截页面识别的方法的流程示意图;
图2为本发明实施例提供的基于机器学习的WAF拦截页面识别的装置的示意性框图;
图3为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
需要补充的是,判断某站点是否处于Web应用防护系统(Web ApplicationFirewall)的防护下的行为,结果一般有:True(“已拦截”)、False(“未拦截”)。在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,建立了TCP连接之后,Web浏览器就会向Web服务器发送请求信息,同时Web服务器会向Web浏览器回送应答,即HTTP响应,其中HTTP响应由响应状态码(Status_code)、响应头字段(Headers)、响应正文文本(Body)组成。
常用的判断某站点是否处于WAF防护下的识别方法一:
定义每一款WAF的拦截特征,基于页面响应状态特征进行关键字匹配,例如:
特殊的HTTP响应状态码(Status_code):如405 Method Not Allowed;
特殊的HTTP响应头字段(Headers):如X-Powered-By:WAF/2.0;
特殊的HTTP响应正文文本(Body):如
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewportcontent="width=device-width,initial-scale=1"><title>您的访问请求可能对站点造成安全威胁,请求已被阻断。</title></Body></html><!-- event_id: 04a9c4c6f793493e8d0169aac3c9ec33 -->。
当定义的所有参数都符合条件时,则判定页面是WAF拦截页面,也就是说页面的确处于WAF防护下。
但是,当定义的WAF的种类不够全面时,或拦截页面为自定义的拦截页面(即不完全命中上述响应状态特征时),此时方法一的识别准确率下降。
常用的判断某站点是否处于WAF防护下的识别方法二:
对站点发出基础请求和攻击请求,观察攻击请求的响应(以下简称“攻击响应”)相较于基础请求的响应(以下简称“基础响应”)的区别,从而进行判断:
S00、判断请求是否异常;若基础请求正常、攻击请求异常,则判定为已拦截;否则进入步骤S01;
S01、判断攻击响应与基础响应的状态码是否一致;若基础响应、攻击响应的状态码不一致,则判定为已拦截;否则进入步骤S02;
S02、判断攻击响应对应的文本内容信息与基础响应对应的文本内容信息的相似度,并判断相似度是否小于预先设定的阈值;若小于预先设定的阈值,也就是说相似度低,则判定为已拦截;否则进入步骤S03;
S03、判定为未拦截。
基础请求与攻击请求的差异,主要在于是否含有攻击代码,某些攻击代码在业务服务器上,会触发400响应码,其含义是:400是一种HTTP状态码,告知客户端发送了一条异常请求,当用户在打开网页时,返回给用户界面带有400提示符的页面,从而表示访问的页面域名不存在或者请求错误。返回给用户界面带有400提示符的页面,主要原因可能是:当前攻击请求较为特殊,被当成了畸形请求,无法被业务服务器所理解。
方法二相较于方法一,采用线性串联的判断顺序,判断结果的准确性高于方法一,但是线性串联的方式缺少上下文的校正机制,例如:当步骤S00及步骤S01满足时,则直接结束判断,不再进行步骤S02的判断,从而丢失了部分判断信息,而且缺乏校正机制,在某些特殊场景下,如:攻击代码较为特殊,无法被业务服务器所理解的情况下,攻击响应是未拦截响应,但方法二将其误判为已拦截,从而导致判断的准确率降低。
本发明在兼具方法二的准确性的基础上,使用人工进行打标,并通过机器学习将人工打标判断方法进行建模,进一步提高WAF拦截判断的准确率。
请参阅图1,图1为本发明实施例提供的基于机器学习的WAF拦截页面识别的方法的流程示意图;
如图1所示,该方法包括步骤S101~S105。
S101、获取目标攻击响应数据集;
S102、对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;
S103、对所述已拦截的目标攻击响应数据进行特征提取,得到多个特征向量;
S104、利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;
S105、接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果。
在本实施例中,对M个站点的WAF覆盖情况验证,以判断站点能否有效地对攻击网站的请求进行防护,WAF可防护的类型包括SQL注入、XSS攻击、CSRF攻击、恶意爬虫、扫描器、远程文件包含等攻击类型。验证时准备m个用于验证的漏洞,即m个对站点的攻击方法,总计发起m×M次攻击请求,并得到m×M个攻击响应。随机选取M个站点的攻击响应数据,并形成目标攻击响应数据集。
然后将目标攻击响应数据集中的所有样本攻击响应数据进行分类,分类时依据每个攻击响应数据对应的每个站点的攻击响应进行分类,若某个站点的攻击响应分为5类,则每类取不超过20个攻击响应,将其数据集记为{T},第n个站点的数据集记为{Tn},即获取了目标攻击响应数据集。
对所有的数据集{T1}、{T2}、{T3}、{T4}、{T5}进行分类判断,分类时依据各个数据集对应的标签信息,本实施例中采用人工打标判断的方式,判断结果分为True(“已拦截”)、False(“未拦截”)。
具体一实施例中,所述步骤S101,包括:
S10、获取样本攻击响应数据,以形成第一样本数据集;
S11、对所述第一样本数据集进行随机抽样,以形成目标攻击响应数据集。
在本实施例中,M=10,即对10个站点的WAF覆盖情况验证,m=1000,即准备1000个用于验证的漏洞,即1000个对站点的攻击方法,总计发起m×M=10×1000=10000次攻击请求,并得到10000个样本攻击响应,其中,10000个样本攻击响应形成第一样本数据集。
随机选取n个站点,各个站点被抽中的概率相同,其中n<M,在本实施例中n=3,即选取3个站点,3个站点内的所有样本攻击响应形成目标攻击响应数据集。从而在进行后续处理时,可在不影响结果的前提下极大程度上减少需处理的数据量。
本申请基于机器学习的WAF拦截页面识别的方法在兼具上述方法二的准确性的基础上,可通过机器学习将人工判断方法建模,提高WAF拦截判断的精准度,同时,相对于方法二中一次验证需要请求2次:基础请求、攻击请求,而本申请基于机器学习的WAF拦截页面识别的方法可将每次验证的请求访问次数减少为1次。
具体一实施例中,所述步骤S102,包括:
S20、获取所述目标攻击响应数据集中所有的样本攻击响应数据中的三元组信息,其中,所述三元组信息包括Status_code信息、Headers信息、Body信息;
S21、对所述Headers信息按照键的字母序进行排序和进行关键字过滤,构建得到三元组信息;
S22、基于预设的标签分类规则和三元组信息,对所有的样本攻击响应数据进行标签分类,得到已拦截的目标样本攻击响应数据。
具体的,提取目标攻击响应数据集中所有的样本攻击响应数据对应的Status_code信息、Headers信息、Body信息,即攻击响应状态码、攻击响应头字段、攻击响应正文文本。其中Headers信息有多个键值对,每一组之间相互独立,为便于比较,对Headers信息按照键的字母序进行排序;同时标记三元组信息中与WAF拦截无直接关系的关键字并将其替换为特殊标记%s(格式化对象为字符),由此对三元组信息进行优化。其中,例如某一样本攻击响应数据中Date: Thu, 01 Dec 2022 14:25:45 GMT,实际是服务器处理响应时的时间,与是否被WAF拦截无关,增加特殊标记,为Date:%s;例如Content-Length的值,实际是Text的字节数,与是否被拦截无直接关系,因此也增加了特殊标记,为Content-Length:%s。
将优化完成的三元组信息依照预设的标签分类规则进行标签分类,即将样本攻击响应数据的三元组信息与基础响应数据对应的信息进行比对,在比对时,可将带有特殊标记的字段忽略,以减少比对过程中的工作量。
在本实施例中,每个样本站点的样本攻击响应均被分为三类,包括:未被WAF拦截的正常响应、已被WAF拦截的响应、未被WAF拦截但服务器处理出错的响应,将不同类别的样本攻击响应数据分别组成对应的类别组合,并将每个类别组合内的样本攻击响应数据进行随机抽样,在本实施例中,每个类别组合中抽取不超过20个样本攻击响应数据,其中已被WAF拦截的响应类别组合记为数据集{T},第n个站点的数据集记为{Tn};未被WAF拦截的正常响应类别组合记为数据集{P},第n个站点的数据集记为{Pn};未被WAF拦截但服务器处理出错的响应类别组合记为{Q},第n个站点的数据集记为{Qn}。采用人工打标的方式对各数据集进行打标判断,其中已被WAF拦截的响应判断为True,未被WAF拦截的正常响应、未被WAF拦截但服务器处理出错的响应均判断为False,从而达到已拦截的目标样本攻击响应数据。
具体一实施例中,所述步骤S103,包括:
S30、提取所述已拦截的目标样本攻击响应数据中的文本内容信息;
S31、对所述文本内容信息进行数据清理,以删除所述文本内容信息中与“是否拦截”弱关联的文本信息;
S32、对数据清理后的所述文本内容信息进行分词处理,得到目标分词;
S33、利用预设的词频模型对所有所述目标分词进行词频统计,得到词频次数;
S34、利用所述词频模型对所有所述目标分词进行特征提取,得到对应的词向量;
S35、将当前词向量转化为长度与词表长度相同的向量,得到对应的特征向量。
具体的,提取已被WAF拦截的响应类别组合数据集{T},并将数据集{T}内的所有攻击响应数据对应的文本内容信息进行提取。提取完成之后对文本内容信息进行数据清理,删去其中与“是否拦截”弱关联的文本内容信息,包括:<html>、<head>等HTML标签;换行符、回车符、空格符等不可见字符;逗号、句号、分号等标点符号;无意义的字段,如时间。事实上,在每次访问时,上述的文本内容信息均可能会发生改变,故对区分“是否拦截”没有意义,应当进行去除。
将数据清理之后的文本内容信息进行分词处理,并得到目标分词,在本实施例中,某一文本内容信息得到如下结果: 拦截 / 您 / 的 / 请求 / 可能 / 存在 / 威胁 / 已/ 被 / 拦截 / Event/ ID / 拦截 / 时间 / 如 / 存在 / 错误 / 拦截 / 请 / 联系 /网站 / 管理 / 管理员 / 并提 / 提供 / Event / ID
使用词频模型对所有的目标分词进行词频统计,得到每个目标分词在文本内容信息中出现的词频次数,然后使用词频模型对所有目标分词进行特征提取,得到对应的词向量,并将当前词向量转化为长度与词表长度相同的向量,得到对应的特征向量。
具体一实施例中,所述步骤S104,包括:
S40、利用所有特征向量对预搭建的K-means算法的机器学习模型或逻辑回归算法的机器学习模型或SVM支持向量机算法的机器学习模型进行训练,构建得到WAF拦截页面识别模型。
如果需要和/或期望,可以使用所有特征向量对预搭建的K-means算法的机器学习模型或逻辑回归算法的机器学习模型或SVM支持向量机算法的机器学习模型进行训练,最终得到构建得到WAF拦截页面识别模型,本申请不做具体限定。
具体一实施例中,利用所有特征向量对预搭建的K-means算法的机器学习模型进行训练,构建得到WAF拦截页面识别模型,包括:
S50、获取并初始化所有所述类别组合,随机选择每个类别组合的k个初始聚类中心,初始迭代次数为0;
S51、分别计算类别组合中的每个样本到k个初始聚类中心的距离,并将对应的样本分类到与其距离最小的初始聚类中心所对应的类别组合中;
S52、根据类别组合的重新划分,重新计算每个类别组合的聚类中心;
S53、判断当前迭代次数是否大于最大迭代次数,若不是,则当前迭代次数加一,并重复计算每个类别组合的聚类中心;若是,则将最后一次迭代后所输出的聚类中心作为最终聚类中心;
S54、基于所述最终聚类中心,获取对应的分类结果。
具体的:
(1)选择初始化的 N个样本(已被人工分类打标的数据集T,N取T的分类数量),作为初始聚类中心 a=a1,a2,…ak ;
(2)(在上例中,数据集T的样本有5类,N=5),然后对数据集中每个样本 xi 计算它到 k 个聚类中心的距离并将其分到距离最小的聚类中心所对应的类中;对于每一个响应对于的三元组(status_code, headers, content),计算距离的方法为:
a.status_code,由于状态码的分布是离散的,比较只有相等和不相等,即距离只有0或1,状态码相等的距离取1。
b.headers,计算header的文本相似度,方法有模糊哈希算法、矩阵相似度等,并将计算得到的相似度,归一化为0~1之间的值。
c.content,计算文本特征向量之间的距离。方法有余弦相似度等,最终得到0~1之间的值。
(3)针对每个类别 aj ,重新计算它的聚类中心 aj=1|ci|∑x∈cix (即属于该类的所有样本的质心);
(4)重复上面 (2)(3) 两步操作,直到满足迭代次数例如50次。
最终得到聚类中心及其对应的分类结果(本实施例中为5类)。
本发明实施例还提供一种基于机器学习的WAF拦截页面识别的装置,该基于机器学习的WAF拦截页面识别的装置用于执行前述基于机器学习的WAF拦截页面识别的方法的任一实施例。具体地,请参阅图2,图2是本发明实施例提供的基于机器学习的WAF拦截页面识别的装置的示意性框图。
如图2所示,基于机器学习的WAF拦截页面识别的装置500,包括:
获取单元501,用于获取目标攻击响应数据;
分类单元502,用于对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;
提取单元503,用于对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;
预测单元504,用于利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;
判断单元505,用于接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果。
其中,所述分类单元502包括:
信息获取单元5021,用于获取所述目标攻击响应数据集中所有的样本攻击响应数据中的三元组信息,其中,所述三元组信息包括Status_code信息、Headers信息、Body信息;
信息处理单元5022,用于对所述Headers信息按照键的字母序进行排序和进行关键字过滤,构建得到三元组信息;
信息分类单元5023,用于基于预设的标签分类规则和三元组信息,对所有的样本攻击响应数据进行标签分类,得到已拦截的目标样本攻击响应数据。
该装置基于机器学习的WAF拦截页面识别的方法在兼具上述方法二的准确性的基础上,可通过机器学习将人工判断方法建模,提高WAF拦截判断的精准度,同时,相对于方法二中一次验证需要请求2次:基础请求、攻击请求,而本申请基于机器学习的WAF拦截页面识别的方法可将每次验证的请求访问次数减少为1次。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述基于机器学习的WAF拦截页面识别的装置可以实现为计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本发明实施例提供的计算机设备的示意性框图。该计算机设备1100是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图3,该计算机设备1100包括通过系统总线1101连接的处理器1102、存储器和网络接口1105,其中,存储器可以包括非易失性存储介质1103和内存储器1104。
该非易失性存储介质1103可存储操作系统11031和计算机程序11032。该计算机程序11032被执行时,可使得处理器1102执行基于机器学习的WAF拦截页面识别的方法。
该处理器1102用于提供计算和控制能力,支撑整个计算机设备1100的运行。
该内存储器1104为非易失性存储介质1103中的计算机程序11032的运行提供环境,该计算机程序11032被处理器1102执行时,可使得处理器1102执行基于机器学习的WAF拦截页面识别的方法。
该网络接口1105用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备1100的限定,具体的计算机设备1100可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域技术人员可以理解,图3中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图3所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器1102可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器1102还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例的基于机器学习的WAF拦截页面识别的方法。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求书的保护范围为准。

Claims (6)

1.一种基于机器学习的WAF拦截页面识别的方法,其特征在于,包括:
获取目标攻击响应数据集;
对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;
对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;
利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;
接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果;
所述对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,包括:
获取所述目标攻击响应数据集中所有的样本攻击响应数据中的三元组信息,其中,所述三元组信息包括Status_code信息、Headers信息、Body信息;
对所述Headers信息按照键的字母序进行排序和进行关键字过滤,构建得到三元组信息;
基于预设的标签分类规则和三元组信息,对所有的样本攻击响应数据进行标签分类,得到已拦截的目标样本攻击响应数据;
其中,所述利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型,包括:
获取并初始化所有所述类别组合,随机选择每个类别组合的k个初始聚类中心,初始迭代次数为0;
分别计算类别组合中的每个样本到k个初始聚类中心的距离,并将对应的样本分类到与其距离最小的初始聚类中心所对应的类别组合中;其中,针对每一样本攻击响应数据的三元组信息,计算距离的方式包括:针对Status_code信息计算是否相等,相等则确定距离为1,否则距离为0;针对Headers信息计算文本相似度,并将计算结果作为距离;针对Body信息计算文本特征向量的距离;
根据类别组合的重新划分,重新计算每个类别组合的聚类中心;
判断当前迭代次数是否大于最大迭代次数,若不是,则当前迭代次数加一,并重复计算每个类别组合的聚类中心;
若是,则将最后一次迭代后所输出的聚类中心作为最终聚类中心;
基于所述最终聚类中心,获取对应的分类结果。
2.根据权利要求1所述的基于机器学习的WAF拦截页面识别的方法,其特征在于,所述获取目标攻击响应数据,包括:
获取样本攻击响应数据,以形成第一样本数据集;
对所述第一样本数据集进行随机抽样,以形成目标攻击响应数据集。
3.根据权利要求1所述的基于机器学习的WAF拦截页面识别的方法,其特征在于,所述对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量,包括:
提取所述已拦截的目标样本攻击响应数据中的文本内容信息;
对所述文本内容信息进行数据清理,以删除所述文本内容信息中与“是否拦截”弱关联的文本信息;
对数据清理后的所述文本内容信息进行分词处理,得到目标分词;
利用预设的词频模型对所有所述目标分词进行词频统计,得到词频次数;
利用所述词频模型对所有所述目标分词进行特征提取,得到对应的词向量;
将当前词向量转化为长度与词表长度相同的向量,得到对应的特征向量。
4.一种基于机器学习的WAF拦截页面识别的装置,其特征在于,包括:
获取单元,用于获取目标攻击响应数据;
分类单元,用于对所述目标攻击响应数据集中所有的样本攻击响应数据进行标签分类,得到不同类别的样本攻击响应数据,并将不同类别的样本攻击响应数据分别组成对应的类别组合,其中一个所述类别组合由标签为已拦截的目标样本攻击响应数据组成;
提取单元,用于对所述已拦截的目标样本攻击响应数据进行特征提取,得到多个特征向量;
预测单元,用于利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型;
判断单元,用于接收目标攻击响应数据,利用所述WAF拦截页面识别模型对所述目标攻击响应数据进行分类,输出分类结果;
所述分类单元,包括:
信息获取单元,用于获取所述目标攻击响应数据集中所有的样本攻击响应数据中的三元组信息,其中,所述三元组信息包括Status_code信息、Headers信息、Body信息;
信息处理单元,用于对所述Headers信息按照键的字母序进行排序和进行关键字过滤,构建得到三元组信息;
信息分类单元,用于基于预设的标签分类规则和三元组信息,对所有的样本攻击响应数据进行标签分类,得到已拦截的目标样本攻击响应数据;
所述预测单元在执行利用所有特征向量对预搭建的WAF拦截页面识别模型进行训练,构建得到WAF拦截页面识别模型时,用于:
获取并初始化所有所述类别组合,随机选择每个类别组合的k个初始聚类中心,初始迭代次数为0;
分别计算类别组合中的每个样本到k个初始聚类中心的距离,并将对应的样本分类到与其距离最小的初始聚类中心所对应的类别组合中;其中,针对每一样本攻击响应数据的三元组信息,计算距离的方式包括:针对Status_code信息计算是否相等,相等则确定距离为1,否则距离为0;针对Headers信息计算文本相似度,并将计算结果作为距离;针对Body信息计算文本特征向量的距离;
根据类别组合的重新划分,重新计算每个类别组合的聚类中心;
判断当前迭代次数是否大于最大迭代次数,若不是,则当前迭代次数加一,并重复计算每个类别组合的聚类中心;
若是,则将最后一次迭代后所输出的聚类中心作为最终聚类中心;
基于所述最终聚类中心,获取对应的分类结果。
5.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的基于机器学习的WAF拦截页面识别的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至3任一项所述的基于机器学习的WAF拦截页面识别的方法。
CN202310005406.8A 2023-01-04 2023-01-04 基于机器学习的waf拦截页面识别的方法、装置及相关组件 Active CN115695054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310005406.8A CN115695054B (zh) 2023-01-04 2023-01-04 基于机器学习的waf拦截页面识别的方法、装置及相关组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310005406.8A CN115695054B (zh) 2023-01-04 2023-01-04 基于机器学习的waf拦截页面识别的方法、装置及相关组件

Publications (2)

Publication Number Publication Date
CN115695054A CN115695054A (zh) 2023-02-03
CN115695054B true CN115695054B (zh) 2023-03-21

Family

ID=85057555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310005406.8A Active CN115695054B (zh) 2023-01-04 2023-01-04 基于机器学习的waf拦截页面识别的方法、装置及相关组件

Country Status (1)

Country Link
CN (1) CN115695054B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404473A (zh) * 2017-06-06 2017-11-28 西安电子科技大学 基于Mshield机器学习多模式Web应用防护方法
CN107948127A (zh) * 2017-09-27 2018-04-20 北京知道未来信息技术有限公司 一种基于回馈和监督学习的waf检测方法及系统
CN111600919A (zh) * 2019-02-21 2020-08-28 北京金睛云华科技有限公司 基于人工智能的web检测方法和装置
WO2021139641A1 (zh) * 2020-01-07 2021-07-15 深信服科技股份有限公司 一种web攻击检测方法、装置及电子设备和存储介质
CN114124448A (zh) * 2021-10-14 2022-03-01 北京墨云科技有限公司 一种基于机器学习的跨站脚本攻击识别方法
CN114553523A (zh) * 2022-02-21 2022-05-27 平安普惠企业管理有限公司 基于攻击检测模型的攻击检测方法及装置、介质、设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR102020003104A2 (pt) * 2020-02-13 2021-08-24 Samsung Eletrônica da Amazônia Ltda. Método para identificação e classificação de ponto de acesso baseado em http usando aprendizagem de máquina

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404473A (zh) * 2017-06-06 2017-11-28 西安电子科技大学 基于Mshield机器学习多模式Web应用防护方法
CN107948127A (zh) * 2017-09-27 2018-04-20 北京知道未来信息技术有限公司 一种基于回馈和监督学习的waf检测方法及系统
CN111600919A (zh) * 2019-02-21 2020-08-28 北京金睛云华科技有限公司 基于人工智能的web检测方法和装置
WO2021139641A1 (zh) * 2020-01-07 2021-07-15 深信服科技股份有限公司 一种web攻击检测方法、装置及电子设备和存储介质
CN114124448A (zh) * 2021-10-14 2022-03-01 北京墨云科技有限公司 一种基于机器学习的跨站脚本攻击识别方法
CN114553523A (zh) * 2022-02-21 2022-05-27 平安普惠企业管理有限公司 基于攻击检测模型的攻击检测方法及装置、介质、设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Khamdamov Rustam Khamdamovich 等.Web application firewall method for detecting network attacks.2021,全文. *
贾晨.基于半监督学习的Web安全事件检测模型.2019,第41-44页. *

Also Published As

Publication number Publication date
CN115695054A (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
US10505973B2 (en) System and methods of detecting malicious elements of web pages
US10503908B1 (en) Vulnerability assessment based on machine inference
Crussell et al. Andarwin: Scalable detection of android application clones based on semantics
CN111585955B (zh) 一种http请求异常检测方法及系统
Kirat et al. Sigmal: A static signal processing based malware triage
CN112380833B (zh) 一种逐句段对比的相似文本查找方法及装置
CN110781460A (zh) 版权认证方法、装置、设备、系统及计算机可读存储介质
US11163877B2 (en) Method, server, and computer storage medium for identifying virus-containing files
CN113612767B (zh) 基于多任务学习增强的加密恶意流量检测方法及系统
CN111740946A (zh) Webshell报文的检测方法及装置
CN113935033A (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
CN112839014A (zh) 建立识别异常访问者模型的方法、系统、设备及介质
CN113381963A (zh) 一种域名检测方法、装置和存储介质
CN105468972B (zh) 一种移动终端文件检测方法
CN111988327B (zh) 威胁行为检测和模型建立方法、装置、电子设备及存储介质
CN116136901B (zh) 应用程序防假冒方法、装置、计算机设备及存储介质
CN115695054B (zh) 基于机器学习的waf拦截页面识别的方法、装置及相关组件
CN116614251A (zh) 一种数据安全监控系统
EP3306511B1 (en) System and methods of detecting malicious elements of web pages
CN114936366A (zh) 基于混合分析的恶意软件家族标签更正方法及装置
CN114528908A (zh) 网络请求数据分类模型训练方法、分类方法及存储介质
US11868473B2 (en) Method for constructing behavioural software signatures
CN114499980A (zh) 一种钓鱼邮件检测方法、装置、设备及存储介质
CN113688240A (zh) 威胁要素提取方法、装置、设备及存储介质
CN112995218A (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