Skip to content

Add modsecurity log vars#374

Open
meirdev wants to merge 7 commits into
owasp-modsecurity:masterfrom
meirdev:add-modsecurity-log-vars
Open

Add modsecurity log vars#374
meirdev wants to merge 7 commits into
owasp-modsecurity:masterfrom
meirdev:add-modsecurity-log-vars

Conversation

@meirdev
Copy link
Copy Markdown

@meirdev meirdev commented Apr 22, 2026

what

Add two variables to the module: $modsecurity_intervention and $modsecurity_triggered_rules.

  • $modsecurity_intervention: set to 1 if ModSecurity triggered a disruptive intervention.
  • $modsecurity_triggered_rules: a comma-separated list of matched rule IDs.

why

NGINX logs already contain a lot of useful data, but they don't include ModSecurity events. That makes it hard to correlate what you see in NGINX logs with what shows up in ModSecurity audit logs.

If you're sending logs to an "append-only" databsae, theres no easy way to correlate the two later. And trying to sync them beforehand usually means building a complex buffering and matching system.

meirdev added 3 commits April 22, 2026 00:23
Adds two nginx variables usable in log_format / access_log:
- $modsecurity_intervention: "1" if ModSecurity intervened, "0" otherwise
- $modsecurity_triggered_rules: comma-separated IDs of all matched rules
@airween
Copy link
Copy Markdown
Member

airween commented May 4, 2026

@meirdev: could you merge your branch with the current master? @Easton97-Jens fixed the workflow test, probably your PR will be okay now.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds two nginx variables to the ModSecurity-nginx connector to improve correlation between nginx access logs and ModSecurity activity: $modsecurity_intervention (disruptive intervention flag) and $modsecurity_triggered_rules (matched rule IDs).

Changes:

  • Registers two new nginx variables and exposes per-request values from the ModSecurity transaction/context.
  • Tracks whether an intervention was triggered and formats triggered rule IDs into a comma-separated string.
  • Adds a dedicated nginx-tests Perl test and documents the variables in README.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/ngx_http_modsecurity_module.c Adds variable registration + variable getters; sets ctx->intervention_triggered on intervention.
tests/modsecurity-log-vars.t New nginx-tests coverage for both variables across pass/log-only/multi/allow/deny/redirect scenarios.
README.md Documents the new variables and provides a sample log_format usage snippet.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/ngx_http_modsecurity_module.c
Comment thread src/ngx_http_modsecurity_module.c Outdated
Comment thread src/ngx_http_modsecurity_module.c
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants