Я использую mod_security 2.6.3 и хотел бы иметь возможность выполнять сценарий оболочки на основе уровня важности правила.Я использую основной набор правил (CRS), который устанавливает уровень серьезности 2 (для «критического») при обнаружении атаки.
Я хотел бы выполнить свой сценарий всякий раз, когда серьезность достаточно высока.
Я пытался использовать настройку SecDefaultAction
, например:
SecDefaultAction "phase:2,log,deny,status:403,exec:/path/to/my/script"
Но поскольку действие 'exec' является «неразрушающим», оно всегда выполняется независимо от того,критическое или некритическое правило триггерно.
Я мог бы пройтись по каждому критическому SecRule
и добавить рядом с ним «exec», но это было бы утомительно (и повторяюще, и некрасиво).
Я думал, что мог бы сделать что-то вроде:
SecRule ENV:SEVERITY "@lt 4" "exec:/path/to/my/script"
Но каким-то образом это никогда не выполняется, возможно потому, что у критических правил есть оператор блокировки или запрета, который останавливает обработку правил (так как считается разрушительным).
Я также пытался использовать функцию оценки аномалий CRS, например:
SecRule TX:ANOMALY_SCORE "@ge 4" "exec:/path/to/my/script"
Но она все равно не обрабатывается.Есть идеи о том, как я могу это сделать?