filtrado e-mail spam

Download Filtrado e-mail spam

If you can't read please download the document

Upload: carlos-castillo-chato

Post on 16-Apr-2017

5.162 views

Category:

Technology


1 download

TRANSCRIPT

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: Recuperacin de Informacin

-- ChaTo

Adversarial IR

Recuperacin de informacin cuando toda la coleccin, o una parte de la coleccin, contiene tems maliciosamente diseados para afectar los resultados.

Definicin de spam

Envo de numerosos mensajes no-solicitados

Unsolicited Bulk E-mail (UBE)

Mensajes comerciales son una categora

Unsolicited Commercial E-Mail (UCE)

Pero mensajes no-comerciales tambin cuentan

Opt-in: yo elijo cules mensajes recibir

Opt-out: yo elijo cules mensajes dejar de recibir

... despus de recibirlos :(

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".

Tipos de spam

SPAM a mquinas de bsqueda (spamdexing?)

Links, blogs, palabras

SPAM por e-mail

SPAM por mensajera instantnea (spim)

SPAM por SMS

SPAM en las News.

SPAM en chats.

Composicin del spam por e-mail

Viagra + similares34%

Seguros4%

Medicamentos10%

Prstamos, etc.13%

Viajes, casinos3%

Fraude6%

Pornografa7%

Diplomas, software10%

Causas del spam

Tragedia del bien comunitario

Cada uno trata de maximizar su utilidad, pero genera una externalidad que minimiza la satisfaccin global

La accin 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

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/polticos

Obtencin de destinatarios

Crawlers orientados a e-mail

Algunos incluso capturan palabras cerca de la direccin para asociarlas al e-mail

Grupos, news, listas de correo, whois, bsqueda exhaustiva con validacin (Web Bugs)

Compra de listas de correo

Proteccin

Esconder la direccin en la Web (ej.: esconderla con javascript)

No dar la direccin real

Creacin de los mensajes

Ingeniera social

old photos

I saw your profile

re: Request

Contra-ataque hacia filtros automticos

V.I.A.G.R.A.

\/14GR4, V-IAGRA, V1A-GRA

Uso de HTML

Tcnicas ms usadas

Enredar las palabras20%

Partir las palabras15%

Inclur otras URLs10%

Falsear el dominio50%

MIME (text/html distintos)11%

Texto legtimo al ppio/fin56%

Fuente: Hotmail, 2004

Envo de los mensajes

Open relays

Mquinas 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

Proteccin: imgen con texto

Ataque: pedir a usuarios de otros sitios que decifren la imgen (ej.: sitios de pornografa gratis)

Cmo 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: [email protected]

250 2.1.0 [email protected]... Sender ok

rcpt to: [email protected]

550 5.7.1 [email protected]... Relaying denied

quit

221 2.0.0 terminus.todocl.cl closing connection

Connection closed by foreign host.

Algunas soluciones tcnicas al spam

Filtrado por similaridad

Lista blanca o Lista negra

IP, segmentos, direcciones de e-mail, dominios

Pago por enviar

Filtrado por aprendizaje automtico

Solucin: 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 funcin robusta para similaridad (ej.: modelo vectorial + heursticas)

Solucin: lista negra de IPs

Algunas listas son demasiado agresivas

Ej.: la red de un cierto ISP tiene un subscriptor que enva spam, al mensaje nmero 1,000 detectado se bloquea el segmento de red completo

Algunas listas reaccionan muy tarde

Despus de que ya muchos mensajes han sido recibidos

Solucin: pago por enviar

Pago con test de turing

Recibo el mensaje y envo una imgen con letras

El remitente debe enviarme las letras

Una vez que lo hace, leo su mensaje y lo agrego a lista blanca

Pago con computacin

Recibo el mensaje y envo una operacin matemtica compleja

El remitente debe enviarme la respuesta

Se usa en forma selectiva (slo sospechosos)

Ms soluciones ...

Pago en dinero por enviar

Micropagos

Autoridad certificadora: les pago y adems deposito US$1,000, cuando me quiero ir me devuelven US$1,000 (US$100 * nmero-de-reclamos)

Direcciones efmeras

www.sitio.com me pide mi e-mail

Le contesto [email protected]

Una vez que recibo el e-mail de ellos, slo el sender de ese e-mail puede enviar a esta direccin

Filtrado automtico

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

Filtrado automtico (problemas)

En la prctica

Difcil que la gente entrene el filtro

Cmo damos un filtro pre-entrenado? (ej.: si le pido a acadmicos/investigadores que entrenen el filtro, pero sus e-mails son principalmente texto, el e-mail de la gente normal no)

Evaluacin

Problema 1: falsos negativos

Era spam pero el filtro no lo detect

Equivalente a tener mal recall

Problema 2: falsos positivos

Era correo vlido y qued como spam

Equivalente a tener mala precisin

Trade-off entre estos dos problemas

Difcil de comparar (2%-0.1% 0.5%-0.2%?)

Evaluacin de filtrado automtico

spam que pasa el filtro(1-RECALL)

falsos positivos(1-PRECISIN)

filtro muy conservador

filtro muy agresivo

(ptimo)

1%

1%

(valores usados)

Eleccin de parmetros 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

Eleccin de parmetros

spam que pasa el filtro

falsos positivos

filtro muy conservador

filtro muy agresivo

(ptimo)

1%

1%

Lo detectado como spam ser slo marcado [SPAM], me arriesgo ms

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

Nave 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)

Ejemplo

P( credit, thank | spam ) =

0.4 * 0.4 = 0.16

P( credit, thank | nospam ) =

0.2 * 0.4 = 0.08

En ausencia de ms evidencia, el mensaje es spam

Ms probable si recibo mucho spam

Ms probable si las palabras son poco usadas

Problemas de filtros bayesianos

Usuarios tienen que clasificar mensajes

A veces se equivocan clasificando

Degradacin del filtro en ciertos casos

Ej.: siempre recibo correo en espaol, as que todo el correo en ingls lo considero spam. PERO cuando empiezo a recibir correo en ingls el filtro lo considera spam.

Frases Click here to enter, la frase es buena para separar spam, los trminos individuales no.

Lo bueno de los filtros bayesianos

No necesitas guardar los mensajes

Privacidad

Espacio en disco

Buena precisin y recall

Se pueden dar pre-entrenados con un set bsico

Otro filtraje automtico

Separacin lineal de mensajes

Hiper-planoseparador

Razgo-1

Razgo-N

Otro filtraje automtico (cont.)

A veces no son linealmente separables, y adems es computacionalmente difcil

Hiper-planoseparador

Razgo-1

Razgo-N

Mejora de filtros automticos

No slo las palabras

Usar otra evidencia:

Frases a mano free money, etc.

% de caracteres no-alfanumricos

Encoding

Attachments

Hora en que fue enviado/recibido

Texto grande en HTML

Texto invisible

Heurstica buena: re-definicin de tokens

Preservar maysculas/minsculas

FREE es peor que free

Incluir los signos de exclamacin

WIN!!!! es peor que win

Nmeros 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

Tambin usado: lematizacin

Esta heurstica 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

Problema: tokens no vistos

Transformacin 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

Mltiple 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 Via!![...]Viernes 25 Fiesta GRATIS en VIA:: ::No te pierdas este viernes 25, la mejor fiesta de la V Region. Via 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)

Ms heursticas

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: vaco

From terminado en nmeros

Ms heursticas (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 lneas ms!)

Pesos para las reglas

Cuando hay 500 reglas o ms, cmo se asignan los pesos?

Mtodo 1: algoritmo gentico

Individuo = vector de pesos de las reglas

Aptitud = f( falsos_negativos, falsos_positivos)

Cruce = intercambio de reglas

En cada generacin cada individuo es testeado contra todos los mensajes para ver su probabilidad de sobrevivir -> LENTO

Pesos para las reglas (cont.)

Mejor: red neuronal con retropropagacin de gradiente (el truco ms antiguo en la caja de herramientas).

Reglas

SPAM

NO SPAM

Si el resultado es correcto, se refuerza positivamenteSi el resultado es incorrecto, se refuerza negativamenteEl corpus completo pasa por el perceptron k=15 veces(cada vez en orden aleatorio)El resultado son pesos positivos y negativos

Anlisis de enlaces

Nodos = Usuarios

Enlace desde u1 a u2 si:

u1 envi un mensaje To:u2

u1 envi un mensaje Cc:u2

Caracterizacin enlaces

Difcil 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)

Estadsticas grafo E-Mail

Es scale-free! --- Grado promedio = 3.4

Reciprocidad (cuntos de los que yo le escribo me escriben tambin) 0.23

Correlacin(grado interno,grado externo)=0.5

Deteccin spam con grafo
Boykin & Roychowdhury '04

Grafo tpico de SPAM

Spammers en rojo

Direcciones comunes al centro

Grafo tpico de NO-SPAM

Hay muchos tringulos, que son comunidades

Deteccin spam con grafo ...

SPAM

Bajo coeficiente de clustering

NO-SPAM

Alto coeficiente de clustering

Muchos tringulos y cuadrados

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

Cuando termina el SPAM?

Beneficio de enviar mensaje = $b per mensaje

b = (costo envo) * (tasa respuesta) * (profit)

Si una fraccin 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, quizs en estas condiciones ya no es negocio

Conclusion

Problema difcil

Por cunto tiempo ser problema?

Mientras haya la posibilidad de avisar casi-gratis y la gente siga comprando

La tasa de respuesta tiene que descender

Solucin autoritaria: si alguien contesta un spam, se le cierra la cuenta, porque nos perjudica a todos

Un filtro ser absolutamente necesario

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level