Aprendiendo del spam

SpamÚltimamente me tiene descolocado el filtro Anti-Spam de la UPV. Tomemos como ejemplo 3 mensajes que he recibido últimamente:

De Para Asunto
Aisha Brand ocultado@spam.no Every woman will fall in love with you when she sees your size.
Frederick Parra ocultado@spam.no More orgasms
RealNetworks ocultado@spam.no [SPAM *****] Optimice el rendimiento de su PC en minutos

Aunque los dos primeros son claramente ‘spam‘ (correo basura) y el tercero es ‘comercial que puede ser interesante‘, para el filtro del servidor de correo es, justamente, lo contrario.

¿Cómo funciona mi filtro ‘natural’ anti-spam?

  • Los dos primeros mensajes van dirigidos a cuentas (o listas de correo) que no tienen nada que ver conmigo
  • El asunto habla de sexo ¡haciendo promesas!
  • No conozco de nada a los remitentes

=> SPAM

  • el tercer mensaje va dirigido a mi cuenta de correo
  • el remitente es una empresa conocida, dedicada al mundo de la informática y tiene mis datos porque yo se los he dado
  • el asunto tiene que ver, más o menos, con mi trabajo
  • el mensaje utiliza DKIM para garantizar que la dirección del remitente pertenece al servidor de correo emisor (nuestro servidor no usa esta tecnología y no nos indica nada al respecto)

=> COMERCIAL

El hecho de que estén redactados en inglés o en castellano no es significativo, ya que habitualmente recibo correos en ambos idiomas. Ahora bien, en mi cuenta de correo personal sí que habría influido en mi decisión que el idioma no fuese castellano/valenciano.

¿Cómo funciona el filtro anti-spam del servidor de correo?

A partir de las cabeceras de los mensajes y del contenido del mismo, se va puntuando el correo siguiendo unas reglas predefinidas.

  • al primer mensaje se le aplican las reglas: PENIS_ENLARGE + HTML_40_50. Poca cosa: 1.6 puntos (el mínimo para considerarlo spam es 5.0)
  • en el segundo mensaje se encuentra un único problema: HTML_TITLE_EMPTY (0.5 puntos)
  • el tercer mensaje hace que salten las siguientes alarmas (5.7 puntos):
pts rule name description
2.8 X_MAIL_ID_PRESENT Message has X-MailingID header
1.0 HTML_IMAGE_ONLY_12 BODY: HTML: images with 1000-1200 bytes of words
0.0 HTML_MESSAGE BODY: HTML included in message
0.1 HTML_FONT_BIG BODY: HTML has a big font
0.1 HTML_TAG_EXISTS_TBODY BODY: HTML has «tbody» tag
0.1 HTML_70_80 BODY: Message is 70% to 80% HTML
0.1 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
0.5 HTML_TITLE_EMPTY BODY: HTML title contains no text
0.8 REMOVE_PAGE URI: URL of page called «remove»
0.2 HTTP_WITH_EMAIL_IN_URL URI: ‘remove’ URL contains an email address

¿Qué podemos aprender de este análisis?aprender

Evitar que nos llegue spam es prácticamente imposible. Podemos establecer filtros a distintos niveles (en el servidor, en nuestro cliente de correo, con el Anti-Virus, …), pero siempre habrá falsos positivos y falsos negativos.

Si miramos este problema en sentido inverso, la pregunta es: ¿serán catalogados como spam los correos que envío?.

Teniendo en cuenta los filtros típicos de las herramientas anti-spam, podemos seguir unas pautas para evitar ser tratados como spammers:

  • Si redactas el correo con formato HTML, ofrece también el contenido del mismo con formato TEXTO
  • En HTML es obligatorio especificar el título del documento con la etiqueta TITLE => utilízalo en tus mensajes
  • Las imágenes alegran los mensajes, pero no ofrezcas contenido dentro de las imágenes
  • Ni se te ocurra emplear la palabra ‘remove’ dentro de enlaces (lo más normal de este mundo)
  • No generes URL con direcciones de correo embebidas
  • Y, sobre todo, ¿realmente necesitas utilizar el formato HTML para ese correo?