WAF 常见部署模式
WAF 即 Web 应用防火墙(Web Application Firewall)的简称,其作用是通过一系列安全策略来为 Web 应用提供安全防护。WAF 专门针对 Web 应用而设计,能够有效地防止诸如 SQL 注入、XSS 攻击等常见 Web 攻击。 WAF 常见的产品形态有三种模式:软件 WAF、硬件 WAF、云 WAF。其中硬件 WAF 是最传统常规的产品形态,本文内容也重点涉及硬件 WAF。
WAF 简介
WAF 即 Web 应用防火墙(Web Application Firewall)的简称,其作用是通过一系列安全策略来为 Web 应用提供安全防护。WAF 专门针对 Web 应用而设计,能够有效地防止诸如 SQL 注入、XSS 攻击等常见 Web 攻击。
WAF 常见的产品形态有三种模式:软件 WAF、硬件 WAF、云 WAF。其中硬件 WAF 是最传统常规的产品形态,本文内容也重点涉及硬件 WAF。
部署模式
硬件 WAF 的部署模式主要有:反向代理、透明代理、透明桥、流量镜像等。
反向代理
反向代理(Reverse Proxy)是一种网关技术,它旨在服务器和客户端间建立一个代理关系,使得客户端可以通过反向代理网关变相地与真实服务器进行通信。反向代理的 WAF 不改变客户端的真实请求内容,而是将请求转发到后台的真实服务器,然后将服务器的响应返回给客户端。反向代理 WAF 的工作口具有自己的 IP 地址,客户端实际是与 WAF 建立 TCP 连接,再由 WAF 使用自己的 IP 与服务器建立请求关系。典型的部署架构如下:
其特点是真实的服务器隐藏在 WAF 后面,客户端对服务器的访问强依赖 WAF 的代理。这样的架构可以使 WAF 作为中间人很容易地进行 HTTP 及 HTTPS 防护。
透明代理
透明代理(Transparent Proxy)也是一种代理技术,其不具有自己的 IP,客户端发起请求的目的 IP 就是服务器 IP。透明代理 WAF 一般串联在客户端与服务器之间,分别用服务器 IP 与客户端建立连接,用客户端 IP 与服务器连接,以达到“两头骗”的目的。一种常见部署形式如下图:
其中实线代表着真实的 TCP 连接,虚线代表着从客户端和服务器的角度看到的网络连接。由于它是一种劫持代理技术,所以这种部署方式从物理拓扑上要求代理网关会接收到客户端与服务器通信的所有内容,否则会出现一端 TCP 收包不全而发生连接超时现象。
这种模式的特点是对网络逻辑拓扑侵入性小,不需要为 WAF 规划 IP 资源,其作为中间人也可以同时防护 HTTP 和 HTTPS。
透明桥
透明代理 WAF 是会与客户端服务器两头都建立真实的连接,那我们可不可以实现真透明,劫持连接来做防护呢?答案就是使用透明桥。
透明桥(Transparent Bridge)部署的拓扑位置与透明代理类似,也是串联在客户端与服务器的必经之路上。但其不参与到 TCP 连接中,它不会改变数据包的任何一个字段,只是在串联的链路防护,安全的数据包就会放过 WAF 到达目的地。可以参考下面的示意图:
这种模式的特点与透明代理一样,不会对网络拓扑有逻辑入侵。由于不侵入 TCP 层,它可以随上随下且不会造成断流,如果中间有数据包因为选路原因没有经过 WAF,也不会影响连接。是一种更为便捷的部署模式。
流量镜像
上面几种模式都是串联在网络中,但某些网络不允许串联除正常网络设备之外的其他网关,同时也有安全防护的需求,那有没有什么办法满足呢?答案是有。这时流量镜像模式就可以派上用场了。
流量镜像(Traffic Mirroring)模式如上图所示,客户端与服务器间会经过交换机,这时可以使用交换机的端口镜像功能,将 Web 请求流量的原始帧镜像给 WAF,WAF 将数据帧还原成原始请求就可以对流量进行分析。
这个模式的特点是:对网络没有任何侵入性,可靠性更高。
各模式对比
部署模式 | 部署位置 | 能否检测 HTTPS | 经过 WAF 后是否会改变数据包 | WAF 的部署会否影响原链路 |
---|---|---|---|---|
反向代理 | 串联 | 能 | 是 | 是 |
透明代理 | 串联 | 能 | 是 | 轻微影响 |
透明桥 | 串联 | 否 | 否 | 不影响 |
流量镜像 | 旁路 | 否 | - | 不影响 |
免费靠谱WAF推荐
本人主要是用的免费WAF为长亭科技推出的雷池社区版。雷池的部署形态上可以支持硬件、软件、云等场景,硬件版雷池对以上提到的部署模式均有支持。附上雷池社区版官网链接,感兴趣的朋友们可以看看~waf-ce.chaitin.cn/