Your SlideShare is downloading. ×
0
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Filtrado e-mail spam
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Filtrado e-mail spam

4,088

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,088
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
60
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Filtrado de SPAM
      • Referencias:
      • Hulten & Goodman: Tutorial on Junk e-mail filtering.
      • Boykin: Personal Email Networks: An Effective Anti-Spam Tool, 2004
      • Newman et al. : Email networks and the spread of computer viruses, 2002
      • www.paulgraham.com
      • Curso: Recuperación de Información
      • -- ChaTo
  • 2. Adversarial – IR
    • Recuperación de información cuando toda la colección, o una parte de la colección, contiene ítems maliciosamente diseñados para afectar los resultados.
  • 3. Definición de spam
    • Envío de numerosos mensajes no-solicitados
      • “Unsolicited Bulk E-mail” (UBE)
    • Mensajes comerciales son una categoría
      • “Unsolicited Commercial E-Mail” (UCE)
    • Pero mensajes no-comerciales también cuentan
    • Opt-in : yo elijo cuáles mensajes recibir
    • Opt-out : yo elijo cuáles mensajes dejar de recibir
      • ... después de recibirlos :(
  • 4. Origen de la palabra “spam”
    • Carne de cerdo enlatada
    • Sketch de Monty Python: café donde todo en el menú contiene SPAM. El cliente pide algo sin SPAM, pero el mesero le lee de nuevo el menú completo con SPAM.
      • El colmo es cuando los vikingos ( ! ) en el café empiezan a cantar “ "SPAM, SPAM, wonderful SPAM, glorious SPAM".
  • 5. Tipos de spam
    • SPAM a máquinas de búsqueda (spamdexing?)
      • Links, blogs, palabras
    • SPAM por e-mail
    • SPAM por mensajería instantánea (spim)
    • SPAM por SMS
    • SPAM en las News.
    • SPAM en chats.
  • 6. Composición del spam por e-mail
    • Viagra + similares 34%
    • Seguros 4%
    • Medicamentos 10%
    • Préstamos, etc. 13%
    • Viajes, casinos 3%
    • Fraude 6%
    • Pornografía 7%
    • Diplomas, software 10%
  • 7. Causas del spam
    • “Tragedia del bien comunitario”
      • Cada uno trata de maximizar su utilidad, pero genera una externalidad que minimiza la satisfacción global
      • La acción del individuo produce una “externalidad”
    • Dilema del prisionero colectivo
      • Cada uno elije cooperar (ej.: no contaminar) o no cooperar (ej.: contaminar)
      • Si todos cooperan, hay un óptimo global
      • Si uno no coopera , esa persona obtiene un beneficio a costa de los otros
  • 8. Causas del spam (cont.)
    • Bien colectivo : e-mail, libre de cargos
    • Ingenuidad de los que contestan el spam
    • Costos
      • Uso de red
      • Tiempo perdido en leer el spam
      • Tiempo perdido en borrar el spam
      • 40-80% de los mensajes en USA son spam
    • Otros usos
      • Uso malicioso (estafas), usos religiosos/políticos
  • 9. Obtención de destinatarios
    • Crawlers orientados a e-mail
      • Algunos incluso capturan palabras cerca de la dirección para asociarlas al e-mail
    • Grupos, news, listas de correo, whois, búsqueda exhaustiva con validación (Web Bugs)
    • Compra de listas de correo
    • Protección
      • Esconder la dirección en la Web (ej.: esconderla con javascript)
      • No dar la dirección real
  • 10. Creación de los mensajes
    • Ingeniería social
      • “old photos”
      • “I saw your profile”
      • “re: Request”
    • Contra-ataque hacia filtros automáticos
      • V.I.A.G.R.A.
      • /14GR4, V-IAGRA, V1A-GRA
      • Uso de HTML
  • 11. Técnicas más usadas
    • Enredar las palabras 20%
    • Partir las palabras 15%
    • Incluír otras URLs 10%
    • Falsear el dominio 50%
    • MIME (text/html distintos) 11%
    • Texto legítimo al ppio/fin 56%
      • Fuente: Hotmail, 2004
  • 12. Envío de los mensajes
    • Open relays
      • Máquinas que admiten e-mail de cualquiera a cualquiera
      • Open proxies: proxies abiertos al puerto 25
    • Virus de spammer (ej.: SoBig, Mimail)
    • Cuentas de correo gratis
      • Protección: imágen con texto
      • Ataque: pedir a usuarios de otros sitios que decifren la imágen (ej.: sitios de pornografía gratis)
  • 13. Cómo testear un open relay
        • % telnet chato.cl 25
        • Trying 192.80.24.37...
        • Connected to terminus.todocl.cl.
        • Escape character is '^]'.
        • 220 terminus.todocl.cl ESMTP Sendmail 8.11.0/8.11.0; Tue, 22 Jun 2004 13:13:33 -0400
        • mail from: vendo@viagra.com
        • 250 2.1.0 vendo@viagra.com... Sender ok
        • rcpt to: ejemplo@example.com
        • 550 5.7.1 ejemplo@example.com... Relaying denied
        • quit
        • 221 2.0.0 terminus.todocl.cl closing connection
        • Connection closed by foreign host.
  • 14. Algunas soluciones técnicas al spam
    • Filtrado por similaridad
    • Lista blanca o Lista negra
      • IP, segmentos, direcciones de e-mail, dominios
    • Pago por enviar
    • Filtrado por aprendizaje automático
  • 15. Solución: filtrado por similaridad
    • Ej.: modelo vectorial
      • El e-mail recibido es la consulta
    • Necesita almacenar ejemplos de spam
      • Direcciones “ honeypot ” para capturar mensaje que son 100% spam
      • Feedback del usuario
    • Los e-mail son variaciones unos de otros
    • Se requiere una función robusta para similaridad (ej.: modelo vectorial + heurísticas)
  • 16. Solución: lista negra de IPs
    • Algunas listas son demasiado agresivas
      • Ej.: la red de un cierto ISP tiene un subscriptor que envía spam, al mensaje número 1,000 detectado se bloquea el segmento de red completo
    • Algunas listas reaccionan muy tarde
      • Después de que ya muchos mensajes han sido recibidos
  • 17. Solución: pago por enviar
    • Pago con test de turing
      • Recibo el mensaje y envío una imágen con letras
      • El remitente debe enviarme las letras
      • Una vez que lo hace, leo su mensaje y lo agrego a lista blanca
    • Pago con computación
      • Recibo el mensaje y envío una operación matemática compleja
      • El remitente debe enviarme la respuesta
    • Se usa en forma selectiva ( sólo sospechosos )
  • 18. Más soluciones ...
    • Pago en dinero por enviar
      • Micropagos
      • Autoridad certificadora: les pago y además deposito US$1,000, cuando me quiero ir me devuelven US$1,000 – (US$100 * número-de-reclamos)
    • Direcciones efímeras
      • www.sitio.com me pide mi e-mail
      • Le contesto “ [email_address] “
      • Una vez que recibo el e-mail de ellos, sólo el sender de ese e-mail puede enviar a esta dirección
  • 19. Filtrado automático
    • Se parte con un corpus de mensajes de spam y mensajes no-spam clasificados manualmente
    • Se entrena un clasificador
    • El clasificador entrega una probabilidad de que el mensaje sea spam
  • 20. Filtrado automático (problemas)
    • En la práctica
      • Difícil que la gente entrene el filtro
      • ¿Cómo damos un filtro pre-entrenado? (ej.: si le pido a académicos/investigadores que entrenen el filtro, pero sus e-mails son principalmente texto, el e-mail de la gente normal no)
  • 21. Evaluación
    • Problema 1: “ falsos negativos ”
      • Era spam pero el filtro no lo detectó
      • Equivalente a tener mal recall
    • Problema 2: “ falsos positivos ”
      • Era correo válido y quedó como spam
      • Equivalente a tener mala precisión
    • Trade-off entre estos dos problemas
    • Difícil de comparar (¿2%-0.1% ó 0.5%-0.2%?)
  • 22. Evaluación de filtrado automático spam que pasa el filtro (1-RECALL) falsos positivos (1-PRECISIÓN) filtro muy conservador filtro muy agresivo (óptimo) 1% 1% (valores usados)
  • 23. Elección de parámetros para el filtro spam que pasa el filtro falsos positivos filtro muy conservador filtro muy agresivo (óptimo) 1% 1% Lo detectado como spam será borrado (> /dev/null), elijo un valor conservador
  • 24. Elección de parámetros spam que pasa el filtro falsos positivos filtro muy conservador filtro muy agresivo (óptimo) 1% 1% Lo detectado como spam será sólo marcado [SPAM], me arriesgo más
  • 25. Filtrado bayesiano de spam
    • Teorema de Bayes
      • P(B|A) = ( P(A|B) * P(B) ) / P(A)
    • Teorema de Bayes para filtro de e-mail
      • Evento “spam” = mensaje es spam
      • Evento “palabras” = mensaje contiene palabras malas
    • P(spam|palabras) =
        • P(palabras|spam) * P(spam) / P(palabras)
      • Probabilidad de que un mensaje es spam, dado que contiene palabras malas
  • 26. Naïve bayesiano
    • Asumimos que las palabras son independientes
      • P(spam | x, y) = P(spam | x) * P(spam | y)
    • Probabilidad de que sea spam dado que aparecen las palabras x e y, es el producto de las probabilidades.
    • Esto no es cierto en general (las ocurrencias de las palabras no son independientes)
  • 27. Ejemplo
    • P( credit, thank | spam ) =
      • 0.4 * 0.4 = 0.16
    • P( credit, thank | nospam ) =
      • 0.2 * 0.4 = 0.08
    • En ausencia de más evidencia, el mensaje es spam
    • Más probable si recibo mucho spam
    • Más probable si las palabras son poco usadas
  • 28. Problemas de filtros bayesianos
    • Usuarios tienen que clasificar mensajes
      • A veces se equivocan clasificando
    • Degradación del filtro en ciertos casos
      • Ej.: siempre recibo correo en español, así que todo el correo en inglés lo considero spam. PERO cuando empiezo a recibir correo en inglés el filtro lo considera spam.
    • Frases “ Click here to enter ”, la frase es buena para separar spam, los términos individuales no .
  • 29. Lo bueno de los filtros bayesianos
    • No necesitas guardar los mensajes
      • Privacidad
      • Espacio en disco
    • Buena precisión y recall
    • Se pueden dar pre-entrenados con un set básico
  • 30. Otro filtraje automático
    • Separación lineal de mensajes
    Hiper-plano separador Razgo-1 Razgo-N
  • 31. Otro filtraje automático (cont.)
    • A veces no son linealmente separables, y además es computacionalmente difícil
    Hiper-plano separador Razgo-1 Razgo-N
  • 32. Mejora de filtros automáticos
    • No sólo las palabras
    • Usar otra evidencia:
      • Frases a mano “free money”, etc.
      • % de caracteres no-alfanuméricos
      • Encoding
      • Attachments
      • Hora en que fue enviado/recibido
      • Texto grande en HTML
      • Texto invisible
  • 33. Heurística buena: re-definición de tokens
    • Preservar mayúsculas/minúsculas
      • “FREE” es peor que “free”
    • Incluir los signos de exclamación
      • “WIN!!!!” es peor que “win”
    • Números precedidos de un $ y con puntos y comas son tokens
      • $20,000 y US$18.00 son tokens
    • Marcar los tokens del encabezado
      • “Subject*Free”, “To*Friend” son tokens
    • También usado: lematización
  • 34. Esta heurística ayuda:
    • Subject*FREE 0.9999
    • free!! 0.9999
    • To*free 0.9998
    • Subject*free 0.9782
    • free! 0.9199
    • Free 0.9198
    • Url*free 0.9091
    • FREE 0.8747
    • From*free 0.7636
    • free 0.6546
  • 35. Problema: tokens no vistos
    • Transformación del token, ej.: “Free!!!!”
      • Subject*Free!!!
      • Subject*free!!!
      • Subject*FREE!
      • Subject*Free!
      • Subject*free!
      • Subject*FREE
      • Subject*Free
      • Subject*free
      • FREE!!!
      • Free!!!
      • free!!!
      • FREE!
      • Free!
      • free!
      • FREE
      • Free
      • free
  • 36. Múltiple evidencia (SpamAssasin) 1.3 X_PRIORITY_HIGH Sent with 'X-Priority' set to high 1.0 FROM_ENDS_IN_NUMS From: ends in numbers 1.9 REMOVE_REMOVAL_1WORD BODY: List removal information 0.1 HTML_FONTCOLOR_BLUE BODY: HTML font color is blue 0.1 HTML_MESSAGE BODY: HTML included in message 0.1 HTML_FONTCOLOR_RED BODY: HTML font color is red -4.9 BAYES_00 BODY: Bayesian spam probability is 0 to 1% [score: 0.0048] 0.9 MAILTO_SUBJ_REMOVE BODY: mailto URI includes removal text 0.1 RCVD_IN_SORBS RBL: SORBS: sender is listed in SORBS [200.112.35.101 listed in dnsbl.sorbs.net] 0.1 RCVD_IN_RFCI RBL: Sent via a relay in ipwhois.rfc-ignorant.org [200.112.35.101 has inaccurate or missing WHOIS] [data at the RIR] 1.0 FROM_HAS_ULINE_NUMS From: contains an underline and numbers/letters 0.7 PLING_PLING Subject has lots of exclamation marks 0.5 MIME_BOUND_NEXTPART Spam tool pattern in MIME boundary 1.2 PRIORITY_NO_NAME Message has priority setting, but no X-Mailer Subject: Vier. 25 fiesta gratis en Viña!! [...]Viernes 25 Fiesta GRATIS en VIÑA:: ::No te pierdas este viernes 25, la mejor fiesta de la V Region. Viña y Santiago se reunen en un solo y exclusivo lugar: Puerto Madero, unico con su terraza bailable con vista al mar:: [...] Content analysis details: ( 4.0 points, 3.5 required )
  • 37. Más heurísticas
    • HTML
      • Formularios
      • Texto en color/grande/chico
    • Instrucciones para salir de la lista
      • mailto:email?Subject=remove
      • To remove, ...
    • “This is a one time mailing”
    • Encabezado To: vacío
    • From terminado en números
  • 38. Más heurísticas (cont.)
    • Lista blanca - negra - gris (amigos de amigos)
    • Mensajes muy grandes no son spam, pero pueden ser virus
    • Listas a mano, ejemplo de SpamBouncer:
    • * ^From:.*[^-_0-9a-z](ABACHA|
    • momoh abdul|
    • Rebecca Abdulmalik|
    • remmy abu|
    • Abdulsalami Abubakar|
    • Haruna Abubakar|
    • FRANK ABUDU|
            • (¡300 líneas más!)
  • 39. Pesos para las reglas
    • Cuando hay 500 reglas o más, ¿cómo se asignan los pesos?
    • Método 1: algoritmo genético
      • Individuo = vector de pesos de las reglas
      • Aptitud = f( falsos_negativos, falsos_positivos)
      • Cruce = intercambio de reglas
    • En cada generación cada individuo es testeado contra todos los mensajes para ver su probabilidad de sobrevivir -> LENTO
  • 40. Pesos para las reglas (cont.)
    • Mejor: red neuronal con retropropagación de gradiente (el truco más antiguo en la caja de herramientas).
    Reglas SPAM NO SPAM Si el resultado es correcto, se refuerza positivamente Si el resultado es incorrecto, se refuerza negativamente El corpus completo pasa por el perceptron k=15 veces (cada vez en orden aleatorio) El resultado son pesos positivos y negativos
  • 41. Análisis de enlaces
    • Nodos = Usuarios
    • Enlace desde u1 a u2 si:
      • u1 envió un mensaje To:u2
      • u1 envió un mensaje Cc:u2
  • 42. Caracterización enlaces
    • Difícil de obtener datos
    • Boykin: Personal Email Networks: An Effective Anti-Spam Tool, 2004
    • Newman et al. : Email networks and the spread of computer viruses, 2002
      • Intercambio de correo interno en una universidad (entre miembros de la misma universidad, descartando mensajes hacia/desde el exterior)
  • 43. Estadísticas grafo E-Mail
    • ¡ Es scale-free ! --- Grado promedio = 3.4
    • Reciprocidad (cuántos de los que yo le escribo me escriben también) 0.23
    • Correlación(grado interno,grado externo)=0.5
  • 44. Detección spam con grafo Boykin & Roychowdhury '04
    • Grafo típico de SPAM
      • Spammers en rojo
      • Direcciones comunes al centro
    • Grafo típico de NO-SPAM
      • Hay muchos triángulos, que son comunidades
  • 45. Detección spam con grafo ...
    • SPAM
      • Bajo coeficiente de clustering
    • NO-SPAM
      • Alto coeficiente de clustering
      • Muchos triángulos y cuadrados
  • 46. Software
    • SpamAssasin
      • Incluye un daemon para acelerar el proceso, si está corriendo, el mensaje es enviado de ida y vuelta al daemon
    • SpamBouncer
      • Reglas basadas en procmail
    • Bogofilter
      • Principalmente bayesiano sobre el texto
  • 47. ¿Cuando termina el SPAM?
    • Beneficio de enviar mensaje = $b per mensaje
      • b = (costo envío) * (tasa respuesta) * (profit)
    • Si una fracción de los usuarios usa un filtro que es 99% efectivo, la tasa de respuesta baja
      • Ejemplo: 10% de los usuarios usa filtro => un 9.9% de los mensajes de SPAM será perdido, los spammers pierden ahora un 9.9% del negocio
      • Ejemplo: 50% de los usuarios usa filtro => 49.5% de los mensajes de SPAM se pierden, el beneficio ahora es la mitad, quizás en estas condiciones ya no es negocio
  • 48. Conclusion
    • Problema difícil
    • ¿Por cuánto tiempo será problema?
      • Mientras haya la posibilidad de avisar casi-gratis y la gente siga comprando
    • La tasa de respuesta tiene que descender
      • Solución autoritaria : “ si alguien contesta un spam, se le cierra la cuenta ”, porque nos perjudica a todos
    • Un filtro será absolutamente necesario

×