当前位置:首页 期刊杂志

Web应用系统加入WAF故障诊断方法研究

时间:2024-09-03

◆王乐

操作系统、网络体系与服务器技术

Web应用系统加入WAF故障诊断方法研究

◆王乐

(东北师范大学信息化管理与规划办公室 吉林 130024)

为了针对性地保护Web应用系统,高校一般都采用了Web应用防火墙(Web application firewall,WAF)技术。在安全防护实施的过程中,既要为业务和逻辑各不相同的应用系统制定符合其运行需求的安全防护方案,又要在应用系统出现使用功能故障时,快速定位原因并解决。才能达到保障高校Web应用系统安全稳定运行的目标。本文结合高校实际Web应用防护场景,提出了Web应用系统加入WAF故障诊断分析法,能在被防护的Web应用系统出现功能异常的情况下,快速定位异常的原因并解决。保障应用系统能正常提供服务,同时又使安全隐患最小化。

Web应用安全;故障诊断;WAF

随着信息化建设的不断推进,高校建立了越来越多的Web应用系统,例如:融合门户、网上服务大厅、轻MIS平台等,来提供不同的业务服务。在运行和使用过程中,这些应用系统都会或多或少的暴露出一些安全隐患,为防止这些隐患带来安全事件,高校不断加强Web安全防护措施。例如采用WAF技术,保护Web应用程序、APIs和移动应用程序免受各种攻击威胁。

然而安全防护不能影响Web服务的正常运行。在实施安全防护的过程中,面对各种各样的Web应用服务故障,需要根据实际情况具体分析和解决。本文基于高校Web应用防护场景和解决Web应用系统故障的经验,提出了Web应用系统加入WAF故障诊断分析法。用于在Web应用系统加入WAF之后出现故障时的诊断分析。经过实际验证,能行之有效的定位故障原因并解决。

1 HTTP协议

Web使用超文本传输协议(HyperText Transfer Protocol,HTTP)作为规范,完成从请求访问文本或图像等资源的客户端到提供资源响应的服务器端之间的通信[1]。

HTTP通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道,他们可以配合服务器工作。这些应用程序和服务器将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应再转发给客户端[2]。

用于HTTP协议交互的信息被称为HTTP报文,来自客户端的HTTP报文叫作请求报文,来自服务器端的报文叫作响应报文。请求报文包含请求行、请求头部和请求体,服务器能读取客户端发送的HTTP值,比如表单、URL、Cookie传递过来的参数。服务器响应报文包含响应行、响应头和响应体,返回字符串是与HTTP请求报文相关的内容。

2 安全策略制定原则

为了达到保护Web应用系统安全的目标,安全策略的制定必须遵守基本的原则。

最小化原则。采用WAF默认安全策略,满足大多数应用系统的安全使用需求,同时不信任所有来源于用户的输入信息。在WAF上设置细粒度访问控制,限制受保护敏感信息的访问范围[3]。

安全隔离原则。采用WAF对Web应用中心进行访问隔离。通过设置防火墙规则,限制校内应用系统IP的访问权限,使用户的所有请求都需要经过WAF,而不能直接对Web数据中心进行访问。管理员对应用系统的运行维护需要通过VPN/堡垒机等安全审计系统[4]。

3 WAF工作原理

WAF设备部署在互联网(Internet)与Web数据中心(Web server)之间,对所有经过的应用流量进行深度检测,在网络层和应用层实现入侵防护,保障高校Web应用程序、APIs和移动应用程序安全运行。

WAF一般采用反向代理模式,即WAF代理Web服务器处理客户端的访问请求,检查这些请求是否具有正确的格式或遵从HTTP 请求规范,仅允许合法的请求通过。而那些已知的恶意请求如非法植入到HTTP 消息头、表单或URL中的脚本将被阻止。最常见的攻击如SQL 注入攻击、跨站点脚本攻击、缓冲区溢出攻击、恶意浏览等在到达Web服务器之前将被WAF阻断[5]。WAF不改变客户端和Web服务器之间的正常请求和响应。

4 Web应用系统加入WAF之后故障诊断和解决

在对Web应用启用安全防护之后,经常出现部分功能使用异常的情况。Web应用提供的业务关乎师生日常的使用,一旦功能故障,就需要马上定位原因,并进行相应的处理,尽快恢复使用。但是,Web应用的故障多种多样,不同的故障有不同的表现形式。为此,安全运维人员需要掌握WAF部署拓扑原理和Web应用测试方法,并具有较强的逻辑思维,故障分析时要对各种现象灵活运用排除法、对比法、替换法等方法,找到原因,并快速排除故障。

(1)排除法

该方法依据所观察到的故障现象,全面枚举出所有可能的故障点,并逐个分析和排除。排除时,遵循由简到繁的原则。

例如,Web应用故障,首先想到的原因就是被WAF拦截了。然而,实际存在三种可能的情况:1)Web应用代码编写不符合HTTP协议规范或存在安全漏洞,导致被WAF拦截,这种情况,在WAF上能查到拦截日志,为了保证应用系统的正常使用,需要根据WAF拦截日志,结合应用系统的运行需求进行安全策略的调整;2)Web应用系统自身故障,导致服务异常,需要应用系统管理员处理并恢复;3)WAF设置导致客户端和Web服务器之间通信异常,需要进一步排查具体原因。

(2)对比法

该方法是指同一个客户端,采用不同的访问方式对Web应用系统执行相同的操作,从而确定Web服务故障的原因是否为WAF导致。

在通过WAF反向代理访问Web服务和不通过WAF反向代理直接访问Web服务两种方式下,进行同样的访问操作。即,对比通过代理和不通过代理两种情况下,Web服务的功能是否都异常。如果在两种情况下,服务都异常说明不是WAF导致故障,而是Web服务本身故障。

(3)替换法

该方法是用本地部署的反向代理系统代替WAF反向代理,通过对配置的不同参数进行调整,找出故障原因。

如果在WAF上查不到拦截日志,并且绕过WAF之后应用系统功能也是正常的,则不能确定是否为WAF导致故障,需要进一步确定原因,此时,可以通过本地部署的反向代理系统代替WAF系统进行测试。看是否由于反向代理机制导致Web服务故障。

在实际工作中,可根据故障现象灵活运用排除法、对比法、替换法等方法进行故障诊断分析。如果确定是因为WAF导致故障,可通过调整WAF配置或安全防护策略来解决,如果确定为Web应用系统自身故障,需要应用系统管理员解决。如果解决过程持续较长时间,可在WAF上将该服务重定向到指定页面,提示用户正在修复。

图1 Web应用加入WAF故障诊断

5 Web应用故障诊断实例

对比Web应用在经过WAF和绕过WAF两种方式下对同一个HTTP请求和响应的状态及参数值的情况,找出经过WAF之后Web应用故障的原因。

例如,校内新上线的智慧通行管理平台,按照安全策略,用户需要通过WAF进行访问。该平台有一个功能是对人员进行访问授权,即先选中要授权的人员,然后进行授权操作,经过多次操作之后,都发现显示授权进度为0,即授权失败。而修改本机hosts文件,将域名指向到Web服务器的真实IP,即不经过WAF进行访问操作,授权进度为100%,授权可以正常提交。如下图2所示:

首先怀疑该功能被WAF拦截,但是在WAF上对Web应用的域名和访问的客户端IP进行查询,没有查到拦截日志,该功能故障是否真的与WAF无关呢?

(1)通过在WAF上和在客户端分别抓包[6],对比用户访问该功能的请求和Web服务器的响应情况为:1)通过WAF进行授权访问,异常,客户端不断重复发送同一个请求。绕过WAF进行授权访问,正常,客户端只发送一个请求[7];2)经过WAF访问successNum参数的值为0。绕过WAF访问successNum参数的值为2。如图3所示:

图3 在WAF和客户端对授权操作抓包对比

(2)为了消除不同WAF产品的差异,分别在梭子鱼WAF和绿盟WAF上配置该应用,并分别通过两种WAF执行授权操作,结果授权操作都失败。为了消除WAF策略的影响,在WAF上取消对该站点的防护策略,授权操作失败的现象依然没有改观。

(3)由于WAF采用反向代理模式,为了进行对比,将该应用部署在本地搭建的Nginx反向代理测试系统上[8],用户通过本地反向代理进行授权操作,发现授权进度依然为零。对该站点的反向代理配置进行修改,分别注释以下配置项之后进行授权操作:

proxy_set_header Host $host:server_port;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

发现注释proxy_set_header Host $host:server_port[9]这一项之后进行授权访问,授权进度为100%。

图4 配置反向代理测试系统

(4)找出授权进度为0的原因为:Web服务器需要读取带有端口的host字段,但是WAF代理配置用HTTP默认的80端口隐藏Web服务器的9000端口,转发给Web服务器的请求里面不带端口,导致授权服务异常。

(5)在WAF上配置Web服务器9000端口,转发给Web服务器的请求里面带端口,通过WAF授权操作成功。

6 结束语

高校Web应用系统的多样性,为安全防护的实施增加了难度。在应用系统加入安全防护系统之后,经常出现各种各样的应用故障,快速定位故障原因并解决,才能保障应用服务安全稳定运行。本文提出的故障诊断方法在高校Web应用防护场景中经过使用验证,但是仍需要在实际使用中不断改进和完善。

[1]上野宣.图解HTTP[M].人民邮电出版社,2014.

[2]吉尔利, 等.HTTP权威指南[M].人民邮电出版社,2012.

[3]赵洪彪.信息安全策略[M].清华大学出版社,2004.

[4]王乐,王叶静,郭羽婷.高校信息安全整体防护方案研究[J].信息安全与通信保密, 2020.

[5]王乐,王叶静,葛永兴.Web应用防火墙在高校信息安全中的应用[J].长春师范大学学报, 2020.

[6]Manpage of PCAP-FILTER[EB/OL]. https://www.tcpdump.org/ manpages/pcap-filter.7.html.

[7]Chrome 开发者工具[EB/OL].https://developers.google. cn/web/tools/chrome-devtools/.

[8]陶辉.深入理解Nginx[M].机械工业出版社,2013.

[9]Module ngx_http_proxy_module[EB/OL].http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_header.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!