[发明专利]基于关键词自动识别和决策图模型的Web攻击检测方法在审
申请号: | 202010963251.5 | 申请日: | 2020-09-14 |
公开(公告)号: | CN112052448A | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 莫毓昌 | 申请(专利权)人: | 莫毓昌 |
主分类号: | G06F21/55 | 分类号: | G06F21/55 |
代理公司: | 北京市盛峰律师事务所 11337 | 代理人: | 席小东 |
地址: | 321004 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 关键词 自动识别 决策 模型 web 攻击 检测 方法 | ||
1.一种基于关键词自动识别和决策图模型的Web攻击检测方法,其特征在于,包括以下步骤:
步骤1,构造Web攻击请求数据集的元素词典DICT,方法为:
步骤1.1,确定需要进行Web攻击检测的p种Web攻击类型;对于每种Web攻击类型ATj,j=1,2,...,p,均收集到多条与该Web攻击类型ATj对应的Web攻击请求数据,因此,对于p种Web攻击类型,收集到的所有Web攻击请求数据形成Web攻击请求数据集;其中,Web攻击请求数据集一共包括q条Web攻击请求数据;
步骤1.2,对于Web攻击请求数据集中的每一条Web攻击请求数据,采用元素分离提取算法,对其进行元素分离提取处理,得到该条Web攻击请求数据对应的元素集合;
其中,元素分离提取方式为:以元素为单元,提取Web攻击请求数据中的每个元素,提取到的各个元素组合形成元素集合;其中,元素包括:词语元素、数字元素和符号元素;
步骤1.3,对于q条Web攻击请求数据,共得到q个元素集合;将q个元素集合组合,并去掉重复的元素,形成元素词典DICT;其中,元素词典DICT共有s个元素组成,将元素词典DICT表示为:DICT=<E[1],E[2],...,E[s]>,其中,E[1]代表元素词典DICT中的第1个元素,E[2]代表元素词典DICT中的第2个元素,...,E[s]代表元素词典DICT中的第s个元素;
步骤2,对于Web攻击请求数据集的每个Web攻击请求数据,对其进行样本编码,得到该Web攻击请求数据对应的one-hot编码,具体方法为:
步骤2.1,对于Web攻击请求数据WSi,i=1,2,...,q,对其进行元素分离提取处理后,得到的元素集合表示为WEi=<Ei1,Ei2,...,Eic>;其中,c为元素集合WEi包括的元素数量;
步骤2.2,根据元素集合WEi=<Ei1,Ei2,...,Eic>和元素词典DICT=<E[1],E[2],...,E[s]>,构造Web攻击请求数据WSi对应的one-hot编码Ui=<ui1,ui2,...,uis>,其中,one-hot编码Ui中码位的数量,与元素词典DICT中元素数量相等,均为s个;
one-hot编码Ui中各码位取值为:
如果元素词典DICT中的每1个元素E[1]出现在元素集合WEi中,则one-hot编码Ui中的第1个码位ui1取值为1;否则,one-hot编码Ui中的第1个码位ui1取值为0;
如果元素词典DICT中的每2个元素E[2]出现在元素集合WEi中,则one-hot编码Ui中的第2个码位ui2取值为1;否则,one-hot编码Ui中的第2个码位ui2取值为0;
依此类推
如果元素词典DICT中的每s个元素E[s]出现在元素集合WEi中,则one-hot编码Ui中的第s个码位uis取值为1;否则,one-hot编码Ui中的第s个码位uis取值为0;
由此得到Web攻击请求数据WSi的one-hot编码Ui=<ui1,ui2,...,uis>;
步骤3,需要进行Web攻击检测的Web攻击类型共有p种,对于每种Web攻击类型ATj,j=1,2,...,p,均建立与该Web攻击类型ATj对应的关键元素词典KEYDICTj,具体方法为:
步骤3.1,对于Web攻击请求数据集中每个Web攻击请求数据WSi,构造对应的训练样本TSi=<Ui,yi>=<ui1,ui2,...,uis,yi>;
其中,yi代表Web攻击请求数据WSi的标签,如果Web攻击请求数据WSi的类型为Web攻击类型ATj,则标签yi为1;反之,如果Web攻击请求数据WSi的类型不是Web攻击类型ATj,则标签yi为0;
步骤3.2,由于Web攻击请求数据集中一共有q条Web攻击请求数据,因此,共得到q个训练样本,从而形成与Web攻击类型ATj对应的训练样本集合;
步骤3.3,构建关于Web攻击类型ATj对应的线性模型hji:
hji=θ0+θ1ui1+θ2ui2+...+θsuis (1)
其中:
θ0为线性模型常数项;θ1,θ2,...,θs分别为线性模型的系数;
构建输出转换模型:
其中:
y'i为与训练样本TSi对应的标签预测值;
步骤3.4,根据线性模型hji和输出转换模型,对线性模型hji进行拟合,得到最终的θ0,θ1,θ2,...,θs的值,从而得到最终的关于Web攻击类型ATj的线性模型;
步骤3.5,对于元素词典DICT=<E[1],E[2],...,E[s]>,系数θ1同时表示元素E[1]的权重,系数θ2同时表示元素E[2]的权重,...,系数θs同时表示元素E[s]的权重;权重越大,表明对应元素对于Web攻击类型ATj的影响越关键;
预设置权重阈值ε0;检查每个系数θk的绝对值是否小于权重阈值ε0,其中,k=1,2,...,s,如果是,则系数θk对应的元素E[k]为非关键元素;否则,系数θk对应的元素E[k]为关键元素;
步骤3.6,将步骤3.5得到的所有关键元素存入与Web攻击类型ATj对应的关键元素词典KEYDICTj,由此得到关键元素词典KEYDICTj;
步骤4,对于每种Web攻击类型ATj,j=1,2,...,p,均构造与该Web攻击类型ATj对应的攻击类型检测模型Modj,具体方法为:
步骤4.1,将关键元素词典KEYDICTj中的各个关键元素按设定规则排序并进行编号,由此得到关键元素词典KEYDICTj=<A1,A2,...,Ag>;其中,g为关键元素词典KEYDICTj中包括的关键元素数量;A1代表关键元素词典KEYDICTj中编号为1的关键元素,A2代表关键元素词典KEYDICTj中编号为2的关键元素,...,Ag代表关键元素词典KEYDICTj中编号为g的关键元素;其中,每个关键元素在关键元素词典KEYDICTj中具有唯一编号,并且,该编号作为关键元素的标识,与关键元素绑定;
步骤4.2,步骤1.1中,假设共收集到f条与Web攻击类型ATj对应的Web攻击请求数据,对于f条Web攻击请求数据中的每条Web攻击请求数据,表示为MSr,r=1,2,...,f,在进行元素分离提取处理后,得到由多个元素组成的元素集合表示为MEr;
根据关键元素词典KEYDICTj中的关键元素,从元素集合MEr中识别出所有关键元素,并将识别出的关键元素按其编号从小到大排序,由此得到Web攻击请求数据MSr对应的关键元素序列XLr=<Ar1,Ar2,...,Arm>;其中,m为关键元素序列XLr包括的关键元素数量;
步骤4.3,对于每个Web攻击请求数据MSr对应的关键元素序列XLr=<Ar1,Ar2,...,Arm>,生成对应的单样本决策图Tur,方法为:
单样本决策图Tur共有m+1层,按自上向下方向,分别为第1层,第2层,...,第m+1层;
关键元素Ar1作为第1层结点,关键元素Ar2作为第2层结点,...,关键元素Arm作为第m层结点;而第m+1层具有两个判定结点,分别为判定结点N和判定结点Y;判定结点Y表明确定Web请求数据为Web攻击类型ATj的情况;判定结点N表明Web请求数据攻击类型暂时无法判断的情况;
第1层结点引出有向正边L11到第2层结点,第2层结点引出有向正边L21到第3层结点,依此类推,直到第m-1层结点引出有向正边L(m-1)1到第m层结点;最后,第m层结点引出有向正边Lm1到判定结点Y;
第1层结点引出有向负边L10到判定结点N,第2层结点引出有向负边L20到判定结点N,依此类推,直到第m层结点引出有向负边Lm0到判定结点N;
由此得到关键元素序列XLr=<Ar1,Ar2,...,Arm>对应的单样本决策图Tur;
步骤4.4,一共有f条与Web攻击类型ATj对应的Web攻击请求数据,因此,共得到f个与Web攻击类型ATj对应的单样本决策图;
采用决策图合并算法,将f个单样本决策图逐个合并,得到与Web攻击类型ATj对应的攻击类型检测模型Modj;
步骤5,因此,对于p种Web攻击类型,共构造得到p个攻击类型检测模型;当需要检测某个Web请求数据是否为攻击请求时,采用以下方式检测:
步骤5.1,对于当前需要检测的Web请求数据Q0,采用元素分离提取算法,对其进行元素分离提取处理,得到元素集合WQ;
步骤5.2,令j=1;
步骤5.3,首先检测Web请求数据Q0是否为第j种Web攻击类型ATj,方法为:
步骤5.3.1,根据Web攻击类型ATj对应的关键元素词典KEYDICTj,从元素集合WQ中挑选出关键元素,并按关键元素的编号从小到大排列各个关键元素,得到关键元素序列XLQ=<AQ1,AQ2,...,AQz>,其中,z为关键元素序列XLQ包括的关键元素数量;
步骤5.3.2,根据关键元素序列XLQ=<AQ1,AQ2,...,AQz>遍历攻击类型检测模型Modj,遍历方法为:
从攻击类型检测模型Modj的第1个结点JD11开始,判断第1个结点JD11的关键元素是否属于关键元素序列XLr,如果不属于,则通过第1个结点JD11引出的有向负边定位到下一个结点;如果属于,则通过第1个结点JD11引出的有向正边定位到下一个结点;
在定位到下一个结点后,将该结点表示为JD12,继续判断结点JD12的关键元素是否属于关键元素序列XLr,如果不属于,则通过结点JD12引出的有向负边定位到下一个结点;如果属于,则通过结点JD12引出的有向正边定位到下一个结点;
依此类推,从第1个结点开始向下逐层进行判断,如果最终能够成功定位到判定结点Y,则表明当前识别的Web请求数据Q0为第j种Web攻击类型ATj,将第j种Web攻击类型ATj记录到Web请求数据Q0对应的攻击类型表中,然后执行步骤5.3.3;否则,表明当前识别的Web请求数据Q0的攻击类型暂时无法判断,不更新攻击类型表,并执行步骤5.3.3;
步骤5.3.3,判断j是否等于p;如果不等于,则执行步骤5.4;如果等于,则执行步骤6;
步骤5.4,令j=j+1,返回执行步骤5.3;
步骤6,查找最后得到的Web请求数据Q0对应的攻击类型表,如果攻击类型表为空,则表明当前检测的Web请求数据Q0不属于p种Web攻击类型中的任意一种,得出当前检测的Web请求数据Q0为非攻击请求的结论,并结束流程;
如果攻击类型表不为空,则攻击类型表所记录的各种Web攻击类型,均为成功识别到的Web请求数据Q0的Web攻击类型,实现对Web请求数据Q0攻击类型的全面检测识别,并结束流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于莫毓昌,未经莫毓昌许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010963251.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种伸缩筒模
- 下一篇:目标数据更新方法和相关装置、设备及存储介质