filtrado e-mail spam
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