Pular para o conteúdo
Development

Fechando a porta que ninguém usava

Por Victor Da Luz
securitydnsemaildev-logsite

Um spike de segurança de algumas semanas atrás revelou algo pequeno mas real: o imperfectsystems.com não tinha registro SPF nem DMARC. O domínio não envia nenhum e-mail, a caixa de entrada de verdade vive em mail.imperfectsystems.com, gerenciada pelo SimpleLogin, que já estava configurado corretamente, mas o domínio apex puro estava completamente aberto. Qualquer um podia forjar um e-mail alegando ser anything@imperfectsystems.com, e nada impediria que ele chegasse na caixa de entrada de alguém parecendo legítimo.

A correção para um domínio que nunca envia e-mail é um registro SPF nulo, v=spf1 -all, que diz, sem ambiguidade, “nenhum servidor está autorizado a enviar e-mail a partir deste domínio, ponto final.” Junte isso com uma política DMARC de p=reject e você disse a todo servidor de e-mail receptor: se algo alega vir daqui e falha nessa checagem, jogue fora.

A parte que levou mais tempo do que os próprios registros DNS foi descobrir como de fato adicioná-los. Nenhum dos tokens de API do Cloudflare já guardados no vault do homelab conseguia editar DNS, um estava restrito a um domínio completamente diferente, outro conseguia ler zonas mas não escrever registros. Criar um token novo exige o painel do Cloudflare diretamente, não existe um caminho de API para criar um token do zero. Então, em vez de passar por todo o processo de provisionar novo acesso de infraestrutura para o equivalente a duas entradas DNS, a jogada mais simples venceu: adicionar à mão no painel, o que leva cerca de noventa segundos quando você já sabe exatamente o que digitar.

Verifiquei com dig logo depois, os dois registros resolveram como esperado, e então conferi a única coisa que de fato importava: que a caixa de e-mail real no subdomínio não tinha sido tocada. Não foi. Registros SPF, DMARC e MX são restritos por hostname, não herdados do domínio acima deles, então o mail.imperfectsystems.com manteve sua própria configuração independente do SimpleLogin o tempo todo. Dois registros, um comando para verificar, nenhum risco para nada que já estava funcionando.

Leitura relacionada

Development

O bug atrás do bug

Um widget do GitHub quebrado rastreado até uma demo upstream pausada, e, encontrado no caminho, um CSP fixado por hash silenciosamente invalidado por uma correção de acessibilidade de uma linha.

Ler
Development

O CSP que só quebrou em produção

Quatro falhas atrás de um único header: middleware morto, regras de _headers que se combinam em vez de sobrescrever, um worker de blob URL sob script-src, e um script que só o edge injeta.

Ler

Você também pode achar útil

Proton

Proton Mail

E-mail criptografado de ponta a ponta, com arquitetura de acesso zero.

Como parceiro da Proton, ganho com compras qualificadas dos serviços de privacidade e segurança da Proton (Pass, Mail, VPN, Drive).

Saiba mais
Proton

Proton Drive

Armazenamento em nuvem criptografado, da equipe por trás do Proton Mail.

Como parceiro da Proton, ganho com compras qualificadas dos serviços de privacidade e segurança da Proton (Pass, Mail, VPN, Drive).

Saiba mais
RackNerd

RackNerd VPS

Hospedagem VPS econômica para serviços leves que funcionam continuamente.

Como afiliado da RackNerd, ganho com compras qualificadas.

Saiba mais