基于站点自学习的WAF未知攻击防御方法转让专利

申请号 : CN201710670569.2

文献号 : CN108055227B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 焦小涛康星何建锋陈宏伟

申请人 : 西安交大捷普网络科技有限公司

摘要 :

本发明公开了一种基于站点自学习的WAF未知攻击防御方法,将采集能够正常访问的URL生成POST类信息日志和GET类信息日志;对于待检测的URL,判断该URL的请求方式,当该URL的请求方式为GET且该URL的URL头是不存在于GET类信息日志中时,确定该URL为攻击源;当该URL的请求方式为POST且该URL的URL头是不存在于POST类信息日志中时,确定该URL为攻击源。本发明通过学习积累的方式,防御了未知的攻击,弥补了传统防御方法的不足。

权利要求 :

1.一种基于站点自学习的WAF未知攻击防御方法,其特征在于,该方法为:

将采集能够正常访问的URL生成POST类信息日志和GET类信息日志;对于待检测的URL,判断该URL的请求方式,当该URL的请求方式为GET且该URL的 URL头是不存在于GET类信息日志中时,确定该URL为攻击源;当该URL的请求方式为POST且该URL的 URL头是不存在于POST类信息日志中时,确定该URL为攻击源。

2.根据权利要求1所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,所述将采集能够正常访问的URL生成POST类信息日志和GET类信息日志,具体为:第一终端连续对第二终端发来的HTTP请求的URL进行收集并且判断其合法性,之后存储到数据库;从所述数据库中提取能够正常访问的URL,将请求方式为POST的URL分为POST类,将请求方式为GET的URL分为GET类,再分别对POST类和GET类所包含的URL进行解析统计,生成POST类信息日志和GET类信息日志。

3.根据权利要求2所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,对于所述POST类或者GET类中的每个URL确定不带参数时,记录URL头。

4.根据权利要求2所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,对于所述POST类或者GET类中的每个URL确定带参数时,将URL头相同的URL归为一类,再判断多个URL分类中是否包含变量名相同的参数。

5.根据权利要求4所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,若多个URL分类中包含变量名相同的参数,则将该参数标记为必要参数;进一步判断该必要参数的参数类型,若该参数对应的参数类型为数字,则统计所有URL中该参数对应的所有数据组成的数字范围,将该数字范围作为标准范围;若该变量对应的参数类型为字符串,则统计所有URL中该参数对应的所有字符串中最长字符串的长度,将该最长的字符串长度作为标准长度,其中对于其余参数,统计其参数名、参数类型、参数个数,且当参数类型为数字时统计参数范围。

6.根据权利要求5所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,若多个URL分类中不包含变量名相同的参数,对每个URL分类统计其参数名、参数类型、参数个数;当所述参数类型为数字时统计参数范围,当所述参数类型为字符串时统计字符串长度。

7.根据权利要求1所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,所述当该URL的请求方式为POST且该URL的 URL头是不存在于POST类信息日志中时,确定该URL为攻击源,具体为:对于每个未知的URL,判断该URL的请求方式,根据确定的请求方式判断该URL的 URL头存在于对应分类的信息日志,在判断肯定的情况下依次进行如下判断,判断该URL对应的参数的变量名是否属于信息日志中,如果属于且参数是数字,判断这些参数的范围是否属于信息日志中的参数范围;若参数是字符串,判断该字符串的长度是否属于信息日志中最长字符串;若以上判断均满足,则认为该URL是安全的,否则认为是攻击源。

8.根据权利要求7所述的基于站点自学习的WAF未知攻击防御方法,其特征在于,如果信息日志中该URL对应的参数中还包括必要参数,则判断该URL对应的参数中是否含有必要参数。

说明书 :

基于站点自学习的WAF未知攻击防御方法

技术领域

[0001] 本发明属于HTTP请求URL分析技术领域,具体涉及一种基于站点自学习的WAF未知攻击防御方法。

背景技术

[0002] 常见的WAF防御攻击的方法是把已知网络攻击的一些关键特征存库,当请求来时与库中已存的攻击关键词比较从而判断出是否为WEB攻击,这种传统的防御方式极大的依赖已经发现的攻击特征,对于那些未知的攻击没有任何办法。

发明内容

[0003] 有鉴于此,本发明的主要目的在于提供一种基于站点自学习的WAF未知攻击防御方法。
[0004] 为达到上述目的,本发明的技术方案是这样实现的:
[0005] 本发明实施例提供一种基于站点自学习的WAF未知攻击防御方法,该方法为:将采集能够正常访问的URL生成POST类信息日志和GET类信息日志;对于待检测的URL,判断该URL的请求方式,当该URL的请求方式为GET且该URL的 URL头是不存在于GET类信息日志中时,确定该URL为攻击源;当该URL的请求方式为POST且该URL的 URL头是不存在于POST类信息日志中时,确定该URL为攻击源。
[0006] 上述方案中,所述将采集能够正常访问的URL生成POST类信息日志和GET类信息日志,具体为:第一终端连续对第二终端发来的HTTP请求的URL进行收集并且判断其合法性,之后存储到数据库;从所述数据库中提取能够正常访问的URL,将请求方式为POST的URL分为POST类,将请求方式为GET的URL分为GET类,再分别对POST类和GET类所包含的URL进行解析统计,生成POST类信息日志和GET类信息日志。
[0007] 上述方案中,对于所述POST类或者GET类中的每个URL确定不带参数时,记录URL头。
[0008] 上述方案中,对于所述POST类或者GET类中的每个URL确定带参数时,将URL头相同的URL归为一类,再判断多个URL分类中是否包含变量名相同的参数。
[0009] 上述方案中,若多个URL分类中包含变量名相同的参数,则将该参数标记为必要参数;进一步判断该必要参数的参数类型,若该参数对应的参数类型为数字,则统计所有URL中该参数对应的所有数据组成的数字范围,将该数字范围作为标准范围;若该变量对应的参数类型为字符串,则统计所有URL中该参数对应的所有字符串中最长字符串的长度,将该最长的字符串长度作为标准长度,其中对于其余参数,统计其参数名、参数类型、参数个数,且当参数类型为数字时统计参数范围。
[0010] 上述方案中,若多个URL分类中不包含变量名相同的参数,对每个URL分类统计其参数名、参数类型、参数个数;当所述参数类型为数字时统计参数范围,当所述参数类型为字符串时统计字符串长度。
[0011] 上述方案中,所述当该URL的请求方式为POST且该URL的 URL头是不存在于POST类信息日志中时,确定该URL为攻击源,具体为:对于每个未知的URL,判断该URL的请求方式,根据确定的请求方式判断该URL的 URL头存在于对应分类的信息日志,在判断肯定的情况下依次进行如下判断,判断该URL对应的参数的变量名是否属于信息日志中,如果属于且参数是数字,判断这些参数的范围是否属于信息日志中的参数范围;若参数是字符串,判断该字符串的长度是否属于信息日志中最长字符串;若以上判断均满足,则认为该URL是安全的,否则认为是攻击源。
[0012] 上述方案中,如果信息日志中该URL对应的参数中还包括必要参数,则判断该URL对应的参数中是否含有必要参数。
[0013] 与现有技术相比,本发明的有益效果:
[0014] 本发明通过学习积累的方式,防御了未知的攻击,弥补了传统防御方法的不足。

附图说明

[0015] 图1为本发明实施例1提供一种基于站点自学习的WAF未知攻击防御方法的流程图。

具体实施方式

[0016] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0017] 本发明实施例提供一种基于站点自学习的WAF未知攻击防御方法,该方法为:
[0018] 将采集能够正常访问的URL生成POST类信息日志和GET类信息日志;对于待检测的URL,判断该URL的请求方式,当该URL的请求方式为GET且该URL的 URL头是不存在于GET类信息日志中时,确定该URL为攻击源;当该URL的请求方式为POST且该URL的 URL头是不存在于POST类信息日志中时,确定该URL为攻击源。
[0019] 所述将采集能够正常访问的URL生成POST类信息日志和GET类信息日志,具体为:第一终端连续对第二终端发来的HTTP请求的URL进行收集并且判断其合法性,之后存储到数据库;从所述数据库中提取能够正常访问的URL,将请求方式为POST的URL分为POST类,将请求方式为GET的URL分为GET类,再分别对POST类和GET类所包含的URL进行解析统计,生成POST类信息日志和GET类信息日志。
[0020] 对于所述POST类或者GET类中的每个URL确定不带参数时,记录URL头。
[0021] 对于所述POST类或者GET类中的每个URL确定带参数时,将URL头相同的URL归为一类,再判断多个URL分类中是否包含变量名相同的参数。
[0022] 若多个URL分类中包含变量名相同的参数,则将该参数标记为必要参数;进一步判断该必要参数的参数类型,若该参数对应的参数类型为数字,则统计所有URL中该参数对应的所有数据组成的数字范围,将该数字范围作为标准范围;若该变量对应的参数类型为字符串,则统计所有URL中该参数对应的所有字符串中最长字符串的长度,将该最长的字符串长度作为标准长度,其中对于其余参数,统计其参数名、参数类型、参数个数,且当参数类型为数字时统计参数范围。
[0023] 若多个URL分类中不包含变量名相同的参数,对每个URL分类统计其参数名、参数类型、参数个数;当所述参数类型为数字时统计参数范围,当所述参数类型为字符串时统计字符串长度。
[0024] 若URL头对应一个URL,则其参数名、参数类型、参数个数,且当参数类型为数字时统计参数范围,当参数类型为字符串时统计字符串长度;
[0025] 所述当该URL的请求方式为POST且该URL的 URL头是不存在于POST类信息日志中时,确定该URL为攻击源,具体为:对于每个未知的URL,判断该URL的请求方式,根据确定的请求方式判断该URL的 URL头存在于对应分类的信息日志,在判断肯定的情况下依次进行如下判断,判断该URL对应的参数的变量名是否属于信息日志中,如果属于且参数是数字,判断这些参数的范围是否属于信息日志中的参数范围;若参数是字符串,判断该字符串的长度是否属于信息日志中最长字符串;若以上判断均满足,则认为该URL是安全的,否则认为是攻击源。
[0026] 如果信息日志中该URL对应的参数中还包括必要参数,则判断该URL对应的参数中是否含有必要参数。
[0027] 实施例1:
[0028] 本发明实施例提供一种基于站点自学习的WAF未知攻击防御方法,如图1所示,该方法通过以下步骤实现:
[0029] (1)收集URL:假设收集了其中相同URL的三条信息如下:
[0030] 10.0.1.1/main.php a=1&b=0
[0031] 10.0.1.1/main.php a=3&b=4
[0032] 10.0.1.1/main.php a=9&c=7
[0033] (2)分类、整理:
[0034] URL head:10.0.1.1/main.php
[0035] 请求方法:GET
[0036] 参数个数:2(a,(b|c))
[0037] 参数类型:NUMBER
[0038] 参数范围: a=1-9;
[0039] a=0-4;
[0040] c=7;
[0041] 对于参数个数,不仅对参数的个数进行了总结,还对参数变量名进行总结,如例中这条URL后有两个参数,第一个一定是a,第二个可以是b也可以是c;
[0042] (3)生成规则:
[0043] 10.0.1.1/main.php a=[1-9]&(b=[0-4]|c=[7])
[0044]  (4)防御未知攻击:
[0045] GET 10.0.1.1/main.php a=1&b=2&c=3  参数个数不符  DROP[0046] GET 10.0.1.1/main.php a=1&d=9        参数变量名不符  DROP[0047] GET 10.0.1.1/main.php a=1&b=“dhsh”  参数类型不符    DROP[0048] GET 10.0.1.1/main.php a=1&b=20000    参数范围不符    DROP[0049] 以上几条URL请求时,先与规则进行匹配,发现不相符,就会被阻挡,预防了未知攻击。
[0050] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。