System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机与网络空间安全,尤其涉及一种基于分布式调度机制的web应用防火墙自动测试方法及装置。
技术介绍
1、web应用防火墙(web application firewall,waf)是一种专门设计用于保护web应用程序的安全设备或服务,通过对web业务流量进行智能全方位检测,有效识别恶意流量并防御,避免源站服务器被恶意入侵,保护网站核心业务安全和数据安全。
2、当前,对于web应用防火墙的测试主要包括对其引擎或规则库模块的测试。现阶段对web应用防火墙的测试大都基于人工构造的测试用例或者利用测试工具构造的测试用例,这两种方式构造的测试用例具有滞后性,与真实的网站攻击流量存在差异,无法引入0day漏洞检验web应用防火墙对0day漏洞的防护能力,且构造效率较低。
3、此外,测试人员常采用人工或半自动化的方式对web应用防火墙进行测试,当测试功能较多时,需要人工手动接入大量的防护配置并执行大量的测试用例,一次引擎或规则库的迭代升级就会消耗较长的时间进行测试,严重影响了上线的速度。
4、在web应用防火墙的测试工作中,首先需要将待防护的网站接入web应用防火墙并为该网站配置不同的防护策略(cc防护、bot防护、web基础防护、ip黑白名单、地域访问控制等等),接下来就需要针对不同防护模块构造相应的攻击流量并触发攻击,以检验web应用防火墙的各模块的防护策略是否生效。当前web应用防火墙的防护类型和规则较多,各规则之间存在优先级关系,如ip黑名单策略的优先级高于cc规则,cc规则的优先级又高
技术实现思路
1、本申请示出了一种基于分布式调度机制的web应用防火墙自动测试方法及装置。
2、第一方面,本申请示出了一种基于分布式调度机制的web应用防火墙自动测试方法,所述方法包括:
3、基于分布式调度机制的一主多从结构,主进程接入预设数量的防护网站,其中,所述预设数量与防护模块的数量相同;
4、收集测试用例,主进程进行测试用例分组;
5、初始化子进程,主进程将不同组的测试用例分配给与防护网站数量相同的工作节点;
6、每个工作节点并行执行,每个工作节点收到主进程发送的测试用例,执行测试用例,并向主进程上报测试结果;
7、主进程收集测试结果;
8、主进程生成测试结果,发送测试报告。
9、根据本申请第一方面的方法,所述主进程接入不同的防护网站,包括:
10、主进程会根据运行时指定的工作节点数量,动态接入相应数量的防护网站;
11、主进程记录每个防护网站的域名,并新建以域名命名的测试用例文件夹。
12、根据本申请第一方面的方法,所述收集测试用例,包括如下步骤:
13、s101、设计测试用例,对不同防护模块分别设计不同的用例模板;
14、s102、获取真实攻击流量,自动更新对应测试用例下的攻击流量;
15、s103、设置爬虫模块,定期采集互联网中公布的0day漏洞,并进行分类,自动创建新的测试用例。
16、根据本申请第一方面的方法,所述用例模板包括对应防护模块配置接入子模块、攻击流量触发子模块、web应用防火墙对应防护日志获取子模块以及防护模块验证子模块,所述对应防护模块配置接入子模块通过读取其所在文件夹的文件夹名来动态确认在哪一个防护网站下接入防护配置;攻击流量触发子模块通过读取其所在文件夹的文件夹名来确认对哪一个防护网站发起攻击,其攻击请求参数的配置源于攻击流量对应的配置文件,在配置文件中设置了攻击流量的uri、port、headers等信息;web应用防火墙对应防护日志获取子模块通过其所在文件夹的文件夹名及攻击流量发送的时间作为参数实时获取web应用防火墙的防护日志信息;防护模块验证子模块通过配置文件中设置的预期防护信息和日志中获取的防护信息进行比较来确认防护模块是否生效。
17、根据本申请第一方面的方法,所述获取真实攻击流量,自动更新对应测试用例下的攻击流量,包括:
18、获取攻击集群日志中对应防护模块的真实攻击流量;
19、针对对应模块攻击流量,保留payload、path、user_agent等攻击特征,将攻击域名等信息替换为测试域名信息;
20、用生成的新测试用例替换测试文件中的对应模块测试用例。
21、根据本申请第一方面的方法,所述主进程进行测试用例分组,包括:
22、主进程扫描指定测试用例文件夹下的所有测试用例,根据防护模块对测试用例进行分类,并将防护模块均分放入以域名命名的对应文件夹中。
23、根据本申请第一方面的方法,所述主进程将不同组的测试用例分配给与防护网站数量相同的工作节点,包括:
24、主进程通过execnet创建网关,与各个工作节点相连接;
25、发送任务时,主进程使用execnet的send(发送)方法将测试用例路径发送给工作节点;
26、工作节点通过execnet的receive(接收)方法,将测试结果回传给主进程。
27、根据本申请第一方面的方法,所述主进程与所述工作节点之间的进程通信,包括如下步骤:
28、s201、基于轮询的调度方法,主进程将每个文件夹中约30%的测试用例发送到对应的工作节点;
29、s202、基于探测的方法,主进程将每个文件夹中约70%的测试用例发送到对应的工作节点;
30、s203、当工作节点待执行的用例还剩5%时,工作节点会发送一个“hungry”信号给主进程,主进程收到信号后会继续给对应工作节点发送新的测试用例;
31、s204、当主进程没有更多测试任务时,发送“shutdown”信号给所有工作节点,工作节点收到信号后退出进程;
32、s205、主进程等待所有工作节点退出后,执行防护网站接出和报告发送操作。
33、根据本申请第一方面的方法,所述每个工作节点并行执行,包括:
34、每个工作节点收到任务后,在独立环境中顺序执行分配到的测试用例;
35、工作节点会在收集完一套完整的测试集后,将收集到的测试id发送给不承担执行任务的主进程。
36、一种基于分布式调度机制的web应用防火墙自动化测试装置,包括处理器和用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如上述任一方面所述的基于分布式调度机制的web应用防火墙自动化测试的方法。
37、本申请提供的技术方案可以包括以下有益效果:
3本文档来自技高网...
【技术保护点】
1.一种基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述主进程接入预设数量的防护网站,包括:
3.根据权利要求2所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述收集测试用例,包括如下步骤:
4.根据权利要求3所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述用例模板包括对应防护模块配置接入子模块、攻击流量触发子模块、WEB应用防火墙对应防护日志获取子模块以及防护模块验证子模块,所述对应防护模块配置接入子模块通过读取其所在文件夹的文件夹名来动态确认在哪一个防护网站下接入防护配置;攻击流量触发子模块通过读取其所在文件夹的文件夹名来确认对哪一个防护网站发起攻击,其攻击请求参数的配置源于攻击流量对应的配置文件,在配置文件中设置了攻击流量的uri、port、headers等信息;WEB应用防火墙对应防护日志获取子模块通过其所在文件夹的文件夹名及攻击流量发送的时间作为参数实时获取WEB应用防火
5.根据权利要求3所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述获取真实攻击流量,自动更新对应测试用例下的攻击流量,包括:
6.根据权利要求3所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述主进程进行测试用例分组,包括:
7.根据权利要求1所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述主进程将不同组的测试用例分配给与防护网站数量相同的工作节点,包括:
8.根据权利要求7所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述主进程与所述工作节点之间的进程通信,包括如下步骤:
9.根据权利要求1所述的基于分布式调度机制的WEB应用防火墙自动测试方法,其特征在于,所述每个工作节点并行执行,包括:
10.一种基于分布式调度机制的WEB应用防火墙自动测试装置,其特征在于,包括处理器和用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如权利要求1-9中任一项所述的基于分布式调度机制的WEB应用防火墙自动化测试的方法。
...【技术特征摘要】
1.一种基于分布式调度机制的web应用防火墙自动测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于分布式调度机制的web应用防火墙自动测试方法,其特征在于,所述主进程接入预设数量的防护网站,包括:
3.根据权利要求2所述的基于分布式调度机制的web应用防火墙自动测试方法,其特征在于,所述收集测试用例,包括如下步骤:
4.根据权利要求3所述的基于分布式调度机制的web应用防火墙自动测试方法,其特征在于,所述用例模板包括对应防护模块配置接入子模块、攻击流量触发子模块、web应用防火墙对应防护日志获取子模块以及防护模块验证子模块,所述对应防护模块配置接入子模块通过读取其所在文件夹的文件夹名来动态确认在哪一个防护网站下接入防护配置;攻击流量触发子模块通过读取其所在文件夹的文件夹名来确认对哪一个防护网站发起攻击,其攻击请求参数的配置源于攻击流量对应的配置文件,在配置文件中设置了攻击流量的uri、port、headers等信息;web应用防火墙对应防护日志获取子模块通过其所在文件夹的文件夹名及攻击流量发送的时间作为参数实时获取web应用防火墙的防护日志信息;防护模块验证子模块通过配置文件中设置的预期防...
【专利技术属性】
技术研发人员:李正涵,张伟,滕永平,魏心岚,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。