Summary
Add the ability to create a policy seeded with application-specific default rule
exclusions (e.g. WordPress, Nextcloud) so an admin can stand up a sane, low-FP
policy for a common app without hand-tuning CRS.
OWASP CRS 4.x already ships official exclusion packages for: cPanel, DokuWiki,
Drupal, Nextcloud, phpBB, phpMyAdmin, WordPress, XenForo. This feature packages
those existing exclusions as selectable "profiles" — it does not invent new rules.
See notes/decisions/crs-open-questions.md
§1, §2, §5 for prior thinking.
Motivation
- CRS + a real app (especially WordPress) produces many false positives out of the box.
- Tuning is normally weeks of work on production traffic; an app profile gives a
reasonable starting point in one click.
- Demonstrates the project's management value: the before/after FP delta of applying
a profile is exactly the kind of tuning-workflow evidence the thesis evaluation wants
(reported as a relative delta, not an absolute SLO — see README.testing.md).
Scope
Out of scope
- Authoring new exclusion packages for apps CRS doesn't cover (Joomla, Moodle,
Gitea, …) — separate future-work item (crs-open-questions §5).
- Questionnaire-driven / LLM-assisted exclusion suggestion (crs-open-questions §2) —
separate item.
Notes
- Verify which CRS version the pinned submodule bundles; the exclusion plugins moved to
a separate coreruleset/plugins repo in CRS 4 — wiring may need that plugin set.
- Per-variable vs per-rule granularity is tracked separately (crs-open-questions §3);
profiles use whatever granularity the upstream CRS package ships.
Post-MVP — not required for the thesis MVP. The MVP already supports manual
per-rule overrides; this is a convenience layer on top.
Summary
Add the ability to create a policy seeded with application-specific default rule
exclusions (e.g. WordPress, Nextcloud) so an admin can stand up a sane, low-FP
policy for a common app without hand-tuning CRS.
OWASP CRS 4.x already ships official exclusion packages for: cPanel, DokuWiki,
Drupal, Nextcloud, phpBB, phpMyAdmin, WordPress, XenForo. This feature packages
those existing exclusions as selectable "profiles" — it does not invent new rules.
See
notes/decisions/crs-open-questions.md§1, §2, §5 for prior thinking.
Motivation
reasonable starting point in one click.
a profile is exactly the kind of tuning-workflow evidence the thesis evaluation wants
(reported as a relative delta, not an absolute SLO — see
README.testing.md).Scope
(
generic= no app exclusions, pluswordpress,nextcloud, … as available)exclusion set + base CRS config)
still requires tuning
Out of scope
Gitea, …) — separate future-work item (crs-open-questions §5).
separate item.
Notes
a separate
coreruleset/pluginsrepo in CRS 4 — wiring may need that plugin set.profiles use whatever granularity the upstream CRS package ships.
Post-MVP — not required for the thesis MVP. The MVP already supports manual
per-rule overrides; this is a convenience layer on top.