一种Web应用防火墙SQL注入防御正则规则提取方法和装置

文档序号:35131061发布日期:2023-08-15 03:55阅读:43来源:国知局
一种Web应用防火墙SQL注入防御正则规则提取方法和装置

本发明属于网络安全,具体涉及一种web应用防火墙sql注入防御正则规则提取方法和装置。


背景技术:

1、随着网络技术的不断发展,各种web应用也越来越多。同样的,针对各种web应用的攻击也越来越多,例如sql注入、跨站脚本攻击、远程代码执行等。web应用防火墙是一种针对应用层攻击的检测系统,它为各种web应用提供http/https请求检测,保证web应用程序的安全性。传统的web应用防火墙作为保障web应用的重要防线,能够在一定程度上保护web应用。传统的web应用防火墙通过正则规则或者指纹库匹配方法,对用户的输入进行分类过滤,从而防御黑客攻击。但是,随着攻击种类及攻击方式的不断变化,攻击者往往都需要在一定程度上探测被攻击web应用防火墙内部的规则,如sql注入规则。同时,随着深度学习技术的应用,深度学习技术也被应用于web应用防火墙。

2、攻击者在对web应用发起攻击,如sql注入攻击时,通常需要探测防火墙的sql防御规则,从而绕过防火墙。但是现在仍没有一种可以自动探测并提取web应用防火墙中sql注入防御规则的方法。从而更好的帮助攻击者构建攻击代码,增加攻击者的攻击成功率。同时,这种方法也可以用于检测web应用防火墙sql注入防御规则本身的安全性,保证web应用防火墙的安全性。此外,由于深度学习模型的难以解释性,而web应用防火墙有时需要具有一定的可解释性,也需要一种能够从黑盒web应用防火墙提取sql防御规则的方法,解释web应用防火墙的检测逻辑。而且,深度学习模型对于输入的处理过程需要进行大量计算,整体处理速率相比于正则规则较低。因此,web应用防火墙的拥有者也有将基于深度学习的web应用防火墙的内部逻辑替代为正则规则的需求,从而增加web应用防火墙的速度。

3、因此,本发明设计了一种web应用防火墙sql注入防御正则规则提取方法。与传统的针对web应用防火墙的绕过攻击不同,针对web应用防火墙中sql注入防御规则的提取方法,主要针对其内部对sql注入的分类逻辑进行提取,并转化为正则规则。并使提取到的正则规则与被攻击web应用防火墙正则规则对数据的分类相似。


技术实现思路

1、本发明的目的在于针对现有技术的不足,提供了一种web应用防火墙sql注入防御正则规则提取方法和装置。

2、本发明的目的是通过以下技术方案来实现的:一种web应用防火墙sql注入防御正则规则提取方法,包括以下步骤:

3、(1)对用户输入的sql注入数据进行随机排序,形成一个查询数据集d1;对被提取的web应用防火墙发起查询,简化被提取的web应用防火墙的返回,得到数据集d2;

4、(2)对数据集d2进行分词处理得到数据集d3,统计数据集d3中出现次数最多的n个决策词,并统计每个决策词的出现频率,得到数据集d4;利用数据集d2、数据集d4及cart算法构造决策树t;

5、(3)将决策树t转化为一组正则规则。

6、进一步地,所述步骤(1)包括以下子步骤:

7、(1.1)收集用户输入的sql注入数据,包括p个sql注入样本和p个正常的sql查询样本,利用随机序列生成算法,为每个样本分配序列号,进行随机排序,形成一个查询数据集d1:d1={x1,x2,…,xh,…,x2p},其中,xh为任意一个样本,h=1,2,…,h,…,2p;

8、(1.2)利用查询数据集d1中任意一个样本xh,对被提取的web应用防火墙发起查询,简化被提取的web应用防火墙的返回为lh,当lh=0表示允许通过,当lh=1表示禁止通过;

9、对查询数据集d1中每一个样本重复上述步骤,得到每一个样本对应的返回,并得到数据集d2:d2={l1,l2,…,lh,…,l2p}。

10、进一步地,所述步骤(2)包括以下子步骤:

11、(2.1)利用空格以及除了下划线外的单字符英文标点作为分词符,对查询数据集d1中任意一个样本xh进行分词处理,得到词列表yh;分词时,保留除空格外的分词符,并将每个分词符作为一个单独的词保留;分词后,将每一个样本当作一个由词组成的列表保存,列表中每个元素是分词后得到的词,顺序与其在原样本中出现顺序相同;

12、对查询数据集d1中每一个样本重复上述步骤,得到数据集d3:d3={y1,y2,…,yh,…,y2p};

13、(2.2)统计数据集d3中出现次数最多的n个决策词,并按照出现次数由高到低排序,记为:token1、token2、…、tokeni、…、tokenn;

14、(2.3)统计数据集d3中任意一个词列表yh中token1、token2、…、tokeni、…、tokenn出现的数量,分别记作:numtoken1,h、numtoken2,h、…、numtokeni,h、…、numtokenn,h,得到数组zh={numtoken1,h,numtoken2,h,…,numtokeni,h,…,numtokenn,h},其中,numtokeni,h表示第i个决策词在词列表yh中出现的数量;对数据集d3中每一个词列表重复上述步骤,得到数据集d4:d4={z1,z2,…,zh,…,z2p};

15、(2.4)利用数据集d2、数据集d4及cart算法构造决策树t。

16、进一步地,所述步骤(3)包括以下子步骤:

17、(3.1)利用回溯算法提取决策树t中,得到k个从根节点到叶节点的决策路径:决策路径dec1、决策路径dec2、…、决策路径deck;

18、(3.2)对决策路径dec1进行处理,得到新的决策路径dec1′;

19、(3.3)将新的决策路径dec1′转化为正则规则regex;

20、(3.4)重复步骤(3.2)-步骤(3.3),将决策树t中决策路径dec1、决策路径dec2、…、决策路径deck分别转化为对应的正则规则,得到一组正则规则。

21、进一步地,所述步骤(3.2)包括以下子步骤:

22、(3.2.1)对决策路径dec1进行处理:所述决策路径dec1由m个决策和叶节点e1组成,所述叶节点e1表示决策路径dec1的输出;其中,任意一个决策的形式为:minj≤numj或numj<maxj,numj为随机一个numtokeni,h,minj为决策路径dec1中第j个的决策的阈值最小值,maxj为决策路径dec1中第j个的决策的阈值最大值,j=1,2,…,j,…,m;

23、(3.2.2)对于决策路径dec1中的m个决策,筛选出所有包含决策词tokeni的决策,若决策路径dec1中不包含决策词tokeni的决策,对下一个决策词重复上述步骤;若决策路径dec1中包含决策词tokeni的决策,则构建新的决策:

24、当所有包含决策词tokeni的决策的形式均为minj≤numj时,选取最大的minj记为mini,并对mini进行向上取整得到(mini)′,得到一个新的决策qi:(mini)′≤numtokeni并加入到决策路径dec1中,同时删去其他包含决策词tokeni的决策;

25、当所有包含决策词tokeni的决策的形式均为numj<maxj时,选取最小的maxj记为maxi;若maxi为整数,得到(maxi)′=maxi-1;若maxi为非整数,对进行向下取整得到(maxi)′;从而得到一个新的决策qi:numtokeni≤(maxi)′并加入到决策路径dec1中,同时删去其他包含决策词tokeni的决策;

26、当所有包含决策词tokeni的决策的形式为minj≤numj或numj<maxj时,选取最大的minj记为mini并选取最小的maxj记为maxi,对mini进行向上取整得到(mini)′;若maxi为整数,得到(maxi)′=maxi-1;若maxi为非整数,对进行向下取整得到(maxi)′;从而得到一个新的决策qi:(mini)′≤numtokeni≤(maxi)′并加入到决策路径dec1中,同时删去其他包含决策词tokeni的决策。

27、进一步地,所述步骤(3.3)包括以下子步骤:

28、(3.3.1)对于决策路径dec1′中任意一个决策qi,当决策qi的形式为(mini)′≤numtokeni≤(maxi)′时,将决策qi转化为正则表达式:^((((?!(\btokeni\b)).)*)(\btokeni\b)){(mini)′,(maxi)′}(((?!(\btokeni\b)).)*)$;

29、当决策qi的形式为numtokeni≤(maxi)′并且(maxi)′=0时,将决策qi转化为正则表达式:^(((?!(\btokeni\b)).)*)$;

30、当决策qi的形式为numtokeni≤(maxi)′并且(maxi)′>0时,将决策qi转化为正则表达式:^((((?!(\btokeni\b)).)*)(\btokeni\b)){0,(maxi)′}(((?!(\btokeni\b)).)*)$;

31、当决策qi的形式为(mini)′≤numtokeni时,将决策qi转化为正则表达式:^((((?!(\btokeni\b)).)*)(\btokeni\b)){(mini)′,}(((?!(\btokeni\b)).)*)$;

32、(3.3.2)对决策路径dec1′中m2个决策重复步骤(c3.1),将决策路径dec1′中m2个决策均转化为对应的正则表达式,得到正则规则regex,所述正则规则regex包含m2个正则表达式;并将叶节点e1作为正则规则regex的输出。

33、本发明还提供一种web应用防火墙sql注入防御正则规则提取装置,包括:web应用防火墙查询模块、web应用防火墙逻辑提取模块和正则规则生成模块;

34、所述web应用防火墙查询模块,用于对用户输入的sql注入数据进行随机排序,形成一个查询数据集d1;对被提取的web应用防火墙发起查询,简化被提取的web应用防火墙的返回,得到数据集d2;

35、所述web应用防火墙逻辑提取模块,用于对数据集d2进行分词处理得到数据集d3,统计数据集d3中出现次数最多的n个决策词,并统计每个决策词的出现频率,得到数据集d4;利用数据集d2、数据集d4及cart算法构造决策树t;

36、所述正则规则生成模块,用于将决策树t转化为一组正则规则。

37、本发明还提供一种web应用防火墙sql注入防御正则规则提取装置,包括一个或多个处理器,用于实现上述web应用防火墙sql注入防御正则规则提取方法。

38、本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述web应用防火墙sql注入防御正则规则提取方法。

39、本发明的有益效果是:

40、(1)本发明深入分析web应用防火墙sql注入防御功能的内部原理,采用数据查询方法分析提取web应用防火墙sql注入防御功能的内部逻辑,并将其转化为正则规则,满足其可解释性,并且使提取到的规则与被提取的web应用防火墙的sql注入防御功能,在优选地sql注入数据集中,对正常样本及sql注入样本的分类结果高度相似;

41、(2)本发明采用决策树提取web应用防火墙中sql注入防御规则,并将其转化为正则规则,保障了正则规则生成过程中的可解释性和与被提取的web应用防火墙sql注入防御功能的相似性;

42、(3)本发明能够从基于深度学习模型的web应用防火墙中,提取到用于防御sql注入的正则规则;深度学习模型中包含数以万计的参数,对输入需要进行数以万计的计算;而正则规则是一种字符匹配算法,计算量相比于深度学习模型较少;因此本发明能够在一定程度上提高基于深度学习模型的web应用防火墙对输入的分类处理速度,减少基于深度学习模型的web应用防火墙对web应用的性能的影响。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1