Funcionamento

O SPFBL contém uma tabela chamada REPUTATION onde são guardados todos os identificadores de fontes denunciadas com suas respectivas informações de listagem.

 

O exemplo da tabela REPUTATION do MatrixDefence pode ser visto neste link: https://github.com/leonamp/SPFBL/raw/master/doc/reputation.ods.

 

A tabela REPUTATION é formada por quatro colunas:

 

  • Responsável: o identificador do responsável pelo envio;
  • Frequência: a frequência mais recente de envio naquele pool;
  • Status: o status do identificador baseado no método de listagem abaixo e
  • SPAM: a probabilidade mínima de uma mensagem ser SPAM para aquele identificador no mesmo pool.

 

Respostas SPFBL

 

O SPFBL retorna todos os qualificadores do SPF convencional mais dez qualificadores novos, chamados LISTED, BLOCKED, SPAMTRAP, INEXISTENT, HOLD, WHITE, FLAG, GREYLIST, NXDOMAIN e INVALID:

 

  • PASS <ticket>: permite o recebimento da mensagem.
  • FAIL: rejeita o recebimento da mensagem e informa à origem o descumprimento do SPF.
  • SOFTFAIL <ticket>: permite o recebimento da mensagem mas marca como suspeita.
  • NEUTRAL <ticket>: permite o recebimento da mensagem.
  • NONE <ticket>: permite o recebimento da mensagem.
  • LISTED [<url>]: atrasa o recebimento da mensagem, informa à origem a listagem temporária em blacklist e envia e-mail com URL de liberação quando for o caso.
  • BLOCKED [<url>]: rejeita o recebimento da mensagem e informa à origem o seu bloqueio manual, com possibilidade de solicitar desbloqueio diretamente ao destinatário com auxílio da URL.
  • FLAG: aceita o recebimento e redirecione a mensagem para a pasta SPAM.
  • SPAMTRAP: descarta silenciosamente a mensagem e informa à origem que a mensagem foi recebida com sucesso.
  • INEXISTENT: rejeita a mensagem e informa à origem que o destinatário não existe.
  • GREYLIST: atrasar a mensagem informando à origem ele está em greylisting.
  • NXDOMAIN: rejeita o recebimento e informa à origem que o domínio do remetente não existe.
  • INVALID: rejeita o recebimento e informa à origem que o IP ou o endereço do remetente não é válido.
  • WHITE: aceita a mensagem e a encaminha imediatamente para roteamento sem passar por outros filtros, exceto antivírus.
  • HOLD: congelar a mensagem e aguardar pela definição do usuário.

 

Método de listagem

 

O SPFBL mantém uma flag de reputação para cada identificador. Esta flag tem três estados: GREEN, YELLOW e RED. A seguinte máquina de estado é utlizada para manipular estas flags, sendo P a probabilidade da mensagem ser SPAM segundo sua reputação atual na rede P2P:

Máquina de estado de reputação SPFBL.

Quando a flag estiver no estado RED para o identificador, então o SPFBL retorna FLAG.

 

Quando o MTA receber este retorno FLAG, deve incluir no cabeçalho a flag padrão do Spamassassin “X-Spam-Flag: YES” de modo ao MTA seguir o roteamento da mensagem para a pasta SPAM do usuário.

 

Quando a flag estiver no estado YELLOW para o identificador, então o SPFBL retorna GREYLISTED para que o MTA atrase a mensagem até a finalização do greylisting.

Sistema de feedback

 

Devido à natureza descentralizada do SPFBL, todo feedback é passado na própria camada SMTP. Isso facilita o trabalho do enviador pois ele não precisa se cadastrar, como ocorre em sistemas de feeback loop de grandes provedores. Tudo que ele precisa fazer é olhar nos registros de LOG do MTA de saída.

O prefixo de rejeição do SPFBL segue este padrão e o uso deste prefixo é obrigatório para todos que utilizam o sistema SPFBL:

 

5.7.1 SPFBL <message>

A mensagem da rejeição deve esplicar o motivo da mesma de tal forma que o enviador seja capaz de tomar providências para reduzir o volume de envio de mensagens indesejadas na Internet.

Fluxo do SPFBL

 

O SPFBL utiliza deste fluxo para determinar responsável pelo envio da mensagem e qual ação o MX deve tomar:

 

Fluxograma de filtragem do sistema SPFBL.

 

Tipos de responsável

 

Sempre que o qualificador do SPFBL for PASS, o responsável considerado é o próprio remetente ou o domínio do remetente. Será considerado o remetente se o domínio dele estiver registrado no SPFBL como provedor de e-mail, como por exemplo: @hotmail.com, @gmail.com, @yahoo.com, etc. Caso contrário, o responsável é o domínio do remetente, mais o CNPJ ou CPF deste domínio quando este for da TLD BR.

 

Quando o qualificador for diferente de PASS, então o responsável considerado é o HELO ou o IP. Será considerado o HELO, com domínio e CNPJ ou CPF, se este for o reverso válido do IP. Caso contrário, o responsável é o IP.

 

Responsabilizar o HELO, quando um hostname for válido e aponta para o IP, é motivado pela seguinte ideia: se um hostname tiver funcionando em pilha dupla, então haveria duas listagens distintas, uma para o IPv4 e outra para o IPv6. Listar o HELO resolve este problema pois não importa por qual versão de IP o host envie mensagens, ele será visto pelo SPFBL como uma única entidade.

 

Checagem SPFBL

 

É possível fazer uma consulta de checagem SPFBL. Este tipo de consulta não retorna ticket, mas mostra a checagem SPF completa, os bloqueios e também todos os responsáveis considerados pelo SPFBL, de modo que o administrador possa entender melhor a resposta de uma consulta normal SPFBL.

 

user:~# spfbl.sh check 191.243.197.31 op4o@adsensum.com.br smtp-197-31.adsensum.com.br

 

SPF resolution results:

   adsensum.com.br:ip4:74.63.197.130 => NOT MATCH

   adsensum.com.br:ip4:191.243.196.0/22 => PASS

 

First BLOCK match: WHOIS/owner-c=SIR51

 

Considered identifiers and status:

   .smtp-197-31.adsensum.com.br UNDEFINED GREEN 0

   191.243.197.31 ~32351s RED 0.512

   @adsensum.com.br UNDEFINED GREEN 0

 

Na primeira seção, temos todos os passos de checagem SPF, sendo que o último sempre mostra o qualificador considerado.

 

Na segunda seção, temos o bloqueio encontrado para aquela consulta. Se houver esta seção, significa que a consulta formal será bloqueada.

 

Na terceira seção, temos a sequência dos responsáveis pelo envio na mensagem, sendo que a primeira coluna é o token do responsável, a segunda coluna é a frequência de envio em segundos, a terceira é a flag de listagem e a quarta coluna é a probabilidade daquele responsável enviar SPAM.