Web 安全

WAF (Web 应用防火墙)

约 5 分钟阅读

什么是 WAF

WAF (Web Application Firewall) 是检查发往 Web 应用的 HTTP/HTTPS 流量、检测并拦截恶意请求的安全产品。传统防火墙在网络层 (L3/L4) 控制 IP 地址和端口号,而 WAF 在应用层 (L7) 解析 HTTP 请求的内容。

它擅长应对的是 XSSSQL 注入、目录遍历这类在请求语法本身留下攻击痕迹的攻击。以 OWASP Top 10 的 2025 年版来说,注入 (A05:2025) 中的一部分属于这一类。而排在首位的访问控制缺陷 (A01:2025) 以及设计缺陷 (A06:2025) 这类问题,仅看单条请求无法与正常请求区分,WAF 无法判定。CSRF 的请求本身也看起来正常,因此主要依靠令牌校验等应用侧的对策,WAF 只起辅助作用。WAF 终究是一种缓解手段,不能替代修复应用自身的漏洞。

WAF 的检测方式

  • 基于签名 (黑名单方式):与已知攻击模式 (签名) 比对来检测,在请求中查找 SELECT * FROM<script> 等字符串模式。对已知攻击的检出率高,但对未知攻击以及绕过签名的混淆手法较弱。
  • 白名单方式:定义正常请求的模式,其余全部拦截。可以应对未知攻击,但如果对正常请求的定义不完整,误报 (False Positive) 就会频发。适用于 API 这类输入格式有严格定义的场景。
  • 评分方式:把请求对多条规则的违反程度累加为分数,超过阈值即拦截,可以灵活应对单条规则难以判定的灰色地带攻击。OWASP Core Rule Set (CRS) 的 Anomaly Scoring Mode 采用这种方式:单条规则只负责检测和累加分数,是否拦截要在所有规则都评估完之后统一判断。
  • 基于机器学习:学习正常流量模式,把偏离的请求判定为异常。有可能应对未知攻击,但依赖训练数据的质量,误报也不易调优。

WAF 的部署形态

WAF 按部署形态可分为三类。

  • 云端型 WAF:先在服务商的网络接收请求,再转发给源站。既有把 DNS 指向反向代理的形式 (如 Cloudflare 的 WAF),也有把 WAF 关联到 CDN 或负载均衡器的形式 (如 AWS WAF)。无需购买专用硬件即可开始使用,而且常与DDoS 攻击防护一起提供。
  • 硬件型:在自有网络中部署专用硬件。吞吐量高、可做精细定制,但初期费用高,运维需要专业知识,面向大型企业。
  • 软件型 (主机型):作为模块安装在 Web 服务器上。由 OWASP 维护的 ModSecurity 是代表,截至 2026 年 8 月仍以 Apache License 2.0 的开源形式持续开发。可以免费使用,但编写和调优规则需要很高的专业能力。

小型站点适合云端型,需要精细控制的大型环境适合硬件型。如果流量本来就经过 CDN 或负载均衡器,可以在那里关联 WAF,不必改动源站服务器;但启用之后排查误报和调整规则的工作量并不会因此减少。

WAF 运维实践要点

WAF 并非「部署完就结束」,持续调优不可或缺。

  • 误报的管理:WAF 最大的运维课题是误报。正常请求一旦被拦截,会直接损害用户体验。启用初期请先用检测模式 (仅记录日志) 而非拦截模式运行,掌握误报模式之后再切换为拦截。
  • 规则的定期更新:攻击手法每天都在演变,即使使用托管规则集,也需要定期确认新规则的加入以及既有规则是否仍然有效。
  • 作为虚拟补丁使用:在修复版本尚未发布、或自行改造来不及完成的这段时间里,用 WAF 拦截利用该漏洞的请求。它也被用作零日攻击的初期应对手段,但这只是争取到修复完成之前的时间;攻击请求的写法一改就可能绕过。它并不能替代修复本身。
  • 日志分析:WAF 的日志是排查安全事件时不可缺少的材料。请分析被拦截请求的模式,掌握攻击的走向。
  • CSP 并用:WAF 在服务器侧过滤请求,而 CSP 在浏览器侧限制脚本执行。两者结合可以对 XSS 形成纵深防御。

WAF 并不能从根本上修复应用的漏洞。不要完全依赖 WAF,而应与安全编码、输入校验、参数化查询等应用侧的对策并用。

常见误解

部署 WAF 就完成了 Web 应用的漏洞防御
WAF 可以缓解已知的攻击模式,但应用自身的漏洞依然存在。绕过 WAF 规则的手法也确实存在,因此从根本上修复漏洞和安全编码不可或缺。
WAF 能防止所有 Web 攻击
滥用业务逻辑 (违规折扣操作、权限提升等) 以及窃取认证信息 (钓鱼) 这类与正常请求无法区分的攻击,WAF 无法检测。WAF 擅长的是检测 SQL 注入、XSS 这类在语法上异常的请求。

云端型 WAF 与硬件型 WAF 的比较

云端型 WAF

通过切换 DNS 或关联到 CDN、负载均衡器即可启用。无需专用硬件,初期费用容易控制,而且常与 DDoS 防护一起提供,托管规则也使运维负担较低。但定制自由度取决于厂商,按流量计费也可能使成本上升。

硬件型 WAF

部署在自有网络内。吞吐量高,规则可做精细定制。但初期费用高,编写和调优规则需要专业知识,硬件的维护与更新也需自行负责。

分享

相关术语

相关文章