WAF 防护73 条

WAF 自定义规则

按业务特征编写规则(参数取值、路径特征、访问序列),补充通用规则覆盖不到的场景。

安全设备配置速查安全更新于 2026-10-13

什么时候需要自定义规则

通用规则集覆盖的是公认的攻击特征,覆盖不了业务特有问题:某个导出接口被批量滥用、某类参数取值在正常业务里根本不会出现、某个访问序列只可能来自脚本。这类场景只能靠按业务特征编写的自定义规则来补。

一条好维护的规则写什么

自定义规则应该写清三件事:匹配条件、动作、生效范围,再加一条备注说明它为什么存在。临时规则要设有效期,规则本身要进版本管理与配置备份,否则半年后没人说得清它为什么还在生效、能不能删。

基本信息

适用场景业务特有问题、临时风险、合规要求
规则要素匹配条件 + 动作 + 生效范围
管理要求命名规范、备注原因、定期复核
验证方式先在观察模式验证误报,再切换拦截

典型使用场景

  • 导出接口被批量拉取,需要频率与容量约束
  • 业务参数出现明显异常取值(如超长、非法字符)
  • 来源 IP 或用户代理特征稳定的异常访问
  • 临时封堵某个正在被利用的接口路径
  • 合规要求对特定接口做访问限制
  • 新接口上线但通用规则覆盖不到其业务逻辑

规则结构示意

规则结构示意
条件:请求路径匹配 /export/* 且频率超过阈值
动作:告警并限速(不直接阻断,先观察)
范围:仅生产环境,仅该业务域名
备注:防止批量导出滥用,提出人 / 日期 / 复核时间

要素与风险

要素写不好时的风险
匹配条件条件过宽会拦正常业务,过窄则形同虚设
动作直接阻断上线,一次误报即业务中断
生效范围范围写错会波及无关域名或环境
备注与期限无人知道来由,规则长期无人清理
自定义规则纳入版本管理,与配置备份一起保留:规则也是一种配置资产,丢了重建成本很高。
规则条件写太宽会拦截正常业务,必须先在观察模式验证命中与误报,再决定是否开启阻断。
临时规则设有效期并由系统提醒复核:一条没人记得的规则,比没有规则更危险。

易错点

  • 临时规则不设有效期,长期生效且无人记得原因
  • 规则条件写太宽会拦截正常业务,必须先观察模式验证
  • 命名与备注缺失,交接时没人敢删也不敢改
  • 自定义规则与托管规则冲突时排查顺序不清
  • 规则加完不定期复核,业务迭代后误报悄悄回归

数据来源与参考

  • ModSecurity 参考手册(规则语法)
  • OWASP CRS 自定义规则指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌