Spam e fraudes. Técnicas de mitigação para administradores de redes. baseado em - PDF
Spam e fraudes. Técnicas de mitigação para administradores de redes. baseado em
Download "Spam e fraudes. Técnicas de mitigação para administradores de redes. baseado em http://antispam.br/admin/"
Nina da Fonseca Almada
1 Spam e fraudes Técnicas de mitigação para administradores de redes baseado em
2 Agenda Conceitos Fundamentais * A Estrutura da Mensagem * O Funcionamento do Correio Eletrônico * Algumas Técnicas de Envio de Spam que devem ser combatidas Técnicas para Redução do spam recebido * Listas de Bloqueio * Filtros de Conteúdo * Greylisting Técnicas para Combater a Falsificação de Endereços * SPF * DKIM Boas Práticas de Configuração para Evitar o Abuso da Rede
3 Conceitos Fundamentais A Estrutura da Mensagem (RFC2822) Envelope Informações para o MSA ou MTA saiba o que fazer com a mensagem Existem somente durante a transmissão da mensagem. mail from: rcpt to: rcpt to: em caso de erro entrega normal Cabeçalho Campos com dados úteis tanto para servidores quanto aplicativos. Fazem parte da mensagem. Return path: From: Danton Nunes To: Klaus Cc: Ethy H. Brito Subject: Slides para SSI/2006
4 Conceitos Fundamentais A Estrutura da Mensagem Cabeçalho (cont.) Campos mais importantes no gerenciamento de problemas relativos a spam Return Path: geralmente copiado do envelope (MAIL FROM), é o endereço para onde vão mensagens de erro. Pode ser vazio! Received: indica a procedência (pelo endereço IP), a data e a hora em que a mensagem foi recebida. Analisando os vários Received: é possível recuperar o caminho que a mensagem percorreu, mas ATENÇÃO: somente o Received: mais recente é digno de confiança, os demais podem ser falsos! From: designa o remetente nominal da mensagem, que não é necessaria mente igual ao que aparece no envelope ou no campo Return Path:. To: Cc: Bcc: designam os destinatários que não necessariamente coinci dem com os declarados no envelope. Bcc: é deletado antes da entrega da mensagem.
5 Conceitos Fundamentais A Estrutura da Mensagem Corpo da mensagem O corpo da mensagem contém seu texto e anexos, se houverem. O formato e a codificação do corpo são descritos pelos campos Content type: e Content Transfer Encoding: e, em caso de mensagens complexas, MIME Type:. O corpo da mensagem é separado do cabeçalho por uma linha em branco. MTAs não lidam com o corpo da mensagem. Alguns programas auxiliares de MTAs, entretanto, podem processar o corpo das mensagens, tais como anti vírus e anti spam baseados em análise de conteúdo.
6 Conceitos Fundamentais A Estrutura da Mensagem Resumindo envelope separador mail from: rcpt to: sicrano From: fulano de tal To: Sr. Sicrano de Qual Return path: cabeçalho texto anexo outro anexo mais um anexo inútil corpo
7 O Funcionamento do Correio Eletrônico Conceitos * Caixa postal: é um arquivo ou diretório onde as mensagens são recebidas. * MUA (Mail User Agent): é uma aplicação ou programa utilizado diretamente pelo usuário para compor, enviar e ler mensagens. Exemplos de MUAs são: Pine, Mutt, Mozilla Thunderbird, etc. * MDA (Mail Delivery Agent): é uma aplicação responsável por entregar mensagens em caixas postais. Um exemplo de MDA é o Procmail. * MTA (Mail Tranfer Agent): é uma aplicação responsável por passar mensagens para outros MTAs ou para um MDA, se o destino da mensagem for respectivamente remoto ou local. Há vários MTAs, por exemplo: Sendmail, Qmail, Exim e Postfix.
8 O Funcionamento do Correio Eletrônico Conceitos * MSA (Mail Submission Agent): é como o MTA, mas requer autenticação do usuário e atende por porta específica. MUA MSA MTA MUA destinatário remetente direct delivery fila fila 25 POP, IMAP MTA filtros MDA direto MUA remoto fila refugos caixa postal Um dia na vida de uma mensagem
9 Algumas Técnicas de Envio de Spam» programas de envio de e mail em massa Estes programas são fáceis de obter e podem ser configurados para enviar e mails através de máquinas com proxies abertos.» spam zombies são computadores de usuários finais que foram comprometidos por códigos maliciosos em geral, como worms, bots, vírus e cavalos de tróia. Estes códigos maliciosos, uma vez instalados, permitem que spammers utilizem a máquina para o envio de spam, sem o conhecimento do usuário.» vírus propagados por e mail normalmente são recebidos como um arquivo anexado à uma mensagem de correio eletrônico. O conteúdo dessa mensagem procura induzir o usuário a clicar sobre o arquivo anexado, executando o vírus, que infecta arquivos e programas e envia cópias de si mesmo para os contatos encontrados nas listas de endereços de e mail.
10 Algumas Técnicas de Envio de Spam» abuso de formulários e scripts na Web muitos serviços Web tem algum tipo de transmissão do conteúdo de formulários por e mail, sendo que tal funcionalidade pode ser abusada para a transmissão de spam. Um exemplo de funcionalidade que pode ser abusada é a função mail() da linguagem PHP e seus similares em outras linguagens. Spams enviados a partir de servidores Web mal configurados são dificilmente contidos pelas práticas atuais de contenção.» uso de sites comprometidos servidores comprometidos ou conquistados por crackers estão entre as plataformas de lançamento preferidas do spammer. Sua identidade é preservada e quando o esquema é eventualmente descoberto, quem se compromete é o administrador do sistema invadido.
11 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web O alvo são formulários que enviam e mail, através de scripts mal escritos ou "ingênuos". Métodos em PHP e linguagens similares que enviam e mail não fazem crítica dos dados que recebem, o que permite que sejam subvertidos para enviar e mail para destinatários não planejados. Spam enviado por meio de formulários é praticamente invencível pois:» vem de um servidor válido => engana SPF e greylisting;» vem de remetente válido e pode ser assinado => engana DKIM;» o perpetrante fica completamente anônimo. Como resolver? Escrever os programas de web defensivamente!
12 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web <form action="send.php" method="post"> <p><label for="from">seu e mail, para resposta</label> <input type="text" name="from" size="40" /></p> <p><label for="msg">entre a sua mensagem</label> <textarea cols="40" rows="8" name="msg"></textarea></p> <input type="submit" value="enviar" onclick="return validate(this.form)" /> </form> A função "validate" retorna 0 nos seguintes casos: 1. "from" não contém um endereço de e mail válido; 2. a mensagem está vazia.
13 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web Seu e mail para resposta Entre a sua mensagem Querido Papai Noel, Neste ano eu fui bonzinho, fiz toda a lição de casa, então eu acho que mereço um presente bem legal. Neste Natal eu quero um Mac mini com Intel Dual Core rodando a última versão do MacOS X. obrigado! Enviar
14 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web send.php <script language="php"> if (mail( mensagem recebida pelo formulário, $_POST[ msg ], From:.$_POST[ from ])) success(); else failure(); </script> Parece bom, afinal os dados em $_POST já foram verificados antes de serem enviados. Pois é, PARECE bom, mas não é. Há dois pressupostos falsos aqui que permitem exploração.
15 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web Pressupostos falsos: 1. O cliente vai executar a função validate que garante que só dados válidos serão submetidos; 2. A função mail do PHP faz o que promete, isto é, envia uma mensagem para o endereço que está no primeiro argumento. E está armado o caminho para o desastre.
16 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web Função mail do PHP (e de tantas outras linguagens) mail(to, subject, message, headers) linha em branco To: Subject: MSA sendmail t
17 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web telnet 80 POST send.php HTTP/1.0 host: Content type: text/plain Content length: 3546 from=j. D. Spammer Bcc: Pato1 Bcc: Pato2 Bcc: Pato3 tudo isto vai parar em $_POST[ from ] linha em branco, separando cabeçalho do "corpo" da mensagem Caro Pato, Você foi indicado por um amigo para participar desta promoção especial bla bla bla, basta clicar aqui, quac quac quac... spammers adoram Bcc:! isso, clica, clica!
18 Algumas Técnicas de Envio de Spam Exemplo: abuso de formulários e scripts na Web Resultado do ataque:» A mensagem vai para os "patos" indicados nos Bcc:» O usuário real do formulário nem fica sabendo!» Envio por meio de MSA/MTAs perfeitamente válidos. Solução:» Programação defensiva, isto é, validar os dados recebidos por formulário do lado servidor, mesmo que isso tenha sido supostamente feito no lado cliente. Mas nem tudo está perdido:» A maioria dos servidores Web rodam sob usuários conhecidos (www, nobody, apache, etc.), portanto é possível estabelecer uma regra de filtragem com essa base.
19 Técnicas para redução do spam recebido São políticas aplicadas na recepção das mensagens, envolvendo MTA de recepção, MDA (entrega) e MUA (ferramenta do usuário) Miram diferentes características do spam: origem, forma, conteúdo, comportamento. Principais técnicas» Listas de bloqueio (e de exceção)» Filtros de conteúdo» Greylisting O uso destas técnicas implica em algum esforço por parte de quem recebe o spam. Nenhuma é infalível, muito pelo contrário...
20 Listas de bloqueio Introdução Listas de bloqueio são, talvez, o mais antigo mecanismo de combate ao spam. Estas listas são bases de dados de endereços IP que tenham sido identificados como possível fonte de spam, segundo os critérios da entidade que mantém a lista. As listas normalmente funcionam através de consultas DNS às bases de dados. Também existem outros critérios de bloqueio, geralmente envolvendo DNS, como: * bloqueio pela inexistência de reverso; * bloqueio pela inconsistência do reverso; * bloqueio pela presença do reverso em uma lista negra de domínios.
21 Listas de bloqueio Listas negras As listas negras (blacklists) possuem endereços IP de máquinas que, segundo o critério do mantenedor da lista, estão envolvidos em envio de spam. Estas listas são implementadas através de zonas de DNS, semelhantes às de tradução reversa. Dado um endereço IP w.x.y.z a ser bloqueado, na lista este IP será incluído com o nome de domínio z.y.x.w.nome.da.lista. Se ao consultar uma lista negra pelo nome z.y.x.w.nome.da.lista for obtida uma resposta, significa que o IP w.x.y.z faz parte da lista negra. A resposta obtida costuma indicar a razão pela qual o IP foi incluído na lista de bloqueio, e varia de lista para lista.
22 Listas de bloqueio Listas negras (cont.) A implementação de consultas a listas negras é bastante fácil e praticamente todo MTA possui suporte para este recurso. É importante ter muito cuidado ao escolher quais listas consultar. Algumas listas possuem critérios de inclusão de IPs pouco seletivos, pois em geral incluem grandes blocos de rede, podendo incluir na lista de bloqueio muitos IPs que não estão envolvidos em spam. Algumas chegam a incluir todos os IPs de um determinado país, por exemplo. Para evitar o bloqueio de e mails legítimos, que venham de redes apenas vizinhas de IPs que enviam spam, é aconselhável a utilização de listas que tenham um bom critério de inclusão de IPs. Um documento de referência para a escolha das listas é o relatório do San Diego Supercomputing Center,
23 Listas de bloqueio Listas negras (cont.) Também é possível criar uma lista negra própria, desde que se tenha acesso a um servidor de nomes, e nele listar os endereços IP que violem alguma política pré estabelecida. Cuidados O maior problema com listas negras são os falsos positivos, isto é, endereços que estão listados apenas por pertencerem a determinados blocos "malditos". => O inocente paga pelo culpado. Acontece freqüentemente de um conjunto de IPs permanecer listado muito tempo depois de o problema que o levou à lista ter sido sanado. Use listas negras como um último recurso, apenas para mensagens que não foram aprovadas (ou rejeitadas) por outros critérios.
24 Listas de bloqueio Listas de linhas discadas São listas que enumeram os domínios reversos de redes dedicadas somente ao acesso doméstico, seja propriamente discado ou de banda larga. O funcionamento é semelhante às listas negras, mas neste caso o domínio consultado é o reverso clássico (in addr.arpa). Se o domínio resultante for sub domínio de qualquer um listado, a mensagem é rejeitada. Cuidado: Vários operadores de ADSL não fazem separação de seus usuários domésticos dos corporativos.
25 Listas de bloqueio Listas de relays e proxies abertos Relays abertos são MTAs que transmitem mensagens de qualquer domínio, ou mesmo só de domínios determinados, para qualquer outro, sem pedir autenticação, sem restringir (ou restringindo muito pouco) a faixa de endereços IP de origem. Relays abertos podem ser MTAs mal configurados ou programas instalados clandestinamente em máquinas comprometidas. Proxies abertos usam um mecanismo diferente, mas com o mesmo efeito. Em vez de um MTA ser abusado, é um serviço de proxy que é abusado para retransmitir mensagens, por exemplo, através do comando CONNECT. As listas de relays e proxies abertos funcionam exatamente como as listas negras convencionais. Algumas listas negras mais gerais retornam valores indicativos de que o IP foi incluído lá por ser um relay ou proxy aberto.
26 Listas de bloqueio Lista branca (ou de exceção) A lista branca (whitelist) consiste em uma lista de exceções às regras de bloqueio por listas negras ou outros critérios. Normalmente a lista branca é mantida pelo próprio administrador do serviço de e mail, e pode ser implementada através de DNS, listas de domínios, IPs ou blocos CIDR, ou através de regras de SPF que devem ser avaliadas antes de qualquer outra. Por exemplo, usando SPF, se quiséssemos que qualquer IP da rede /24 pudesse enviar mensagens independentemente de registros SPF (ou a falta deles), ou mesmo que constem de alguma lista negra, bastaria incluir um registro SPF contendo ip4: /24 para colocá lo na lista branca.
27 Listas de bloqueio Checagem de informações de DNS e de aderência a RFCs Um método de bloqueio utilizado por alguns administradores de redes é impedir o recebimento de mensagens partindo de máquinas cujo endereço IP não possui um registro DNS do tipo PTR (endereço reverso). Adicionalmente também é possível verificar se o nome da máquina, retornado pela consulta PTR, possui um registro do tipo A que seja igual ao endereço IP originalmente consultado. Normalmente o bloqueio em função do endereço reverso está associado com algum outro critério, como por exemplo, determinar se o transmissor é um provável usuário doméstico, de linha discada, ADSL ou cabo, uma vez que estas máquinas não são MTAs e muitas vezes podem ser spam zombies.
28 Listas de bloqueio Checagem de informações de DNS e de aderência a RFCs (cont.) Há duas considerações que devem ser feitas sobre o bloqueio em função do endereço reverso de máquinas de usuários domésticos: * este depende de convenções adotadas pelo provedor de serviços da rede de origem. Estas convenções podem mudar sem aviso prévio e não são uniformes entre diversos provedores; * pode fazer com que MTAs válidos sejam bloqueados. Cuidado: possuir endereço reverso não é obrigatório, além disso, nem sempre os administradores de redes possuem controle direto sobre a configuração DNS de seus IPs. Desse modo, bloqueio em função do endereço reverso deve ser usado com cautela.
29 Listas de bloqueio Considerações finais sobre listas de bloqueio É importante sempre lembrar que, ao utilizar listas de bloqueio, existe o risco de mensagens legítimas serem bloqueadas. Existem outras técnicas, como SPF e greylisting, que não se baseiam somente em informações sobre o IP que está enviando o e mail e possuem uma taxa menor de falsos positivos. RESUMINDO: Só use se tudo mais falhar!
30 Filtros de conteúdo Introdução Existem algumas técnicas de bloqueio de spam que se baseiam na análise do conteúdo da mensagem, reconhecendo 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, MDA, ou ainda no aplicativo do usuário. Uma vez que uma mensagem foi reconhecida como possivelmente hostil, ela pode ser: Rejeitada com erro Message content rejected aceita, porém desviada para quarentena aceita e enviada para destinatário com marca de "suspeita"
31 Filtros de conteúdo Anti vírus Existem no mercado diversas opções de anti ví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 anti vírus. Os programas anti ví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 anti ví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 anti ví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 anti vírus somente depois de terem sido avaliadas por outras técnicas.
32 Filtros de conteúdo Filtros Bayesianos anti spam Analisam o conteúdo da mensagem e avaliam a probabilidade dela ser spam em função de uma base de conhecimento pré armazenada. É necessário treinar o filtro, para que ele forme a base de dados, injetando mensagens boas e ruins. O treinamento pode ser contínuo e concomitante com a operação regular Um filtro bastante popular de reconhecimento de spam é o SpamAssassin, um script em Perl. Os mesmos programas usados para desmontar mensagens para anti vírus podem acionar filtros anti spam. Ao contrário dos anti vírus, porém, o foco desses filtros é muito mais o texto da mensagem do que os anexos.
33 Filtros de conteúdo Filtros Bayesianos anti spam (cont.) O consumo de recursos computacionais é elevado, porém menos crítico que no caso dos anti ví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.
34 Filtros de conteúdo Filtros Bayesianos anti spam (cont.) 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. Resumindo Funcionar, funciona, pero...» custo elevado em CPU» retreinamento constante: o spammer se adapta!» gera falsos positivos
35 Filtros de conteúdo 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 exibi las.
36 Filtros de conteúdo 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, anti vírus em especial, podem ser bastante eficazes na detecção de códigos maliciosos.
37 Greylisting Introdução O conceito de greylisting consiste em recusar temporariamente uma mensagem e esperar por sua retransmissão, e parte dos seguintes princípios: * que e mails válidos são enviados a partir de MTAs legítimos, que mantém filas e possuem políticas de retransmissão em caso de erros temporários; * spammers e códigos maliciosos raramente usam MTAs legítimos. Contudo, existem spammers que utilizam MTAs legítimos ou mesmo reenviam as mensagens a fim de contornar esta técnica. Ainda assim, o greylisting tem se mostrado eficiente para barrar mensagens enviadas por vírus, worms e spam zombies. O documento de referência sobre greylisting é o whitepaper
38 Greylisting Funcionamento Em geral as implementações de greylisting mantém um banco de dados com registros indexados por: * endereço IP da origem; * endereço do remetente no envelope; * endereço do destinatário no envelope.
39 Greylisting Funcionamento (cont.) transparente aceitação temporária bloqueio temporário (IP,envelope) ainda não registrados no BD
40 Greylisting Comentários finais É importante também manter em uma lista branca, endereços IP que tem passagem livre pelo greylisting, ou porque são máquinas confiáveis (da própria rede, de redes conhecidas, etc) ou por que seus MTAs não conseguem tratar corretamente erros temporários. Há um aspecto psicológico a ser considerado: as pessoas se acostu maram com a idéia (completamente equivocada) de que e mail é instan tâneo e podem se ver perdidas diante dos atrasos causados por esta técnica. Há serviços de e mail que tem vários endereços IP, o greylisting tratará a mesma mensagem vinda desses vários IPs como mensagens diferentes. Se for possível reconhecer uma mensagem como boa por outro critério, não a submeta desnecessariamente ao "chá de cadeira".
41 SPF Sender Policy Framework Sumário * Introdução * Publicando a política SPF * Configurando o MTA * SPF e esquemas de retransmissão de e mails * SRS Sender Rewriting Scheme * Relays confiáveis * Redirecionamento * Listas negras e SPF
42 SPF Sender Policy Framework Introdução SPF é uma tecnologia para combater a falsificação de endereços de retorno dos e mails (return path). O mecanismo permite: * ao administrador de um domínio: definir e publicar uma política SPF, onde são designados os endereços das máquinas autorizadas a enviar mensagens em nome deste domínio; e * ao administrador de um serviço de e mail: estabelecer critérios de aceitação de mensagens em função da checagem das políticas SPF publicadas para cada domínio. O processo de publicação de uma política SPF é independente da implantação de checagem de SPF por parte do MTA, estes podem ou não ser feitos em conjunto.
43 SPF Sender Policy Framework Publicando a política SPF Ao publicar uma política de SPF, o administrador de um domínio está autorizando determinados MTAs a enviar e mails em nome deste domínio. O objetivo é evitar que terceiros enviem mensagem indevidamente em nome de seu domínio, e que mensagens de erro (bounces) causadas por spam com envelope falso sejam enviadas para o seu servidor. Estas políticas são publicadas através de registros TXT do DNS, em formato ASCII. Um exemplo desse registro é: Exemplo: example.com. IN TXT "v=spf1 a mx ip4: /27 all"
44 SPF Sender Policy Framework Publicando a política SPF (cont.) example.com. IN TXT "v=spf1 a mx ip4: /27 all" Neste caso a política estabelece que pode enviar mensagens em nome do domínio example.com uma máquina que satisfaça um dos seguintes critérios: * seu endereço IP deve ser um RR tipo A do domínio example.com (a); * seja designada como MX do domínio example.com (mx); ou * pertença ao bloco de endereços IP /27 (ip4). A cláusula " all" diz que devem ser recusados (" ", prefixo Fail) e mails partindo de qualquer outro endereço IP (all).
45 SPF Sender Policy Framework Publicando a política SPF (cont.) Todas as opções de prefixos são: * "+" Pass * " " Fail * "~" SoftFail * "?" Neutral O prefixo é opcional, e se omitido o valor utilizado é o "+" (Pass). A cláusula "all" deve ser sempre a cláusula mais à direita. Ela define qual resposta será retornada em uma consulta SPF, caso nenhuma das outras cláusulas se aplique.
46 SPF Sender Policy Framework Publicando a política SPF (cont.) O administrador de um MTA que consulte a política SPF do domínio do remetente de um e mail, como definido no envelope, poderá rejeitar ou marcar como suspeita uma mensagem que não satisfaça à política SPF daquele domínio. A especificação completa de como expressar uma política SPF pode ser encontrada no sítio de referência do SPF ( e no documento "Sender Policy Framework (SPF) for Authorizing Use of Domains in E MAIL" (
47 SPF Sender Policy Framework Configurando o MTA A maioria dos MTAs atuais possui suporte a SPF, seja através de filtros externos (Milters), patches ou suporte nativo, via de regra usando a biblioteca libspf2. É necessário estabelecer quais serão as ações tomadas dependendo da resposta obtida à consulta SPF. A RFC4408 define algumas possíveis interpretações dos resultados: há registro SPF? sim não neutral pass fail softfail outros critérios comportamento indefinido o IP está autorizado a enviar o IP NÃO está autorizado a enviar o IP não deveria enviar mas esta pode ser uma situação transitória
48 SPF Sender Policy Framework SPF e esquemas de retransmissão de e mail Mensagens legítimas, mas que tenham passado por um relay ou tenham sido redirecionadas, podem ser recusadas por MTAs que checam SPF. Para evitar que estas mensagens sejam rejeitadas, devem ser adotadas algumas estratégias, como SRS (Sender Rewriting Scheme) e autorizações especiais.
49 SPF Sender Policy Framework SRS Sender Rewriting Scheme Para evitar que MTAs que checam SPF rejeitem mails redirecionados, é necessário que o relay reescreva o endereço do remetente no envelope e encapsule o endereço original. O SRS reescreve o endereço do remetente no envelope, de modo que: * o IP do transmissor é autorizado (pass) a enviar mensagens em nome do domínio à direita do * o endereço à esquerda do permite determinar qual é o remetente real; * o endereço à esquerda do contém uma assinatura e um timestamp, que permitem reconhecer sua validade em mensagens de erro retornadas.
50 SPF Sender Policy Framework SRS Sender Rewriting Scheme (cont.) Por exemplo, considere o remetente cuja mensagem é retransmitida por "example.org", o envelope poderá ser reescrito da seguinte forma: Exemplo: onde, * "HHH" é um hash criptográfico para validar os dados do envelope$ * "TT" é um timestamp.
51 SPF Sender Policy Framework SRS Sender Rewriting Scheme (cont.) Além de evitar o abuso por parte de spammers, estas informações, também permitem que o relay receba uma mensagem de erro, consiga validá la e enviá la para o endereço correto de origem. Nem todos os MTAs têm suporte a esquemas de reescrita do endereço de remetente. Os que têm, quase sempre se baseiam na libsrs2 ( De modo geral, somente servidores especializados em relays de mensagens é que precisam do SRS para poder operar em conjunto com SPF. Para outros tipos de MTAs, que estejam sob seu controle, há uma solução mais simples, apresentada a seguir.
52 SPF Sender Policy Framework Relays confiáveis No caso de se usar MTAs secundários do tipo queue only, o envio das mensagens do servidor secundário para o principal pode ser feito com SRS, mas há um esquema mais simples, que consiste em: 1. configurar o servidor secundário para também checar SPF, e tomar as mesmas ações que o servidor principal; 2. incluir o endereço IP do servidor secundário em uma lista branca de endereços IP previamente aprovados. Os MTAs que checam SPF normalmente possuem uma regra local para isso; ou 3. configurar o servidor secundário para que se autentique no servidor principal antes de iniciar as transações de envio das mensagens em sua fila.
53 SPF Sender Policy Framework Redirecionamento O redirecionamento de mensagens através de esquemas como o uso do.forward ou de aliases redirecionando mensagens de um domínio para outro, também acarretam dificuldades quando o domínio tem um registro SPF. Nesses casos é necessário reenviar o e mail, reescrevendo o remetente no envelope, para evitar rejeição por parte de MTAs que chequem SPF.
54 SPF Sender Policy Framework Listas negras e SPF Caso seja feito o uso de listas negras, é interessante verificar se o endereço IP do remetente se encontra em uma lista negra somente depois de verificar o registro SPF. Caso o resultado do SPF for Pass, o IP não deve ser bloqueado. Esta recomendação é importante porque listas negras possuem uma taxa relativamente alta de falsos positivos, como discutido na seção sobre listas de bloqueio. Nem todos os MTAs, entretanto, permitem que se faça a consulta à lista negra depois de verificar o SPF. É possível usar as políticas padrão do SPF para implementar consultas a listas negras, embora sejam configurações não triviais. No sítio de referência do SPF ( há vários exemplos.