FuzzyOCR. Plugin de detección de spam gráfico para Spamassassin

¿Quién ho na recibido nunca un correo con alguna imagen incrustada sobre venta online, farmacia o información sobre mercado de valores?

No me refiero a los correos legítimos. Hablo de los que no deseamos. De esa nueva hornada de spam que invade nuestros buzones. Algunos ejemplos pueden ser este reclamo de farmacia ilegal:

spam

O este último, sobre mercados de valores:

spam

Una configuración elemental/estándar de filtro de correo en raras ocasiones detendrá estos mensajes, ya que suelen venir acompañados de cadenas que hacen dudar a los filstros de correo perimetrales, los cuales, salvo operación en modo paranoico, suelen dejarlos pasar ante la duda de legitimidad y provocar un falso positivo que acabe con un mensaje real e importante en el pozo de correo basura. Un ejemplo puede ser ésta secuencia, que aparece ofuscada en los mensajes (fuente de color blanco sobre fondo blanco) pero que no es invisible para el gestor antispam. Este ejemplo real es el que acompaña al segundo gráfico que hemos colocado:

La la la la la, la la la la la la la, la la la la la la la, la la la la la la la la la la la la la, so – Barnaby The Bear’s my name, never call me Jack or James, I will sing my way to fame, Barnaby the Bear’s my name. Do-do-do-do ah-ah-ah, do-do-do-do, Cities of Gold. Today, still wanted by the government, they survive as soldiers of fortune. So, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon. La la la la la, la la la la la la la, la la la la la la la, la la la la la la la la la la la la la, so – Barnaby The Bear’s my name, never call me Jack or James, I will sing my way to fame, Barnaby the Bear’s my name. Someday the mountain might get ‘em, but the law nev

El resultado final es que el mensaje suele acabar en el buzón, con el consiguiente engorro de acumular correo no deseado que el filtro no ha sido capaz de detener. En casa puede que nos de igual recibir 10 correos de éstos al día, pero en un entorno corporativo esto puede acabar en un completo desastre, con lo que surge la necesidad de tratar esta amenaza.

Las soluciones a este tipo de mensajes pasan por la detección OCR. El otro día vi un ejemplo en Honeyblog, en el que se utiizaba gocr para la conversión de imagen a texto.

$ gocr personnel.gif
_
H’LuN,.pK . H ‘% BIopH, ARMAcE%IcAL s_ocK!, , _
HEA%HeuNIv,E\RsE,I’nc
S_b’ol: HLU_ , ,
Price: $o.o8 ‘ ‘ , ‘
5.day Target: , $O.50 ,’ ,
Rating: Strong Buy ,,
HLU_.PH .$15 billion, plastic _cosmetic surgey m,a_ket!
H L U . P H .,G ETrl G READY TO E X P L O’ D,E ! ! ! _

El resultado es una serie de cadenas en texto claro que sí son cazadas e interpretadas por el filtro de correo, con lo que estos mensajes dudosos pasan a estar identificados claramente como correo basura, quedando retenidos en el servidor.

El método que a mi más me gusta es dotar a Spamassassin de este análisis OCR. También hace poco ví un ejemplo en ISC Sans sobre estas técnicas, bastante ilustrativo. Entre todas las recomendaciones aparece la de instalar FuzzyOCR, un plugin para Spamassassin que se ocupará del análisis OCR de mensajes de spam con contenido gráfico.

Este plugin permite la conversión a texto de las imágenes adjuntas de aquellos mensajes que el gestor cree que son basura, pero que no tienen un score suficiente para ser marcados con las máximas garantías de acierto. El servidor convertirá la imagen en texto y este texto será el que emplee Spamassassin para terminar de clasificar el correo como basura o legítimo. Sencillamente, genial. Y con un consumo de recursos mínimo. FuzzyOCR tiene como core de operación a gocr, una estupenda herramienta ORC libre, y tiene unos requisitos elementales, como la instalación de los gestores de tratamiento giftopnm, jpegtopnm y pngtopnm, así como imagemagick. También se necesita un módulo Perl que se llama String::Approx, y algunas herramientas giflib.

A grandes males, grandes remedios. Si tu ISP o corporación confía en Spamassassin, no dejes de instalar este producto. 100% gratuíto y libre, como no podía ser de otro modo.

Saludos,

3 comentarios sobre “FuzzyOCR. Plugin de detección de spam gráfico para Spamassassin

  1. Aunque comparto la idea de que es ésta una extensión muy interesante, tengo la impresión de que el modelo de coste spammer-usuario es muy desigual. Lo quiero decir es que coste de generar una imagen a partir de texto para el spammer es mínimo (probablemente, de pocos segundos), mientras que el coste de analizar dicha imagen mediante técnicas de OCR es mucho más costoso en comparación. Además, el coste de generar la imagen spam se incurre, probablemente, en una sola vez, mientras que el coste de analizar dicha imagen se incurre en tantas veces como usuarios a los que llega.

    Por este motivo creo que esta solución, aunque eficaz a corto plazo, no será eficiente a largo plazo, sobre todo a medida que el número de correos basura con estas características aumente. De hecho, esta forma de correo basura puede ser una interesante forma de DoS contra las pasarelas de correo: enviar ingentes cantidades de correos con imágenes consiguiendo intercambia ancho de banda (barato, por parte del spammer) por capacidad de proceso (caro, por parte del destinatario).

    Creo que la única forma de combatir esto es combatir el spam desde la raíz, sin tener en cuenta el formato del contenido, sino otros parámetros, como el originante, la ruta, etc.

  2. Felipe,

    Las únicas ventajas que le veo a este método son:

    * El coste de proceso es caro, pero no es inasumible. Los procesadores duales y cuádruples y la memoria son baratos, con lo que montar una máquina con potencia suficiente para analizar este tipo de mensajes es más que rentable, al menos en comparación al tiempo que pierden 10, 20 o 100k empleados descartando basura por la mañana al llegar a la oficina. El proceso es caro pero creo que compensa al tiempo improductivo de los destinatarios.

    * El plugin es inteligente, con lo que no se escanean todas las imágenes. Sólo aquellas que vienen en mensajes cuyo score es dudoso, con lo que no hay que analizar el 100% del correo entrante.

    * Los spammers tienden a enviar mensajes con imágenes pequeñas, 8, 10, rara vez se van más allá de los 30 KB, con lo que denegar el servicio de una conexión y un servidor potente no es tan fácil, pero obviamente, se corre el riesgo.

    * Los spammers se mueven por dinero. Salvo «vendettas» como la que sucedió con Blue Security (http://www.sahw.com/wp/archivos/2006/05/06/los-ataques-de-denegacion-de-servicio-no-son-menos-importantes/) el spammer tiende a armar poco ruído y a molestar lo menos posible. Su objetivo es maximizar los receptores, y los DDoS no ayudan a ello.

    En lo que desde luego que estoy de acuerdo es que sería mucho más interesante atacar el problema de raíz, pero eso hoy en día es imposible. La única manera sería conseguir que el coste de emisión de spam hiciera poco rentable la actividad, y eso sería un perjuicio para toda la comunidad online. Impensable. Habrá que confiar en otras posibles alternativas, si es que realmente las hay :)

    Saludos ;)

Comentarios cerrados.