CN112052448B - 基于关键词自动识别和决策图模型的Web攻击检测方法 - Google Patents

基于关键词自动识别和决策图模型的Web攻击检测方法 Download PDF

Info

Publication number
CN112052448B
CN112052448B CN202010963251.5A CN202010963251A CN112052448B CN 112052448 B CN112052448 B CN 112052448B CN 202010963251 A CN202010963251 A CN 202010963251A CN 112052448 B CN112052448 B CN 112052448B
Authority
CN
China
Prior art keywords
web
node
attack
request data
decision
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
CN202010963251.5A
Other languages
English (en)
Other versions
CN112052448A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202010963251.5A priority Critical patent/CN112052448B/zh
Publication of CN112052448A publication Critical patent/CN112052448A/zh
Application granted granted Critical
Publication of CN112052448B publication Critical patent/CN112052448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (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请求为正常请求。
基于攻击请求规则库对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=θ01ui12ui2+...+θsuis (1)
其中:
θ0为线性模型常数项;θ12,...,θs分别为线性模型的系数;
构建输出转换模型:
其中:
y'i为与训练样本TSi对应的标签预测值;
步骤3.4,根据线性模型hji和输出转换模型,对线性模型hji进行拟合,得到最终的θ012,...,θ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
在决策图T1中,通过第1个结点引出的有向正边定位到的结点为结点/>通过第1个结点/>引出的有向负边定位到的结点为结点/>
在决策图T1中,去掉结点的所有父结点,即得到第1正向子图T11
在决策图T1中,去掉结点的所有父结点,即得到第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=θ01ui12ui2+...+θsuis (1)
其中:
θ0为线性模型常数项;θ12,...,θs分别为线性模型的系数;
构建输出转换模型:
其中:
y'i为与训练样本TSi对应的标签预测值;
步骤3.4,根据线性模型hji和输出转换模型,对线性模型hji进行拟合,得到最终的θ012,...,θ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
在决策图T1中,通过第1个结点引出的有向正边定位到的结点为结点/>通过第1个结点/>引出的有向负边定位到的结点为结点/>
在决策图T1中,去掉结点的所有父结点,即得到第1正向子图T11
在决策图T1中,去掉结点的所有父结点,即得到第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=θ01ui12ui2+...+θsuis (1)
其中:
θ0为线性模型常数项;θ12,...,θs分别为线性模型的系数;
构建输出转换模型:
其中:
y'i为与训练样本TSi对应的标签预测值;
步骤3.4,根据线性模型hji和输出转换模型,对线性模型hji进行拟合,得到最终的θ012,...,θ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进行逻辑或运算,结果为决策图T1
如果决策图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。
3.根据权利要求2所述的基于关键词自动识别和决策图模型的Web攻击检测方法,其特征在于,对于决策图T1,通过以下方式,确定其第1正向子图T11和第1负向子图T10
在决策图T1中,通过第1个结点引出的有向正边定位到的结点为结点/>通过第1个结点/>引出的有向负边定位到的结点为结点/>
在决策图T1中,去掉结点的所有父结点,即得到第1正向子图T11
在决策图T1中,去掉结点的所有父结点,即得到第1负向子图T10
CN202010963251.5A 2020-09-14 2020-09-14 基于关键词自动识别和决策图模型的Web攻击检测方法 Active CN112052448B (zh)

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 CN112052448A (zh) 2020-12-08
CN112052448B true 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 (6)

* Cited by examiner, † Cited by third party
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 中国科学院信息工程研究所 一种面向社交网络的虚拟恶意节点及其网络识别方法
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 亚马逊技术有限公司 安全策略监视服务

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9942250B2 (en) * 2014-08-06 2018-04-10 Norse Networks, Inc. Network appliance for dynamic protection from risky network activities
US10205735B2 (en) * 2017-01-30 2019-02-12 Splunk Inc. Graph-based network security threat detection across time and entities

Patent Citations (6)

* Cited by examiner, † Cited by third party
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 中国科学院信息工程研究所 一种面向社交网络的虚拟恶意节点及其网络识别方法
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)

* Cited by examiner, † Cited by third party
Title
Machine Learning to Detect Anomalies in Web Log Analysis;Qimin Cao 等;《2017 3rd IEEE International Conference on Computer and Communications (ICCC)》;全文 *
隐蔽式网络攻击检测关键问题研究;曹自刚;《中国博士学位论文全文数据库 (信息科技辑)》(第3期);全文 *

Also Published As

Publication number Publication date
CN112052448A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
CN110191103B (zh) 一种dga域名检测分类方法
CN109450845B (zh) 一种基于深度神经网络的算法生成恶意域名检测方法
US8205256B2 (en) Apparatus for detecting intrusion code and method using the same
CN111600919B (zh) 智能网络应用防护系统模型的构建方法和装置
Zhang et al. POSTER: A PU learning based system for potential malicious URL detection
CN104618132B (zh) 一种应用程序识别规则生成方法和装置
CN102346829A (zh) 基于集成分类的病毒检测方法
CN102801709A (zh) 一种钓鱼网站识别系统及方法
CN111740946B (zh) Webshell报文的检测方法及装置
CN107301210A (zh) 一种数据处理方法
CN112491917B (zh) 一种物联网设备未知漏洞识别方法及装置
CN111125750B (zh) 一种基于双层椭圆模型的数据库水印嵌入、检测方法及系统
CN103324886B (zh) 一种网络攻击检测中指纹库的提取方法和系统
CN1235108C (zh) 一种计算机病毒检测和识别方法
CN1223941C (zh) 一种基于相关特征聚类的层次入侵检测系统
CN103455491B (zh) 对查询词分类的方法及装置
CN113438209B (zh) 一种基于改进的Stacking策略的钓鱼网站检测方法
CN112052448B (zh) 基于关键词自动识别和决策图模型的Web攻击检测方法
CN106295252A (zh) 用于基因产品的检索方法
CN114239083A (zh) 一种基于图神经网络的高效状态寄存器识别方法
CN110609936A (zh) 一种模糊地址数据智能分类的方法
Muhaya et al. Polymorphic malware detection using hierarchical hidden markov model
Sachan et al. A generalized links and text properties based forum crawler
CN111556014A (zh) 一种采用全文索引的网络攻击入侵检测方法
CN115065518B (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