mod_security 960015 bloqueia o Google e outros bons bots

3

A regra mod_security 960015 continua capturando o Google e outros bons bots. Eu tenho o seguinte no vhost para evitar que bons bots sejam capturados:

SecRule REQUEST_HEADERS:User-Agent "Mail.ru" log,allow
SecRule HTTP_USER_AGENT "Mail.RU_Bot" log,allow

O mesmo para o Google e o Yandex.

Funciona 99% das vezes, mas falha em outras vezes por alguma razão realmente bizare, aqui está o exemplo de logs para o bot Mail.ru:

Bem-sucedido:

217.69.134.79 - - [07/Mar/2014:10:17:13 +0400] "GET / HTTP/1.1" 200 189934 "-"
"Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/Fast/2.0; 
+http://go.mail.ru/help/robots)"

[Fri Mar 07 10:17:13 2014] [error] [client 217.69.134.79] ModSecurity: Access 
allowed (phase 2). Pattern match "Mail" at REQUEST_HEADERS:User-Agent. 
[file "/etc/apache2/sites-enabled/xxx"] [line "28"] [hostname "xxx"] 
[uri "/"] [unique_id "UxlkaQp-d4EAABU9BSIAAAAV"]

E no minuto seguinte, ele falha:

217.69.134.79 - - [08/Mar/2014:02:14:19 +0400] "GET / HTTP/1.1" 403 389 "-" "
Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/
help/robots)"

[Sat Mar 08 02:14:19 2014] [error] [client 217.69.134.79] ModSecurity: Access 
denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. 
[file "/usr/share/modsecurity-crs/activated_rules/
modsecurity_crs_21_protocol_anomalies.conf"] [line "47"] [id "960015"] 
[rev "2.2.5"] [msg "Request Missing an Accept Header"] [severity "CRITICAL"] 
[tag "PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT"] [tag "WASCTC/WASC-21"] 
[tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [hostname "xxx"] [uri "/"] 
[unique_id "UxpEuwp-d4EAAEMnBFQAAAAE"]

Eu sei que a maneira correta é fazer pesquisas reversas, no entanto eles abrandar o site, e eu quero ter pelo menos alguma segurança, mas como é no momento não posso usar o 960015 porque bloqueia o Google e outros. Ao mesmo tempo, é uma regra muito útil que pegou 100s de bots ruins.

Se alguém souber como configurá-lo com pesquisa inversa que funcionará e permitir que o Google e outros bons bots sejam indexados - você pode postar aqui. No entanto, eu também estou procurando uma solução rápida e suja para fazê-lo funcionar agora, já que alguma segurança é melhor do que segurança.

    
por Vlad 08.03.2014 / 00:49

2 respostas

3

Primeiro um aviso: Sou o autor de Bad Behavior , um produto semelhante e algumas das principais regras do ModSecurity foram derivados de mau comportamento.

RFC 2616 afirma que o cabeçalho Accept deve estar presente em todas as solicitações. Observe que isso não é um requisito absoluto, portanto, um user-agent ainda é condicionalmente compatível (conforme definido no RFC) se ele não enviar esse cabeçalho.

A justificativa para negar solicitações sem um cabeçalho Accept é que todos os navegadores regulares enviem o cabeçalho, enquanto muitos bots não. Na prática, porém, depois de ver milhões de solicitações, alguns "bons" bots também não enviam o cabeçalho Accept. Portanto, essa regra não é perfeita e gera falsos positivos.

Comportamento incorreto não os bloqueia, a menos que a solicitação seja uma solicitação POST. Isso reduz o spam e reduz os falsos positivos para aproximadamente zero, mas ainda passa por outros bots. Na minha experiência, muitos deles são pegos por outras regras de qualquer maneira.

Na sua situação, eu apenas desabilitaria essa regra. Não está lhe comprando tanto quanto parece pensar. Se desejar, você pode modificá-lo para que ele se aplique somente a solicitações POST.

    
por 08.03.2014 / 01:14
0

Aqui está uma regra modificada que se encaixa no propósito, sendo executada há 48 horas, o Google e outros trabalham bem, enquanto os bandidos ainda são pegos, wohoo!

Adicione isto ao vhost em questão:

SecRule REQUEST_HEADERS:User-Agent "Google|Mail|Yandex" "phase:1,t:none,pass,nolog,ctl:ruleRemoveById=960015"

Atualização de 2015 com uma situação mais recente - os golpistas já se conscientizaram e agora enviam principalmente cabeçalhos falsos fingindo ser o Google, diferentes estratégias de segurança são necessárias.

    
por 09.03.2014 / 10:16