7. Técnicas anti-spam

7.1. Detectando um spam

Antes de entender de fato como detectar se um email é spam ou não, precisamos entender o conceito de falso negativo e falso positivo.

Falso Negativo: É o caso em que um spam passa pelo filtro anti-spam como sendo um email válido. Geralmente, dependendo da margem de sucesso do filtro anti-spam, estes emails acabam não atrapalhando o usuário, por sua pequena quantidade.

Falso Positivo: É quando um email real é barrado pelo filtro anti-spam, esse caso é bem mais grave que o falso negativo, já que informações importantes podem ser bloqueadas sem que o usuário ao menos perceba.

Alguns sistemas permitem que o usuário controle a rigidez de seu filtro anti-spam, para diminuir o caso de falsos positivos, com a desvantagem de aumentar o número de falsos negativos. As mensagens recebem "pontos de spam", e o usuário define a partir de quantos pontos que o email passa a ser considerado lixo.

Detectar se uma mensagem é spam a partir de seu conteúdo, detectando palavras como "viagra" ou através de métodos estatísticos é bem popular. Estes métodos podem ser bem precisos quando estão afinados para o tipo de email que o usuário costuma receber, mas infelizmente ainda é possível acontecer alguns erros, visto que o conteúdo sozinho não define se o email é uma mensagem não solicitada: um amigo poderia mandar uma piada que menciona "viagra" e ela ser capturada pelo filtro.

Com isso em mente, as seções a seguir tratam de técnicas para evitar e bloquear as mensagens indesejadas.

7.2. Usuários finais

7.2.1. Embaralhar endereço

Evitar escrever seu endereço de email em páginas ajuda a impedir que ele seja encontrado pelo garimpo de endereços [5.1. Pesquisando endereços de email]. Para isso, o usuário pode usar um email falso. Alguns serviços como o Mailinator permitem criar contas de email temporárias, válidas apenas por algumas horas. Quando o usuário precisa receber respostas e emails legítimos sem que estes sejam perdidos, o endereço oficial pode ser levemente modificado, fazendo com que ele fique indetectável para os bots. Ex: joao.NAOMANDE()SPAM.gmail.com. Existem ainda métodos em Javascript, conhecidos como embaralhamento de endereços transparente, já que visualmente o endereço fica escrito na página, mas ele só é montado depois, pelo browser de quem está acessando.

7.2.2. Evitar responder a spams

Os spammers aproveitam todo o tipo de resposta, mesmo as do tipo "Não me mande spams!", como uma confirmação de que o email é válido. Do mesmo modo, algumas mensagens possuem imagens ou links que quando exibidos pelo leitor de emails, enviam uma confirmação ao spammer sobre a validade do email. Para evitar isso, é possível desabilitar a exibição automática de imagens ao ler um email.

7.2.3. Senhas de envio

Alguns sistemas pedem que usuários insiram algum tipo de senha no assunto ou corpo dos emails enviados para que estes sejam aceitos. Essa senha pode estar escrita na página junto ao email, com explicações sobre como utilizá-la.

7.3. Administradores

7.3.1. Listas Negras

Listas negras são usadas para filtrar e bloquear spams. Alguns sites publicam listas de endereços IP que são conhecidos como servidores spammers, de modo que os servidores de email possam facilmente rejeitar mensagens destes endereços.

7.3.2. Reputação

A versão dual das listas negras. Nesse caso, a lista é de servidores confiáveis.

7.3.3. Pergunta/Resposta

Usado por alguns provedores de internet, estes serviços especializados enviam um email com alguns testes para que o remetente confirme que não é um spammer. Este tipo de verificação é muito mal vista, já que suja a caixa postal com emails não autorizados, assim como os próprios spams.

7.3.4. Filtro baseados em Checksum

A maior parte dos spams é enviada em massa, com poucas mudanças na mensagem para cada destinatário. Os filtros baseados em checksum removem tudo o que tem chance de variar entre mensagens e cria uma chave identificadora do restante. Essa chave é verificada em um banco de dados que coleta os dados de mensagens consideradas spam, que pode ser alimentado pelos botões de "marcar como spam" presentes em alguns clientes de email.
A vantagem deste modo é que permite que usuários ajudem o sistema a identificar spams, não apenas administradores, portanto aumentando bastante a gama de "combatentes contra spam". A desvantagem é que os spammers podem colocar textos adicionais em cada email para que o sistema não consiga fazer uma chave única entre cada mensagem.

7.3.5. Filtro baseados em Países

Alguns servidores de email não tem necessidade de aceitar mensagens de países famosos pelo envio de spams. Estes servidores podem bloquear os emails vindos destes países através do endereço IP do remetente.

7.3.6. Garantir padrões RFC

Forçar que os padrões do protocolo SMTP (Simple Mail Transfer Protocol - Protocolo de transferência de emails simples) sejam seguidos pode ajudar a bloquear emails vindos de sistemas que não estão de acordo com as normas. Muitos spammers usam softwares mal escritos ou que não são capazes de seguir o padrão pois estão sendo controlados através de uma máquina zumbi.

7.3.7. Pausa durante recepção

Quando um cliente de email se conecta a um servidor, ele deve esperar uma mensagem de identificação chamada greeting banner. Muitos programas de evio de email não esperam receber esta mensagem, e já começam a transmissão dos dados logo após a conexão com o servidor, para evitar atrasos na fila. Se o servidor cria forçadamente uma pausa antes do envio do banner, clientes que não respeitarem a pausa podem ser bloqueados.

7.3.8. Detecção de saída

O protocolo SMTP requer que as conexões sejam fechadas através do comando QUIT. Análogo à pausa durante a recepção, muitos programas de spam ignoram o passo de fechar a conexão para acelerar o envio de emails. Este tipo de conexão pode ser detectada e inserida em listas negras.

7.3.9. Armadilha contra Spam

Aproveitando-se das técnicas de garimpo de emails usadas pelos próprios spammers, é possível distribuir alguns endereços de email para serem propositalmente capturados pelos spammers. Por exemplo, podemos criar o email spamtrap@exemplo.com.br e espalhar em várias páginas. Este email não seria usado para receber mensagens legítimas, mas seria encontrado pelo garimpo de emails e passaria a receber spams. Estes spams e servidores são então bloqueados e passam para uma lista negra.

7.3.10. Potes de Mel

Assim como as armadilhas contra spam, os potes de mel são armadilhas preparadas para descobrir spammers. Neste caso são criadas imitações de proxies para retransmitir mensagens de email. Spammers testam sistemas à procura de proxies deste tipo, e encontrando o pote de mel, irá tentar usá-lo para enviar emails de spam. As mensagens capturadas por esta armadilha são também adicionadas à lista negra e descartadas, fazendo com que o spammer acredite que o email chegou ao destinatário com sucesso.

7.3.11. Tarpits

Tarpits são servidores que respondem propositalmente lentos para conexões de spam que estão em listas negras, atrasando o envio de emails pelo servidor de spam.

7.4. Remetentes

7.4.1. Listas de email opt-in

Remetentes podem criar listas de email onde o destinatário se cadastra voluntariamente, criando malas-diretas que podem ser enviadas sem que sejam indesejadas.

7.4.2. Limite de taxa

Máquinas que passam a enviar muitos emails por segundo podem ter virado computadores zumbis. Limitando-se a taxa de envios de email por um servidor fará com que emails legítimos continuem sendo enviados, mas rajadas de spam sejam bloqueadas e atrasadas até que uma investigação manual possa ser feita.