应用防火墙 WAF 架构分类
应用防火墙(Web Application Firewall, WAF)是 Web 应用防护系统,也称“网站应用级入侵防御系统”。通过针对基于 HTTP/HTTPS 协议的流量建立检测或拦截规则,实现安全防护的目的。
WAF 架构根据部署方式的不同,通常分为 cname 部署、module 部署、网络层部署。也有部分公司根据自身需要实施混合部署与运营的架构,这通常需要一定的架构设计和开发能力,包括业务方的配合。国外几款商业产品的 WAF 支持导入证书的方式来解决 HTTPS 环境的安全防护,通常国内各甲方安全团队自研 WAF 产品基本不支持 HTTPS。
1、cname 部署
只需将域名 Cname 方式解析指向 WAF 产品分配的 cname 别名就完成了部署。对于用户来说,整个 WAF 的防护和运营几乎是透明的。
cname 方式最大的优势就是部署方便快速,且理论上还有加速网站性能还和阻断 DDoS 攻击等效果,实现了安全防护和性能优化双重目标。但其缺陷也是非常明显的,HTTPS 流量是无法防护的,因为中间代理无法解析请求内容,进而无法对其攻击负载做检测与防护。
2、module 部署
module 部署的 WAF 典型产品是开源软件ModSecurity。最初 ModSecurity 是基于 Apache httpd 上的 module 开发出来的,针对 HTTP/HTTPS 协议攻击做检测和防护的开源产品。现在已经衍生出 IIS 版和 Nginx 版。
这种部署方式相比 cname 方式麻烦得多,需在 webserver 部署\编译时支持 modules,编译完 ModSecurity 模块之后,修改 webserver 配置文件生效。它通常默认就已经有大量的安全策略规则,但如果全启用,一方面性能消耗很大,另一方面也未必适用于自身环境安全问题。所以后续还要对规则进行优化精简和按需增加,对运营人员的要求相对较高。
基于业务环境 webserver 功能的不同,还出现了一些非典型不知名的简易 WAF 类产品,这些相对小众,也可能是企业安全团队自身开发和运营的。例如基于 Nginx 的 LUA 脚本开发的 WAF,基于 IIS 筛选器开发的 WAF。理论上成熟的 webserver 均有 module 等二次开发接口,均可以按需开发建设相应 WAF 类功能产品。
Module WAF 在应对 HTTPS 类业务时非常适用,缺点是产品开发与运营成本非常高。部署过程需要业务中断且运营人员工作量较大,需逐台 Server 部署,对于规则的运营也需要投入大量人力。所以适合有一定开发和运营能力,且业务规模较小的公司。
3、网络层部署
此类 WAF 产品是最易部署的方式,它可部署在机房或某被防护的网络入口位置。这不同于其他几类,它的部署和运营可以算是真正的透明。不需要对业务有太多侵入与变更,特别适合互联网公司变更多、架构复杂的环境。
它的缺点明显,对于 HTTPS 协议无能为力。优势也明显,无侵入性,易部署。不影响业务性能,可旁路接入,通过 RESET 包阻断 HTTP 会话。
4、混合型 WAF 架构
为满足业务的多样性架构的灵活性,很多大型互联网公司还建立了混合型的 WAF 集群。可以通过前述几类 WAF 的组合,实现相互补防覆盖不到的地方,真正实现无死角防守。
版权声明: 本文为 InfoQ 作者【阿泽🧸】的原创文章。
原文链接:【http://xie.infoq.cn/article/db51d464cf835223b1aae3757】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论