学习永无止境!!!
前言
本文主要介绍了WAF的工作原理、常见部署方式和工作流程,以帮助读者更好地理解WAF。
一、WAF的工作原理
WAF是一种根据预先定义的过滤规则和安全防护规则,对所有服务器的访问请求和响应进行检测和内容过滤,以保护Web服务器和Web应用安全的信息系统。相比于传统的网络安全设备如防火墙、入侵检测系统和入侵防御系统,WAF更专注于保护Web服务和Web应用。传统防火墙通常使用工作在OSI的网络层和传输层的包过滤技术,仅仅只对Web请求的源地址、目的地址以及端口号进行初步地安全检测;入侵检测系统部署在网络内部,主要进行网络监控和审核跟踪,重点是监管网络安全状况,往往在系统被攻击之前无法发出预报;入侵防御系统基于签名数据库和已建立的策略来检查已知的漏洞和攻击,通常用于保护DNS\SMTP\TELNET\SSH和FTP等OSI三、四层应用。
传统防火墙、入侵检测系统和入侵防御系统都不针对HTTP流量,因此无法起到保护Web服务的作用。而WAF工作在OSI的应用层,能够审计流经Web应用的所有HTTP流量,一旦发现异常请求就会立即做出相关防御措施从而保护Web服务和Web应用免受攻击。
WAF能够对HTTP请求和响应做非常完美的分析和检测,包括HTTP请求头、请求路由,请求负荷、响应头和响应体的检查。一旦发现异常,WAF将会隔离异常请求并且做出防御措施如拒绝服务或返回400响应页面。WAF通过一系列规则来过滤掉恶意流量以防止应用程序中的漏洞,进而能够保护Web应用免受CSRF、XSS、文件包含和SQL注入等攻击。WAF的价值源于可以方便快速地修改规则策略以更快地应对不断变化的攻击以及可以快速实施速率限制以防止DDOS攻击。
WAF核心架构中主要包括入侵检测模块、规则策略模块和防护模块。其中,入侵检测模块用来分析检测客户端与服务端之间的HTTP输入输出数据流;规则策略模块是WAF用来区别正常流量与恶意流量的根本依据,规则策略一般表现为黑白名单的规则集,即允许白名单流量而屏蔽黑名单流量;防护模块即WAF在检测到恶意请求后,做出防护措施。WAF架构还包括管理模块、日志审计模块以及负载均衡模块,这是很多WAF产品没有重视的地方。
二、WAF常见的部署方式
WAF部署方式主要有四种:反向代理模式、路由代理模式、透明模式和旁路模式。
反向代理模式的原理是代理服务器部署在Web服务器前端,HTTP请求和响应都要经过WAF,由WAF代为转发。
路由代理模式的工作模式是路由转发模式,需要配置WAF转发接口的地址和路由。
透明模式的代理是客户端直接访问Web应用服务器,WAF可以检测、过滤和转发客户端和服务器之间的会话。
旁路模式的原理是将流经交换机上的HTTP流量复制到WAF以用于监控和告警。
以上四种部署方式中,代理模式部署WAF最为安全,而且反向代理模式能够支持负载均衡,从而能够支撑起更高的并发量以及更快的响应速度。考虑到WAF的安全性、稳定性、灵活性以及并发性能,反向代理模式部署更好。
三、WAF的一般工作流程
Web应用防火墙的一般工作流程为:“获取数据”到“数据整理”再到“匹配规则”最后“再次校验”。
(1)获取数据:是指Web应用防火墙作为防护Web应用程序的有效屏障,可作为Web后端和Web前端间的媒介,客户端请求数据时,首先将数据提交到Web应用防火墙处理,Web应用防火墙获取客户端请求的全部数据包,并依据过滤机制从中提取处需要过滤的参数及其内容。
(2)数据整理:是指Web应用防火墙获取全部的从客户端请求的数据包后对它进行预先处理,消除其中的杂项数据。
(3)规则匹配:是指WAF对数据整理后,将WAF的特征库与整理后的数据做对比操作,识别出Wev前端的异常请求,然后1封禁此数据包。
(4)再次校验:是指处理较复杂(需要多条规则协同判定时)的情况时会进行二次校验,以确保校验的准确性。
通过如上的数据处理过程可得,WAF存在缺陷的地方可出现在WAF处理与服务器特性导致的处理不一致。