Filtrado de spam
Por Jacobo Tarrío
3 de noviembre de 2002

Como ya sabrán, tengo una cierta obsesión con el spam (correo electrónico comercial no solicitado, y en ocasiones fraudulento), lo que me lleva, de vez en cuando, a hablar de él.

Hoy hablaré de filtros de spam: programitas que, de forma automática, separan el spam del resto del correo antes de que nosotros lo leamos.

Actualmente existen tres tendencias básicas en el asunto del filtrado de mensajes:

Aquí no trato el uso de RBLs para rechazar el correo procedente de determinados hosts, porque ésa no es una técnica de filtrado propiamente dicha…

El primer enfoque es el más obvio, y el utilizado originalmente en la mayoría de servicios antispam: se introduce la dirección de origen del mensaje, o una frase que identifique el spam (“por la ley S.1618…”, “gratis $$$”, etc), y los correos posteriores que la contengan son rechazados o guardados en una carpeta especial de spam. La lista de spamfilter contiene, en el momento en que se escribe esto, 1087 “frases” para la cabecera del mensaje y 4838 para el cuerpo del mensaje. La ventaja es que, cuando las frases se escogen bien, el filtro no produce casi ningún falso positivo, pero puede producir falsos negativos, cuando llega un spam de un tipo nuevo, que no tiene “frase” en la lista.

El segundo enfoque es el utilizado por el famoso filtro Spam Assassin. El programa dispone de una serie de pruebas que puede realizar sobre el mensaje, y unas puntuaciones que sumará si cada prueba tiene éxito. Por ejemplo, existen pruebas para ver si el mensaje está en HTML, si tiene colores, si contiene frases propias del timo nigeriano, si habla de viagra o de alargamientos de pene, si contiene indicios de un origen falsificado, etc, que suman puntos. También tiene otras que restan puntos, como haber sido aprovado por un moderador de lista de correo, tener una firma PGP, ser una respuesta a un mensaje, etc. Si, al terminar los análisis, la suma de las puntuaciones supera un límite predeterminado, el mensaje se considera spam. Existe la posibilidad de que existan falsos positivos, y ésta depende de lo alto que sea el umbral; sin embargo, al modificar el umbral también se afecta a la posibilidad de falsos negativos. A cambio de esto, el sistema es más flexible, ya que, al filtrar atendiendo a las características del mensaje, puede filtrar correctamente mensajes de spam nuevos.

Finalmente, el enfoque bayesiano es el más nuevo, y fue popularizado por Paul Graham, en “A Plan for Spam”. El sistema consiste en, a partir del mensaje a filtrar, obtener la probabilidad de que cada palabra aparezca en un spam y en un mensaje normal, y a partir de estas probabilidades, calcular la probabilidad de que el mensaje sea spam. Esta lista de palabras y probabilidades se suele construir a partir del propio correo del usuario que quiere emplear el filtro: cuando llega un correo, el usuario lo aprueba o lo marca como spam; en cualquier caso, por cada palabra se cuenta el número de mensajes legítimos en que aparecía y el número de mensajes de spam en que aparecía, y se divide por el total; esto da las probabilidades de aparición. La ventaja de este sistema es que, con él, los spammers no pueden aprender a saltarse los filtros: el filtro se adapta automáticamente al correo que recibe el usuario. Lo malo es que, para que el filtrado sea bueno, hace falta un periodo de aprendizaje inicial; además, todavía no se sabe bien cómo hacer filtros bayesianos buenos y rápidos, porque hace poco que se trabaja con ellos.

Recursos: aquí se puede empezar a buscar.

Otros artículos sobre “Tirando Líneas (2002-2004)”, “spam”.
Índice.
Salvo indicación en contrario, esta página y su contenido son Copyright © Jacobo Tarrío Barreiro. Todos los Derechos Reservados. Información sobre tratamiento de datos y condiciones de uso.