¿Mod_security solo puede registrar reglas activadas si la solicitud fue bloqueada?

¿Mod_security solo puede registrar reglas activadas si la solicitud fue bloqueada?

Instalé mod_security y actualmente estoy ejecutando en DetectionOnlymodo mientras superviso los registros y configuro para satisfacer las necesidades de mis servidores.

Lo configuré para la puntuación de anomalías y modifiqué mis puntuaciones en consecuencia para reducir los falsos positivos.

En Apache2 error_logrecibo eventos de registro como este:

[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"]

Estos eventos no exceden mi puntaje de anomalía entrante configurado, que actualmente está establecido en 20. Puedo registrar eventos de este tipo alrededor de 25 veces en una sola carga de página, lo que infla mi Apache2 error_log.

¿Existe alguna forma de limitar lo que se envía para error_logque solo se registren las anomalías que excedan mi límite?

El objetivo

Estoy tratando de lograr dos cosas aquí. Quiero mantenerlo lo error_logmás limpio posible para que no se infle y ocupe demasiado espacio.

También quiero poder revisar y monitorear estos registros para continuar con mi configuración actual de mod_security. Idealmente, solo mostraría eventos que excedieron el límite de anomalía, para poder ver si son falsos positivos o no.

Gracias.

Respuesta1

La regla es la siguiente:

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}"

que básicamente dice que si la puntuación está por encima de 0 pero por debajo de tx.inbound_anomaly_score_level, regístrela. Presumiblemente para que pueda revisar las reglas que se activaron pero no lo suficiente como para bloquear.

Si esta regla no es muy útil para usted, tal vez sea mejor eliminarla por completo para no perder el tiempo probando si ejecutarla o no:

SecRuleRemoveById 981203

Tenga en cuenta que esto debe especificarse DESPUÉS de que se defina la regla.

Eliminar las reglas de esta manera suele ser mejor que editar los archivos CRS para facilitar futuras actualizaciones.

información relacionada