速读摘要:WAF 规则调优围绕四个方向展开——收紧(防漏报)、放宽(防误报)、细化(按业务差异化)、精简(提升性能)。调优要有数据支撑,遵循"小范围调整 → 观察 → 全量应用"的闭环。本文讲清调优的方法论、常见手段和定期复核机制。

一、规则不是配一次就完事
业务在变、攻击手法在变、流量特征也在变。三个月前配好的规则,今天可能既误杀了新业务,又拦不住新攻击。定期调优是 WAF 保持有效的前提。
二、调优的四个方向
2.1 收紧:解决漏报
攻击被打进来了,或者日志显示大量攻击处于”放行”状态,说明规则太松。
收紧手段:
├─ 提高检测强度(从"宽松"调到"严格")
├─ 降低频率阈值
├─ 新增针对性的自定义规则
├─ 开启之前关闭的防护模块
└─ 把"观察"模式改为"拦截"
2.2 放宽:解决误报
正常业务被拦了,说明规则太严。但请注意:放宽要精准放宽,而不是整体降级。
放宽手段:
├─ 对特定 URI 关闭特定检测
├─ 对特定字段加入免检列表
├─ 提高频率阈值
├─ 把"拦截"改为"验证"(放行真人)
└─ 添加精准的条件白名单
2.3 细化:按业务差异化
同一个站不同页面的”正常”标准完全不同,用一套规则必然不精准。
| 页面类型 | 调优思路 |
|---|---|
| 首页/列表页 | 频率可稍宽,重点防 CC |
| 搜索页 | 参数允许特殊字符,但限制频率 |
| 登录页 | 严格限速 + 强制验证 |
| 富文本提交 | 关闭字符串级 XSS 检测,改语义分析 |
| API 接口 | 改用 Token 鉴权,不做 UA/频率强限 |
| 后台路径 | 白名单访问,不做通用检测 |
2.4 精简:提升性能
规则不是越多越好。冗余、冲突、失效的规则会拖慢检测速度。
- 删除长期未命中的自定义规则
- 合并逻辑相同的重复规则
- 把高频匹配的规则放在前面
- 避免复杂的正则表达式(性能开销大)
- 定期评估每条规则的实际价值
三、调优的数据依据
| 数据来源 | 能回答什么问题 |
|---|---|
| 拦截日志 | 哪些规则在起作用,哪些误拦 |
| 攻击类型报表 | 主要威胁是什么,防护有没有偏 |
| 放行日志 | 哪些攻击没被拦住(漏报) |
| 业务数据 | 有没有影响转化(误报) |
| 用户反馈 | 体验问题,验证码是否太频繁 |
| 性能监控 | 规则是否影响响应时间 |
四、调优操作的标准流程
- 收集数据:连续观察一周的日志和报表
- 识别问题:列出误报清单和漏报清单
- 制定方案:针对每个问题确定调整手段
- 小范围验证:先在单个域名或单条 URI 上试
- 观察效果:跑 3 天,看误报/漏报是否改善
- 全量应用:确认无误后推广到所有域名
- 记录归档:把改动和原因记录下来
五、几个实用调优示例
示例 1:搜索接口误报
问题:用户在搜索框输入 "1' or '1"(正常测试)被拦
调优:
URI = /search 的 q 参数 → 关闭 SQL 注入字符检测
但保留:频率限制 30 次/分钟
→ 误报消除,防 CC 能力保留
示例 2:登录接口漏报
问题:攻击者用 500 个 IP 低速爆破,未被拦
调优:
URI = /wp-login.php → 失败 3 次强制验证码
叠加:JA3 指纹识别,脚本一律拒绝
→ 低速爆破被有效遏制
示例 3:图片站被刷流量
问题:单 IP 反复下载大图,消耗带宽
调优:
URI 前缀 /images/ → 单 IP 100 次/分钟
开启防盗链:校验 Referer
→ 带宽恢复正常
六、定期复核机制
建议节奏:
├─ 每周:查看报表,处理新增误报
├─ 每月:评估规则命中率,清理低效规则
├─ 每季度:全面复盘,重新评估阈值
└─ 每次业务改版:同步检查规则是否需要调整
复核清单:
□ 有哪些规则从未命中?→ 考虑删除
□ 有哪些规则命中率极高?→ 确认是否为攻击
□ 阈值是否还符合当前业务量?→ 调整
□ 白名单是否还有效?→ 清理过期项
七、小结
WAF 规则调优是一个”数据驱动 + 持续迭代”的过程。围绕收紧、放宽、细化、精简四个方向,用日志和报表作为依据,遵循”小范围验证再全量推广”的安全节奏,配合周/月/季度的定期复核,就能让 WAF 在不断变化的业务和攻击环境中保持精准。
