coreruleset / coreruleset/documentation
Add a new known issue for replacement phase 1 rules
@RedXanadu is already working on this.
Since Jan 23, 2023.
- Dominant language
- JavaScript
- Stars
- 6
- Forks
- 23
- Avg merge
- 47m
- Merged PRs (30d)
- 1
Description
If completely replacing a CRS phase 1 rule (not just updating a rule target etc. but completely replacing a rule, i.e. the operator is being modified) then this cannot occur in the REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf file because any anomaly scoring will be wiped and set to 0 immediately after when REQUEST-901-INITIALIZATION.conf executes.
RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf is also no good as the replacement rule needs to come before REQUEST-949-BLOCKING-EVALUATION.conf/RESPONSE-959-BLOCKING-EVALUATION.conf so that the replacement rule correctly contributes to anomaly scoring totals. Otherwise, things like early blocking mode can start to break.
Document corner case as a known issue.
Include two ideas as solutions:
- SecRuleRemoveById and then add new rule, all after the
includes - Add in a custom
REQUEST-902-CUSTOM-RULES-POST-INITfile, or something similar, if there are going to be many such replacement rules
Reference: https://github.com/coreruleset/coreruleset/pull/2878
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.