// Segurança de E-mail

SPF, DMARC e DKIM: por que sua empresa pode estar facilitando phishing sem saber

O protocolo SMTP foi criado nos anos 80 sem nenhum mecanismo de autenticação. Sem três registros DNS configurados, qualquer servidor no mundo pode enviar e-mail fingindo ser o seu domínio: e o destinatário não tem como diferenciar.

O problema que o protocolo criou

O SMTP foi projetado para confiança, não para segurança. Qualquer servidor de e-mail pode declarar que está enviando em nome de qualquer domínio, e o protocolo aceita essa declaração sem questionar. Os campos visíveis ao destinatário (From, Reply-To, Subject) são separados do envelope técnico de envio, e atacantes manipulam os dois de forma independente.

O resultado: um e-mail que aparece com remetente ceo@suaempresa.com.br pode ter sido enviado de um servidor em outro país, sem que nenhuma vulnerabilidade de software tenha sido explorada: apenas ausência de configuração de DNS.

Em 2023, o FBI registrou mais de US$ 2,9 bilhões em perdas confirmadas por Business Email Compromise (BEC) só nos EUA: ataques que dependem principalmente de spoofing de domínio corporativo.

SPF

Quem pode enviar

Lista os IPs autorizados a enviar e-mail em nome do domínio via registro TXT no DNS.

DKIM

Assinatura criptográfica

Cada mensagem recebe uma assinatura digital verificável. Garante integridade e origem.

DMARC

Política e alinhamento

Define o que acontece quando SPF/DKIM falham e exige alinhamento com o From visível.

Os três tipos de spoofing de e-mail

SPF, DKIM e DMARC protegem contra tipos diferentes de ataque. Entender a distinção define o que cada configuração realmente bloqueia:

Tipo 1

Display Name Spoofing

Usa domínio diferente mas coloca o nome de um executivo no campo exibido. Não é bloqueado por SPF/DMARC: o domínio real passa.

De: "João CEO" <joao@gmail.com>
Tipo 2

Exact Domain Spoofing

Usa exatamente o domínio da empresa no campo From. Parece idêntico ao legítimo. É contra esse tipo que SPF/DKIM/DMARC atuam diretamente.

De: ceo@suaempresa.com.br
Tipo 3

Lookalike Domain

Registra domínio visualmente parecido (caractere Unicode, letra duplicada). SPF/DMARC no seu domínio não ajudam aqui: o domínio falso é "legítimo".

De: ceo@suaempresа.com.br

SPF: a lista de servidores autorizados

O SPF (Sender Policy Framework) publica no DNS uma lista de IPs autorizados a enviar e-mail em nome do domínio. Quando um servidor recebe uma mensagem de @suaempresa.com.br, ele consulta o registro TXT do domínio e verifica se o IP de origem está na lista.

DNS TXT: suaempresa.com.br
v=spf1 include:_spf.google.com -all
// apenas servidores do Google autorizados; qualquer outro é REJEITADO

O sufixo final define o que acontece com e-mails de IPs não autorizados:

-all
Hardfail: rejeita completamente. Use quando todos os remetentes legítimos estão no registro.
~all
Softfail: marca como suspeito mas entrega. Útil na transição, não bloqueia o ataque.
+all
Permite qualquer remetente. Equivale a não ter SPF. Nunca use.

Limitação crítica: o SPF verifica o endereço técnico do envelope (Mail From), não o campo From visível ao usuário. Um atacante pode passar no SPF usando seu domínio no envelope enquanto exibe o domínio da vítima no campo visível. Por isso SPF sozinho não basta para prevenir exact domain spoofing.

DKIM: a assinatura digital de cada mensagem

O DKIM adiciona uma assinatura criptográfica a cada mensagem. O servidor de envio usa a chave privada para assinar; o servidor receptor busca a chave pública no DNS e verifica. Se a mensagem foi alterada em trânsito, mesmo um único caractere, a verificação falha.

DNS TXT: google._domainkey.suaempresa.com.br
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEB...
// chave pública RSA que valida as assinaturas de cada mensagem enviada

O prefixo google é o seletor: identifica qual par de chaves usar. Uma empresa pode ter múltiplos seletores ativos (um por provedor de e-mail, um para rotação de chaves). Seletores comuns: google, mail, default, k1, s1.

Limitação: o DKIM não impede alguém de enviar mensagem não assinada do seu domínio. A ausência de assinatura precisa ser tratada como falha, e isso é definido pelo DMARC.

DMARC: a política que fecha as brechas

O DMARC exige alinhamento: o domínio no campo From visível ao usuário deve coincidir com o domínio que passou no SPF ou que assinou o DKIM. Isso fecha a brecha de "passar no SPF com envelope diferente". E define o que o servidor receptor deve fazer quando a verificação falha.

DNS TXT: _dmarc.suaempresa.com.br
v=DMARC1;
p=reject; // política: rejeitar mensagens que falham
sp=quarantine; // subdomínios: quarentena
adkim=s; // alinhamento DKIM: estrito
aspf=s; // alinhamento SPF: estrito
rua=mailto:dmarc@suaempresa.com.br;
ruf=mailto:dmarc-forense@suaempresa.com.br

Os três valores de política (p=):

p=none
Somente monitora. E-mails falsos chegam normalmente. Útil apenas durante diagnóstico inicial.
p=quarantine
Envia para spam. E-mails falsos ainda chegam ao destinatário: na pasta de spam.
p=reject
Rejeita na entrega. O servidor descarta antes de entregar ao destinatário. Proteção real.

O que o campo sp= protege

O campo sp= define a política para subdomínios que não têm DMARC próprio. Sem ele, um atacante pode enviar e-mail falso como @newsletter.suaempresa.com.br ou @marketing.suaempresa.com.br (subdomínios herdados) sem restrição.

Relatórios DMARC: o que revelam

O campo rua= configura um endereço que recebe relatórios XML diários de todos os servidores do mundo que tentaram entregar e-mail do seu domínio. Esses relatórios revelam:

  • Serviços legítimos não incluídos no SPF (ferramentas de marketing, ERP, sistemas de disparo)
  • Tentativas de spoofing do seu domínio em andamento: com IP de origem e volumes
  • Servidores parceiros com DKIM mal configurado que estão falhando na verificação

Por que "ter SPF" não é suficiente

A configuração mais comum em auditorias: SPF existe (porque o Google Workspace pediu no setup), DMARC ausente ou em p=none. O resultado: spoofing exato do domínio continua possível e ninguém está monitorando.

⚠️ O ataque BEC em duas etapas

Fase 1: atacante envia e-mail falsificado do "CEO" para o RH pedindo lista de funcionários e dados fiscais. Confiança estabelecida por e-mail com domínio legítimo. Fase 2: pedido de transferência bancária urgente "para fechar negociação confidencial antes do fechamento do mês". Sem DMARC em reject, nenhuma camada técnica bloqueou o e-mail de fase 1: a engenharia social fez o resto.

Como detectar spoofing nos cabeçalhos

Em qualquer cliente de e-mail é possível ver os cabeçalhos completos de uma mensagem. Dois campos revelam se a autenticação passou:

Cabeçalhos: e-mail legítimo com proteção completa
Received-SPF: pass (suaempresa.com.br authorized)
Authentication-Results: mx.google.com;
  dkim=pass header.i=@suaempresa.com.br;
  spf=pass smtp.mailfrom=suaempresa.com.br;
  dmarc=pass header.from=suaempresa.com.br
Cabeçalhos: e-mail falsificado entregue (sem DMARC)
Received-SPF: fail (185.220.x.x não autorizado)
Authentication-Results: mx.google.com;
  dkim=none (sem assinatura);
  spf=fail smtp.mailfrom=attacker.xyz;
  dmarc=fail header.from=suaempresa.com.br
// sem p=reject: esse e-mail foi entregue normalmente

Como verificar seu domínio agora

Terminal
# SPF
dig TXT suaempresa.com.br +short

# DMARC
dig TXT _dmarc.suaempresa.com.br +short

# DKIM (tente seletores comuns)
dig TXT google._domainkey.suaempresa.com.br +short
dig TXT default._domainkey.suaempresa.com.br +short

Se _dmarc retornar vazio, ou retornar p=none, o domínio está vulnerável a spoofing exato. A análise do WS Vicentin verifica SPF, DKIM (por força bruta de seletores comuns) e DMARC, retornando um score de proteção com diagnóstico detalhado.

✓ Ordem de implementação segura

1. Configure SPF com todos os remetentes legítimos mapeados. 2. Ative DKIM no seu provedor. 3. Implante DMARC com p=none e analise relatórios rua= por 2–4 semanas. 4. Avance para p=quarantine. 5. Após confirmar que nenhum remetente legítimo falha, avance para p=reject.