CN107644162A - 一种Web攻击识别方法和装置 - Google Patents
一种Web攻击识别方法和装置 Download PDFInfo
- Publication number
- CN107644162A CN107644162A CN201710786707.3A CN201710786707A CN107644162A CN 107644162 A CN107644162 A CN 107644162A CN 201710786707 A CN201710786707 A CN 201710786707A CN 107644162 A CN107644162 A CN 107644162A
- Authority
- CN
- China
- Prior art keywords
- web
- probability
- identified
- attack
- query
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Web攻击识别方法和装置;本方法为:1)对Web正常请求集、Web攻击请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;2)对于每一字符串,计算该字符串分别在该Web正常请求集中的出现概率、在该Web攻击请求集中的出现概率;3)将该待识别Web请求中的URL和POST数据进行分词处理,得到N个字符串,对于该N个字符串中每一个字符串,计算该字符串使得该待识别Web请求被识别为攻击请求的概率;4)选取概率最高的若干概率,计算该待识别Web请求为攻击请求的联合概率;如果该联合概率大于事先设置好的阈值,则判断该待识别Web请求为攻击请求,否则判断为正常请求。
Description
技术领域
本发明属于计算机网络技术领域,涉及一种Web攻击识别方法和装置。
背景技术
贝叶斯定理是统计学中非常重要的一个定理,以贝叶斯定理为基础的统计学派在统计学世界里占据着重要的地位。
条件概率,就是指在事件B发生的情况下,事件A发生的概率,用P(A|B)来表示。
公式中的P(A∩B),指的是事件A和事件B同时发生的概率。
根据公式可以推导出:
P(A∩B)=P(A|B)P(B)
P(A∩B)=P(B|A)P(A)
所以:
P(A|B)P(B)=P(B|A)P(A)
即得到条件概率的计算公式:
使用P(A′)表示为P(A)的互补事件,P(A′)+P(A)=1,则:
P(B)=P(B∩A)+P(B∩A′)
P(B)=P(B|A)P(A)+P(B|A′)P(A′)
所以,条件概率的计算公式,可以推导为:
则得到了贝叶斯公式。
常见的Web攻击识别方法,是基于规则库的判断。维护一个攻击请求规则库,并持续的更新,保证规则库的全面;针对一个Web请求,与规则库中的规则进行逐个的匹配判断,如果匹配上某条规则,则判断该Web请求为攻击请求,若没有匹配上任何规则,则判断该Web请求为正常请求,该方法存在两个缺点:
一是存在一定的漏报率。该方法过于依赖规则库的完备性,事实上很难有规则库可以做到百分百无缺失,况且攻击者还会不停的创造出新的攻击手法,规则库很难百分百涵盖完全,因此该方法不可避免的存在一定的漏报率。
二是性能不高。规则库中,有部分规则是正则表达式,与Web请求进行匹配判断的时候,需要耗费一定时间;特别是当规则库积累的规则逐渐增多,每个Web请求都需要与这些规则逐个进行匹配判断,性能会受影响。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种Web攻击识别方法和装置。本发明使用概率统计学的思路,采用贝叶斯公式来进行计算概率,依据概率判断是否为攻击请求,从而绕过了因为规则库不完备而导致漏报的问题。
本发明包括:前期统计和攻击识别。
前期统计,指的是准备两组已经识别好的Web请求集:攻击请求集和正常请求集;针对这些web请求中的URL和POST数据进行分词处理,得到若干字符串;计算每个字符串在攻击请求和正常请求中的出现概率。
攻击识别,指的是针对一个待识别的Web请求,将该Web请求中的URL和POST数据进行分词处理,得到N个字符串;计算每一个字符串存在时该请求为攻击请求的概率;挑选3个最高的概率,计算联合概率;将联合概率与阈值进行比较,大于阈值则判断该Web请求为攻击请求,小于等于阈值则判断为正常请求。
该发明的流程为:
前期统计,如图1所示,其步骤包括:
步骤1:准备两组已经识别好的Web请求集:正常请求集和攻击请求集;
步骤2:针对这些Web中的URL和POST数据进行分词处理,得到若干字符串;
步骤3:计算每个字符串在攻击请求和正常请求中的出现概率。
攻击识别,如图2所示,其步骤包括:
步骤1:针对一个待识别的Web请求,将该Web请求中的URL和POST数据进行分词处理,得到N个字符串;
步骤2:根据前期统计结果计算每一个字符串存在时该请求为攻击请求的概率;即该待识别Web请求中的每一字符串使得该待识别Web请求被识别为攻击请求的概率;根据每个字符串在攻击请求集和正常请求集的出现概率计算每一个字符串存在时该请求为攻击请求的概率。如果该待识别请求的分词中出现了新的字符串(即攻击请求集和正常请求集分词处理后未出现的字符串),则设定存在该字符串时为攻击请求的概率为一设定值。
步骤3:挑选3个最高的概率,计算出联合概率;
步骤4:将联合概率与阈值进行比较,大于阈值则判断该Web请求为攻击请求,小于等于阈值则判断为正常请求。
本发明提供了一种Web攻击识别装置,其特征在于,包括前期统计模块和攻击识别模块;
所述前期统计模块,用于对Web正常请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;对Web攻击请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;以及对于得到的每一字符串,计算该字符串分别在该Web正常请求集中的出现概率、在该Web攻击请求集中的出现概率;
所述攻击识别模块,用于针对一待识别Web请求,将该待识别Web请求中的URL和POST数据进行分词处理,得到N个字符串,对于该N个字符串中每一个字符串,根据前期统计模块的统计结果计算该字符串使得该待识别Web请求被识别为攻击请求的概率;选取概率最高的若干概率,计算该待识别Web请求为攻击请求的联合概率;如果该联合概率大于事先设置好的阈值,则判断该待识别Web请求为攻击请求,否则判断为正常请求。
进一步的,基于贝叶斯公式计算该字符串使得该待识别Web请求被识别为攻击请求的概率。
进一步的,所述攻击识别模块采用公式计算该字符串使得该待识别Web请求被识别为攻击请求的概率P(Y|W);其中,P(W|Y)为该字符串在Web攻击请求集中的出现概率,P(W|N)为该字符串在Web正常请求集中的出现概率,P(Y)为该待识别Web请求为攻击请求的概率,P(N)为该待识别Web请求为正常请求的概率;如果该待识别Web请求的分词中出现了新的字符串,则设定该字符串使得该待识别Web请求被识别为攻击请求的概率为一设定值。
进一步的,所述攻击识别模块选取概率最高的三个概率P1、P2、P3,采用公式计算所述联合概率P。
本发明主要具有以下优点:
基于规则库的Web攻击识别方法,存在因为规则库覆盖不完全而导致漏报的先天缺陷;本发明使用概率统计学的思路来解决这个问题,而不是通过增加规则的思路来解决;因此本发明大大降低了Web攻击识别的漏报率。
在Web攻击识别的实现过程中,本发明只进行简单的数学公式计算,无需将规则库中的规则逐个和Web请求进行匹配判断,从而缩短了Web攻击识别的耗费时间,提升了Web攻击识别的效率。
附图说明
图1为前期统计流程图;
图2为攻击识别流程图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
(一)前期统计
(1)准备两组已经识别好的Web请求
准备的请求集,攻击请求和正常请求分别不少于10000条。
(2)针对所有Web请求中的URL和POST数据进行分词处理
URL包括请求协议scheme、目标地址netloc、网页路径path、网页路径所需参数params、查询参数query、片段标识符fragment这6个元素。
scheme://netloc/path;params?query#fragment。
示例:http://admin:pass@www.test.com:80/bbs/index.php;params?id=10#top。
其中
scheme='http',
netloc='admin:pass@www.test.com:80',
path='/bbs/index.php',
params='params',
query='id=10',
fragment='top'。
本发明会针对URL中的path、params、query、fragment这4个元素,进行分词处理。
POST数据:GET和POST为HTTP请求最常见的两种方法,GET方法将请求的数据附在URL上,POST方法将请求的数据放置在HTTP包的包体中。
本发明会针对POST数据进行分词处理。
(3)计算每个字符串在攻击请求和正常请求中的出现概率
若有10000条攻击请求和10000条正常请求:
10000条攻击请求中,出现某字符串的请求数量为5000条;
10000条正常请求中,出现某字符串的请求数量为100条。
则:
该字符串在攻击请求集中的出现概率,为0.5。为方便理解,表示为:P(W|Y);
该字符串在正常请求集中的出现概率,为0.01。为方便理解,表示为:P(W|N)。
(二)攻击识别
(1)将Web请求中的URL和POST数据进行分词处理,得到N个字符串。
(2)针对每个字符串,计算其存在时该请求为攻击请求的概率。
为方便理解,本发明这样表示:
P(Y|W),表示一个字符串存在时该请求为攻击请求的概率;
P(W|Y),表示一个字符串在攻击请求集中的出现概率;
P(W|N),表示一个字符串在正常请求集中的出现概率;
P(Y),表示一个Web请求为攻击请求的概率,为50%;
P(N),表示一个Web请求为正常请求的概率,为50%。
贝叶斯公式为:
根据该公式,推导出:计算每一个字符串存在时该Web请求为攻击请求的概率,公式为:
本发明在“前期统计”中已经计算出P(W|Y)和P(W|N)的值,同时本发明也知道P(Y)和P(N)的值。因此,基于这个公式,就可以计算出P(Y|W),即每一个字符串存在时该Web请求为攻击请求的概率。
(3)挑选3个最高的概率,计算联合概率
第一步,针对每个Web请求,经过分词处理后,得到N个字符串;
第二步,计算每个字符串存在时该Web请求为攻击请求的概率;
第三步就是基于第二步的结果,从N个概率中,挑选出3个最高的概率,依据下面这个联合概率的计算公式,可以计算出联合概率。
(4)将联合概率与阈值进行比较判断
第三步计算出联合概率之后,和事先设置好的阈值进行比较。若大于阈值则判断该Web请求为攻击请求,小于等于阈值则判断为正常请求。
在实现过程中,本发明会针对判断结果进行抽样的人工验证,发现不准确的时候,会对阈值进行调整,以期将判断结果调整的越来越准确。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种Web攻击识别方法,其步骤包括:
1)选取一Web正常请求集和一Web攻击请求集;
2)对该Web正常请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;对该Web攻击请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;
3)对于步骤2)得到的每一字符串,计算该字符串分别在该Web正常请求集中的出现概率、在该Web攻击请求集中的出现概率;
4)针对一待识别Web请求,将该待识别Web请求中的URL和POST数据进行分词处理,得到N个字符串,对于该N个字符串中每一个字符串,根据步骤3)的计算结果计算该字符串使得该待识别Web请求被识别为攻击请求的概率;
5)从步骤4)的结果中选取概率最高的若干概率,计算该待识别Web请求为攻击请求的联合概率;如果该联合概率大于事先设置好的阈值,则判断该待识别Web请求为攻击请求,否则判断为正常请求。
2.如权利要求1所述的方法,其特征在于,根据步骤3)的计算结果基于贝叶斯公式计算该字符串使得该待识别Web请求被识别为攻击请求的概率。
3.如权利要求2所述的方法,其特征在于,采用公式计算该字符串使得该待识别Web请求被识别为攻击请求的概率P(Y|W);其中,P(W|Y)为该字符串在Web攻击请求集中的出现概率,P(W|N)为该字符串在Web正常请求集中的出现概率,P(Y)为该待识别Web请求为攻击请求的概率,P(N)为该待识别Web请求为正常请求的概率。
4.如权利要求1或2或3所述的方法,其特征在于,概率最高的三个概率P1、P2、P3,采用公式计算所述联合概率P。
5.如权利要求1所述的方法,其特征在于,所述步骤4)中,如果该待识别Web请求的分词中出现了新的字符串,则设定该字符串使得该待识别Web请求被识别为攻击请求的概率为一设定值。
6.如权利要求1所述的方法,其特征在于,所述步骤2)、步骤4)中,对URL中的网页路径path、网页路径所需参数params、查询参数query、片段标识符fragment进行分词处理。
7.一种Web攻击识别装置,其特征在于,包括前期统计模块和攻击识别模块;其中,
所述前期统计模块,用于对Web正常请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;对Web攻击请求集中每一Web请求的URL和POST数据进行分词处理,得到若干字符串;以及对于得到的每一字符串,计算该字符串分别在该Web正常请求集中的出现概率、在该Web攻击请求集中的出现概率;
所述攻击识别模块,用于针对一待识别Web请求,将该待识别Web请求中的URL和POST数据进行分词处理,得到N个字符串,对于该N个字符串中每一个字符串,根据前期统计模块的统计结果计算该字符串使得该待识别Web请求被识别为攻击请求的概率;选取概率最高的若干概率,计算该待识别Web请求为攻击请求的联合概率;如果该联合概率大于事先设置好的阈值,则判断该待识别Web请求为攻击请求,否则判断为正常请求。
8.如权利要求7所述的Web攻击识别装置,其特征在于,基于贝叶斯公式计算该字符串使得该待识别Web请求被识别为攻击请求的概率。
9.如权利要求8所述的Web攻击识别装置,其特征在于,所述攻击识别模块采用公式计算该字符串使得该待识别Web请求被识别为攻击请求的概率P(Y|W);其中,P(W|Y)为该字符串在Web攻击请求集中的出现概率,P(W|N)为该字符串在Web正常请求集中的出现概率,P(Y)为该待识别Web请求为攻击请求的概率,P(N)为该待识别Web请求为正常请求的概率;如果该待识别Web请求的分词中出现了新的字符串,则设定该字符串使得该待识别Web请求被识别为攻击请求的概率为一设定值。
10.如权利要求7或8或9所述的Web攻击识别装置,其特征在于,所述攻击识别模块选取概率最高的三个概率P1、P2、P3,采用公式计算所述联合概率P。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710786707.3A CN107644162A (zh) | 2017-09-04 | 2017-09-04 | 一种Web攻击识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710786707.3A CN107644162A (zh) | 2017-09-04 | 2017-09-04 | 一种Web攻击识别方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107644162A true CN107644162A (zh) | 2018-01-30 |
Family
ID=61110981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710786707.3A Pending CN107644162A (zh) | 2017-09-04 | 2017-09-04 | 一种Web攻击识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107644162A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650249A (zh) * | 2018-04-26 | 2018-10-12 | 平安科技(深圳)有限公司 | Poc攻击检测方法、装置、计算机设备和存储介质 |
CN111756728A (zh) * | 2020-06-23 | 2020-10-09 | 深圳前海微众银行股份有限公司 | 一种漏洞攻击检测的方法及装置 |
US11055407B2 (en) * | 2017-09-30 | 2021-07-06 | Oracle International Corporation | Distribution-based analysis of queries for anomaly detection with adaptive thresholding |
CN113179256A (zh) * | 2021-04-12 | 2021-07-27 | 中国电子科技集团公司第三十研究所 | 一种时间同步系统时间信息安全融合方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324745A (zh) * | 2013-07-04 | 2013-09-25 | 微梦创科网络科技(中国)有限公司 | 基于贝叶斯模型的文本垃圾识别方法和系统 |
CN105589845A (zh) * | 2015-12-18 | 2016-05-18 | 北京奇虎科技有限公司 | 垃圾文本识别方法、装置及系统 |
US20160189030A1 (en) * | 2011-07-01 | 2016-06-30 | Google Inc. | Predicting user navigation events |
CN105956472A (zh) * | 2016-05-12 | 2016-09-21 | 宝利九章(北京)数据技术有限公司 | 识别网页中是否包含恶意内容的方法和系统 |
CN106357618A (zh) * | 2016-08-26 | 2017-01-25 | 北京奇虎科技有限公司 | 一种Web异常检测方法和装置 |
US10419451B2 (en) * | 2015-11-09 | 2019-09-17 | Salesforce.Com | Identifying attack patterns in requests received by web applications |
-
2017
- 2017-09-04 CN CN201710786707.3A patent/CN107644162A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160189030A1 (en) * | 2011-07-01 | 2016-06-30 | Google Inc. | Predicting user navigation events |
CN103324745A (zh) * | 2013-07-04 | 2013-09-25 | 微梦创科网络科技(中国)有限公司 | 基于贝叶斯模型的文本垃圾识别方法和系统 |
US10419451B2 (en) * | 2015-11-09 | 2019-09-17 | Salesforce.Com | Identifying attack patterns in requests received by web applications |
CN105589845A (zh) * | 2015-12-18 | 2016-05-18 | 北京奇虎科技有限公司 | 垃圾文本识别方法、装置及系统 |
CN105956472A (zh) * | 2016-05-12 | 2016-09-21 | 宝利九章(北京)数据技术有限公司 | 识别网页中是否包含恶意内容的方法和系统 |
CN106357618A (zh) * | 2016-08-26 | 2017-01-25 | 北京奇虎科技有限公司 | 一种Web异常检测方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055407B2 (en) * | 2017-09-30 | 2021-07-06 | Oracle International Corporation | Distribution-based analysis of queries for anomaly detection with adaptive thresholding |
CN108650249A (zh) * | 2018-04-26 | 2018-10-12 | 平安科技(深圳)有限公司 | Poc攻击检测方法、装置、计算机设备和存储介质 |
WO2019205300A1 (zh) * | 2018-04-26 | 2019-10-31 | 平安科技(深圳)有限公司 | Poc攻击检测方法、装置、计算机设备和存储介质 |
CN111756728A (zh) * | 2020-06-23 | 2020-10-09 | 深圳前海微众银行股份有限公司 | 一种漏洞攻击检测的方法及装置 |
CN111756728B (zh) * | 2020-06-23 | 2021-08-17 | 深圳前海微众银行股份有限公司 | 一种漏洞攻击检测的方法、装置、计算设备及存储介质 |
CN113179256A (zh) * | 2021-04-12 | 2021-07-27 | 中国电子科技集团公司第三十研究所 | 一种时间同步系统时间信息安全融合方法及系统 |
CN113179256B (zh) * | 2021-04-12 | 2022-02-08 | 中国电子科技集团公司第三十研究所 | 一种时间同步系统时间信息安全融合方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107644162A (zh) | 一种Web攻击识别方法和装置 | |
CN103324745B (zh) | 基于贝叶斯模型的文本垃圾识别方法和系统 | |
CN110210617B (zh) | 一种基于特征增强的对抗样本生成方法及生成装置 | |
CN111885035B (zh) | 一种网络异常检测方法、系统、终端以及存储介质 | |
US9462008B2 (en) | Identifying threats based on hierarchical classification | |
CN106294590B (zh) | 一种基于半监督学习的社交网络垃圾用户过滤方法 | |
US9787640B1 (en) | Using hypergraphs to determine suspicious user activities | |
CN107066983A (zh) | 一种身份验证方法及装置 | |
CN103856470B (zh) | 分布式拒绝服务攻击检测方法及检测装置 | |
CN103095711B (zh) | 一种针对网站的应用层DDoS攻击检测方法和防御系统 | |
CN105072214B (zh) | 基于域名特征的c&c域名识别方法 | |
US10187412B2 (en) | Robust representation of network traffic for detecting malware variations | |
Zhang et al. | Phishing detection using neural network | |
CN111131260B (zh) | 一种海量网络恶意域名识别和分类方法及系统 | |
CN103336766A (zh) | 短文本垃圾识别以及建模方法和装置 | |
CN106339404B (zh) | 一种搜索词识别方法及装置 | |
WO2018041114A1 (zh) | 网络攻击的检测方法及装置、终端设备和计算机存储介质 | |
CN107368592B (zh) | 一种用于网络安全报告的文本特征模型建模方法及装置 | |
CN110213124A (zh) | 基于tcp多会话的被动操作系统识别方法及装置 | |
CN109831460A (zh) | 一种基于协同训练的Web攻击检测方法 | |
CN105119876B (zh) | 一种自动生成的域名的检测方法及系统 | |
CN113779481B (zh) | 诈骗网站的识别方法、装置、设备及存储介质 | |
CN107679401A (zh) | 一种恶意网页识别方法和装置 | |
CN108282460A (zh) | 一种面向网络安全事件的证据链生成方法及装置 | |
CN110807183A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180130 |