Apresentação Anti-Spam

Transcrição

Apresentação Anti-Spam
Solução Anti-Spam
Set/2006
Motivação do Projeto
• PROBLEMA :
A taxa de recebimento de spams muito alta,
gerando insatisfação dos usuários
E-mails: Picos de 640 mil/dia
Usuários: Média de 30 spams/dia
Objetivo do Projeto
• Melhorar/atualizar os serviços anti-spam dos
servidores de mail corporativos da UNICAMP
• Equipe:
– Aguinaldo
– Cristina (DBA)
– Denise
– Rachel (Equipe de Redes)
– Sandra
– Tereza (Tete)
Premissas Básicas
• Manter o serviço de email útil e funcionando.
• Evitar perda de emails válidos por erro (falso
positivo).
• Utilizar o recurso racionalmente evitando
gastos desnecessários de upgrade de
hardware.
• Gastar menos tempo na manutenção do
Ambiente, sobrando mais tempo para outras
atividades.
Critérios da Avaliação das
Ferramentas
• Grau de dificuldade de Instalação e
Configuração
• Freqüência de manutenção dos dados e
software - Maturidade do software
• Impacto de performance no Ambiente
• Análise Pré-Data ou Pós-Data (sem ou com
enfileiramento, antes ou depois da fase de
dados)
• Consumo de CPU, Memória e I/O
• Taxa de erro - Falso Positivo/Falso Negativo
• Eficiência
• Impacto de Implantação
Ferramentas Estudadas
•
•
•
•
•
•
•
•
•
•
•
•
•
Postfix (*)
Greylisting (*)
SPF (Sender Policy Framework) (*)
Amavisd-new (*)
SpamAssassin (*)
Bogofilter
DSPAM (*)
Razor (*)
Pyzor
DCC (Distributed Checksum Clearinghouse)
RBL (Realtime Backlist) (*)
TMDA ( Tagged Message Delivery Agent )
DomainKeys Indentified Mail (DKIM)
Pré-requisitos
• Na escolha das ferramentas foi levado em
consideração a compatibilidade com nosso
ambiente
• Postfix
• IMAP/POP: Cyrus-imap
– Sem usuários unix reais
– Sem home
• Autenticação: cyrus-sasl+pam_mysql ->
cyrus-sasl+ldap (CCUEC)
Ferramentas Adotadas
• Postfix (RBL - cbl.abuseat.org)
– Policyd
• Escrito em C
• Vários recursos (Greylisting, AutoBlacklist, etc.)
• Banco de Dados (MySQL)
– Amavisd-new
• Anti-virus (McAfee)
• SpamAssassin (Razor, RBL, SPF, etc.)
• DSPAM
Postfix
• Servidor de Mail (MTA)
• Proposta: Mais rápido, fácil de administrar e
seguro que o sendmail
• Parâmentros anti-spam :
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_authenticated_sender_login_mismatch,
reject_unauth_destination,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
Postfix-Parâmentros (cont.)
check_client_access
proxy:mysql:/usr/local/etc/postfix/mysql-policyd-whitelist.cf,
check_client_access
proxy:mysql:/usr/local/etc/postfix/mysql-policyd-blacklist.cf,
check_client_access
pcre:/usr/local/etc/postfix/pcre-client-access,
check_recipient_access
pcre:/usr/local/etc/postfix/pcre-recipient-access,
reject_unlisted_recipient,
check_policy_service inet:127.0.0.1:10031
smtpd_data_restrictions =
reject_unauth_pipelining
RBL (Real Time Blacklist)
• Listas de Bloqueio (DNS blacklist)
• Contém endereços IP/e-mails de Spammers
conhecidos
– Falso Positivos
• Cópia local de RBL
– RBLDNS
Policyd
• Greylisting
• Sender-(envelope, SASL or host / ip)-based
throttling
• Recipient rate limiting
• Spamtrap monitoring
• HELO auto blacklisting
• HELO randomization preventation
Policyd – Greylisting
• Greylisting
– O nome surgiu da idéia que este método
fica entre o conceito de whitelist e blacklist
• Este método se propõe :
– Impacto mínimo com o máximo de
eficiência;
– Bloquear a habilidade dos spammers se
desviarem do bloqueio de spams e
inventarem um novo método de envio de
mensagens não solicitadas;
– Requer pouca manutenção do
administrador e usuário;
– “Transparente” para o usuário, pois atua no
nível de MTA (Mail Tranfer Agent) - delay
Funcionamento Greylisting
Referência : http://www.antispam.br/admin/greylisting/
Amavisd-new
• É uma interface de alta-performance entre o
servidor de mail (MTA) e o analisador de
conteúdo:
– virus scanners(Virus Scan McAfee)
– SpamAssassin
– DSPAM
• Escrito em Perl
SpamAssassin
• filtro anti-spam open-source
• testes locais ou com acesso a rede
• mecanismos para tentar identificar spam:
– análise de textos
– filtros bayesianos (treinamento?!?!)
– DNS backlists (cabeçalho e corpo da
mensagem)
– Razor - base de dados colaborativas
– SPF – autenticidade do remetente
– outros
Razor
• Vipul's Razor é uma rede distribuída e
colaborativa de catálogos de spams.
• A detecção de spams é feita através de
assinaturas digitais estatísticas e randômicas
• Ele vem como plugin na instalação do
SpamAssassin
SPF (Sender Policy Framework)
• Tenta identificar remetentes forjados
comparando o servidor de origem da
mensagem com mapas DNS onde estão listados
os “outgoing-mail-servers” autorizados a
encaminhar mensagens por um determinado
domínio.
• SRS (Sender Rewriting Scheme)
Dspam
• DSPAM é um filtro de Spam, escalável e opensource, feito para sistemas de multi-usuário,
capaz de aprender e se adaptar a cada usuário.
• Algoritmos: Concept Identification, Neural
Networking, Message Inoculation , advanced
de-obfuscation techniques, Bayesian Noise
Reduction, Bayes, Chi-Square, Geometric, and
Markovian Discrimination.
• Estratégia de Implantação: Tendo em vista, sua
grande complexidade, falta de documentação e
para facilitar sua administração optamos por
utilizá-lo através do amavisd-new sem base
personalizada por usuário.
• Status: Experimental. Para aliviar a carga do
MySQL, estamos avaliando sua desativação.
Arquitetura
• Camada de Entrada :
– Primeira linha de defesa
– Protege demais camadas
– Analisa envelope, IP cliente, Helo, etc.
– Blacklists
– Filtros rápidos
• Camanda de Delivery e Análise de Conteúdo :
– Protegida pela primeira camada
– Analisa conteúdo de emails
– Protege usuários de vírus e spams
– Encaminha para mailboxes
Fluxo de Mensagens
INTERNET
Camada de
Camada
Analise Cont.
Entrada
e Delivery
Postfix
Postfix
(MTA)
(MTA)
Storage
Fluxo de Mensagens
Camada
de Entrada
Camada Analise
INTERNET
de Conteúdo e Delivery
serv1
X
X
serv2
ac1
ac2
Storage
Fluxo de Mensagens (1.a Parte)
INTERNET
RBLDNS
Postfix
Policyd
(MTA)
Mysql
Contas/Aliases
Policyd
Fluxo de Mensagens (2.a Parte)
Spam
INTERNET
Assassin
Postfix
Amavisd­
(MTA)
new
McAfee (anti­virus)
DSPAM
Storage
Mysql
Contas/Aliases
DSPAM
Procedimentos de blacklist local
• Rotate de logs de hora em hora, via
newsyslog.conf
• Rodar shells na crontab alguns minutos depois
• Inserir IPs na blacklist do mysql ou ipfw
• Shells:
– excessive_body_reject.sh (mysql)
– excessive_header_reject.sh (mysql)
– excessive_user_unknown.sh (mysql)
– persistent.sh (email para suporte – ipfw)
– excessive_spam_virus.sh (mysql)experimental
– policyd_fail.sh (email para suporte)
Referência:
http://www.acme.com/mail_filtering
Resultados
• Satisfação do cliente
– De 30 para 2 spams/dia
– Reduzimos o número de erros (falso
positivos)
• Melhor uso dos recursos
– Computadores (disco, CPU/memória)
– Menos tempo gasto na manutenção dos
servidores
• Lições Aprendidas
– Conscientização dos usuários
– Educação
– Políticas
– Falso Positivos
Referências Gerais
•
•
•
•
www.postfix.org
www.acme.com
www.sans.org
www.antispam.br
Dúvidas?