Mod Segurança ctl: ruleEngine = Off Whitelist Falha na Fase 1 [closed]

3

mod_security com regras customizadas e whitelists em arquivos .conf separados - Apache 2.2, modsec 2.8

Regra de lista de permissões:

SecRule REMOTE_ADDR "^10\.10\.10\.10" phase:1,nolog,allow,ctl:ruleEngine=Off,id:104008

Se uma solicitação for enviada ao servidor que inclui, por exemplo /?abc=../../ , em seguida, o modsec permite a requisição somente a partir de 10.10.10.10, caso contrário, ele nega a solicitação na Fase 2 com um 403, como seria de se esperar (devido a nossas regras instaladas)

Eu tenho um cliente que usa um sistema de gerenciamento remoto do WorPress (que está sendo representado aqui como 10.10.10.10), mas esse sistema envia determinadas solicitações POST que contêm Content-Length cabeçalhos, mas falta cabeçalhos de tipo de conteúdo .

Mesmo quando a solicitação é de 10.10.10.10, isso resulta em:

--7ed45f75-H--
Message: Access denied with connection close (phase 1). Match of "rx ^0$" against "REQUEST_HEADERS:Content-Length" required. [file "/usr/local/apache/conf/modsec_rules/10_asl_rules.conf"] [line "93"] [id "392301"] [rev "7"] [msg "Atomicorp.com WAF Rules: Request Containing Content, but Missing Content-Type header"] [severity "NOTICE"] [tag "no_ar"]
Apache-Error: [file "config.c"] [line 395] [level 3] Handler for (null) returned invalid result code 9, referer: https://redacted.com
Action: Intercepted (phase 1)

Não tenho certeza se ctl:ruleEngine=Off simplesmente não pode ser usado em uma SecRule de fase 1, ou se este é um bug do Mod Security 2.8. Posso confirmar que não há regras que tornem o ctl: ruleEngine novamente em ação.

    
por Santrix 21.11.2014 / 10:27

1 resposta

0

Como você já respondeu à sua pergunta aqui , você deve criar um arquivo de configuração adicional e colocar essa linha nele, ele irá desativar a regra Atomicorp que você estava mencionando apenas para este usuário / domínio (para todos).

Arquivo: / usr / local / apache / conf / userdata / std / 2 / nome de usuário / example.com

<IfModule mod_security2.c>
  SecRuleRemoveById 392301
</IfModule>

EDITAR

Desativar determinada regra para um IP / intervalo específico seria assim

SecRule REMOTE_HOST "@ipmatch 1.2.0.0/16" \
"id:12345,phase:2,t:none,pass,nolog,noauditlog,ctl:ruleRemovebyID=392301"

Como explicado no Wiki do Atomicorp

    
por 21.11.2014 / 10:50