DMARC: otra capa de protección antiphishing

DMARC (Domain-based Message Authentication, Reporting & Conformance) es otro sistema de protección antispam y antiphishing patrocinado por algunos grandes del sector como Google, Yahoo, Microsoft y varios más. Su funcionamiento se basa en las reglas SPF y en firmas DKIM, que deben implementarse para poder usar DMARC, cuya solución se basa en fortalecer ambos métodos.


Cómo funciona

Se ha comprobado que las reglas SPF pueden fallar en casos de reenvío de correo, y que DKIM, aunque tiene un mejor comportamiento en éste caso, no resulta fiable al 100% debido a la complejidad del algoritmo de firma. Si se une la potencia de ambos se fortalecen sus debilidades individuales, y eso es lo que se intenta con DMARC y la implementación del concepto de alineación del identificador. Para ello se utiliza la especificación RFC5322 (From Domain). Se lee el dominio especificado en el campo From del email recibido y éste debe coincidir con el campo Return-Path (MAIL FROM) para una alineación SPF y con el campo d de DKIM para una alineación equivalente. Si una de las dos comprobaciones es correcta DMARC considera el mail como legítimo.

SPF y DKIM pueden trabajar en modo estricto (strict) y relajado (relaxed). La diferencia entre ambos es que en modo relaxed se permite enviar a subdominios (podemos enviar desde usuario@ejemplo.dominio.com siendo el Return-Path usuario@dominio.com) mientras que en modo strict no se permitirá. A DMARC también se le puede indicar de qué modo debe tratar con SPF y DKIM (etiquetas adkim y aspf) y hay que tener cuidado al especificarlos: si no se especifican se asumen ambos relaxed por defecto, pero si definimos alguno, o ambos, como strict y en el servidor se han implementado en modo relaxed DMARC devolverá alineación incorrecta, y viceversa, si en DMARC se especifica que son relaxed y se han implementado como strict se devolverá alineación correcta.

Cada 24 horas los servidores de correo que implementen DMARC nos enviarán un informe en formato XML con la cantidad de emails gestionados, sus ip y los resultados del test. DMARC puede implementarse para controlar sólo nuestro correo saliente (sender) o para gestionar también los emails recibidos que contengan la cabecera (receiver).

Véase: Email Authentication Identifier Alignments para una detallada explicación técnica, proporcionan además una cuenta para comprobar la alineación de nuestro sistema.

Implementar DMARC como sender

Para implementar DMARC como sender necesitamos definir las reglas SPF para nuestro dominio y la firma DKIM para el correo saliente. Una vez hecho ésto simplemente añadimos un registro TXT a nuestra zona DNS con el nombre _dmarc.eldominio.com y cuyo contenido básico debe ser:

"v=DMARC1; p=none; rua=mailto:webmaster@eldominio.com"

Este registro indica la versión de DMARC, qué hacer con el mail comprobado (p=none, nada), y a qué cuenta remitir el informe diario. Se recomienda empezar en modo monitor (p=none) y aumentar la restricción a medida que se adquiera experiencia.

Véase: Create a DMARC Record para las directivas del registro y consejos para empezar.

Implementar DMARC como receiver

Se dispone de dos implementaciones de código abierto: Mail-DMARC-opendmarc y Mail-DMARC.

Con el sistema ya implementado nos queda gestionar los informes recibidos en un incómodo formato XML: podemos usar alguna herramienta online preparada para ello como dmarcanalyzer o dmarcian que incluso nos suministrán los resultados en formato grafico.


2 comentarios:

  1. muy buen post sin embargo lo he probado con WHM/CPANEL y al momento de validar en https://dmarcian.com/dmarc-inspector no me valida correctamente que puede ser ya que probe otras paginas conocidas y tampoco estan validados solo valida google.com

    ResponderEliminar
    Respuestas
    1. Hola Douglas,

      Gracias por tu atención. No estoy seguro de cual puede ser tu problema sin más información sobre la configuración de tu zona DNS. Asumo que el dmarc-inspector te devuelve el mensaje de "No DMARC record published". En mi caso noté hace tiempo que si configuraba mi zona desde el acceso a la configuración del dominio de CPANEL no me la actualizaba correctamente, así que debía hacerlo forzosamente desde el panel de control de mi servidor de hosting. ¿Has comprobado si el registro existe y es visible?

      dig _dmarc.tudominio.xxx -t TXT tudominio.xxx

      Eliminar