OWASP 规则集管理
2026/6/30大约 6 分钟
OWASP 规则集管理
功能简介
OWASP 核心规则集(CRS)在线管理页面,用于管理 SamWaf 内置的 OWASP CRS(基于 Coraza 引擎)规则。它把规则查看、调参、命中统计、在线升级、沙盒测试、变更记录和使用说明整合在一个页面,通过顶部的标签页(Tab)切换。
支持的能力包括:规则列表查看、启用 / 禁用 / 改写规则、阈值与 PL(Paranoia Level,偏执级别)调整、在线升级(保留用户改动)、沙盒测试、命中统计与使用说明。
页面共有 7 个标签页:规则管理、调参、命中统计、在线升级、沙盒测试、变更记录、使用说明。
标签页说明
一、规则管理
查看与管理每一条 CRS 规则。
- 筛选:可按所属文件、严重级别、PL、状态(默认 / 已禁用 / 已改写)筛选,也可用关键字 / 规则 ID / 描述搜索;支持「我的改动」只看自己改过的规则,以及「热重载」让改动立即生效。
- 操作:对单条规则可执行 查看 / 启用 / 禁用 / 改写 / 还原。
- 禁用:会在
overrides/10-disabled-rules.conf中添加SecRuleRemoveById,不修改原始规则文件,热重载后生效。 - 改写:使用 Coraza / ModSecurity 语法编辑规则内容,保存后写入
overrides/20-custom-rules.conf,上游升级不会覆盖。 - AI 分析:可将规则内容与元数据发送给 AI 助手,解释该规则的防护意图、触发条件与可能的误报场景(发送前请确认内容)。
- 禁用:会在
- 字段含义:详情中提供规则 ID、执行阶段(Phase 1~5)、严重级别、Paranoia Level、标签、描述、指令类型等说明。
二、调参
调整规则引擎的整体行为与阈值。SamWaf 默认配置已比官方更宽松以降低误报,修改后会自动热重载生效。
主要参数:
- 引擎模式:开启拦截(On)/ 仅观察(DetectionOnly)/ 关闭(Off)。
- 拦截 Paranoia 级别:范围 1-4,级别越高越严格,默认 1。
- 检测 Paranoia 级别:必须 ≥ 拦截 PL,大于拦截 PL 的规则仅记录不拦截,默认 2。
- 入站 / 出站 Anomaly 阈值:累计风险分达到该值才触发拦截。入站官方默认 5、SamWaf 默认更宽松;出站默认 4。
- 提前拦截(early_blocking):开启后会额外在 Phase 1(仅读完请求头)再做一次评估。无论开关状态,Phase 2(读完请求体后)的标准拦截始终生效。
- 请求体大小上限 / 内存处理上限 / 检测字节上限:控制 Coraza 缓冲与检测的请求体大小,单位字节,
0多为使用默认值。 - CRS 事务变量(tx.*):以
SecAction setvar形式写入overrides/00-tuning.conf,比直接改写规则更安全,升级 CRS 时不会丢失。
若只想对特定 URL 或 IP 跳过 OWASP 检测,无需修改全局参数,可前往「URL 白名单」或「IP 白名单」配置。
三、命中统计
统计运行期间(重启清零)各规则的命中次数,帮助识别高频误报规则,为禁用或调参提供依据。
- 可按总次数 / 拦截次数 / 观察次数排序,并查看总拦截、总观察、命中最多规则等汇总。
- 列表展示严重程度、规则说明、总命中、拦截、观察、最后命中等。
- 支持「清空统计」(操作不可恢复),以及从某条规则直接「查看规则」跳转到规则管理。
四、在线升级
通过 SamWaf 升级服务器拉取最新规则包。升级会保留您已改写的规则 ID,仅更新上游版本。
- 显示当前版本、最新版本、是否需要更新、最后检查时间与更新说明。
- 点击 检查更新 比对版本,点击 立即升级 在后台执行升级,完成后通过消息推送通知。
五、沙盒测试
构造一次 HTTP 请求,直接喂给当前 Coraza 实例,查看命中的规则与 anomaly 分,用于验证调参或改写效果。
- 可填写方法、URL、头部(每行一个
Key: Value)、Body,也可「加载示例」。 - 运行后展示结果:是否拦截、拦截累计分、检测累计分、拦截阈值,以及命中规则明细(级别、分值、是否计入拦截、阶段、规则消息、规则文件)。
- 结果中可直接对命中规则执行 禁用 / 改写,并给出诊断提示(如命中但未达阈值、因 PL 过滤未计入拦截分等)。
六、变更记录
记录通过 SamWaf 界面或 API 发起的规则操作(手动编辑文件不会写入此记录)。
- 列表包含时间、规则 ID、操作类型(禁用 / 启用 / 改写 / 还原 / 调参)、规则来源文件、备注。
- 可刷新,并从记录跳转到对应规则。
七、使用说明
页面内置的使用说明,介绍 OWASP CRS 的概念与本页各功能的用法。
字段说明
调参核心概念
| 概念 | 说明 |
|---|---|
| 引擎模式 | On=正常拦截;DetectionOnly=只记录不拦截(灰度观察);Off=完全关闭 Coraza。 |
| Paranoia Level(PL,偏执级别) | 规则严格度档位,1~4。PL 越高规则越多、检测越严,但误报也越多。SamWaf 拆为「拦截 PL」与「检测 PL」。 |
| 拦截 PL | 实际触发拦截的档位,默认 1。 |
| 检测 PL | 可观察命中但不拦截的档位,用于灰度评估,必须 ≥ 拦截 PL,默认 2。 |
| Anomaly Score(累计风险分) | CRS 按规则严重级别累加分值,总分超过阈值才真正拦截(CRITICAL=+5、ERROR=+4、WARNING=+3、NOTICE=+2)。 |
| 入站阈值 | 请求侧累计分超过该值触发拦截,官方默认 5。 |
| 出站阈值 | 响应侧(泄漏 / 报错等)累计分阈值,默认 4。 |
| 提前拦截 | 是否在 Phase 1(读请求头时)额外评估一次;Phase 2 标准拦截始终生效。 |
规则状态
| 状态 | 说明 |
|---|---|
| 默认 | 使用上游 CRS 的原始规则,未做改动。 |
| 已禁用 | 已通过 SecRuleRemoveById 移除(写入 overrides/10-disabled-rules.conf)。 |
| 已改写 | 已用自定义内容覆盖(写入 overrides/20-custom-rules.conf,升级不覆盖)。 |
常见问题
- 改写 / 禁用规则后会被升级覆盖吗? 不会。用户改动写入
overrides/下的独立配置文件,在线升级仅更新上游规则包并保留你的改动。 - 命中统计为什么是空的? 需要有请求经过 OWASP 检测后才会产生数据,且统计在重启后清零。
- 怎样在不改全局参数的情况下放行某些请求? 使用「URL 白名单」或「IP 白名单」对特定 URL / IP 跳过 OWASP 检测。
- 调参后需要重启吗? 不需要,调参与规则改动修改后会自动热重载生效。
