A segurança do SMTP: explorando SPF e avaliando riscos
Nesta pesquisa, analisamos a vulnerabilidade do SMTP em relação ao SPF (Sender Policy Framework)
Explorando o SPF (Email Spoofing) e avaliando os riscos
O que é SPF?
O SPF (Sender Policy Framework) é um conceito antigo e ainda muito comum em empresas. Ele é um sistema que visa evitar o envio de e-mails não autorizados em nome de um domínio específico. Ao verificar o cabeçalho de internet, o SPF analisa se o SMTP usado para enviar a mensagem está autorizado nos IPs registrados para o domínio do remetente (fonte: Wikipédia).
No SPF, existem três tipos de restrições:
-
“?all”: Permite o envio de e-mails de qualquer origem, sem analisar a origem ou o destino.
-
”~all”: Permite o envio de e-mails de qualquer origem, mas com uma alta probabilidade de serem marcados como spam ou enviados para a pasta de lixo eletrônico.
-
”-all”: Reprova qualquer envio que não esteja nas origens permitidas.
Agora que entendemos as restrições do SPF, vamos avaliar os riscos associados a elas.
Identificando domínios com possibilidade de exploração
Para identificar possíveis oportunidades de exploração, podemos utilizar o terminal e a biblioteca HOST (que já vem instalada por padrão em computadores Linux/Mac).
Execute o seguinte comando:
host -t txt nomedodominio.com.br
Lembre-se de substituir “nomedodominio.com.br” pelo nome de domínio real.
Você receberá um retorno semelhante a este:
O ponto que temos que observar é o sinal antes do “all”, no nosso caso ”~“
Conforme definido no início desta pesquisa, quando o sinal é ”~”, indica-se que o servidor aceita o envio de e-mails de qualquer origem.
Executando testes
Após identificar uma possível oportunidade de exploração, podemos realizar testes. Para isso, criei um servidor em PHP que envia e-mails a partir da minha hospedagem cPanel.
Alguns links que podem ser úteis: 1. Enviando E-mails com PHP 2. Repositório do GitHub com o código do envio
Depois de configurar a infraestrutura e preparar o servidor para enviar e-mails, basta preencher o endereço de e-mail do destinatário como o remetente. Por exemplo:
Enviar de: [email protected] Enviar para: [email protected]
Devido à configuração do SPF para aceitar todas as origens, o envio a partir do seu servidor será bem-sucedido.
Quais os riscos?
Vejamos um caso simples: imagine que você seja um contador com clientes para a declaração de Imposto de Renda (IR). Por meio de uma técnica de engenharia social, você descobre os endereços de e-mail desses clientes.
Com essas informações em mãos, basta enviar um e-mail com um boleto anexado, acompanhado da seguinte mensagem: “Segue em anexo o boleto para pagamento dos honorários do Imposto de Renda”.
Quando o destinatário (cliente) receber o e-mail, ele verificará a origem: “[email protected]”. Para o cliente, isso confirmará que o contador foi o remetente…
Considerações finais
Deixo algumas perguntas para reflexão:
- O SPF pode ser considerado uma falha ou uma má configuração?
- O SMTP é seguro?
- Quais outras opções teríamos além do SMTP?
Agradeço por ler este artigo! Até breve.