13 de Junio, 2005

Greylisting

Se trata de una de las técnicas contra el spam más efectivas que se conocen en relación coste/beneficio.

En el año 2003 Evan Harris describío la teoría del gerylisting. Le puso el nombre al método (listado gris) jugando con los conceptos existentes de black listing (listas negras, se rechazan correos en base a un criterio) y white listing (listas blancas, o correos que nunca se rechazan).

El sistema, a grandes rasgos, consiste en mantener una lista con direcciones IP, destinatario y remitente (identificada como grey list). Cuando se recibe un correo se verifica si esos datos ya se encuentran en la lista, y sino aparecen se añaden, respondiendo con un mensaje de error temporal a la entrega del correo.

Estos errores son relativamente habituales. SMTP no se considera un transporte infalible, así que el protocolo define una serie de errores temporales, que permiten indicar un 'vuelva usted más tarde, tenemos problemas'.

Harris se percató de que la mayor parte del spam se envía desde programas específicos, y no desde servidores SMTP completos. Estos programas están especializados en el envío masivo de correos (como muchos virus), y no en el respeto a los estándares.

Por lo tanto los MTA legítimos volverán a intentarlo pasado un tiempo, mientras que los programas para enviar spam seguirán con su trabajo y no reintentarán el envío. Punto para nosotros ;).

Hasta aquí vemos como se comporta la grey list con el spam: actua como una lista negra muy efectiva. Solo queda el inconveniente de los retrasos para el correo legítimo.

Para mitigar la molestia de los retrasos se define una white list en la que entrarán temporalmente (un par de días por ejemplo) las entradas que vuelvan después del mensaje de error. Esto permitirá identificar a los envíos legítimos y solo supondrá un retraso en la entrega para el primer mensaje (cuando no estaba todavía en la white list).

El concepto es sencillo, y probablemente por eso funciona tan bien (KISS, Keep It Simple Stupid).

En primer lugar el coste es mínimo desde el punto de vista del servidor: poca CPU y algo de memoria para gestionar las listas.

Desde el punto de vista del usuario solo nos encontramos con la pega del retraso del mensaje poco habitual (los correos frecuentes desde los mismos lugares no se verán afectados al mismo nivel gracias a la white list), y nos garantizamos que nunca se perderán correos legítimos.

Y finalmente, desde el punto de vista del administrador, tenemos... mantenimiento cero :D.

Estoy planteándome empezar a usar graymilter para ver que tal se comporta el invento. Este milter en particular solo guarda las direcciones IP en la lista, con lo que el consumo en el servidor, si cabe, es inferior a la propuesta inicial de Harris con casi todos los beneficios.

Solo hay que ajustar los tiempos para las listas (con criterios simples: a más tiempo en grey list, más efectividad; a más tiempo en white list, más consumo de memoria), y listo.

Lamentablemente este método es activo (requiere interactuar directamente con la fuente de spam), por lo que no tendrá ninguna utilidad para concentradores de correo, con lo que la mayor parte del spam que recibo (que se entrega en usebox.net) no se verá afectado por la medida.

Anotación por Juan J. Martínez, clasificada en: antispam.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: