跳到主要内容
版本:3.10.x

Web 应用防火墙(WAF)

Web 应用防火墙(WAF)可在请求到达上游服务之前检查 API 流量中的常见 Web 攻击。在 API7 网关中,WAF 最适合作为纵深防御模型的一层,与身份认证、授权、限流、日志记录和安全凭证管理配合使用。

WAF 保护数据面上已发布的 API 流量。它不同于控制面 IP 限制、审计日志和凭证存储加固等平台安全控制。

何时使用 WAF

当你需要保护暴露给不受信任客户端的 HTTP API 时,WAF 尤其有用,例如:

  • 面向互联网公众或合作伙伴的 API。
  • 处理敏感客户或业务数据的应用。
  • 需要防范 SQL 注入、跨站脚本(XSS)和恶意载荷探测等常见攻击类型的环境。
  • 希望在上游服务之前部署专用安全层,而不把所有过滤逻辑都放入应用代码的团队。

WAF 能做什么、不能做什么

WAF 是 API 网关控制的补充,但不能取代这些控制。

控制主要用途
WAF检查请求中的恶意模式,并阻止或监控可疑流量。
身份认证验证客户端身份。
ACL 和权限策略决定哪些已认证客户端可以访问哪些 API。
限流防止服务受到滥用、突发流量和过量请求的影响。
数据脱敏防止敏感请求数据暴露在日志中。

当问题是威胁检查时使用 WAF;当问题涉及身份、授权或滥用控制时,使用身份认证、ACL 和限流。

API7 网关当前的 WAF 支持

API7 网关通过 chaitin-waf 插件与长亭 WAF(雷池 SafeLine)直接集成。

在此模式下:

  • API7 网关将匹配的请求转发到 WAF 服务进行检查。
  • WAF 服务决定允许还是拒绝请求。
  • 可以先在 monitor 模式下观察检测结果,再切换到 block 模式。
  • 共享的 WAF 连接设置通过插件元数据配置,执行策略则在挂载插件的位置启用。

这样无需修改上游应用程序,即可在网关层增加 WAF 防护。

API7 网关运行时还支持通用 wasm 插件,因此高级部署可以采用基于 WASM 的 WAF 集成,例如通过 coraza-proxy-wasm 使用 Coraza。

这种方式与 chaitin-waf 不同:

  • 在网关运行时配置中加载 WASM 模块。
  • 与其他网关插件一样,将生成的插件挂载到路由、服务或其他受支持的作用域。
  • 由你自行管理 WAF 模块制品及其配置。

可以通过网关的 WASM 扩展机制集成 Coraza,但当前文档集对它的说明不如 chaitin-waf 完整。

建议的上线方式

  1. 从面向互联网的路由和高价值 API 开始。
  2. 先使用 monitor 模式,了解 WAF 在真实流量中标记的内容。
  3. 与应用和安全团队共同审查检测结果,调整规则并减少误报。
  4. 理解策略后,将选定 API 切换到 block 模式。
  5. 将 WAF 与身份认证、ACL 和限流结合使用,不要把它作为独立的安全控制。

实施指南

请选择与部署模型匹配的方式:

准备生产上线时,应将 WAF 纳入部署的整体安全审查,而不是将其视为孤立功能。

后续步骤