1
SPAM
Conceitos e Contramedidas
Estudo de caso: Servidor de Correio Eletrônico com
Filtros contra SPAM e malware
Tópicos em Sistemas de Computação
Prof. Dr. Adriano Mauro Cansian
adriano@acmesecurity.orghttp://www.acmesecurity.org
• Introdução.
• O sistema proposto.
• A implementação.
• Políticas adotadas.
• Testes realizados.
• Resultados obtidos.
Roteiro
3
Problema apresentado e sistema
proposto para solução
http://www.acmesecurity.org
Vírus, Worms e Trojans (1)
• Vírus
– Programas capazes de multiplicar-se mediante a infecção
de outros softwares.
• Worms
– Não necessitam infectar outros arquivos para se
multiplicar. Se espalham usando recursos da rede. Tem
capacidade de se auto-reproduzir. O e-mail é um dos seus
principais canais de distribuição.
• Trojans
5
Vírus, Worms e Trojans (2)
• Atravessam os firewalls quando enviados na
forma de e-mail.
• Causam prejuízos a empresas e pessoas.
• Há pouca conscientização entre os usuários.
– Anexos perigosos são abertos com frequência.
– Atualizações de segurança e antivírus não são atualizados
adequadamente.
– Antivírus falham (muito, principalmente nas primeiras 72
horas pós aparecimento de uma nova infecção).
http://www.acmesecurity.org
Spam (1)
• Spam: envio abusivo de correio eletrônico não
solicitado em grande quantidade
– Mensagens comerciais não solicitadas
– Correntes.
– Hoaxes (boatos).
• Scam: é o spam para fins criminosos
– Enviados por estelionatários com o objetivo de obter
números de cartão de crédito, senhas de banco e informações
privilegiadas das vítimas
– Banco do Brasil, BBB, SERASA,…
7
Spam (2)
• Difícil de calcular os prejuízos
– Banda utilizada desnecessariamente.
– Tempo desperdiçado pelos usuários para excluir o
lixo eletrônico e perda de produtividade.
– Usuários deixam de receber mensagens úteis
quando sua caixa de entrada é “entupida” por spam.
• Só não há prejuízos para quem envia.
http://www.acmesecurity.org
Zero Access Botnet World - 2012
Botnet Zero-access na Europa – 2012
9
http://nakedsecurity.sophos.com/2012/09/19/zeroaccess-botnet-uncovered/
http://www.acmesecurity.org
https://nakedsecurity.sophos.com/2015/04/29/the-dirty-dozen-spampionship-who-needs-to-kill-the-most-zombies/ (22.9.2015)
11
Proportion of spam in email traffic
October 2014 – March 2015
https://securelist.com/files/2015/08/KL_Q2_2015_SPAM_REPORT_ENG.pdf
http://www.acmesecurity.org
Trojans
13
Geography of phishing attacks*, Q1 2015
http://www.acmesecurity.org
Alvos 2015
15
Brazil-zil-zil!!
http://www.acmesecurity.org
Spam (3)
• Estimativas dizem que mais de 90% dos e-mails que
trafegam na Internet são Spam.
– O aumento sofrido pelo spam ano a ano poderá inviabilizar o uso de
correio eletrônico num futuro não muito distante
– Spim: spam por instant messenger
• A história do spam
– http://www.templetons.com/brad/spamterm.html
17
Estudo de caso
http://www.acmesecurity.org
Case / Motivação:
• Usuários do campus descontentes
recebendo vírus e spams.
• Máquinas infectadas propagando worms.
• Muitos servidores de E-mail dificultando
políticas unificadas de segurança.
– Sem padronização de softwares.
– Resultando em dificuldade em fazer atualizações de
segurança nos servidores.
19
O sistema idealizado
• Servidor unificado de e-mail para o campus.
• Acesso a Webmail, POP, IMAP.
• Filtros de spam e vírus.
• Regras de filtragem personalizadas para cada
usuário.
• Versões seguras dos protocolos de correio
eletrônico.
– Criptografadas.
http://www.acmesecurity.org
Os protocolos envolvidos
• SMTP: Simple Mail Transfer Protocol
– Definido nos RFCs 821 e 2821 – RFC 1425: Extend SMTP
– RFC 2142 e caixas abuse (/dev/null) – RFC 2505: recomendações anti-spam
• POP: Post Office Protocol
– Definido no RFC 1939
• IMAP: Internet Mail Access Protocol
– IMAP 4 revisão 1: RFC 2060
– RFCs 2061 e 2062 tratam de compatibilidade com versões anteriores.
21
Pensando nos componentes do Correio Eletrônico
MUA: Mail User Agent
MTA: Mail Transfer Agent
MDA: Mail Delivery Agent
MAA: Mail Access Agent
Adriano Cansian & Adriano 21 Ribeirohttp://www.acmesecurity.org
Arquitetura idealizada
SMTP
Disassembly / Decoder da mensagem
Antivirus Antispam
Filtros
INBOX
SPAM
25Outras
verificações
MTA
externo servidor
servidor
23
Softwares propostos
Sistemas e subsistemas utilizados
http://www.acmesecurity.org
O Servidor SMTP
• Opção adotada: Postfix
• http://www.postfix.org
– Seguro.
– Rápido.
– Flexível.
– Configurações enxutas.
– Implementa TLS.
– Utiliza o Procmail como MDA.
25
Protocolos Seguros
• Utilizam SSL ou TLS para comunicação
entre servidores ou entre clientes e
servidores.
– SMTP + TLS + SASL.
– POPS.
– IMAPS.
– HPPTS (Webmail).
http://www.acmesecurity.org
Softwares utilizados (2)
• Qpopper
http://www.eudora.com/qpopper/
• Simples implementação.
• Compatível com SSL.
• Wu-imapd-ssl
http://www.washington.edu/imap/
• Servidor IMAP voltado para a segurança
• Compatível com SSL.
27
Antivírus
• Clamav
• http://www.clamav.net/
– 100% OpenSource.
– Identifica corretamente a maioria dos
malwares.
– Verifica arquivos compactados.
– Atualizações automáticas da base de vírus
utilizando o daemon Freshclam.
http://linux.die.net/man/1/freshclam
http://www.acmesecurity.org
Anti-spam: Spamassassin (1)
• Open Source.
• Amplo espectro de testes:
• Filtro bayesiano, SPF, RBL, etc…
• Baixo índice de falsos positivos e
falsos negativos.
29
Anti-spam: Spamassassin (2)
• Flexível.
• Procura padrões presentes em mensagens
de spam.
• A cada padrão encontrado é atribuída uma
pontuação à mensagem.
• Quando a pontuação atinge um limite
(configurável), a mensagem é marcada como
spam.
• Pontos contra:
• Grande consumo de memória.
• Não tão rápido.
http://www.acmesecurity.org
Cabeçalhos do Spamassassin
X-Virus-Scanned: by amavisd-new-20130616-p10 at
acmesecurity.org
X-Spam-Status: Yes, hits=11.2 tagged_above=-999.0
required=4.0
tests=BigEvilList_2520, FORGED_RCVD_HELO,
FRONTPAGE, HTML_FONT_BIG, HTML_MESSAGE, MIME_HTML_ONLY,
MSGID_FROM_MTA_ID,
RCVD_FAKE_HELO_DOTCOM, URIBL_OB_SURBL, URIBL_WS_SURBL,
WLS_URI_OPT_497
X-Spam-Level: ***********
X-Spam-Flag: YES
31
Amavis
• Amavis – “A Mail Virus Scanner”
• http://www.amavis.org/
• Desencapsula e descompacta os anexos
para a procura de vírus.
– Altamente adaptável.
– Pode ser usado para distribuir a carga entre máquinas
diferentes.
– Oferece bloqueio de anexos e muitas opções para
desmontar e montar mensagens.
http://www.acmesecurity.org
Arquitetura idealizada
SMTP
Disassembly / Decoder da mensagem
Antivirus Antispam
Filtros
INBOX
SPAM
25MTA
externo servidor
33
Arquitetura da solução
Postfix
Amavis
MTA
externo
Clamav Spamassassin
Procmail
INBOX
SPAM
25
10024 10025
servidor
servidor
http://www.acmesecurity.org
Webmail (1)
• Horde:
• http://www.horde.org/
• Opensource.
• Framework que suporta diversos aplicativos
relacionados a webmail.
35
Webmail (2)
• Componentes do Framework:
– IMP: o Webmail propriamente dito. Utiliza IMAP para
obter as mensagens.
– Turba: fornece um catálogo de endereços.
– Passwd: permite ao usuário trocar a senha através
do programa pop-passd.
– Ingo: regras para o gerenciamento de mensagens.
– SAM: módulo que permite que o usuário
personalize as regras de spam e listas de
permissão.
http://www.acmesecurity.org
IMP - Internet Messaging Program
Caixas
de
Correio
WU-
IMAP
IMP
Browser
do
143
Apache
37
IMP – Interface web
http://www.acmesecurity.org
SAM - SpamAssassin Module
SAM
Mysql
Amavis
– Pontuação personalizada para cada usuário.
– Opções para marcar e mover os spams.
– Listas de bloqueio e permissão.
39
Alternativa ao Horde
• Roundcube
• http://roundcube.net/
http://www.acmesecurity.org
Alternativa ao Horde
• Roundcube
• http://roundcube.net/
41
E mais softwares…
• Apache: base para o Webmail
– PHP .
– SSL (HTTPS).
• Mysql:
– Banco de dados do Horde.
– Banco de dados do Amavis.
• Iptables: firewall
http://www.acmesecurity.org
Políticas e regras aplicadas
43
Políticas de uso do E-bilce
• Relay apenas para as redes do IBILCE.
• Acesso a POP e IMAP somente na rede
interna do campus.
– (Opções equivocadas??)
• Acesso a Webmail externo.
• Complaince com Gerência da porta 25.
http://www.antispam.br/admin/porta25/
http://www.acmesecurity.org
Políticas para verificação de mensagens (1)
• Mensagens com cabeçalhos ruins ou que não
atendam o RFC 821 são bloqueadas
– A conexão TCP é encerrada no momento do envio.
Remetente é informado sobre o erro pelo MTA de
origem
– Não existem falsos positivos:
• Apenas software spammer apresenta esta
característica.
• Mensagens com anexos suspeitos serão
bloqueadas
45
Políticas para verificação de mensagens (2)
• Mensagens com vírus serão bloqueadas.
– O sistema envia uma mensagem de erro ao remetente.
– Caso não se trate de um vírus que falsifique o remetente.
• Mensagens com padrões de spam são
movidas para caixa especial
– Caixa de spam / junk.
– Usuários POP podem desabilitar esta regra.
• Nota: mensagens legítimas nunca são perdidas.
• Caso aconteça um erro no envio, o remetente é
sempre informado.
http://www.acmesecurity.org
Detecção de SPAM
• Diversas técnicas existentes.
• Testes locais (no próprio servidor).
• Testes remotos.
• Análise de cabeçalhos
• SPF.
• Reverso de DNS.
• Etc...
47
Checagens feitas no MTA (1)
• Helo/Ehlo requerido.
• Rejeita remetentes inválidos (mail
from).
• Rejeita remetentes com domínios
inválidos.
http://www.acmesecurity.org
Checagens feitas no MTA (2)
• Checagens nos cabeçalhos:
– Bloqueia alguns vírus mais conhecidos (Hi,
Thanks, ...).
– Não é necessário repassar a mensagem ao
clamav.
– Bloqueia algumas redes que enviam spam.
• Tentativas de envio para usuários
inválidos são bloqueadas.
Evita o problema de ter um grande número de
49
Checagens no Spamassassin (1)
• Regras de pontuação: expressões contidas
no corpo e no cabeçalho são pontuadas.
– Palavras chaves frequentemente contidas em spams:
• “Order now”, “Low prices”, “Unsubscribe”, “Viagra”,
“Nigeria”
– Uso do formato HTML.
– Links para outras páginas.
– Mensagens sem nenhum texto e apenas uma figura.
– Cabeçalhos suspeitos, Etc…
– Muito efetivo.
http://www.acmesecurity.org
Checagens no Spamassassin (2)
• AWL (Auto WhiteList)
– Faz uma média na pontuação das últimas N
mensagens de um remetente ao classificar
uma mensagem.
– Dessa forma a pontuação de mensagens de
remetentes com “bons antecedentes” é
diminuída e de spammers é aumentada.
51
Checagens no Spamassassin (3)
• Listas de permissão e bloqueio
• Também conhecidas como blacklists e
whitelists.
– Remetentes cadastrados na lista de permissão
recebem pontuação zero.
– Remetentes cadastrados na lista de bloqueio recebem
pontuação infinita.
– Ajudam a diminuir o número de falsos positivos e falsos
negativos.
http://www.acmesecurity.org
Outras checagens (1)
• SPF: Sender Policy Framework
– Cada domínio divulga seus servidores
autorizados a fazer relay externo.
– O MTA verifica se o IP do remetente é
um IP autorizado no domínio, via
anúncio de DNS.
53
Novas checagens (2)
• SPF – continuação
– Não é específico para o combate ao
spam e sim para evitar remetentes
forjados.
• Contudo, dificulta muito a vida dos
spammers.
– Ampla adoção de grandes instituições
nacionais e internacionais.
http://www.acmesecurity.org
Novas checagens (3)
• RBL para URLs e DNS :
– Role Black Lists para URLs
• Em spams comerciais é comum links para
páginas de vendedores.
– Existe um lista mantida pela Spamhaus que contém
as páginas mais referenciadas em spams.
– Mensagens referenciando estas páginas recebem um
pontuação alta.
• Mais informações em
www.spamhaus.org
55
Filtro Bayesiano
• Permite ao usuário indicar ao sistema quais
mensagens são spams e quais não são (ham)
– Auto índice de acertos.
– AutoLearn.
– Facilmente implementado em servidores onde os usuários
tem acesso e intimidade com o shell.
– Possíveis soluções: reporte de spam e ham, mudanças no
horde para executar algum script de shell a partir do php
• Observação: não foi implementado no servidor E-bilce
devido a falta de recursos de processamento na época.
http://www.acmesecurity.org
Outras técnicas
• Greylistings: relativamente efetivo.
– (veja discussão em sala)
• Teste de DNS reverso (gera falsos positivos).
• Domains Keys (Yahoo) e Sender ID (Microsoft).
• DANE DNS-Based Authentication of Named Entities Protocol.
– http://www.internetsociety.org/deploy360/resources/dane/
• DKIM - DomainKeys Identified Mail
57
Considerações sobre as checagens
– Habilitar todas as técnicas de checagem disponível
causaria um grande overhead no servidor.
– Muitas técnicas podem ser implementadas no MTA ou
no filtro de spam.
• É melhor usar o filtro para técnicas que causam falsos
positivos.
– Não utilizar muitas checagens remotas.
– Limitar o tempo máximo que para uma mensagem ser
filtrada (1s, 2s).
– O Spamassassin não é recomendado para servidores
de grande porte (no máximo 3000 usuários).
http://www.acmesecurity.org
Desempenho
Resultados sobre o caso
59
Desempenho
• Testes realizados
– Sem filtros: > 5000 mensagens por minuto sem atraso
– Com antivírus: até 2500 mensagens por minuto sem atraso
– Com antivírus e anti-spam: 1000 mensagens por minuto com
um atraso máximo de entrega de 1 minuto.
– Utilização do software Postal para benchmark de servidores
SMTP e o software Mailgraph para a geração dos gráficos.
•
http://sourceforge.net/projects/postal/•
http://mailgraph.schweikert.ch/•
http://oss.oetiker.ch/rrdtool/http://www.acmesecurity.org
A fase de testes
• Cerca de 20 usuários entre os usuários do
polo e voluntários de outros departamentos
• Usuários com o índice de erros em torno
5%
• Houve casos em que a taxa de erro foi
menor do que 1%
61
Dados sobre a Detecção
• Dados da primeira quinzena de testes
– Volume médio de mensagens recebidas por dia: 2300
– Mensagens entregues na caixa de entrada: 42%
– Mensagens entregues na pasta spam: 21%
– Mensagens com vírus: 5%
– Mensagens de spam rejeitadas: 32%
– Cerca de 10 tentativas de relay não autorizadas por
dia e 250 mensagens para usuários inválidos
– Esses dados indicam que cerca de 42% das
mensagens recebidas são legitimas enquando que
58% tratam-se de vírus e spam.
http://www.acmesecurity.org
Conclusão
• Os filtros apresentaram um índice bom de
acerto (100% para vírus e 95% para
spam) no período de testes.
• O sistema é 100% OpenSource. Não há
nenhum tipo de custo relativo a software
63
( homework )
DKIM - DomainKeys Identified Mail
É um método para associar um nome de domínio a uma mensagem
de e-mail, permitindo assim uma pessoa, função ou organização
para reivindicar alguma responsabilidade por uma mensagem.
A associação é constituída por meio de uma assinatura digital, que
pode ser validada pelos destinatários. A responsabilidade é
reivindicada por um signatário, independentemente dos autores ou
reais destinatários da mensagem, adicionando um campo DKIM-
Signature no cabeçalho da mensagem.
O verificador recupera a chave pública do signatário usando o DNS
e, em seguida, verifica se a assinatura corresponde ao conteúdo da
mensagem real
http://www.ietf.org/rfc/rfc4871.txt http://www.dkim.org/