Hace unos días me encontré con el problema de que la mayoría de los correos que enviaba eran catalogados como correo no deseado (SPAM) por la mayoría de servidores de correo. En esta ocasión vamos a explicar las medidas necesarias para evitar esto y poder llegar a la bandeja de correo deseado.


¿Qué es el spam?

El spam hace referencia a los mensajes no solicitados y enviados en grandes cantidades, normalmente con contenido publicitario. Se puede realizar por diferentes vías pero la más utilizada suele ser por correo electrónico.

El spam no es sólo un problema de los usuarios de Internet, que reciben diariamente en sus buzones cientos de correos no deseados con ofertas, también es un problema muy serio para las empresas que ven cómo sus correos publicitarios o comerciales son marcados como spam y no llegan a sus clientes.


¿Cómo funcionan los filtros anti-spam?

Son mecanismos que combinan una serie de algoritmos con diferentes criterios técnicos y de contenidos determinando si el mensaje recibido se considera spam mediante la puntuación de los criterios que el filtro realiza. Estos filtros dependerán del tipo de restricción y flexibilidad configurado en cada tipo de sistema anti-spam lo cual determinará que lleguen correctamente a algunas bandejas de entrada y a otras no.

Un mensaje no puede ser considerado como spam sólo por tener un asunto sospechoso o por haber incluido una palabra peligrosa, la clasificación cómo spam depende de muchos factores y se basa en puntuaciones, con lo cual a mayor puntuación mayor probabilidad de ser clasificado cómo spam.


Criterios principales de los filtros anti-spam

  • Listas negras y blancas: Si el remitente se encuentra en una lista negra lo más probable es que el destinatario no reciba el mensaje, por el contrario si el remitente esta en una lista blanca o en su lista de contactos si llegará el mensaje correctamente.
  • Reputación del servidor: Uno de los principales valores puntuados por los filtros se basa en el propio servidor analizando el volumen de envíos, el índice de quejas recibidas, los rebotes recibidos, comprobando si la IP del servidor se encuentra en alguna lista negra…
  • Reputación del remitente: La puntuación del remitente (@dominio.com) es muy valorada por los filtros y esta puntuación se basa en su comportamiento, donde se comprueba si el remitente esta o ha estado en listas negras o si fue bloqueado por algún ISP.
  • Volumen de envíos: Parte de las puntuaciones negativas están relacionadas con la cantidad de mails enviados. Si queremos enviar una campaña de mailing no podemos enviar millones de correos en un mismo día, es conveniente hacerlo de forma progresiva hasta llegar a un volumen lógico y estable.
  • Velocidad del envío: Al igual que el volumen excesivo, la velocidad en el envío de correos electrónicos masivos puede estar considerada muy peligrosa ya que los filtros supondrán que se trata de un ataque a sus servidores y pueden bloquear la entrada de mails de un remitente de forma temporal o definitiva.
  • Autenticación: Si enviamos correos desde servidores externos al dominio del remitente los filtros anti-spam puntuarán negativamente el mensaje e incluso podrían bloquear al remitente. Para evitar esto se usan sistemas de autentificación como SPF, SenderID, DomainKeys y DKIM.
  • Antigüedad del dominio: Una técnica utilizada por los Spammers consiste en crear dominios de forma rápida y usarlos para enviar correos masivamente, por ello un dominio de reciente creación puede tener más probabilidad de puntuar negativamente ante los filtros anti-spam.
  • Contenido del asunto y mensaje: El uno de los aspectos principales que analizan los filtros, es aconsejable no usar caracteres especiales, cuidar los textos, evitar palabras prohibidas (como oferta, descuento, promo o gratis), no escribir todo en mayúsculas, evitar usar muchos signos de admiración (!!!!) y mantener una correcta proporción en imágenes y textos.
  • Código HTML: Es aconsejable usar un código limpio, con estilos inline y bien construido, que aparte de ayudar a su correcta visualización también nos ayuda a no obtener una puntuación positiva.
  • Número de envíos: El número de mails enviados hacia un mismo dominio o hacia un destinatario en particular puede ser considerado como un ciberataque hacia dicha compañía o persona y sería calificado como spam.
  • Filtros bayesianos: Este tipo de filtros se basan en su historial para detectar palabras, frases o párrafos que se repiten en distintos mails haciendo que los mails sean considerados correo basura.

Medidas para evitar los filtros

  1. Resolución inversa (rDNS o PTR): Es muy importante contar con un registro PTR en el DNS del dominio para verificar que la IP del dominio de correo realiza dicho envío y no se trata de una suplantación de identidad.
  2. DomainKeys o DKIM:
    • DomainKeys es un mecanismo de autentificación de correo electrónico que permite asegurarse que dicho correo es enviado desde el dominio original y no se trata de una suplantación de identidad. El mecanismo funciona mediante un sistema de criptografía de llave pública, en los DNS del dominio emisor, que permite firmar electrónicamente el mensaje de manera que puedan ser verificados por los destinatarios.
    • DomainKeys Identified Mail (DKIM) es una evolución del sistema DomainKeys desarrollado inicialmente por Yahoo, aunque no todos los servidores están preparados para comprobar DKIM. Este protocolo incluye una cabecera en el mensaje con una firma digital del contenido del mensaje, es decir, es única para cada mensaje y cabecera. Cuando se envía un mail el servidor de destino hace una consulta DNS al dominio del remitente y obtiene la clave pública para descifrar el valor de la firma y recalcular el valor de la nueva firma para el mensaje recibido.
  3. SenderID y SPF:
    • El objetivo de Sender ID Framework (SIDF) es detectar que mensajes están siendo enviados desde servidores de correo que no corresponden con del dominio del remitente. Si el correo proviene de un remitente con una dirección IP que no está especificada en los registros del dominio será considerado como un remitente suplantado y será, considerado como correo no deseado.
    • Sender Policy Framework (SPF) es una protección contra la falsificación de direcciones de envío de correo electrónico, que a través de los registros DNS identifica los servidores de correo autorizados para el envío de mensajes.
      • v: Define la versión de SPF usada.
      • a <dominio>/<prefijo>: Autoriza un determinado dominio.
      • ptr <dominio>: Autoriza a las máquinas bajo el dominio indicado.
      • mx <dominio>/<prefijo>: Autoriza a los equipos con la IP de los registros MX.
      • ip4 <ip>/<prefijo>: Autoriza una determinada ip (versión 4).
      • ip6 <ip>/<prefijo>: Autoriza una determinada ip (versión 6).
      • include <dominio>: Permite incluir el registro SPF de otro dominio.
      • exists <dominio>: Realiza una consulta al dominio proporcionado.
      • all: Autoriza (+all) o desautoriza (-all) a las máquinas que no encajen con lo autorizado con los demás operadores. Por lo general se coloca al final del registro SPF.

      Mecanismos:

      • + Aceptar (Pass)
      • Rechazar (Fail)
      • ~ Aceptar, pero marcar (SoftFail)
      • ? Neutral

Ejemplos de SPF

El dominio no autoriza el envío de ningún correo:

v=spf1 -all

El dominio autorizará todos los correos (no tendría sentido usar esta regla ya que no se está filtrando nada en absoluto):

v=spf1 +all

Se autoriza el dominio actual:

v=spf1 a -all

Permite enviar correos si el dominio actual es ‘midominio.com’:

v=spf1 a:midominio.com -all

Permite a los dominios MX enviar correos y rechazara todo lo demás:

v=spf1 mx -all

Autoriza a todas las máquinas bajo un dominio:

v=spf1 ptr -all

Autoriza a todas las máquinas bajo el dominio ‘midominio.com’:

v=spf1 ptr:midominio.com -all

Se autoriza el envío de correos desde la IP 192.168.0.1:

v=spf1 ip4:192.168.0.1 -all

Se autoriza el envío de correos entre la IP 192.168.0.1 y 192.168.0.255:

v=spf1 ip4:192.168.0.1/32 -all

Podemos generar nuestras propias reglas SPF en www.spfwizard.net


Testear correos electrónicos

Existen diversos servicios online que nos permiten comprobar nuestros correos electrónicos.

www.mail-tester.com

www.mail-tester.com www.mail-tester.com

En esta página web podemos ver un amplio reporte de nuestros correos electrónicos, tan solo es necesario enviar un correo electrónico a la dirección que genera la web automáticamente, como por ejemplo “web-Or5bed@mail-tester.com”, y posteriormente al pulsar el botón nos mostrará el informe.

www.port25.com

Es un servicio gratuito que nos devolverá un informe detallado al enviar un correo electrónico a la dirección de correo: “check-auth@verifier.port25.com”

Resultado:


==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: pass
DKIM check: neutral
Sender-ID check: pass
SpamAssassin check: ham

==========================================================
Details:
==========================================================

HELO hostname: securitynull.net
Source IP: 185.37.227.3
mail-from: —@securitynull.net

———————————————————-
SPF check details:
———————————————————-
Result: pass
ID(s) verified: smtp.mailfrom=—@securitynull.net
DNS record(s):
securitynull.net. SPF (no records)
securitynull.net. 86400 IN TXT “v=spf1 a mx ip4:185.37.227.3 -all”
securitynull.net. 86400 IN A 185.37.227.3


FUENTES

www.openspf.org
www.teenvio.com