mod_security RBL - falso positivo aparente

1

Estou lutando com uma regra RBL no mod_security do apache 2.2 que parece estar me dando um falso positivo. Eu vejo o seguinte no log de auditoria (endereço IP redigido):

Message: RBL lookup of 4.3.2.1.sbl-xbl.spamhaus.org succeeded at REMOTE_ADDR. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_42_comment_spam.conf"] [line "21"] [id "981138"] [msg "RBL Match for SPAM Source"] [severity "CRITICAL"] [tag "AUTOMATION/MALICIOUS"]

A parte que está me enlouquecendo é que, se eu fizer um nslookup no nome especificado na mensagem de log, obtenho um resultado que não existe. O que, como entendi, significa que esse endereço não está na lista. Então, por que o mod_security está tendo sucesso?

Eu também usei o serviço de pesquisa no spamhaus para confirmar que o endereço IP não está na lista negra.

O que estou perdendo? Parece que algo está sendo armazenado em cache, mas não consigo descobrir onde.

Um pouco mais de fundo, inicialmente o host estava usando um servidor DNS que estava (de maneira útil) retornando endereços mesmo quando a pesquisa estava falhando. Eu mudei a configuração para usar os servidores do Google (8.8.8.8 e 8.8.4.4) e agora host e nslookup funcionam como esperado. Eu reiniciei o servidor, portanto, em teoria, não há cache de memória. Também verifiquei se os arquivos de dados mod_security que preservam o endereço IP estão limpos. Eu sei que está funcionando desde a pesquisa inicial para o endereço aparece como acima, e subseqüentes, após o falso sucesso inicial mostrar o endereço como um endereço de SPAM conhecido.

A regra em questão:

SecRule REMOTE_ADDR "@rbl sbl-xbl.spamhaus.org" \
"phase:1,id:'981138',t:none,pass,nolog,auditlog,msg:'RBL Match for SPAM Source',\
tag:'AUTOMATION/MALICIOUS',severity:'2',setvar:'tx.msg=%{rule.msg}',\
setvar:tx.automation_score=+%{tx.warning_anomaly_score},\
setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},\
setvar:tx.%{rule.id}-AUTOMATION/MALICIOUS-%{matched_var_name}=%{matched_var},\
setvar:ip.spammer=1,expirevar:ip.spammer=86400,setvar:ip.previous_rbl_check=1,\
expirevar:ip.previous_rbl_check=86400,skipAfter:END_RBL_CHECK"
    
por KenB 24.11.2014 / 22:28

1 resposta

0

Eu não vejo mais esse problema e suspeito que conheço a causa.

  1. O servidor de nomes foi configurado para pesquisar nomes em mydomain.com por meio da configuração "search" em /etc/resolv.conf
  2. Eu tinha uma entrada de DNS curinga para * .mydomain.com retornando um endereço IP

(1) continua verdadeiro, mas removi a entrada de DNS curinga, de modo que agora uma pesquisa por example.com não resultará mais em uma correspondência no example.com.mydomain.com

    
por 04.01.2015 / 17:26