Sumário
1. Introdução
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.
2. Antivírus
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.
3. Filtros Bayesianos anti-spam
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.
4. Bloqueio de anexos
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.
5. Considerações finais sobre filtros de conteúdo
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.
|