CN112052448A - 基于关键词自动识别和决策图模型的Web攻击检测方法 - Google Patents
基于关键词自动识别和决策图模型的Web攻击检测方法 Download PDFInfo
- Publication number
- CN112052448A CN112052448A CN202010963251.5A CN202010963251A CN112052448A CN 112052448 A CN112052448 A CN 112052448A CN 202010963251 A CN202010963251 A CN 202010963251A CN 112052448 A CN112052448 A CN 112052448A
- Authority
- CN
- China
- Prior art keywords
- node
- web
- attack
- request data
- web attack
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 55
- 238000010586 diagram Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000000605 extraction Methods 0.000 claims description 22
- 238000000926 separation method Methods 0.000 claims description 22
- 238000012549 training Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000007547 defect Effects 0.000 description 4
- 238000003066 decision tree Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于关键词自动识别和决策图模型的Web攻击检测方法,包括以下步骤:构造Web攻击请求数据集的元素词典;对于Web攻击请求数据集的每个Web攻击请求数据进行样本编码,得到one‑hot编码;建立与Web攻击类型对应的关键元素词典和攻击类型检测模型;对Web请求数据是否为攻击请求进行检测。本发明具有以下优点:1、使用线性模型和决策图模型自动构造检测模型,有效降低了Web攻击识别的漏报率。2、本发明采用决策图遍历的方法进行Web攻击识别,能够实现大规模的检测模型内存加载,缩短了Web攻击识别的耗费时间,提升了Web攻击识别的效率。
Description
技术领域
本发明属于Web攻击检测技术领域,具体涉及一种基于关键词自动识别和决策图模型的Web攻击检测方法。
背景技术
Web网站的普遍使用,在带来便利的同时,针对Web服务器发起的Web攻击也逐渐增多,从而使得信息面临着安全威胁。Web攻击成为信息安全领域的重点研究方向。
准确快速的识别各类Web攻击,是保证Web服务安全的主要手段。常见的Web攻击识别方法,是基于规则库进行识别。具体的,建立攻击请求规则库,攻击请求规则库中存储多种Web攻击请求规则,并且,攻击请求规则库需要持续的更新,从而保证攻击请求规则库的全面性。采用攻击请求规则库进行Web攻击识别的方式为:当监测到一个Web请求时,将该Web请求与攻击请求规则库中的各个规则进行逐个匹配判断,如果匹配成功,则判断该Web请求为Web攻击请求;否则,如果匹配失败,则判断该Web请求为正常请求。
基于攻击请求规则库对Web请求进行识别,主要存在以下缺点:
(1)存在一定的漏报率。
该方法过于依赖攻击请求规则库的完备性,但由于攻击请求规则库事实上无法涵盖所有类型的攻击请求,并且,新的攻击请求还会不停的被创造出来,所以导致攻击请求规则库很难完全涵盖已有的所有攻击请求,因此,对于某些Web攻击请求,难以准确识别,存在一定的漏报率。
(2)性能不高。
攻击请求规则库中,有部分规则是正则表达式形式,当与Web请求进行匹配判断时,需要耗费一定时间;特别是当攻击请求规则库积累的规则逐渐增多时,每个Web请求需要与攻击请求规则库中的每个规则进行逐个匹配判断,识别效率低,降低了识别性能。
由此可见,基于攻击请求规则库的Web攻击识别方法,存在因为规则库覆盖不完全而导致漏报的先天缺陷,又由于规则库的构造往往需要专家的介入,需要耗费大量人力。此外,攻击请求规则库对Web请求识别的效率较低。由此限制了此种Web请求识别方法的广泛推广使用。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于关键词自动识别和决策图模型的Web攻击检测方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于关键词自动识别和决策图模型的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攻击类型的全面检测识别,并结束流程。
优选的,步骤4.4中,采用决策图合并算法,将f个单样本决策图逐个合并,得到与Web攻击类型ATj对应的攻击类型检测模型Modj,具体为:
对于任意决策图T1和决策图T2,其中,决策图T1和决策图T2为单样本决策图或非单样本决策图,对决策图T1和决策图T2进行逻辑或运算,生成合并图HB,逻辑或运算是指:
如果决策图T1为判定结点N,则决策图T1和决策图T2进行逻辑或运算,结果为决策图T2;
如果决策图T1为判定结点Y,则决策图T1和决策图T2进行逻辑或运算,结果为判定结点Y;
如果决策图T1和决策图T2均不是判定结点N或判定结点Y,则采用以下方式进行逻辑或运算:
首先判断决策图T1的第1个结点的关键元素编号和决策图T2的第1个结点的关键元素编号是否相等,如果不相等,则执行步骤4.4.1;如果相等,则执行步骤4.4.2;
步骤4.4.1,假设决策图T1的第1个结点的关键元素编号小于决策图T2的第1个结点的关键元素编号,则将决策图T1的第1个结点的关键元素作为合并图HB的第1个结点的关键元素;
确定决策图T1的第1正向子图T11和第1负向子图T10;将第1正向子图T11和决策图T2进行逻辑或运算,生成合并图HB的第1个结点引出的有向正边的正向子图;将第1负向子图T10和决策图T2进行逻辑或运算,生成合并图HB的第1个结点引出的有向负边的负向子图;然后执行步骤4.4.3;
步骤4.4.2,将决策图T1的第1个结点的关键元素作为合并图HB的第1个结点的关键元素;
确定决策图T1的第1正向子图T11和第1负向子图T10;
确定决策图T2的第1正向子图T21和第1负向子图T20;
将第1负向子图T10和第1负向子图T20进行逻辑或运算,生成合并图HB的第1个结点引出的有向负边的负向子图;然后执行步骤4.4.3;
步骤4.4.3,对得到的合并图HB进行合并整理,得到最终的合并图HB。
优选的,对于决策图T1,通过以下方式,确定其第1正向子图T11和第1负向子图T10:
本发明提供的基于关键词自动识别和决策图模型的Web攻击检测方法具有以下优点:
1、使用线性模型和决策图模型自动构造检测模型,有效降低了Web攻击识别的漏报率。
2、本发明采用决策图遍历的方法进行Web攻击识别,能够实现大规模的检测模型内存加载,缩短了Web攻击识别的耗费时间,提升了Web攻击识别的效率。
附图说明
图1为本发明提供的基于关键词自动识别和决策图模型的Web攻击检测方法的流程示意图;
图2为本发明提供的一种单样本决策图的示意图;
图3为本发明提供的决策图合并的第1步示意图;
图4为本发明提供的决策图合并的第2步示意图;
图5为本发明提供的决策图合并的第3步示意图;
图6为本发明提供的决策图合并的第4步示意图;
图7为本发明提供的决策图合并后的合并图示意图;
图8为对图7进行合并整理,得到最终的合并图的示意图;
图9为本发明提供的一种SQL攻击类型的检测决策图的示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
传统的基于规则库的Web攻击识别方法,存在因为规则库覆盖不完全而导致漏报的先天缺陷,另外规则库的构造往往需要专家的介入,需要耗费大量人力。本发明具有以下优点:1、使用机器学习模型(线性模型和决策图模型)自动构造检测模型,较好的解决了传统方法缺少专家知识和规则库覆盖不完全等问题;因此,本发明有效降低了Web攻击识别的漏报率。2、在Web攻击识别的实现过程中,本发明采用决策图遍历的方法进行检测,由于决策图中对大量规则进行了归并组合,从而能够实现大规模的检测模型内存加载,缩短了Web攻击识别的耗费时间,提升了Web攻击识别的效率。
参考图1,本发明提供一种基于关键词自动识别和决策图模型的Web攻击检测方法,包括以下步骤:
步骤1,构造Web攻击请求数据集的元素词典DICT,方法为:
步骤1.1,确定需要进行Web攻击检测的p种Web攻击类型;为提高Web攻击请求检测的准确性和全面性,本步骤中确定的p种Web攻击类型的数量需要尽量多,并且,需要不断更新完善,例如,Web攻击类型包括但不限于:SQL注入攻击类型、跨站请求伪造CSRF攻击类型、Webshell恶意代码攻击类型、跨站脚本XSS攻击类型等。
对于每种Web攻击类型ATj,j=1,2,...,p,均收集到多条与该Web攻击类型ATj对应的Web攻击请求数据,因此,对于p种Web攻击类型,收集到的所有Web攻击请求数据形成Web攻击请求数据集;其中,Web攻击请求数据集一共包括q条Web攻击请求数据;
例如,可以从已有的国内外公开的Web请求获得Web攻击请求数据集。
CSIC2010包含已经标注过的针对Web服务的请求。数据量约5w条。数据集下载链接:http://www.isi.csic.es/dataset/。honeypot是由多种类型的蜜罐采集回来的Web请求数据。主要是Web请求。约99万条数据。数据集下载链接:http://www.secrepo.com/honeypot/honeypot.json.zip
从上述两大公开数据集中,选择4类攻击请求各2000条。总共8 000条Web攻击请求形成Web攻击请求数据集。
步骤1.2,对于Web攻击请求数据集中的每一条Web攻击请求数据,采用元素分离提取算法,对其进行元素分离提取处理,得到该条Web攻击请求数据对应的元素集合;
其中,元素分离提取方式为:以元素为单元,提取Web攻击请求数据中的每个元素,提取到的各个元素组合形成元素集合;其中,元素包括:词语元素、数字元素和符号元素;
例如,Web攻击请求数据为:/hitcount.asp?lx=qianbo,对其进行元素分离提取,即:提取Web攻击请求数据中的所有单词,数字,符号,得到元素集合为:{/hitcount.asp?lx=qianbo},共包括8个元素。后续步骤中,凡是涉及到元素分离提取操作时,均采用相同的规则进行。
步骤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个元素;
针对上例中的8 000条Web攻击请求数据,获得的元素词典DICT包含88649147个元素。
步骤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>;
例如,元素词典DICT为
{/select hitcount from.asp,?group lx=qianbo},共包括12个元素。
则Web请求/hitcount.asp?lx=qianbo对应的one-hot编码为:
{1 0 1 0 1 1 0 1 0 1 1 1}
因此,针对8 000条Web攻击请求数据,获得一个规模为8 000*88649147的包含所有Web攻击请求数据的one-hot编码数组。
步骤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,如ε0=0.005,;检查每个系数θk的绝对值是否小于权重阈值ε0,其中,k=1,2,...,s,如果是,则系数θk对应的元素E[k]为非关键元素;否则,系数θk对应的元素E[k]为关键元素;
步骤3.6,将步骤3.5得到的所有关键元素存入与Web攻击类型ATj对应的关键元素词典KEYDICTj,由此得到关键元素词典KEYDICTj;
因此,对于p种Web攻击类型,每种Web攻击类型均构造一个对应的关键元素词典,该关键元素词典中的关键元素,是对该Web攻击类型影响作用非常大的元素,可用于后续步骤中对该Web攻击类型进行识别。
步骤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;
例如,根据某个SQL攻击请求数据的one-hot编码,获得该SQL攻击请求数据的关键元素序列为XL=<A1,A2,A10>,生成对应的单样本决策图如图2所示。在图2中,单样本决策图共有4层,第1层结点为关键元素A1,第2层结点为关键元素A2,第3层结点为关键元素A10,第4层有两个判定结点,分别为判定结点N和判定结点Y;第1层结点引出有向正边到第2层结点,第2层结点引出有向正边到第3层结点,第3层结点引出有向正边到判定结点Y;第1层结点、第2层结点、第3层结点各引出有向负边到判定结点N。在图2中,有向正边用Y表示,有向负边用N表示。单样本决策图的遍历方式为:从第1层结点开始,如果某个Web请求数据包括第1层结点的关键元素A1,则根据第1层结点的有向正边,定位到第2层结点。然后,如果该Web请求数据包括第2层结点的关键元素A2,则根据第2层结点的有向正边,定位到第3层结点。如果该Web请求数据包括第3层结点的关键元素A10,则根据第3层结点的有向正边,定位到判定结点Y,至此识别出该Web请求数据为SQL攻击请求数据。反之,如果该Web请求数据不包括关键元素A1、或者,包括关键元素A1但不包括关键元素A2,或者,包括关键元素A1和A2但不包括关键元素A10,则得出该Web请求数据攻击类型暂时无法判断的结论。
步骤4.4,一共有f条与Web攻击类型ATj对应的Web攻击请求数据,因此,共得到f个与Web攻击类型ATj对应的单样本决策图;
采用决策图合并算法,将f个单样本决策图逐个合并,得到与Web攻击类型ATj对应的攻击类型检测模型Modj;例如,假如有5个单样本决策图,可以先将第1个单样本决策图和第2个单样本决策图合并,得到决策图D1;然后将第3个单样本决策图和第4个单样本决策图合并,得到决策图D2;然后将决策图D1和决策图D2合并,得到决策图D3;再将决策图D3和第5个单样本决策图合并,得到最终的决策图D4。当然,采用任意组合方式,两两合并均可,本发明对此并不限制。
任意两个决策图之间合并方式,具体为:
对于任意决策图T1和决策图T2,其中,决策图T1和决策图T2为单样本决策图或非单样本决策图,对决策图T1和决策图T2进行逻辑或运算,生成合并图HB,逻辑或运算是指:
如果决策图T1为判定结点N,则决策图T1和决策图T2进行逻辑或运算,结果为决策图T2;
如果决策图T1为判定结点Y,则决策图T1和决策图T2进行逻辑或运算,结果为判定结点Y;
如果决策图T1和决策图T2均不是判定结点N或判定结点Y,则采用以下方式进行逻辑或运算:
首先判断决策图T1的第1个结点的关键元素编号和决策图T2的第1个结点的关键元素编号是否相等,如果不相等,则执行步骤4.4.1;如果相等,则执行步骤4.4.2;
步骤4.4.1,假设决策图T1的第1个结点的关键元素编号小于决策图T2的第1个结点的关键元素编号,则将决策图T1的第1个结点的关键元素作为合并图HB的第1个结点的关键元素;
确定决策图T1的第1正向子图T11和第1负向子图T10;将第1正向子图T11和决策图T2进行逻辑或运算,生成合并图HB的第1个结点引出的有向正边的正向子图;将第1负向子图T10和决策图T2进行逻辑或运算,生成合并图HB的第1个结点引出的有向负边的负向子图;然后执行步骤4.4.3;
步骤4.4.2,将决策图T1的第1个结点的关键元素作为合并图HB的第1个结点的关键元素;
确定决策图T1的第1正向子图T11和第1负向子图T10;
确定决策图T2的第1正向子图T21和第1负向子图T20;
将第1负向子图T10和第1负向子图T20进行逻辑或运算,生成合并图HB的第1个结点引出的有向负边的负向子图;然后执行步骤4.4.3;
本步骤中,对于决策图T1,通过以下方式,确定其第1正向子图T11和第1负向子图T10:
例如,如图3所示,为决策图T1,如图4所示,为决策图T2,T1和T2合并方式为:
步骤1)决策图T1的第1个结点的关键元素为A1,决策图T2的第1个结点的关键元素为A2,因此,决策图T1的第1个结点的关键元素编号1小于决策图T2的第1个结点的关键元素编号2,则将决策图T1的第1个结点的关键元素A1作为合并图HB的第1个结点的关键元素。
步骤2)参考图5,决策图T1的第1正向子图为T11、第1负向子图为T10;然后,将第1正向子图T11和决策图T2进行逻辑或运算,运算方法为步骤3),生成合并图HB的第1个结点引出的有向正边的正向子图;
将第1负向子图T10和决策图T2进行逻辑或运算,运算方法为步骤4),生成合并图HB的第1个结点引出的有向负边的负向子图;
步骤3)第1正向子图T11和决策图T2进行逻辑或运算的具体方法为:
参考图6,由于第1正向子图T11和决策图T2的第1个结点均为关键元素A2,因此,关键元素A2作为合并后子图的第1个结点,也就是关键元素A1引出的有向正边的子结点。
第1正向子图T11的正向子图为T12,为判定结点Y;第1正向子图T11的负向子图为T13;
决策图T2的正向子图为T21,决策图T2的负向子图为T22;
因此,正向子图T12和正向子图T21进行逻辑或运算,生成关键元素A2引出的有向正边的正向子图;其中,由于正向子图T12为判定结点Y,因此,正向子图T12和正向子图T21进行逻辑或运算,得到的正向子图即为判定结点Y;
负向子图T13和负向子图T22进行逻辑或运算,生成关键元素A2引出的有向负边的负向子图;其中,负向子图T13和负向子图T22进行逻辑或运算的方式为:
将关键元素A3作为关键元素A2引出的有向负边的子结点;
负向子图T13的正向子图为T14,即为Y判定结点;负向子图T13的负向子图为T15,即为N判定结点;
因此,T14和T22进行逻辑或运算,生成关键元素A3引出的有向正边的正向子图,而T14和T22进行逻辑或运算,结果即为Y判定结点;T15和T22进行逻辑或运算,生成关键元素A3引出的有向负边的负向子图,而T15和T22进行逻辑或运算,结果即为T22。
步骤4)T10和T2进行逻辑或运算,结果即为T2。
因此,经过以上步骤合并,得到合并图为图7。
步骤4.4.3,对得到的合并图HB进行合并整理,得到最终的合并图HB。
对图7进行合并整理,得到最终的合并图,即图8。
传统的决策树模型的大小随着树的深度增加呈现指数型增加的趋势,在实际应用中无法将完整的决策树模型加载到内存中,从而降低Web攻击识别的效率。
本发明获得的决策图模型和传统的决策树模型相比,本发明通过模型共享,能够对关键词的多种组合进行合并存储,从而能够实现大规模的检测模型内存加载,缩短了Web攻击识别的耗费时间,提升了Web攻击识别的效率。
步骤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攻击类型的全面检测识别,并结束流程。
例如,假设SQL攻击类型的检测决策图如图9所示。
如果从某个待识别的Web请求提取的关键元素序列XL10为<A1、A3>,通过遍历访问图9决策图可知,首先判断决策图第1个结点的关键元素A1是否在关键元素序列XL10中,结果为在,因此,在决策图定位到关键元素A2;然后判断决策图第2个结点的关键元素A2是否在关键元素序列XL10中,结果为否,因此,在决策图定位到关键元素A2有向负边引出的关键元素A3;然后,判断关键元素A3是否在关键元素序列XL10中,结果为否,因此,在决策图定位到关键元素A3有向负边引出的N判定结点。所以检测结果是:Web请求为非SQL攻击请求。
如果从某个待识别的Web请求提取的关键元素序列XL11为<A5>,通过遍历访问决策图9可知,由于A1不出现在关键元素序列XL11中,直接定位到N判定结点。所以检测结果是:Web请求为非SQL攻击请求。
如果从某个待识别的Web请求提取的关键元素序列XL12为<A1、A3,A4>,通过遍历访问决策图9可知,通过A1的Y分支、A2的N分支、A3的Y分支和A4的Y分支到达判定节点Y,所以检测结果是:Web请求为SQL攻击请求。
最后,综合各个攻击类型检测的决策图模型的检测结果,反馈给系统安全管理员。
当所有攻击检测模型的检测结果都是正常请求,则综合结果为正常请求。
任意攻击检测模型的检测结果为攻击请求,则综合结果为攻击请求,并给出包括的各种攻击类型。
综上所述,本发明具有以下优点:
1、使用线性模型和决策图模型自动构造检测模型,有效降低了Web攻击识别的漏报率。
2、本发明采用决策图遍历的方法进行Web攻击识别,能够实现大规模的检测模型内存加载,缩短了Web攻击识别的耗费时间,提升了Web攻击识别的效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (3)
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攻击类型的全面检测识别,并结束流程。
2.根据权利要求1所述的基于关键词自动识别和决策图模型的Web攻击检测方法,其特征在于,步骤4.4中,采用决策图合并算法,将f个单样本决策图逐个合并,得到与Web攻击类型ATj对应的攻击类型检测模型Modj,具体为:
对于任意决策图T1和决策图T2,其中,决策图T1和决策图T2为单样本决策图或非单样本决策图,对决策图T1和决策图T2进行逻辑或运算,生成合并图HB,逻辑或运算是指:
如果决策图T1为判定结点N,则决策图T1和决策图T2进行逻辑或运算,结果为决策图T2;
如果决策图T1为判定结点Y,则决策图T1和决策图T2进行逻辑或运算,结果为判定结点Y;
如果决策图T1和决策图T2均不是判定结点N或判定结点Y,则采用以下方式进行逻辑或运算:
首先判断决策图T1的第1个结点的关键元素编号和决策图T2的第1个结点的关键元素编号是否相等,如果不相等,则执行步骤4.4.1;如果相等,则执行步骤4.4.2;
步骤4.4.1,假设决策图T1的第1个结点的关键元素编号小于决策图T2的第1个结点的关键元素编号,则将决策图T1的第1个结点的关键元素作为合并图HB的第1个结点的关键元素;
确定决策图T1的第1正向子图T11和第1负向子图T10;将第1正向子图T11和决策图T2进行逻辑或运算,生成合并图HB的第1个结点引出的有向正边的正向子图;将第1负向子图T10和决策图T2进行逻辑或运算,生成合并图HB的第1个结点引出的有向负边的负向子图;然后执行步骤4.4.3;
步骤4.4.2,将决策图T1的第1个结点的关键元素作为合并图HB的第1个结点的关键元素;
确定决策图T1的第1正向子图T11和第1负向子图T10;
确定决策图T2的第1正向子图T21和第1负向子图T20;
将第1负向子图T10和第1负向子图T20进行逻辑或运算,生成合并图HB的第1个结点引出的有向负边的负向子图;然后执行步骤4.4.3;
步骤4.4.3,对得到的合并图HB进行合并整理,得到最终的合并图HB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010963251.5A CN112052448B (zh) | 2020-09-14 | 2020-09-14 | 基于关键词自动识别和决策图模型的Web攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010963251.5A CN112052448B (zh) | 2020-09-14 | 2020-09-14 | 基于关键词自动识别和决策图模型的Web攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052448A true CN112052448A (zh) | 2020-12-08 |
CN112052448B CN112052448B (zh) | 2023-12-12 |
Family
ID=73611625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010963251.5A Active CN112052448B (zh) | 2020-09-14 | 2020-09-14 | 基于关键词自动识别和决策图模型的Web攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052448B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100027841A (ko) * | 2008-09-03 | 2010-03-11 | 충남대학교산학협력단 | 대용량 웹로그마이닝 및 공격탐지를 위한 비트리인덱스벡터기반 웹로그 고속검색방법 및 비-트리기반인덱싱로그 프로세서 |
CN102799524A (zh) * | 2012-07-03 | 2012-11-28 | 天津大学 | 一种浏览器扩展的缺陷检测方法 |
CN104660594A (zh) * | 2015-02-09 | 2015-05-27 | 中国科学院信息工程研究所 | 一种面向社交网络的虚拟恶意节点及其网络识别方法 |
US20160044054A1 (en) * | 2014-08-06 | 2016-02-11 | Norse Corporation | Network appliance for dynamic protection from risky network activities |
US20190124104A1 (en) * | 2017-01-30 | 2019-04-25 | Splunk Inc. | Graph-Based Network Anomaly Detection Across Time and Entities |
CN109831460A (zh) * | 2019-03-27 | 2019-05-31 | 杭州师范大学 | 一种基于协同训练的Web攻击检测方法 |
CN110266669A (zh) * | 2019-06-06 | 2019-09-20 | 武汉大学 | 一种Java Web框架漏洞攻击通用检测与定位的方法及系统 |
CN110870278A (zh) * | 2017-06-29 | 2020-03-06 | 亚马逊技术有限公司 | 安全策略监视服务 |
-
2020
- 2020-09-14 CN CN202010963251.5A patent/CN112052448B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100027841A (ko) * | 2008-09-03 | 2010-03-11 | 충남대학교산학협력단 | 대용량 웹로그마이닝 및 공격탐지를 위한 비트리인덱스벡터기반 웹로그 고속검색방법 및 비-트리기반인덱싱로그 프로세서 |
CN102799524A (zh) * | 2012-07-03 | 2012-11-28 | 天津大学 | 一种浏览器扩展的缺陷检测方法 |
US20160044054A1 (en) * | 2014-08-06 | 2016-02-11 | Norse Corporation | Network appliance for dynamic protection from risky network activities |
CN104660594A (zh) * | 2015-02-09 | 2015-05-27 | 中国科学院信息工程研究所 | 一种面向社交网络的虚拟恶意节点及其网络识别方法 |
US20190124104A1 (en) * | 2017-01-30 | 2019-04-25 | Splunk Inc. | Graph-Based Network Anomaly Detection Across Time and Entities |
CN110870278A (zh) * | 2017-06-29 | 2020-03-06 | 亚马逊技术有限公司 | 安全策略监视服务 |
CN109831460A (zh) * | 2019-03-27 | 2019-05-31 | 杭州师范大学 | 一种基于协同训练的Web攻击检测方法 |
CN110266669A (zh) * | 2019-06-06 | 2019-09-20 | 武汉大学 | 一种Java Web框架漏洞攻击通用检测与定位的方法及系统 |
Non-Patent Citations (2)
Title |
---|
QIMIN CAO 等: "Machine Learning to Detect Anomalies in Web Log Analysis", 《2017 3RD IEEE INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATIONS (ICCC)》 * |
曹自刚: "隐蔽式网络攻击检测关键问题研究", 《中国博士学位论文全文数据库 (信息科技辑)》, no. 3 * |
Also Published As
Publication number | Publication date |
---|---|
CN112052448B (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Progressive learning with multi-scale attention network for cross-domain vehicle re-identification | |
CN110191103B (zh) | 一种dga域名检测分类方法 | |
US11799823B2 (en) | Domain name classification systems and methods | |
Sivaguru et al. | An evaluation of DGA classifiers | |
WO2013106354A1 (en) | Machine-learning based classification of user accounts based on email addresses and other account information | |
CN104618132B (zh) | 一种应用程序识别规则生成方法和装置 | |
CN111740946B (zh) | Webshell报文的检测方法及装置 | |
CN114579693B (zh) | 一种nlp文本安全审核多级检索系统 | |
CN103324886B (zh) | 一种网络攻击检测中指纹库的提取方法和系统 | |
CN109547294B (zh) | 一种基于固件分析的联网设备型号探测方法、装置 | |
CN111869176A (zh) | 用于恶意软件签名生成的系统和方法 | |
CN114239083A (zh) | 一种基于图神经网络的高效状态寄存器识别方法 | |
CN118413402A (zh) | 一种基于大语言模型的恶意域名检测方法 | |
CN1223941C (zh) | 一种基于相关特征聚类的层次入侵检测系统 | |
CN113449816B (zh) | 网址分类模型训练、网址分类方法、装置、设备及介质 | |
CN111061972A (zh) | 一种用于url路径匹配的ac查找优化方法和装置 | |
Ya et al. | NeuralAS: Deep word-based spoofed URLs detection against strong similar samples | |
CN113962324A (zh) | 图片检测方法、装置、存储介质及电子设备 | |
CN112052448A (zh) | 基于关键词自动识别和决策图模型的Web攻击检测方法 | |
CN115221013B (zh) | 一种日志模式的确定方法、装置及设备 | |
CN115865425B (zh) | 一种阶层式加密货币的挖矿行为识别方法及系统 | |
Sirhan et al. | Multilabel CNN model for asphalt distress classification | |
CN114332745B (zh) | 一种基于深度神经网络的近重复视频大数据清洗方法 | |
CN114372529A (zh) | 一种基于改进XGBoost算法的数据中台入侵分类检测方法 | |
CN112257073A (zh) | 一种基于改进的dbscan算法的网页去重方法 |
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 |