miércoles, enero 10, 2007

Cómo trabajan los AntiSpam

Encontré en CopiaTECH un interesante artículo de tres partes respecto de cómo trabajan los antispam. Para nuestros intereses, es muy importante porque los más modernos de éstos utilizan precisamente la tecnología de Categorización de Textos.

Creo que no está de más decir que me limitaré a traducir lo que dice el documento, aunque en ocasiones (las menos) lo he tenido que adaptar porque la redacción no me ha parecido precisamente clara.

Como no es el tema de mi blog, lo primero es definir spam: diremos que spam es cualquier correo electrónico no deseado y/o solicitado que recibamos.

La evolución de la tecnología anti-spam

A mediados de los 1990s, el método usado para disminuir el flujo de spam
estaba basada en las capacidades tecnológicas únicamente, tales como restringir el "reenvío de correo" (mail relay) de los servidores de correo, que originalmente no fue diseñada específicamente para resolver el problema de correo no deseado.

A finales de los 1990s, emergió la primera tecnología real anti-spam, como fue el filtro para correo masivo no solicitado de Netscape Messaging Server. Así, la mayor parte de los productos que formaban la infraestructura de mensajería no tenía estas capacidades y, para el 2000, estaba claro que los negocios tendrían que jugar un rol controlador de spam para proteger sus propios servidores en red.

También estaba claro que en ese momento las capacidades del software existente en la infraestructura y los productos asociados, como gateways antivirus para email, eran inadecuados y que los organismos estandarizadores de la industria no estaban preocupandose del tema. Esta situación, combinada con el hecho que los casos en la corte norteamericana relacionadas con spam, no tenían efecto aparente en los spammers (N. del T. spammer es quien genera spam), presentandose como un potencial oportunidad de negocio para las tecnologías anti-spam.

Precursores de la tecnología anti-spam

Virtualmente cualquier Simple Mail Transfer Protocos (SMTP) Message Transfer Agent (MTA) (N. del T.: SMTP es el protocolo usado en la transmisión de correo electrónico, mientras que MTA son las unidades encargadas de hacer esta transferencia... en lenguaje coloquial, podemos pensar que un SMTP MTA es un servicio/servidor dedicado a la transmisión de correo) tiene alguna habilidad nativa para controlar las comunicaciones con otros MTAs en Internet. Por ejemplo, Sendmail, el SMTP MTA más ampliamente usado en el mundo, tiene la habilidad de desabilitar el reenvío y limitar las redes desde las que puede aceptar mensajes.

Estas características, mencionadas arriba como precursoras y tecnología de primera generación, no fueron creadas especificamente para solucionar el problema del spam, ni tampoco constituyen una tecnología anti-spam en sí. Hasta hace pocos años, los productos de mensajería vendidos apuntaban a solucionar el problema implementando características rudimentarias como estas y otras como las "listas blancas" y "listas negras" dentro del conjunto básico de características anti-spam. Esta última aproximación aún es evidente en muchos productos que incluyen SMTP MTAs tales como IBM Lotus Domino, que no representa en realidad una tecnología anti-spam.

Las verdaderas tecnologías anti-spam, conocidas como tecnologías de segunda y tercera generación, son desarrollos relativamente recientes. Son tecnologías absolutamente nuevas y difieren completamente de los controles básicos de los MTAs. En particular, los algoritmos Bayesianos y los más recientes avances en análisis de texto, por ejemplo, usando Inteligencia Arficial, son un cambio radical de los pre-existentes mecanismos caracterizados o re-propuestos como tecnología anti-spam.

Tecnología Anti-spam - la primera generación

Es difícil distinguir claramente entre las características pre-existentes disponibles en la mayoría de los MTAs y las características de primera generación anti-spam porque estas últimas se siguieron usando (N. del T.: y se usan) aún cuando las nuevas herramientas estaban ampliamente desarrolladas para combatir el spam. Por ejemplo, las "Pruebas de Sobre y Cabecera", así como las "Pruebas DNS Simple", fueron motivados inicialmente por el combate al spam, pero no pueden distinguir directamente entre los mensajes spam y otros mensajes.

(Integrantes de la primera generación son:)

Controles básicos MTA: los controles MTA, que restringen la comunicación basada en redes y nombres de dominios, por ejemplo, para prevenir el "reenvío"; no son una tecnología anti-spam. Algunas de estas características son anteriores al problema del spam e inicialmente existieron con propósitos de seguridad.

Listas blancas y negras: las listas blancas y negras en un MTA son extensiones lógicas de los controles MTA básicos usados como una herramienta en bruto para controlar el spam. Aunque las listas blancas y negras son una característica anti-spam importante, ellas no son una tecnología nueva porque ellas son simplemente extensiones y no se apartan de los controles clásicos. Los productos antivirus y de seguridad en los MTAs tenían estas características antes de ser ser caracterizados como una característica anti-spam.

Búsqueda de palabras simples: Uno de los primeros métodos usados para combatir el spam fue la búsqueda simple de palabras. Esta funcionalidad existió antes de que el spam fuera un problema mayor en Internet, como parte de del filtrado de contenido y soluciones de comodidad y productos antivirus para e-mail. Esta aproximación suele ser usada para identificar un subconjunto de los mensajes que son spam, pero no es efectivo porque falla al reconocer variaciones de las palabras o variaciones en el contexto, y pueden resultar en muchos falsos positivos (correos legítimos identificados como spam). Los antivirus para servidores de correo y productos de seguridad tenían esta característica antes de ser usados como herramientas anti-spam. Evadir la búsqueda simple de palabras es trivial para los spammer usando variaciones de las palabras o cambiando las palabras por alguna alternativa.

Prueba del sobre y cabecera del mensaje: La prueba del sobre implica que el MTA revisa la información pasada a través del protocolo SMTP, por ejemplo el emisor y receptor del mensaje, se usa cuando se transfiere el mensaje y se rechaza si esta no es correcta o válida. La prueba de la cabecera entrega al MTA la habilidad de comprobar la información guardada dentro del mensaje, tal como el Para, De y Fecha y rechazar los mensajes si la cabecera está malformada o contiene información inválida. Mientras que estas características son obviamente muy usadas para eliminar el spam, ellas ahora sólo garantizan que el mensaje está correctamente construído y transmitido, y no si ellos fueron enviados por spammer o si el mensaje contiene spam; así, no son una tecnología anti-spam en rigor. También pueden ocurrir problemas en las cabeceras de los mensajes y en los sobres por razones no necesariamente relacionadas con el spam.

Prueba DNS simple: Mirando la información del emisor intercambiada durante el uso del protocolo SMTP y usando el sistema de dominio de nombres (DNS) de Internet, se puede validar la información intercambiada, por ejemplo verificar la existencia del dominio Internet del emisor o el nombre de la máquina que envía el mensaje (mirando el nombre asociado con la dirección Internet del emisor). La prueba DNS simple ayuda a prevenir el spoofing (cuando una máquina se enmascara como otra usando el mismo nombre). Aunque la prueba DNS simple es una herramienta significativa para combatir el spam, ella no es una tecnología anti-spam como tal porque sólo verifica la dirección y nombre de máquina de quien envía, no si quien envía en un spammer o si el mensaje contiene spam. La prueba DNS simple en una tecnología débil porque puede indicar un problema para una compleja variedad de razones legítimas y no necesariamente spam.

Tecnología anti-spam - la segunda generación

Las listas negras en tiempo real y las redes de firmas son la segunda generación de tecnologías anti-spam porque no son la reutilización simple o extensión de las características pre-existentes de los MTA con propósitos anti-spam. La segunda generación de tecnologías anti-spam existe específicamente con el propósito de detener el spam y está ampliamente mejorada respecto de los métodos anteriores.

Listas negras en tiempo real (RBLs): aunque son tecnicamente una prueba DNS cuando están basadas en direcciones Internet en vez de nombres de dominio; las RBLs fueron la primera real tecnología anti-spam. El concepto detrás del RBLs es simplemente mantener una lista de direcciones Internet que envían spam y las bloquea para transmisiones futuras. La tecnología tiene algunos (d)efectos que permiten burlarla, como cambiar la dirección IP o reenviar mensajes a través de un tercero previamente no identificado como spammer. Del mismo modo, los nombres de dominio pueden ser fácilmente adquiridos, enmascarados o hechos; así que los dominios desde los que spammer envían no pueden depender de los detectores de spam. Hay algunas RBLs externas que bloquean dominios o direcciones IP a partir de reclamos.

Redes de firmas: Son una significativa y relativamente nueva tecnología para combatir el spam. El concepto de redes de firmas es coleccionar e identificar mensajes spam generando una única "firma" que puede ser usada para identificar un mensaje dado. Dado que los mensajes spam son enviado de manera masiva (muchas copias del mismo mensaje) esta aproximación, si es soportada por un número suficiente de ejemplos de mensajes spam, puede detener un porcentaje significativo de correo no deseado. No obstante, el concepto es dependiente del tiempo empleado en la operación de la generación de la firma para comenzar a funcionar.

Tecnología anti-spam - la nueva generación

Identificar spam (por firmas) y spammers (con RBLs) está destinado a fallar. Los spammers pueden fácilmente burlar las RBLs y frecuentemente una buena red de firma toma tiempo en identificar mensajes de spam; además que nunca detectan el 100% de estos.

Filtros Bayesianos: Los filtros bayesianos, que es una aproximación estadística a la detección de spam basado en la probabilidad de spam de las palabras individuales. Usando como premisa la idea que el contenido comercial de los mensajes spam es el talón de Aquiles, el desarrollo de los filtros bayesianos cambió el foco de los esfuerzos anti-spam de redes y protocolos al contenido de los mensajes. Los filtros bayesianos simples , aunque efectivos en la mayoría del spam, pueden ser burlados fácilmente. Esta aproximación confía en el "entrenamiento" de los filtros procesando el spam conocido para generar un sistema basado en una calificación (score) de "palabras spam" que son usadas para evaluar los nuevos mensajes. Los spammers aprenden rápidamente a variar continuamente el contenido de los mensajes agregando palabras neutrales o variaciones de las palabras (como sustituyendo numeros por letras como el número "0" por la letra "O"). Con estas variaciones de las palabras neutrales y otros contenidos de mensajes y creando nuevas variaciones a las palabras, los filtros bayesianos pueden ser burlados consistentemente, y están siempre un paso atrás de los spam más recientes.

Inteligencia Artificial y máquinas de aprendizaje: Mientras las técnicas ya implementadas basadas en filtros bayesianos (por ejemplo, tomando en cuenta la proximidad de las palabras, tirando los tags HTML usados por los spammers a palabras riesgosas, etc.) continúan siendo ampliamente usadas, una aproximación más inteligente se hace necesaria. Alrededor del 2003, la necesidad de nuevas y especializadas tecnologías anti-spam era clara; y se veía venir un número de tecnologías de punta necesarias de desarrollar; tales como Corvigo, Proofpoint, y otras. Las aproximaciones de estas compañías fueron basadas en algoritmos de software originados en el campo de la inteligencia artificial, que es una rama de las ciencias de la computación. Fundamentalmente estas tecnologías realizan clasificación de texto usando tecnicas no-bayesianas. Así, ellas pueden adaptarse automáticamente a los cambios de las características del spam. Para hacer esto se han usado técnicas de máquinas de aprendizaje.

El futuro de la tecnología anti-spam

El spam existe en parte porque, cuando el SMTP fue originalmente creado, sólo gobiernos y universidades legitimadas, entidades universitarias e industriales, fueron conectadas a Internet. Ningún concepto de ilegitimidad o abuso de internet o del email había porque era un sistema cerrado. Con la comercialización de Internet en los 1990s, la situación cambió pero no así las tecnologías. Organizaciones de estandarización hoy trabajan especificando nuevas tecnologías que ayudarán a eliminar el spam forzando un alto grado de legitimidad en los emisores de mensajes. Esfuerzos anteriores en esta línea, se promovieron como tecnologías anti-spam, pero ellas intentaron legitimizar el correo electrónico comercial masivo, considerado por muchos como spam.

En contraste, los actuales esfuerzos basados en estandars para establecer una de autentificación de los emisores usando certificados digitales a los dominios de llaves para generar firmas digitales para los mensajes, pueden ser empleados por todas las empresas, en ves de sólo los emisores de correo masivo comercial. Los nuevos estándars, sin embargo, demoraran varios años en ser incorporados en una mayoría de los MTAs de Internet.

10 comentarios:

Iván Romero dijo...

Saludos,
Mi nombre es Ivan Romero, actualmente estoy interesado en diseñar un filtro antispam utilizando alguna tecnica de mineria de datos. Antes de aplicar la tecnica necesito crear una vista minable que me indique que emails son spam y cuales no, para realizar esta tarea necesito primero reconocer palabras claves, ej. Viagra, Lottery, etc; ademas se me ocurre analizar el contenido de emails spam y no spam, creo que por medio de la categorizacion de texto se puede, para asi poder visualizar el comportamiento de los spam y los no spam. Mi duda es que desconozco herramientas para tal función, ¿Que me podrias recomendar o orientar para solucionar este problema?

LeGutier dijo...

En primer lugar sería interesante saber con quien trato... hacer público tu perfil, ayuda mucho.
Tu pregunta no me queda clara porque me estás mezclando conceptos.
Lo primero que te debo aclarar que los filtros antispam que puedes encontrar hasta ahora, son básicamente categorizadores de texto: analizan el contenido de texto del correo y, basado en alguna métrica de probabilidad basado en la existencia (y a veces frecuencia de los términos), determina la categoría (es o no spam).
Herramientas para categorizar, puedes probar con MathLab u alguna otra de ese tipo; pero en definitiva, si vas a hacer un producto (la importancia del tu perfil) de filtrado de spam, vas a tener que seguir el camino completo de creación del categorizador de texto.
Lo que te puedo ofrecer es que, si vas a hacer un categorizador de textos desde 0, nos compartamos el trabajo. Yo necesito hacer un ejemplo práctico de mis investigaciones, pero no le he puesto manos a la obra.

Iván Romero dijo...

Soy al igual que tu, un computologo curioso de Venezuela, actualmente estoy interesado en la creación de un filtro antispam utilizando tecnicas de minerias de datos, pero cual es el problema que la teoria es extensa y la practica que me interesa un poco mas para el diseño e implementacion, es minima. En la busqueda de informacion me encontre con la tecnica de categorizacion de texto (CT) que creo que con ella podre analizar los documentos para identificar los emails que son spam y cuales no, en este articulo que revise www.esi.uem.es/~jmgomez/papers/sepln03.pdf hablan sobre un problema parecido en donde hablan entre las tecnicas aplicadas para el filtro antispam la CT, pero tambien indican la construccion manual de la coleccion de entrenamiento (vista minable) y proveen una explicacion teorica de la construccion del filtro, me gustaria en parte aplicar los conocimientos teoricos con los practicos en la construccion de este filtro y no solamente quedarme en teorias, algoritmos etc.

Iván Romero dijo...

Revisando la web me encontre esta tesis que explica el proceso de categorizacion de texto (en forma manual), creo que este articulo es un buen punto de partida.
La direccion es http://ccc.inaoep.mx/~mmontesg/
tesis%20estudiantes/TesisMaestria-AlbertoTellez.pdf

LeGutier dijo...

Respecto al primer paper que me nombras (sepln03.pdf), ya lo había leído. Respecto del segundo, te confieso que no lo conozco, pero lo voy a leer y publicar mis comentarios al respecto.
Ahora bien, de lo poco que necesitas para hacer algo... créeme que es una utopía: igual lo vas a leer todo :D.
Una vez que caíste a este lado de la fuerza, no hay nada que hacer... ríndete al poder de "la fuerza".

yanet dijo...

Hola:
Mi nombre es Yanet Torres soy estudiante de 5to año de informatica, realmente no queiro hacer ningun comentario sobre este tema, lo queiro es contactar con alguien que me pueda ayudar para la realizacion d emi tesis, pue sla mism atiene como titulo:"Colecciones de Entrenamiento", especificamente tiene que ver con la categorizacion de textos, pero yo no tengo muchos conocimientos sobre el tema, y aqui nadie tiene muchos conocimientos, asi como no se encuentran muchas cosas en la red, ya que esta no e smuy amplia, yo necesito que si alguien puede me haga llegar algun documento sobre las colecciones de entranamiento, como que son, los tipos que existen en el mundo, fundamentalmente que tengan que ver con la categorizacion de documentos html...
Disculpen las moelstias...
Espero ayuda...
Sldos....

LeGutier dijo...

Hola Yanet:

Por curiosidad, me hubiera gustado saber de dónde eres... aunque no es importante para el tema, sino para saber dónde está haciendo ruido la categorización de textos.
Me llama mucho la atención tu interés por las colecciones de entrenamiento. La verdad es que son un tema muy poco tratado, y cuando te pones a investigar sobre la categorización, con el primer problema que te encuentras es precisamente "con qué experimento".
Existen varias colecciones con las que puedes investigar. La más conocida, me parece, es la de Reuter. Esa es algo así como "la oficial" para investigaciones por su independencia de origen y objetivo... además que puedes conseguir de manera gratuita cualquiera de sus dos corpus.
Si lo que te interesa es su estructura/organización, lo que he visto hasta ahora es que todas son muy similares: documentos xml con un tag para la categoría y uno para el texto como mínimo. Otros como la fecha, título, resumen, autor, etc.; se orientan más a investigaciones específicas o para la creación de categorizadores específicos: por ejemplo, para mejorar la categorización ayuda mucho quién es el autor... o la fecha en los casos que la categorización sea temporalmente dependiente (como con las visitas del Papa).
Documentos sobre colecciones de entrenamiento específicamente, no recuerdo haber visto. De hecho, es tal la falta de corpus en español para hacer investigación, que yo estoy construyendo el mío desde hace años: ya tiene alrededor de 22 mil reportajes extraídos de un periódico (o diario) en su versión electrónica.
Si en algo más te puedo ayudar, agrega un post. Como bien dices, es difícil encontrar material y mucho más encontrar alguien con quien conversar del tema.

yanet dijo...

Hola:
Gracias por responderme, pero la verdad me he quedado deprimida, al saber que realmente no existe mucha documentación sobre el tema, pues la semana que viene tengo que hacer entrega del capitulo 1 de la tesis y exponerlo ante un tribunal, y aun no consigo muchas cosas....la verdad ya empiezo a desesperarme no se que hacer...
Ah! Soy de Cuba...
Por si acaso tienes sabes algo de esto o me puedes ayudar te voy a poner los epígrafes de mi capitulo 1 quizás tengas algo de esto por ahí...
1.1 Estudio general de las colecciones de entrenamiento(aquí tengo que hablar que son en realidad las colecciones de entrenamiento, yo tengo una idea, pero realmente necesito una documentación que me sirva para argumentar bien en una tesis que es una CE).
1.1.2 Tipos de colecciones de entrenamiento (Debo de hablar de los tipos de colecciones mas conocidos, y por su puesto hacer una breve descripción de cada una).
1.1.3 Tipos de colecciones de entrenamiento para la categorización de documentos HTML.
1.2 Categorías de las colecciones de entrenamiento.

Un vez mas disculpa las molestias..
Si quieres me escribes a mi correo que es ytorresm@estudiantes.uci.cu
Sldos, Yo

yanet dijo...

Hola:
Me da pena hacerte tantas preguntas, pero necesito molestarte una vez mas...
necesito saber si estos son tipos de colecciones:
• Parametrizados (Simple de Bayes).
• Basados en perfiles (Algoritmo de Rocchio).
• Basados en ejemplos (Vecinos más cercanos k-NN).
• Basados en kernels (SVM).
Quisiera saber como puedo diferenciar las colecciones de los clasificadores, pues en los pocos documento que tengo viene todo mesclado, y realmente no te dice lo que es una coleccion...
Disculpa la molestia...
Sldos,Yo

israel870730 dijo...

Hola,
Mi nombre es Israel Romero Garcia,estoy realizando una investigacion referente a la Categorizacion Automatica de texto en correos electrónicos,y me gustaria saber si usted tiene conocimeinto de algunas herramientas que esten enfocadas en esta linea,he buscado en la web y se habla bastante de la categorización de texto la cual es muy utilizada para la deteccion de spam,organizacion de documentos y demas,pero yo quiero enfocarme especialmente en el cuerpo de los correos electronicos,categorizar ese comunicado que se quiere hacer llegar por el correo,Saludos cordiales Israel.