Luchando contra el SPAM. Toma dos: Greylisting.

4 Mayo 2008

Emulando a Fray Luis de León, como decíamos ayer, continuemos hablando de SPAM. O mejor dicho, de la lucha contra él.

Existen múltiples sistemas de comprobar el grado de validez de un correo en el momento de su entrada en el servidor destino, que es cuando queremos pararlo. Recordemos, cuanto antes lo paremos mejor: menos tráfico consumido, menos recursos consumidos y antes le decimos al spammer que no nos la ha colado.

Entre las comprobaciones básicas, podemos encontrar las listas negras (listas dinámicas de direcciones IP conocidas de spammers. Si el emisor está en una de estas listas, terminamos la conexión), fallo en la validez del protocolo SMTP (obligamos a seguir estrictamente todos los protocolos, incluyendo el de identificarse correctamente el servidor emisor), comprobación de que el emisor existe (el servidor receptor hace una nueva conexión hacia el servidor de correo del emisor, para comprobar que el remitente es una dirección válida).

Tras esta primera batería de comprobaciones, vendría la aceptación del correo en si. Otra medida que se puede utilizar es ir analizando el correo a medida que va entrando, y desde que se tenga la certeza de que es spam, un virus, o incumpla alguna de las normas, terminar la conexión en ese momento, rechazando el correo y dejándolo a medias.

Dependiendo de la agresividad de los filtros, los correos no se dejarán entrar o se aceptarán todos y se marcarán como SPAM para que el usuario final los revise. No aceptarlos tiene el peligro de perder correos válidos, y aceptarlos todos tiene el peligro de que cara a los spammers nuestra dirección de correo es buena y acepta el SPAM, por lo que no saldremos nunca de esas listas.

Estos métodos necesitan cada vez de un mayor consumo de recursos, al ir adaptándose los spammers para saltárselos, lo que obliga a mejorar las medidas de detección, haciéndolas más complejas y por tanto necesitando más tiempo de cómputo.

Es aquí donde surgen una serie de medidas interesantes y de alto impacto. Son tres de las que voy a hablar: Greylisting, SPF y DomainKeys.

GreyListing.

Hoy por hoy, es mi medida preferida. Tiene una eficacia increíble para la sencillez de la idea. Es cierto que tiene alguna contrapartida, pero los resultados son tan impresionantes que creo que merecen la pena.

Su funcionamiento se basa en quedarse a medio camino entre las listas blancas (white lists), listas de emisores y/o receptores válidos y confiables, y las listas negras (black lists), listas de emisores y/o receptores denegados.

Las listas blancas se utilizan para saltarse las comprobaciones de correo de ciertos remitentes que sabemos que son seguros, o para algunos receptores que no quieren que su correo pase por ningún filtro. Las listas negras, imagino que a estas alturas ya se sabe para que son.

A medio camino, las listas grises. El funcionamiento consiste en denegar inicialmente cualquier intento de entrega de correo, informando al emisor de que en ese instante no podemos aceptar su correo y que vuelva a intentarlo más tarde (código de error 451 de SMTP).

Antes de rechazar el correo, el receptor ha tomado nota y apunta la siguiente tripleta: <Dirección IP del emisor, dirección de correo del emisor, dirección de correo del receptor>. Esta tripleta se “embarga” durante un tiempo definido por el receptor.

Si el emisor del correo es un servidor de correo que cumple con los estándares, volverá a intentar la conexión pasado un tiempo. Si aun no se ha cumplido el tiempo de embargo, el servidor receptor volverá a informar del mismo error, indicando que aun no puede recibir el correo.

El emisor volverá a intentarlo más tarde, y eventualmente llegará el momento en que en su intento ya haya pasado el tiempo de embargo, por lo que el receptor aceptará el correo sin más problema.

Por el lado del receptor, una vez aceptado el correo, se almacena la tripleta y se mantendrá válida durante un tiempo definido por el servidor, por ejemplo un mes. Cualquier correo posterior que coincida con la misma tripleta, se aceptará directamente, sin demora, y además, pondrá a cero el contador de esa tripleta, dándole de nuevo otro mes de validez.

La gran pega de este método es que el primer correo desde un emisor, tardará en entrar. Al menos tanto como tengamos definido como tiempo de embargo, que puede variar desde 5 minutos hasta varias horas.

Y aquí surge la pregunta ¿Y en qué ayuda esto en la lucha contra el SPAM?. La mayoría del SPAM se genera desde equipos zombies, o mediante programas encargados de lanzar miles de correos a listas de destinatarios, pero que no son servidores de correo completos, o que no respetan todos los requisitos del protocolo SMTP. También se puede deber al hecho de que el coste, para estos emisores de spam, de reintentar enviar un correo con las direcciones que fallan es demasiado alto (errores de destinatario no válido, buzón lleno, servidor no puede tramitar la solicitud en este momento, correo rechazado por ser spam…).

El hecho es que estos emisores masivos no vuelven a intentar enviar una vez recibido el error inicial, con lo que los hemos descartado sin siquiera tener que recibir un solo bit del correo ni haber gastado un ciclo de CPU en analizarlo.

Para mi se ha convertido en uno de los mejores sistemas por que me ha demostrado ser capaz de evitar el 95% del SPAM. Y eso supone muchos cientos de miles de correos semanales (si, no me he equivocado en el número). Después de todo, la mayoría de nuestro correspondencia la hacemos con los mismos interlocutores, por lo que estos siempre estarán marcados como válidos. Los nuevos interlocutores, los que no conocemos aun de nada, son de los que desconocemos sus intenciones, y por eso nos tomamos un tiempo en aceptar su correo.

Además, es de los sistemas de detección y protección que marcan las direcciones de correo de los destinatarios como no válidas para los spammers, por lo que (y esto es otro dato que he comprobado con el tiempo) acaban saliendo de algunas de estas listas, reduciendo el volumen de spam que se les intenta enviar. Doble beneficio a cambio de la demora de un correo.

Uno solo.

Merece la pena.

Soy un fan declarado del greylisting y de la belleza de su sencillez y eficacia.

Y aunque a Juanjo no le guste, el post se me ha alargado demasiado, por lo que seguiré hablando de los otros métodos de los que quería hablar (SPF y DomainKeys) en otra entrada.

Permanezcan atentos a la pantalla.

Cuenta en Google App Engine

2 Mayo 2008

Acabo de recibir el siguiente email desde Google:

Hello,

Thanks for signing up to try Google App Engine! Your account has been activated, so you can begin building applications!

¡Oleeeee!

De hecho, una de las ventajas de ser de los primeros es que ya he podido registrar mi propia aplicación sin ningún tipo de nombre raro: Antonio’s App. Yo no he tenido esa suerte, para no variar. Algún día descubriré al Marino que se me adelanta en todo (o a la, en el caso de Jaiku)

Está claro que tendré que ponerme las pilas con el Python :D

Y ¿qué es Google App Engine? Es la plataforma de Google que ahora está disponible para que los desarrolladores web generen sus aplicaciones sobre la misma infraestructura sobre la que Google ofrece su buscador. El modelo es muy similar al que ya está ofreciendo Amazon con su plataforma de Amazon Web Services, solo que en mi opinión, Amazon tiene que empezar a preocuparse ante este nuevo player.

Si bien es cierto, que este tipo de soluciones no eran exclusivas de Amazon, ya que existen otros proveedores que ofrecen soluciones similares, por ejemplo Mosso.

De todas formas, si sigues interesado en lo que ofrece Google App Engine te recomiendo la lectura de este artículo de Linotipo: El futuro es distribuido: Google App Engine, en él podrás encontrar más detalles sobre este nuevo servicio de Google explicado por un experto en el mundo web.

Mi compromiso

29 Abril 2008

Diego, en trazos web nos habla del compromiso que debemos/queremos lograr con nuestros lectores, buscando su fidelidad (o fidelización, dependiendo de cuantos baños de marketing te hayas dado) con el fin de hacer prosperar nuestros blogs.

El paso simple y evidente, nos lo demuestra Diego con un gráfico, que nos indica claramente de qué debemos escribir en nuestros blogs si lo que queremos es tener lectores que nos sigan asiduamente:

Este gráfico muestra algo que podría parecer de entrada una perugrollada por su evidencia y simpleza. No obstante, es muy fácil olvidarse y perder la perspectiva, empujando la esfera azul fuera del ámbito de la amarilla, alejándonos de nuestros lectores.

Esto me hizo plantearme de qué escribía yo en mi blog, qué creía saber, y que es lo que quieren mis lectores (si, los tres). El resultado es apabullante:

No tengo claro que es lo que se. Ni siquiera tengo claro qué es lo que creo que se. Es más, no se ni lo que creo.

Mis lectores, creo que ni ellos mismos saben lo que quieren, menos aun lo voy a saber yo. Aunque también podría preguntarles personalmente frente a una cervecita. No necesitamos una mesa muy grande :).

Y por último, de lo que escribo en este blog: básicamente de lo que me sale de las teclas.

Y claro, así me va.

Luchando contra el SPAM

29 Abril 2008


Arte SPAM. CC Yandle

El SPAM, el maldito SPAM, generador de tanta basura y de altísimos costes económicos, es una de las plagas actuales de internet. Es una lucha continua la que se libra entre los ISPs y los spammers, unos intentando frenar por todos los medios a los otros y estos intentando saltarse las protecciones impuestas por los primeros.

Por supuesto, hablo del SPAM en el correo electrónico.

El volumen actual de SPAM es ingente. En algun servidor con poco tráfico recibíamos hace dos años alrededor de 50.000 (intentos de) mensajes semanales de los cuales un 1% podía ser correo válido. Los números y los métodos han cambiado mucho, pero la imagen global puede seguir siendo válida.

Todo este análisis de mensajes y conexiones requiere ancho de banda y tiempo de CPU. Y mucho.

Es por esto, que la lucha actual se dirige, sobre todo, al origen del mensaje: cuanto antes tratemos el mensaje, menos consumiremos. Si somos capaces de detectar al spammer desde que intenta la conexión, antes siquiera de que nos empiece a dejar el mensaje, habremos ganado ancho de banda, tiempo de CPU y le habremos dado el claro mensaje de que aquí no le queremos.

La antigua solución, la de “tragarse” el mensaje entero para luego analizarlo, va cayendo en desuso, por el evidente consumo de medios, y por el hecho de que al spammer le hemos dado a entender que aceptamos el mensaje, quedando “marcados” como receptores para posteriores envíos.

Por otro lado, hay que hilar muy fino en qué mensajes marcamos como SPAM y cuales no aceptamos en nuestros servidores. Los falsos positivos pueden ser inaceptables. En ocasiones, el destinatario prefiere tragarse todo el SPAM a sufrir la posibilidad de perder un solo correo válido.

No es mi caso. La experiencia me ha demostrado que cuando un correo no llega, el problema suele estar en el emisor, que o bien no cumple los estándares, o bien ha caído en listas negras o incluso su ISP les ha filtrado el tráfico saliente para evitar que envíen correo al haber sido emisores de SPAM anteriormente (normalmente sin saber que tienen un zombie en casa). Telefónica de España es uno de los ISPs de los que tengo constancia que están bloqueando el correo saliente a los spammers.

No creo que la solución para recibir correo de alguien que no cumple las normas sea saltárnoslas nosotros, bajando las defensas. Lo lógico es que corrija la situación el infractor. Después de todo, no puede pretender que todos sus destinatarios le abran las puertas cuando llega tocando de malas maneras.

Para no seguir alargando la entrada, demoraré para otro(s) post(s) la explicación de algunas de las medidas en uso hoy en día. Permanezcan atentos a la pantalla.

Seguridad aeroportuaria

23 Abril 2008

Me ha gustado mucho esta viñeta de Forges en El Pais. Siendo trabajador en un aeropuerto, veo esto a diario. Por que, sí, los trabajadores de los aeropuertos también [...] Seguir leyendo…

Calibración de la batería en un macbook / macbook pro

23 Abril 2008

Mi primer portatil, un Asus, tenía en la BIOS una funcionalidad que no encontré posteriormente en otros portatiles y que se demostró muy util.

Con el uso y las [...] Seguir leyendo…

El vinilo no es tan viejo

22 Abril 2008

Leo hoy en el blog de Desirée, Enralad@s, una crónica de una reunión que empieza tal que así:

¿Recuerdan aquellos discos negros que los padres cuidaban como auténticas piezas de [...] Seguir leyendo…

Instalando Python en Leopard

21 Abril 2008

Primer tutorial sobre como instalar Python en Leopard.

Paso 1.

Se instala Leopard.

Fin del tutorial.

Para comprobar el correcto funcionamiento, en una terminal, teclear:

python -V

Nueva carpeta

19 Abril 2008

<@Pelayo> uhm
<@Pelayo> cuando me haga musico famoso
<@Pelayo> mi primer disco se llamará
<@Pelayo> Nueva carpeta
<@Pelayo> a ver quien tiene huevos a buscar eso por el emule

<i0wnu> ya he instalado linux
<i0wnu> [...] Seguir leyendo…

El delirio de los políticos

19 Abril 2008

Un ensayo viene a dar aire de oficialidad a lo que media España piensa de su presidente y la otra media piensa de su ex presidente. Dependiendo de tu [...] Seguir leyendo…

blank