一种基于Nginx的WAF测试方法技术

技术编号:19186303 阅读:48 留言:0更新日期:2018-10-17 02:14
本发明专利技术公开了一种基于Nginx的WAF测试方法,属于信息安全领域。包括以下内容:客户端通过Nginx代理访问Original时,Nginx镜像模块将客户端对Original的访问请求拷贝一份作为Mirror的访问请求;当请求到达Nginx时,在Nginx内部会去匹配location,根据不同location对请求做出不同的处理;当请求匹配到Original location时,在Original location模块中转发请求到Original的同时,也会生成一个镜像请求去匹配Mirror location模块。本发明专利技术将真实业务环境和真实用户请求映射到后台镜像业务,可以完全模拟WAF上线后的运行环境,可在不影响线上业务的情况下根据用户真实请求对WAF进行测试。

A WAF test method based on Nginx

The invention discloses a WAF test method based on Nginx, which belongs to the field of information security. It includes the following contents: when the client accesses Original through the Nginx proxy, the Nginx mirror module copies the client's access request to Original as a Mirror's access request; when the request reaches Nginx, it matches the location within Nginx, and makes different processing according to different locations; when the request matches to O. In riginal location, while forwarding requests to Original in the Original location module, a mirror request is generated to match the Mirror location module. The invention maps the real business environment and the real user request to the background mirror service, can completely simulate the running environment after the WAF is on-line, and can test the WAF according to the user's real request without affecting the on-line service.

【技术实现步骤摘要】
一种基于Nginx的WAF测试方法
本专利技术的实施方式涉及属于信息安全领域,更具体地,本专利技术的实施方式涉及一种基于Nginx的WAF测试方法。
技术介绍
随着计算机技术的不断发展,web应用越来越广泛。Nginx作为一款轻量级的Web服务器,具有高性能的HTTP处理能力和反向代理功能,被广泛用作WAF部署服务器。WAF是Web应用的安全保障,上线前必须对其功能和性能进行全面的测试。目前,WAF测试一般会经过两个步骤,线下测试与线上测试。线下主要测试WAF功能及性能,一般通过DVWA等漏洞平台或者线下模拟业务环境检测WAF功能,通过Jmeter等压测工具检测WAF性能。经过线下的初步测试,可以大概了解WAF的性能,排除WAF在功能上的错误,但是并不能避免WAF上线后产生误报以及对线上业务造成的其他不可预知的负面影响。所以,WAF上线后也会经过一段时间的线上测试,来检测WAF在真实业务环境下的运行情况,排除具体业务上的一些误报。但是对于WAF上线后产生的误报带来的影响是不可避免的,很可能会影响线上业务的正常运行,给客户造成使用上的不便,造成不必要的损失。如图1所示,图1为传统的WAF部署方式,将WAF部署在Nginx服务器中,请求通过Nginx反向代理对业务源站发起访问,这样所有的请求便会经过WAF检测。请求到达WAF如果触发规则,则拦截请求。如果不触发规则,则请求通过,Nginx转发请求到业务源站。业务源站对请求的响应也同样经过WAF检测,不触发WAF规则的响应才会被发送到客户端。
技术实现思路
本专利技术的目的是针对上述
技术介绍
,提供一种基于Nginx的WAF测试方法,以期望解决如何基于真实业务数据对WAF进行测试,避免WAF上线后因误报对线上业务产生影响,以及其他的WAF上线带来的不可预知的负面影响。为了解决上述问题,本专利技术采取以下技术方案:一种基于Nginx的WAF测试方法,包括以下内容:客户端通过Nginx代理访问Original时,Nginx镜像模块(ngx_http_mirror_modulek)将客户端对Original的访问请求拷贝一份作为Mirror的访问请求;当请求到达Nginx时,在Nginx内部会去匹配location,根据不同location对请求做出不同的处理;当请求匹配到Originallocation时,在Originallocation模块中转发请求到Original的同时,也会生成一个镜像请求去匹配Mirrorlocation模块;当镜像请求匹配到Mirrorlocation时,Mirrorlocation中WAF会去检测镜像请求,如果没有触发WAF规则,那么Mirrorlocation将请求转发到Mirror;当Mirror做出响应后,响应到达Nginx时也会先经过WAF检测,如果没触发规则,则响应通过WAF到达Nginx处理响应的相应阶段。进一步的技术方案是:Original的响应Nginx转发给客服端,Mirror的响应在到达Nginx时则被Nginx丢弃。本专利技术通过Nginx的ngx_http_mirror_modulek模块,可以将http请求拷贝至其他环境,镜像子请求的响应输出会被Nginx忽略。利用这一功能,我们可以在后台部署一个与线上业务一样的镜像业务环境,将WAF部署在这个镜像业务的前面,然后将业务线上的实时访问流量拷贝到镜像环境,这样就实现了根据真实业务流量来测试WAF的功能。本专利技术与现有技术相比,具有以下的有益效果:本专利技术提供的WAF测试方法,通过Nginx的ngx_http_mirror_module模块将真实业务环境和真实用户请求映射到后台镜像业务,可以完全模拟WAF上线后的运行环境,可在不影响线上业务的情况下根据用户真实请求对WAF进行测试,不仅可以避免因WAF误报带来的影响,还能排除WAF上线后其他的不可预知的错误。附图说明图1为现有技术传统WAF部署示意图。图2为本专利技术Nginx镜像模块原理示意图;图3为本专利技术基于镜像模块的WAF部署及请求处理过程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例如图2所示,图2为Nginx镜像模块(ngx_http_mirror_module)原理,客户端通过Nginx反向代理访问业务源站(Original)时,ngx_http_mirror_module模块可以将客户端对Original的访问请求拷贝一份作为对镜像源站(Mirror)的访问请求。Original的响应Nginx会转发给客服端,Mirror的响应在到达Nginx时则会被Nginx丢弃。如图3所示,图3为基于镜像模块的WAF部署及请求处理过程,本部分主要对Nginx内部处理流程作讲解,Nginx外部的部分同图1、图2一样。当请求到达Nginx时,在Nginx内部会去匹配location,根据不同location对请求做出不同的处理。当请求匹配到图中的Originallocation时,在Originallocation模块中转发请求到业源站的同时,也会生成一个镜像请求去匹配Mirrorlocation模块。当镜像请求匹配到Mirrorlocation时,Mirrorlocation中WAF会去检测镜像请求,如果没有触发WAF规则,那么Mirrorlocation将请求转发到镜像业务源站(Mirror)。当Mirror做出响应后,响应到达Nginx时也会先经过WAF检测,如果没触发规则,则响应通过WAF到达Nginx处理响应的相应阶段,一般Nginx会丢掉镜像请求的响应,只将Original的响应返回给客户端,这样既实现了基于真实用户请求数据的WAF测试,也避免了WAF测试过程中对线上业务的影响,并且还可以排除WAF上线后的误报以及一些其他负面影响。下面主要讲解Originallocation和Mirrorlocation的配置。配置代码如下(#后的内容为注释说明):Originallocation配置说明:在Originallocation中配置业务源站,当需要添加镜像模块时只需要在原本的业务源站配置中添加上例所示的original配置代码即可。需要注意的是ngx_http_mirror_module模块只支持Nginx1.13.4及以上版本,并且ngx_http_mirror_module模块是默认安装的,不需要单独编译安装。当用户URL匹配到originallocation时,Nginx会按正常的流程处理请求,对于用户和业务源站来说,没有任何变化。只是当请求匹配originallocation时,Nginx后台会通过mirror指令将请求复制一份到指定的镜像业务源站。镜像业务源站的响应返回会被Nginx忽略,所以通过这种部署方式,镜像业务源站不会对线上的业务源站造成影响。Mirrorlocation配置说明:测试WAF时,可以将Mirrorlocation部署为和业务源站一样的站点,这样就可以保证测试环境的可靠性,加上请求是通过用户请求复制而来的,保证了测试数据的真实性。并且测试过程中不会对本文档来自技高网...

【技术保护点】
1.一种基于Nginx的WAF测试方法,其特征在于,包括以下内容:客户端通过Nginx代理访问Original时,Nginx镜像模块将客户端对Original的访问请求拷贝一份作为Mirror的访问请求;当请求到达Nginx时,在Nginx内部会去匹配location,根据不同location对请求做出不同的处理;当请求匹配到Original location时,在Original location模块中转发请求到Original的同时,也会生成一个镜像请求去匹配Mirror location模块;当镜像请求匹配到Mirror location时,Mirror location中WAF会去检测镜像请求,如果没有触发WAF规则,那么Mirror location将请求转发到Mirror;当Mirror做出响应后,响应到达Nginx时也会先经过WAF检测,如果没触发规则,则响应通过WAF到达Nginx处理响应的相应阶段。

【技术特征摘要】
1.一种基于Nginx的WAF测试方法,其特征在于,包括以下内容:客户端通过Nginx代理访问Original时,Nginx镜像模块将客户端对Original的访问请求拷贝一份作为Mirror的访问请求;当请求到达Nginx时,在Nginx内部会去匹配location,根据不同location对请求做出不同的处理;当请求匹配到Originallocation时,在Originallocation模块中转发请求到Original的同时,也会生成一个镜像请求去匹配Mirrorlocation模...

【专利技术属性】
技术研发人员:冯其
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1