mod_security - Límites de PCRE excedidos


11

Casi en cada solicitud recibo el siguiente error:

Rule execution error - PCRE limits exceeded (-8): (null).

Después de un montón de googlear, las únicas soluciones parecen ser

a) Agregue lo siguiente en su httpd.conf

SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

b) Agregue lo siguiente a su php.ini

pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000

c) Use una versión que fue compilada con la -disable-pcre-match-limitopción.


Estoy ejecutando lo siguiente:

ModSecurity para Apache / 2.5.12 ( http://www.modsecurity.org/ ).

Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + squeeze8 con Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8

Para ModSec mis reglas, estoy usando la versión 2.2.3 del Proyecto de conjunto de reglas centrales (CRS) OWASP ModSecurity, que es la más reciente a partir de esta publicación.

Mi httpd.conf consiste esencialmente en:

<IfModule security2_module>
    SecUploadDir /var/asl/data/suspicious
    SecDataDir /var/asl/data/msa
    SecTmpDir /tmp
    SecAuditLogStorageDir /var/asl/data/audit

    Include modsecurity.d/modsecurity_crs_10_config.conf
    Include modsecurity.d/activated_rules/*.conf

    SecRuleEngine On

    # Debug log
    SecDebugLog /var/log/apache2/modsec_debug.log
    SecDebugLogLevel 3

    # Serial audit log
    SecAuditEngine RelevantOnly
    SecAuditLogRelevantStatus ^5
    SecAuditLogParts ABIFHZ
    SecAuditLogType Serial
    SecAuditLog /var/log/apache2/modsec_audit.log

    SecPcreMatchLimit 150000
    SecPcreMatchLimitRecursion 150000

</IfModule>


<IfModule mod_php5.c>
    php_admin_flag pcre.backtrack_limit 10000000
    php_admin_flag pcre.recursion_limit 10000000
</IfModule>

De las cuales dentro de mi modsecurity.ddirectorio se encuentran todas las reglas predeterminadas que CRS tiene en su archivo de instalación. También he establecido los límites de pcre en 150000000 y 100000000000 y más, pero no disponible.

Entonces en conclusión:

soluciones ay bno funcionan, y prefiero no hacerlo c... ya que realmente no entiendo / me gusta compilar.

¿Alguien tiene alguna otra idea?


También tengo esto usando las últimas reglas básicas y el código fuente mod_security que acabo de descargar. Recibo estos errores para una aplicación Rails, no para PHP.
Dogweather

Respuestas:


7

¡Santa recursión, Batman!

Afirmo que tienes algo mal con tus reglas de mod_security. Ese tipo de recursión parece ser innecesario y probablemente causará una carga seria para su servidor. Arregle las reglas y / o la configuración de Apache, y no intente "arreglar" este problema con números arbitrariamente grandes.


4

Al observar esto de cerca, tengo exactamente el mismo problema y su configuración se parece a la mía. Soy el primer contador de tiempo para la modseguridad, ¡no es exactamente amigable para los novatos!

De acuerdo con Janne. El único consejo que tengo hasta ahora es eliminar todas las reglas básicas y volver a introducirlas 1 por 1 para comenzar a reducir el problema. Estoy a punto de hacer eso ahora.

También debe cambiar la configuración del motor de reglas a

SecRuleEngine DetectionOnly

mientras trabaja a través de problemas de configuración, esto le permitirá monitorear sin aplicar: no desea hacer cumplir las reglas mientras todavía no está seguro de que estén haciendo lo que desea.

Vuelva a publicar sus aprendizajes si encuentra una solución.


0
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

Debe encontrarse y modificarse en los archivos de configuración mod_security en algunas versiones * nix.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.