3. Filtros Bayesianos anti-spam
4. Bloqueio de anexos
5. Considerações finais sobre filtros de conteúdo
Existem algumas técnicas de bloqueio de spam que se baseiam na análise do conteúdo da mensagem. Em geral, são filtros baseados no reconhecimento de padrões do conteúdo que buscam identificar se o e-mail pode conter um vírus ou se tem características comuns aos spams.
Tais filtros podem ser usados em conjunto com o MTA (como Milters do Sendmail, por exemplo) ou com o MDA (pela configuração adequada das regras do Procmail, por exemplo), ou ainda com o MUA, de acordo com as preferências pessoais do usuário. Neste texto serão abordados apenas os filtros usados em conjunto com o MTA.
Uma vez que uma mensagem foi identificada como contaminada ou como provável spam, há três possibilidades:
ser recusada pelo MTA, com um código de erro "550 5.7.1 Message content rejected";
ser aceita pelo MTA, porém desviada para uma área especial de quarentena;
ser aceita pelo MTA e encaminhada para o destinatário, porém com um campo do cabeçalho marcando a mensagem como suspeita.
Os filtros de conteúdo mais comuns são os antivírus e os identificadores Bayesianos de spam.
Existem no mercado diversas opções de antivírus que podem ser utilizados em conjunto com MTAs, sendo que algumas destas opções são gratuitas. A maioria possui mecanismos de atualização automática, já que a criação de novos vírus é bastante intensa e exige atualizações diárias, ou até mesmo mais freqüentes, das assinaturas dos antivírus.
Os programas antivírus não lidam diretamente com arquivos comprimidos ou no formato usual dos e-mails. Deste modo, antes do conteúdo da mensagem ser analisado pelo antivírus é necessário desmontar a mensagem e possivelmente descomprimir os anexos. Um programa muito comum para realizar estas tarefas é o Amavis.
Devido ao trabalho de desmontagem da mensagem e depois o de reconhecimento de padrões, o uso de antivírus em conjunto com MTAs costuma implicar em altos consumos de CPU e memória do servidor. Deste modo, aconselha-se submeter as mensagens ao antivírus somente depois de terem sido avaliadas por outras técnicas.
Os filtros Bayesianos implementam um algoritmo de probabilidade baseado na Teorias de Bayes. Os programas que utilizam filtros Bayesianos devem passar por um período inicial de treinamento, no qual tratam conjuntos de mensagens legítimas e também mensagens que conhecidamente são spam, criando uma base de dados inicial com informações sobre as ocorrências de palavras em cada um dos casos. Após este período, o programa passa a avaliar as mensagens considerando as ocorrências de palavras e então classifica cada e-mail de acordo com a probabilidade de ser spam ou não, tomando como base o treinamento inicial. Também é possível que este processo de treinamento seja continuado com novas mensagens. Um filtro bastante popular de reconhecimento de spam é o SpamAssassin, um script em Perl que pode utilizar técnicas Bayesianas.
Os mesmos programas usados para desmontar mensagens para antivírus podem acionar filtros anti-spam. Ao contrário dos antivírus, porém, o foco desses filtros é muito mais o texto da mensagem do que os anexos.
O consumo de recursos computacionais é elevado, porém menos crítico que no caso dos antivírus, mas mesmo assim pode ser comprometedor em servidores de alto tráfego.
Para que o filtro se adapte ao caráter mutável do spam é necessário que o treinamento do filtro seja contínuo, com a identificação dos spams que não foram classificados e das mensagens que não são spam e que foram rotuladas como tal.
Como os filtros Bayesianos podem acarretar falsos positivos, é aconselhável não descartar uma mensagem marcada como spam, mas sim optar por colocá-la em quarentena. Esse problema pode ser agravado caso a base de dados com que ele toma decisão for desatualizada ou baseada em outro idioma.
Outra questão a ser considerada é o fato de estes filtros poderem ser driblados por spammers que introduzam "ruídos" em suas mensagens, ou seja, além do texto do spam são também introduzidas palavras aleatórias, letras, palavras em outros idiomas, etc. Deste modo, a análise estatística das ocorrências de palavras é afetada. Outra técnica que tem sido utilizada para driblar filtros Bayesianos é a utilização de "ASCII arte" e imagens para representar a mensagem.
Como muitos cavalos de tróia e vírus que afetam sistemas Windows são enviados, por exemplo, em arquivos executáveis (.exe) ou associados a certos aplicativos, como screen savers (.scr), alguns administradores procuram bloquear mensagens com determinados arquivos anexados.
O bloqueio pode ser feito com base no tipo ou no nome do arquivo, informações que podem ser obtidas no cabeçalho MIME. Os tipos dos anexos são dados pelo campo Content-Type: e os nomes dos arquivos pelo atributo name deste campo.
Na prática, no entanto, esta técnica pode bloquear anexos que não são maliciosos, mas que estão entre os tipos proibidos, e pode deixar passar anexos que aparentemente não são hostis, como é o caso de imagens que exploram falhas no software usado para exibí-las.
Filtros de conteúdo podem consumir muitos recursos e produzir falsos positivos, que podem não ser identificados facilmente. Porém, antivírus em especial, podem ser bastante eficazes na detecção de códigos maliciosos.