一种Web应用防火墙的防护方法及装置的制作方法

文档序号:7865793阅读:182来源:国知局
专利名称:一种Web应用防火墙的防护方法及装置的制作方法
技术领域
本发明涉及计算机网络安全技术领域,尤其涉及一种Web应用防火墙(WebApplication Firewall, WAF)的防护方法及装置。
背景技术
Web应用是指采用浏览器/服务器(Browser/Server, B/S)模式架构、通过超文本传输协议(Hyper Text Transfer Protocol, HTTP)或基于安全套接层的超文本传输协议(Hypertext Transfer Protocol over Secure Socket Layer,HTTPS)提供服务的统称。目前,Web应用已广泛应用到金融、政府、教育、工商等各个行业。随着Web的广泛应用,针对Web应用的攻击也越来越多,如注入攻击、信息泄露、弱口令攻击等。WAF会对当前Web应用中的攻击进行防护,与传统防火墙不同,WAF工作于应用层,是基于已知攻击特征规则对流经的HTTP请求和应答进行检测和防护。从功能框架的角度来看,WAF包括防护引擎和攻击特征规则;其中,本文统一将攻击特征规则称为规则。下面结合图I示出的应用WAF的网络系统的架构,对WAF防护的具体过程进行说明。如图I所示,当存在HTTP请求需要访问后端的Web服务器时,首先,该HTTP请求经过路由器的转发和传统的防火墙的防护,到达WAF,WAF的防护引擎利用规则对接收到的HTTP请求进行扫描,当发现是攻击行为时,可以采用拦截、放弃、断开连接等多种方式进行处理,经过WAF处理后的请求最终到达服务器群中HTTP请求对应的Web服务器。当然,WAF也可以接收到来自企业内网的请求,并进行如上所述的防护。具体地,WAF的防护引擎用于对HTTP请求和应答进行解析,利用规则对HTTP协议头和协议数据进行深度扫描来检测Web攻击。现有的WAF防护过程中,对于每次HTTP请求以及应答,WAF的防护引擎都要用当前用户配置的所有规则进行扫描,但实际上,会存在一些不需要利用当前配置的所有规则进行扫描的HTTP请求,如用户通过登录界面进行登录请求时,可以只需要进行弱口令攻击防护规则的扫描,但WAF的防护引擎仍会将按照图2示出的在WAF中规则的存储结构进行扫描,具体地,规则是以文件的形式保存的,当用户配置了一些规则后,比如弱口令防护规则、信息泄露防护规则等,防护引擎对这些规则以树状形式组织并存在于防护引擎中,具体的存储结构可以参考图2,第一条规则(即图2中的规则一)做根节点,其他规则为第一条规则的孩子节点,当防护引擎用规则对HTTP请求进行扫描的时候,依次扫描规则一、规则二、规则三、规则四等用户配置的所有规则。用户配置的所有规则对该请求进行扫描,增加WAF的工作量。

发明内容
有鉴于此,本发明的主要目的在于提供一种WAF的防护方法及装置,能够提高WAF的防护效率。为达到上述目的,本发明的技术方案是这样实现的一种Web应用防火墙WAF的防护方法,所述方法包括
在WAF对接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,对所述容器指令进行解析;当解析得到所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容;当所述容器指令与所述用户请求不匹配,进行所述容器外的其他规则的扫描。一种WAF的防护装置,所述装置包括扫描模块、解析模块;其中,所 述扫描模块,用于在接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,发送触发消息给所述解析模块并接收所述解析模块发来的解析结果,当解析结果为所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容;当所述容器指令与所述用户请求不匹配,进行所述容器外的其他规则的扫描;所述解析模块,用于接收到所述触发消息后对所述容器指令进行解析,并将得到的解析结果发送给所述扫描模块。本发明在WAF进行防护的过程中,对接收到的用户请求根据设置在规则中的容器指令,确定是否进行容器指令对应容器内规则的扫描,能够实现对用户请求的规则扫描的控制,避免使用所有规则对用户请求进行扫描,提高了 WAF的防护效率。


图I为应用WAF的网络系统的架构示意图;图2为WAF规则的规则树结构示意图;图3为本发明WAF的防护方法的实现流程示意图;图4为本发明WAF的防护方法中WAF规则的规则树结构示意图;图5为本发明WAF的防护装置的结构示意图。
具体实施例方式本发明的基本思想为在WAF防护过程中,当WAF的防护引擎扫描到容器指令时,对所述容器指令进行解析判断,当当前的用户请求与所述容器指令匹配时,进行容器内的规则扫描,否则不进行所述容器内的规则扫描,而直接进行与所述容器指令同级、且位于所述容器指令后面的规则的扫描。为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。图3示出了本发明WAF的防护方法的实现流程,如图3所示,所述防护方法包括下述步骤步骤301,在WAF对接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,对所述容器指令进行解析;具体地,本发明实施例中,WAF的防护引擎对用户配置的规则是以树状形式组织存储,具体的规则树结构可以参照图4,规则一为规则树的根节点,规则二、规则三、容器指令、规则六、规则七……为规则一的孩子节点;这里,防护引擎将容器指令挂载到规则树上,并且为容器指令创建一个子树,在该子树中,容器指令作为树根,规则四、规则五为容器指令的孩子节点,具体为该容器指令对应容器内的规则,规则二、规则三、规则六及规则七为该容器指令的兄弟节点;应当理解,这里的规则也是指令,和容器指令一样可以被防护引擎识别解析。防护引擎对接收到的用户请求规则扫描遇到容器指令之前的过程具体为从规则树的根节点(图4中的规则一)出发,对其孩子节点规则进行扫描;即依次扫描规则一、规则二、规则三,到达容器指令;对容器指令进行解析,具体可以为判断所述容器指令的容器参数是否与所述用户请求相互匹配;进一步地,当所述容器参数为统一资源定位符(Uniform/Universal Resource Locator,URL)时,判断所述用户请求的URL是否包含有所述容器参数,当包含有所述容器参数时,所述容器指令与所述用户请求匹配,否则,所述容器指令与所述用户请求不匹配;例如,当容器参数为/path,则当URL为www. wxp. com/path的用户请求到来时,可以判定所述容器指令与所述用户请求相互匹配;当URL为www. wxp.com/sss的用户请求到来时,可以判定所述容器指令与所述用户请求不匹配;其中,作为容器参数的URL可以使用字符或正则表达式进行表示,例如,当作为容器参数的URL使用的正则表达式为/ (extra | special)/data时,则表示该容器指令会匹配URL中包含/extra/data或/special/data的所有用户请求。步骤302,当解析得到所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容;当所述容器指令与所述用户请求不匹配,进行所述容器外的其他规则的扫描;具体地,当所述容器内不再进一步包含容器指令时,如图4所示,依次扫描容器内配置的规则,即扫描规则四、规则五,到达容器结束指令,结束本容器内的规则扫描;进一步地,该方法在容器指令扫描完毕后,还包括当所述容器外还存在其他规则时,WAF继续进行所述容器外的其他规则的扫描,结合图4,即继续进行规则六、规则七……的扫描。当所述容器内进一步嵌套包含有容器指令时,当扫描到所述容器内的容器指令时,重复步骤301,对容器指令进行解析,当解析得到所述容器内的容器指令与所述用户请求匹配,扫描所述容器内的容器指令对应容器内配置的内容,此时具体的扫描过程与上述相同,不再赘述。这里,防护引擎通过容器指令的嵌套使用,能够进一步区分不同的用户请求需要针对哪些规则进行扫描,例如对于用户请求A和用户请求B,用户请求A不需要进行第一容器内的规则的扫描,用户请求B需要第一容器内的部分规则,此时可以通过设置第一容器指令的容器参数,使得用户请求A不与第一容器指令的容器参数匹配,而用户请求B与第一容器指令的容器参数匹配;进一步地,还可以通过容器指令的嵌套,具体可以在第一容器指令内设置第二容器指令,在对用户请求B进行第一容器内配置内容的扫描过程中,当扫描到设置于第一容器内的第二容器指令时,所述用户请求B与第二容器指令的容器参数不匹配,实现用户请求B不进行第二容器内配置内容的扫描,进而减少用户请求B扫描的规则数,进一步提高扫描效率。图5示出了本发明WAF的防护装置的结构,如图5所示,所述防护装置包括扫描模块、解析模块;其中,所述扫描模块,用于在接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,发送触发消息给所述解析模块并接收所述解析模块发来的解析结果,当解析结果为所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容;当所述容器指令与所述用户请求不匹配,进行所述容器外的其他规则的扫描;这里,所述用户配置的规则是以树状形式组织存储的,具体的规则树结构可以参照图4,规则一为规则树的根节点,规则二、规则三、容器指令、规则六、规则七……为规则一的孩子节点;这里,防护引擎将容器指令挂载到规则树上,并且为容器指令创建一个子树,在该子树中,容器指令作为树根,规则四、规则五为容器指令的孩子节点,具体为该容器指令对应容器内的规则,规则
二、规则三、规则六及规则七为该容器指令的兄弟节点。所述解析模块,用于接收到所述触发消息后对所述容器指令进行解析,并将得到的解析结果发送给所述扫描模块;应当理解,这里的规则也是指令,和容器指令一样可以被识别解析。其中,所述解析模块,具体用于判断所述容器指令的容器参数是否与所述用户请求相互匹配。 其中,所述解析模块,具体用于当所述容器参数为URL时,判断所述用户请求的URL是否包含有所述容器参数,当包含有所述容器参数时,所述容器指令与所述用户请求匹配;当没有包含有所述容器参数时,所述容器指令与所述用户请求不匹配;例如,当容器参数为/path,则当URL为www. wxp. com/path的用户请求到来时,可以判定所述容器指令与所述用户请求相互匹配;当URL为www. wxp. com/sss的用户请求到来时,可以判定所述容器指令与所述用户请求不匹配;其中,作为容器参数的URL可以使用字符或正则表达式进行表不。其中,所述扫描模块,具体用于当所述容器内不包含容器指令时,依次扫描容器内配置的规则;当所述容器内还包含有容器指令时,当扫描到所述容器内的容器指令时,对容器指令进行解析,当解析得到所述容器内的容器指令与所述用户请求匹配,扫描所述容器内的容器指令对应容器内配置的内容;这里,通过容器指令的嵌套使用,能够进一步区分不同的用户请求需要针对哪些规则进行扫描,例如对于用户请求A和用户请求B,用户请求A不需要进行第一容器内的规则的扫描,用户请求B需要第一容器内的部分规则,此时可以通过设置第一容器指令的容器参数,使得用户请求A不与第一容器指令的容器参数匹配,而用户请求B与第一容器指令的容器参数匹配;进一步地,还可以通过容器指令的嵌套,具体可以在第一容器指令内设置第二容器指令,在对用户请求B进行第一容器内配置内容的扫描过程中,当扫描到设置于第一容器内的第二容器指令时,所述用户请求B与第二容器指令的容器参数不匹配,实现用户请求B不进行第二容器指令内配置内容的扫描,进而减少用户请求B扫描的规则数,进一步提高扫描效率。其中,所述扫描模块,具体用于在所述容器内配置的内容扫描过程中,当扫描到预先配置的容器结束指令时,结束当前容器内配置内容的扫描;还用于在结束当前容器内配置内容的扫描后,继续进行所述容器外的其他规则的扫描。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种Web应用防火墙WAF的防护方法,其特征在于,所述方法包括 在WAF对接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,对所述容器指令进行解析; 当解析得到所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容;当所述容器指令与所述用户请求不匹配,进行所述容器外的其他规则的扫描。
2.根据权利要求I所述的方法,其特征在于,所述对所述容器指令进行解析为 判断所述容器指令的容器参数是否与所述用户请求相互匹配。
3.根据权利要求2所述的方法,其特征在于,当所述容器参数为URL时,所述判断所述容器指令的容器参数是否与所述用户请求相互匹配为 判断所述用户请求的URL是否包含有所述容器参数,当包含有所述容器参数时,所述容器指令与所述用户请求匹配;当没有包含有所述容器参数时,所述容器指令与所述用户请求不匹配。
4.根据权利要求I所述的方法,其特征在于,所述当解析得到所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容为 当所述容器内不包含容器指令时,依次扫描容器内配置的规则; 当所述容器内包含有容器指令时,当扫描到所述容器内的容器指令时,对容器指令进行解析,当解析得到所述容器内的容器指令与所述用户请求匹配,扫描所述容器内的容器指令对应容器内配置的内容。
5.根据权利要求I至4任一项所述的方法,其特征在于,所述扫描所述容器指令对应容器内配置的内容为 在所述容器内配置的内容扫描过程中,当扫描到预先配置的容器结束指令时,结束当前容器内配置内容的扫描; 相应地,所述方法还包括-MF继续进行所述容器外的其他规则的扫描。
6.一种WAF的防护装置,其特征在于,所述装置包括扫描模块、解析模块;其中, 所述扫描模块,用于在接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,发送触发消息给所述解析模块并接收所述解析模块发来的解析结果,当解析结果为所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容;当所述容器指令与所述用户请求不匹配,进行所述容器外的其他规则的扫描; 所述解析模块,用于接收到所述触发消息后对所述容器指令进行解析,并将得到的解析结果发送给所述扫描模块。
7.根据权利要求6所述的装置,其特征在于,所述解析模块,具体用于判断所述容器指令的容器参数是否与所述用户请求相互匹配。
8.根据权利要求7所述的装置,其特征在于,所述解析模块,具体用于当所述容器参数为URL时,判断所述用户请求的URL是否包含有所述容器参数,当包含有所述容器参数时,所述容器指令与所述用户请求匹配;当没有包含有所述容器参数时,所述容器指令与所述用户请求不匹配。
9.根据权利要求6所述的装置,其特征在于,所述扫描模块,具体用于当所述容器内不包含容器指令时,依次扫描容器内配置的规则;当所述容器内包含有容器指令时,当扫描到所述容器内的容器指令时,对容器指令进行解析,当解析得到所述容器内的容器指令与所述用户请求匹配,扫描所述容器内的容器指令对应容器内配置的内容。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述扫描模块,具体用于在所述容器内配置的内容扫描过程中,当扫描到预先配置的容器结束指令时,结束当前容器内配置内容的扫描;还用于在结束当前容器内配置内容的扫描后,继续进行所述容器外的其他规则的扫描。
全文摘要
本发明提供了一种WAF的防护方法及装置,该方法包括下述步骤在WAF的防护引擎对接收到的用户请求规则扫描过程中,当扫描到预先配置的容器指令时,对所述容器指令进行解析;当解析得到所述容器指令与所述用户请求匹配,扫描所述容器指令对应容器内配置的内容,否则进行所述容器指令的下一条规则的扫描。本发明在WAF进行防护的过程中,对接收到的用户请求根据设置在规则中的容器指令,确定是否进行容器指令对应容器内规则的扫描,能够实现对用户请求的规则扫描的控制,避免使用所有规则对用户请求进行扫描,提高了WAF的防护效率。
文档编号H04L29/06GK102957707SQ201210466060
公开日2013年3月6日 申请日期2012年11月16日 优先权日2012年11月16日
发明者伍小平 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1