Назад | Перейти на главную страницу

Может ли mod_security регистрировать только сработавшие правила, если запрос был заблокирован?

Я установил mod_security и сейчас работаю в DetectionOnly режим, поскольку я отслеживаю журналы и настраиваю их в соответствии с потребностями моих серверов.

Я настроил его для оценки аномалий и соответствующим образом скорректировал свои оценки, чтобы уменьшить количество ложных срабатываний.

В Apache2 error_log Я получаю такие события журнала:

[Fri May 01 14:48:48 2015] [error] [client 81.138.5.14] ModSecurity: Warning. Operator LT matched 20 at TX:inbound_anomaly_score. [file "/etc/apache2/modsecurity-crs/activated_rules/modsecurity_crs_60_correlation.conf"] [line "33"] [id "981203"] [msg "Inbound Anomaly Score (Total Inbound Score: 13, SQLi=11, XSS=): Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded"] [hostname "www.domain.co.uk"] [uri "/wp-admin/admin-ajax.php"] [unique_id "VUOEQNRurOYAABA-HZEAAAAA"]

Эти события не превышают мою настроенную оценку входящей аномалии, которая в настоящее время установлена ​​на 20. Я могу регистрировать такие события примерно 25 раз при загрузке одной страницы, что приводит к раздуванию моего Apache2. error_log.

Есть ли способ ограничить то, что отправляется error_log чтобы регистрировались только аномалии, превышающие мой лимит?

Цель

Здесь я пытаюсь добиться двух вещей. Я хочу сохранить error_log как можно более чистым, чтобы он не надулся и не занимал слишком много места.

Я также хочу иметь возможность просматривать и отслеживать эти журналы, чтобы продолжить текущую настройку mod_security. В идеале он просто показывал бы события, которые превысили предел аномалий, чтобы я мог видеть, являются ли они ложными срабатываниями или нет.

Спасибо.

Правило таково:

SecRule TX:INBOUND_ANOMALY_SCORE "@gt 0" \
    "chain,phase:5,id:'981203',t:none,log,noauditlog,pass,skipAfter:END_CORRELATION,msg:'Inbound Anomaly Score (Total Inbound Score: %{TX.INBOUND_ANOMALY_SCORE}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}): %{tx.inbound_tx_msg}'"
    SecRule TX:INBOUND_ANOMALY_SCORE "@lt %{tx.inbound_anomaly_score_level}"

который в основном говорит, что если оценка выше 0, но ниже tx.inbound_anomaly_score_level, тогда зарегистрируйте его. Предположительно, чтобы вы могли просмотреть правила, которые сработали, но которых недостаточно для блокировки.

Если это правило не очень полезно для вас, может быть, лучше просто удалить его полностью, чтобы не тратить время на тестирование, запускать его или нет:

SecRuleRemoveById 981203

Обратите внимание, что это должно быть указано ПОСЛЕ определения правила.

Удаление правил таким способом обычно лучше, чем фактическое редактирование файлов CRS, чтобы упростить будущие обновления.