首页/安全/安全设备配置速查/CRS 防护等级(Paranoia Level)
WAF 防护73 条

CRS 防护等级(Paranoia Level)

CRS 提供 PL1 至 PL4 四个防护等级,等级越高拦截越严、误报越多;多数生产环境从 PL1 起步。

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

防护等级决定启用范围

OWASP CRS 是 ModSecurity 等 WAF 引擎上最常用的通用规则集,防护等级(Paranoia Level,PL)决定启用范围:PL1 只跑基础规则,PL2 到 PL4 逐级加入对异常编码、非常规字符、严格协议合规等容易误报但更严格的检查。等级越高拦得越严,误报也越多,绝大多数生产站点从 PL1 起步。

和异常评分的关系

PL 决定跑哪些规则,异常评分决定命中多少条才拦截:CRS 把命中的规则按严重度累加分数,达到阈值才拦(入站默认 5 分)。升 PL 之后,同一个请求可能多命中几条低危规则、更快触达阈值,这就是升等级后误报容易集中爆发的原因。理解这两层机制,才能在升等级前预判影响面。

基本信息

规则集OWASP CRS,配合 ModSecurity 或兼容引擎
等级范围PL1(最宽松)至 PL4(最严格)
配置位置crs-setup.conf 中的 900000 系列 SecAction
默认建议生产站点从 PL1 起步,按业务逐步提升

典型使用场景

  • 新站点接入 CRS,先用 PL1 观察误报分布
  • 支付、登录、后台等高价值业务逐步升到 PL2
  • 审计要求证明防护强度可调且有依据
  • 升级 CRS 版本后回归确认等级设置未被动过
  • 多站点共用一套规则集时,按站点区分等级

配置示例

配置示例
# 设置防护等级为 PL1,写显式比依赖默认值更利于审计
SecAction "id:900000,phase:1,nolog,pass,t:none,setvar:tx.paranoia_level=1"

# 升到 PL2 只改数值,热加载或重启 WAF 后生效
# 变量名与规则 id 以所用 CRS 版本为准

等级与适用

等级启用范围误报成本适用场景
PL1基础规则集低大多数生产站点
PL2加入更严格的编码与协议校验中,需要调优高价值业务
PL3进一步加入严格规则高,通常需专人调优高安全要求站点
PL4覆盖面最大,规则最严很高特殊场景,谨慎使用
升级防护等级与升级 CRS 版本要分开做:一次只变一个变量,误报出现时才容易归因。
等级越高,日志里记录每条规则的分数贡献就越重要:没有分数明细,调优只能靠猜。
从 PL1 直接跳到 PL3、PL4 会产生大量误报,值班团队疲于加例外,真实攻击反而被噪声淹没。

易错点

  • 等级写在默认配置里又被自定义文件覆盖,以为已提升实际未生效
  • 直接上 PL3/PL4,误报爆炸后靠大量例外压制,防护覆盖反被削弱
  • 升等级不做回归验证,业务接口被误拦后才回头排查
  • 每次升级 CRS 都顺手改等级,缺少变更记录,出问题无法归因
  • 只升等级不看告警的分数构成,误报成因定位不到具体规则
  • 只看等级数值不看实际命中情况,防护强度没有证据支撑

数据来源与参考

  • OWASP CRS 官方文档:Paranoia Level
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌