Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

216
Vistas
¿Hay alguna función en ModSecurity para establecer una expresión regular de parámetros relevantes como la opción SecAuditLogRelevantStatus?

Estoy usando ModSecuity con mi servidor Apache y quiero configurarlo para que no registre solicitudes que tengan un parámetro determinado en la cadena de consulta.

En mod_secuirty.conf, tengo las siguientes configuraciones:

 SecAuditEngine RelevantOnly SecAuditLogRelevantStatus "^(?:5|4(?!04))"

Y quiero configurar algo como SecAuditLogRelevantParameter "?! (prueba)" (para registrar cualquier solicitud que no tenga el parámetro de prueba ).

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

mod_security2 para Apache admite ctl:auditLogParts y ctl:auditLogEngine (nota: libmodsecurity3 no admite auditLogEngine para ctl ). Por lo tanto, puede crear una regla que apague el motor de auditoría o modificar las partes del registro. Creo que desea desactivarlo, por lo que, según su solicitud, necesita algo como esto:

 SecAction "id:111001,\ phase:1,\ nolog,\ pass,\ t:none,\ setvar:tx.args_contains_test=0" SecRule ARGS_NAMES "@rx test" \ "id:111002,\ phase:2,\ pass,\ nolog,\ t:lowercase, setvar:'tx.args_contains_test=1'" SecRule TX:args_contains_tests "@lt 1" "id:111003,\ phase:2,\ pass,\ nolog,\ ctl:auditLogEngine=Off"

Coloque estas reglas al principio de su conjunto de reglas; si usa CRS, entonces REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf es una buena opción.

¿Cómo funciona esta exclusión?

Como escribió anteriormente, la condición es "cualquier solicitud que no tenga el parámetro de prueba" . Esto no es tan trivial, porque debe verificar que algo no exista , por lo tanto, debe inspeccionar todos los argumentos.

En ModSecurity, puede hacerlo solo de esta manera: primero, debe configurar una variable de transacción, que almacena la información, la solicitud contiene cualquier argumento con nombre de test o no. Esa es la primera (y única) SecAction .

@rx test es un operador ModSecurity y su argumento, que verifica la colección ARGS_NAMES . Esta colección contiene todos los argumentos de la solicitud. La regla 111002 verifica todos los nombres de los argumentos y, si hay alguna variable con un nombre como test (coincidencias de expresiones regulares), cambia la variable TX.

La regla 111003 comprueba la variable TX y, si es 1, desactiva el motor auditLog para la transacción actual . Eso es todo.

Tenga en cuenta que el operador @rx entre mayúsculas y minúsculas , por eso está ahí la t:lowercase .

También tenga en cuenta que los dos SecRule ejecutaron en phase:2 . Si desea verificar el parámetro GET, debe mover esta regla a la phase:1 . Si desea verificar todas las variables posibles, debe duplicar esta regla: una para la phase:1 y la otra para la phase:2 , ¡con una identificación única!

Si desea desactivar auditLogEngine con un parámetro QUERY_STRING, p. http://example.com/form.cgi?test=1 , entonces la solución es más simple, pero cualquiera puede apagar de esta manera:

 SecRule REQUEST_URI "@endsWith test=1" \ "id:111001,\ phase:1,\ pass,\ nolog,\ t:lowercase,\ ctl:auditLogEngine=Off"
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda