实例讲解测试Web应用防火墙

前言

Web应用防火墙也称WAF(Web Application Firewall),是部署在Web服务器前端、基于HTTP/HTTPS流量分析的网络安全防护设备,通过规则匹配、行为分析和机器学习技术识别SQL注入、XSS攻击等恶意流量并进行拦截。(这段内容摘自百度百科)

在生产环境上线的Web系统,都会部署Web应用防火墙或其他类似的软硬件产品,来避免或降低各种恶意流量的威胁。既然是一款如此重大的产品,我们就需要知道如何评价它的好坏,毕竟市面上的同类产品这么多,各家都王婆卖瓜,所以作为用户总要敲一敲,或者试吃一个,才能判断这个瓜到底甜不甜。

当然,本文仅从软件测试中安全测试的角度来测试Web应用防火墙,也就是针对漏洞防御这块进行测试。

第一,要测试Web应用防火墙,我们需要一款好的模糊测试(FUZZ)工具。何谓好的模糊测试工具,笔者认为只要符合代码开源、分类管理、灵活加载三原则的FUZZ工具,就是一款好的模糊测试工具。在本文中会向读者展示笔者根据这三原则而设计的模糊测试工具。

代码开源实则很好理解,尤其是做安全或渗透测试,最好知道所使用的工具都做了什么,测试逻辑是什么,才好判断测试效果,也能灵活调整,适应不同情况。

分类管理什么,灵活加载什么?当然是漏洞测试脚本了,这些漏洞测试脚本可以称之为“弹”,“子弹”的“弹”,可以“连发”,也可以“单发”。

模糊测试(FUZZ)工具的“连发”功能针对Web应用防火墙的某一种策略库,而“单发”功能针对Web应用防火墙对新漏洞的响应功能,毕竟目前的Web应用防火墙都对接了AI功能,AI可以实时监控各大漏洞发布平台最新的漏洞发布情况并作出适当的处理,但是这个功能还是要验证一下。

正文

模糊测试工具

模糊测试工具的设计原则是代码开源、分类管理和灵活加载。

第一,启动开源免费的安全测试工具,在工具的菜单栏选择“渗透测试”->”扫描平台”,如图1-1所示。

实例讲解测试Web应用防火墙

图1-1

(该工具的使用教程链接在结尾,有兴趣的读者可以参考。)

打开扫描平台窗口,如图1-2所示。

实例讲解测试Web应用防火墙

图1-2

在扫描平台窗口中输入命令“help”,可以查看漏洞分类,如图1-3所示。

实例讲解测试Web应用防火墙

图1-3

图1-3所示的漏洞分类可以根据实际情况进行更改,这个实际情况指的是可以对应待测防火墙的策略库,更改的地址在安全测试工具源代码根目录下“scanplugins”,如图1-4所示。

实例讲解测试Web应用防火墙

图1-4

在扫描平台窗口中输入命令“info + 漏洞分类模块名称”,可以查看具体的测试漏洞脚本,如图1-5所示。

实例讲解测试Web应用防火墙

图1-5

在具体的漏洞目录下可以增加、更改或减少漏洞测试脚本,以适应实际的测试需求,谓之灵活加载。

漏洞测试脚本的具体地址为安全测试工具源代码根目录“scanplugins漏洞目录名称”,有兴趣的读者可以参考,如图1-6所示。

实例讲解测试Web应用防火墙

图1-6

在扫描平台窗口中输入命令“exec + 漏洞分类模块名称”,可以执行该漏洞分类模块下所有的漏洞测试脚本,也就是所谓的“连发”测试,如图1-7所示。

实例讲解测试Web应用防火墙

图1-7

在扫描平台窗口中输入命令“exec + 漏洞分类模块名称.漏洞脚本名称”,可以执行单一漏洞测试脚本,也就是所谓的“单发”测试,如图1-8所示。

实例讲解测试Web应用防火墙

图1-8

好了,到这里我们有了一款分类管理,灵活加载并且代码开源的模糊测试(FUZZ)工具,并且该工具即可以“连发”测试WAF指定策略库,也可以“单发”测试具体的新发布漏洞,那么我们离完成测试就只差一个简单的测试方法了。

二、针对WAF策略库进行测试

有了称手的工具,那测试方法就很简单了,总结起来就五步。

第一步,FUZZ工具加载漏洞模块。

第二步,WAF设置拦截恶意流量的策略库,这里读者要根据WAF的实际情况进行设置。

第三步,启动FUZZ工具执行漏洞测试脚本。

第四步,检查WAF防火墙的拦截日志,并与FUZZ工具所执行的漏洞测试脚本进行对比。

第五步,根据对比结果,评估拦截效果。

接下来,我们简单模拟一下执行流程。

第一,我们启动设计好的模糊测试(FUZZ)工具,并进行基础设置,如图1-9所示。

实例讲解测试Web应用防火墙

图1-9

接下来,启动模拟WAF功能,由于是模拟WAF功能,所以策略库就当作是默认策略库,如图1-10和图1-11。

实例讲解测试Web应用防火墙

图1-10

实例讲解测试Web应用防火墙

图1-11

接下来,在模糊测试工具启动执行漏洞测试,如图1-12所示。

实例讲解测试Web应用防火墙

图1-12

接下来,检查WAF防护墙拦截日志,如图1-13所示。

实例讲解测试Web应用防火墙

图1-13

最后对比结果,评估拦截效果,如图1-14所示。

实例讲解测试Web应用防火墙

图1-14

针对新发布漏洞进行测试

新发布漏洞,不是0-day漏洞,应该是1-day,2-day漏洞。

针对新发布漏洞,我们需要验证Web应用防护墙的响应时间是否及时,毕竟目前已经接入了AI,如果响应时间太慢,就有点说不过去了。

具体延迟多少天算慢,这个就看Web应用防火墙的使用说明了,如果它宣传的是即时响应,那3天以上就算太慢了。

对于新发布漏洞,我们需要关注比较有名的漏洞发布平台,结合实际系统的架构情况,找到漏洞的详细说明,并根据提供的漏洞验证脚本,进行修改后(大部分情况都需要修改),加入到模糊测试工具中,这样也方便回归测试。

以我们的测试工具进行举例,目前要编写新发布漏洞的测试脚本,简单步骤如下:

  1. 配置漏洞管理模块路径,新增的漏洞分类统一按下面的格式配置,如图1-15所示。

实例讲解测试Web应用防火墙

图1-15

第二步、配置漏洞管理模块描述信息,如图1-16所示。

实例讲解测试Web应用防火墙

图1-16

第三步、配置漏洞验证脚本描述信息,如图1-17所示。

实例讲解测试Web应用防火墙

图1-17

第四步、配置漏洞测试脚本的路径信息,如图1-18所示。

实例讲解测试Web应用防火墙

图1-18

第五步、加载漏洞测试脚本的方法编写,如图1-19所示。

实例讲解测试Web应用防火墙

图1-19

第六步、编写漏洞测试脚本,如图1-20所示。

实例讲解测试Web应用防火墙

图1-20

最后就是执行脚本测试,可参考前面的执行流程。

© 版权声明

相关文章

1 条评论

none
暂无评论...