mod_security - limites de PCRE excedidos

11

Em todas as solicitações, estou recebendo o seguinte erro:

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

Depois de várias pesquisas, as únicas soluções parecem ser

a) Adicione o seguinte no seu httpd.conf

SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

b) Adicione o seguinte ao seu php.ini

pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000

c) Use uma versão que foi compilada com a opção -disable-pcre-match-limit .

Estou executando o seguinte:

ModSecurity para Apache / 2.5.12 ( link ).

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

Para o ModSec minhas regras, estou usando a versão 2.2.3 do Projeto de Conjunto de Regras Principais (CRS) do OWASP ModSecurity Core, que é a mais nova a partir desta publicação.

Meu httpd.conf consiste essencialmente em:

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

Dos quais dentro do meu diretório modsecurity.d é apenas todas as regras padrão que o CRS tem em seu arquivo de instalação. Eu também defini os limites do pcre para 150000000 e 100000000000 e mais, mas não disponível.

Então, em conclusão:

as soluções a e b não estão funcionando, e eu prefiro não fazer c ... pois eu realmente não entendo / gosto de compilar.

Alguém tem alguma outra ideia?

    
por ParoX 08.03.2012 / 05:16

3 respostas

7

Recursão Sagrada, Batman!

Eu afirmo que você tem algo errado com as regras do mod_security. Esse tipo de recursão parece ser desnecessário e provavelmente causará uma carga séria em seu servidor. Corrigir as regras e / ou configuração do Apache, e não tente "corrigir" este problema com números arbitrariamente grandes.

    
por 08.03.2012 / 09:07
3

Observando isso de perto, pois tenho exatamente o mesmo problema e sua configuração é semelhante à minha. Eu sou um primeiro temporizador para modsecurity, não é exatamente noob amigável!

Concorde com o Janne. O único conselho que tenho até agora é remover todas as regras básicas e reintroduzi-las 1 por 1 para começar a reduzir o problema. Estou prestes a fazer isso agora.

Além disso, você deve alterar a configuração do mecanismo de regras para

SecRuleEngine DetectionOnly

enquanto trabalhava através de questões de configuração, isso permitirá que você monitore sem impor -. Você não quer fazer cumprir as regras, enquanto você ainda não tem certeza de que eles estão fazendo o que você quer

Por favor, poste de volta com seus aprendizados, se você encontrar uma solução.

    
por 08.03.2012 / 13:06
0
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

O deve ser encontrado e alterado em arquivos de configuração mod_security em algumas versões * nix.

    
por 04.06.2018 / 11:10