Un plan para Spam

Volver a Spam

Autor: Paul Graham
Original: http://www.paulgraham.com/index.html
Fecha de Publicación: Agosto de 2002

Este artículo describe las técnicas de filtrado de spam utilizados en el lector de correo basado el ejercicio Arc. Un algoritmo mejorado se describe en Los filtros Bayesianos.

Creo que es posible parar el spam, y aquellos filtros basados en contenido son la forma de hacerlo. El talón de aquiles de los spammers son sus mensajes. Ellos pueden evadir cualquier barrera que se forme. Lo han hecho hasta ahora, por lo menos. Pero tienen que enviar sus mensajes, cualquiera sea. Si podemos escribir software que reconozca sus mensajes, no hay forma de que ellos puedan evitar esto, evadiendo el reconocimiento.

Para el receptor, el spam es fácilmente reconocible. Si contratas a alguien para que lea tus mail y descarte el spam, tendrá pocos problemas en hacerlo. ¿Cuánto tenemos que hacer, fuera de la Inteligencia Artificial, para automatizar este proceso?

Yo pienso que vamos a ser capaces de resolver el problema con algoritmos medianamente simples. De hecho, he descubierto que se puede filtrar el spam diario aceptablemente bien utilizando nada mas que una combinación Bayesiana de la probabiliad del spam de palabras individuales. Utilizando un filtro Bayesiano apenas "tocado" (como se describe abajo), ahora fallamos en menos de 5 cada 1000 spams, con 0 falsos positivo.

La aproximación estadística no es usualmente la primera con la que las personas tratan cuando escriben filtros para spam. El primer instinto de la mayoría de los hacker's es tratar de escribir software que reconozcan propiedades individuales de los spams. Miras a un spam y piensas, la imprudencia de estos tipos al tratar de enviarme un mail que comienza con "Querido Amigo" o que tienen una línea en el asunto en mayúscula y termina con 8 puntos de exclamación. Puedo filtrar aquellas cosas con al menos una línea de código.

Y así haces, y al principio funciona. Unas pocas reglas simples tomaran una gran cantidad de spams entrantes. Simplemente buscando la palabra "clic" en el cuerpo de los mails atraparás el 79,7%, con solo 1,2% de falsos positivos.

Pasé alrededor de 6 meses escribiendo software que busca características individuales del spam antes de tratar con la aproximación estática. Lo que descubrí es que reconociendo ese último porcentaje de spams se hace muy difícil, y cuanto más estrictos hacía los filtros, más falso positivos obtenía.

Falso positivo son mails inocentes que son erróneamente identificados como spam. Para la mayoría de los usuarios, perder un mail legítimo es en orden de magnitud peor que recibir un spam, así que un filtro que produce falso positivos es como una cura para el acné que implica un riesgo de muerte para el paciente.

Cuanto más spams recibe un usuario, será menos probable que reciba un mail inocente en su carpeta de spam. Y suficientemente extraño, cuanto mas spam filtres, los falsos positivos se vuelven más peligrosos, porque cuando el filtro es realmente bueno, los usuarios probablemente ignoren todo lo que filtre.

No se por qué evité probar la aproximación estadistica por tanto tiempo. Creo que fue porque me volví adicto a tratar de identificar las características de los spam yo mismo, como si estuviera jugando algún tipo de juego competitivo con los spammers.(Los hackers rara vez hacen esto, pero muchos de ellos son competitivos). Cuando probé el análisis estadístico, inmediatamente comprobé que me había vuelto más listo de lo que había sido. Descubrí, por supuesto, que terminos como "virtumundo" y "adolescentes" eran buenos indicadores de spam. Pero también descubrí que "per" y "FL" y "ff0000" son buenos indicadores de spam. De hecho, "ff0000" (html para rojo) se convierte en un buen indicador de spam como cualquier termino pornográfico.

Aquí hay un bosquejo de como hice el filtrado estdístico. Comencé con el cuerpo de un mail spam y de uno no spam. Por el momento cada uno contenía 4000 mil mensajes. Escaneé el texto completo, incluyendo encabezados y html embebido y javascript, de cada mensaje en cada cuerpo. Actualmente considero caracteres alfanuméricos, guiones, apóstrofes, y signo de dolar como parte de un token, y todo lo demás como una marca de separación. Ignoré los tokens que son todos dígitos, y también ignoré comentarios html, no aún considerandolos como señales de separación.

Cuento la cantidad de veces que cada token presentes en cada cuerpo. En esta etapa ya finalicé con dos tablas hash grandes, una para cada cuerpo, mapeando las señales con un número de ocurrencias.

Después creo la tercer tabla hash, esta vez mapeando cada señal a la probabilidad de que un mail que la contenga sea un spam, el cual lo calculo de la siguiente manera:

(let ((g (* 2 (or (gethash word good) 0)))
(b (or (gethash word bad) 0)))
(unless (< (+ g b) 5) (max .01 (min .99 (float (/ (min 1 (/ b nbad))
(+ (min 1 (/ g ngood))
(min 1 (/ b nbad)))))))))


Donde "word" es la señal cuya probabilidad calculamos, "good" y "bad" son las tablas hash que cree en el primer paso, y "ngood" y "nbad" son el número de mensajes no spam y spam respectivamente.

Lo expliqué como un código para mostrar un par de detalles importantes. Yo quiero predisponer las probabilidades ligeramente para evitar falsos positivos, y por prueba y error encontré que un buen camino para hacer esto es duplicar todos los número en "good". Esto ayuda a distinguir entre palabras que ocacionalmente ocurren en mails legítimos y palabras que casi nunca ocurren. Solo considero palabras que ocurren mas de cinco veces en total (actualmente, a causa de duplicar, ocurriendo tres veces en los mails no spam sería suficiente). Y luego está la pregunta de que probabilidad asignarle a las palabras que ocurren en un cuerpo pero no en el otro. De nuevo por prueba y error elegí .01 y .99. Puede haber lugar para mejorar esto, pero como el cuerpo crece, tales mejoras sucederan de cualquier manera automáticamente.

El observador especializado se dará cuenta de que mientras yo considero cada cuerpo como una simple cadena de texto larga con el propósito de contar las ocurrencias, utilizo el número de emails en cada uno, en lugar de su longitud combinada, como el divisor para el cálculo de la probabilidad del spam. Esto agrega otra pequeña alteración para protegerme contra los falso positivos.

Cuando llega un mail nuevo, es escaneado dentro de las señales, y las 15 señales mas interesantes, donde interesante está medido por caun distante está la probabilidad de spam de neutral. .5 está utilizado para calcular la probabilidad de que el mail sea un spam. Si "probs" es una lista de las 15 probabilidades individuales, calculamos la probabilidad combinada de la siguiente manera(así):
(let ((prod (apply #'* probs)))
(/ prod (+ prod (apply #'* (mapcar #'(lambda (x)
(- 1 x))
probs)))))
Una pregunta que surge en la práctica es que probabiliad asignarle a una palabra que nunca has visto, esto es una que nunca ocurrió en la tabla hash de probabiliades de palabras. He descubierto, de nuevo por prueba y error, que .4 es un buen número para utilizar. Si nunca antes habías visto una palabra, es bastante probable que sea inocente, las palabras spams tienden a ser familiares.

Hay ejemplos de este algoritmo siendo aplicado a los mail's actuales en un apéndice al final.

Yo traato a los mail's como spam si el algoritmo me da una probabilidad mayor a .9 de que sea spma. Pero en la práctica no importaría mucho donde ponga este umbral, porque las probabilidades menores terminan en el medio del rango.

Una gran ventaja de la aproximación estática es que no tenes que leer muchos spams. En los últimos 6 meses, he leido literalmente miles de spams, y esto es de alguna forma desmoralizante. Norbert Wiener dijo que si competis con un esclavo te convertis en un esclavo, y esto es algo similarmente degradante como luchar contra los spammers. Para reconocer las características individuales de los spams debemos tratar de pensar como los spammers, y francamente quiero desperdiciar el menor tiempo posible dentro de la mente de un spammer como sea posible.

Pero la ventaja real de la aproximación de Bayesian, por supuesto, es que conoces lo que estas midiendo. Futuros filtros de reconocimiento como SpamAssassin le asignan al mail un puntaje de spam. La aproximación de Bayesian asina una probabilidad actual. El problema con el puntaje es que nadie sabe que significa. El usuario no sabe que significa, pero aún peor, ni el desarrollador del filtro lo sabe. Cuanto "puntos" debería recibir un mail que contenga la palabra sexo? Una probabilidad puede ser errónea por supuesto, pero hay una pequeña ambiguedad sobre su significado, o como la evidencia debe ser combinada para calcularla.

Como se trata de probabilidades, la aproximación Bayesian considera toda la evidencia en el mail, tanto la buena como la mala. Palabras que se presentan raramente desproporsionadas en spam(como "sin embargo" o "aparentemente") crontibuye tanto a decrementar(disminuir) como a incrementar las probabilidades. Así que en otras palabras mail inocentes que contengan la palabra "sexo" no será marcado como spam.

Idealmente, por supuesto, las probabilidades deben ser calculadas individualmente para cada usuario. He recibido muchos mail's con la palabra ceceo(lisp), y ningún spam que si. Así que una clase de palabra como estas es efectivamente un tipo de password para envierme mail's. En mi sistema de filtrado de spam anterior, el usuario podía configurar una listas de tales palabras y los mail's que las contenían pasarían el filtro automáticamente. En mi lista puse palabras como "ceceo" y también mi código postal, así que(de otra manera sonaba como spam) recibos de ordenes online pasarían. Creía que estaba siendo bastante listo, pero me di cuenta que el filtro Bayesian me hacía lo mismo a mi, y por otra parte el descubrimiento de muchas palabras que no se me hubieran ocurrido.

Cuando dije al principio que nuestro filtro dejaría pasar 5 de 1000 spams con 0 falso positivos, me referiero a filtrar mi mail basado en el cuerpo del mismo. Pero estos números no son engañosos, porque es la aproximación sobre la cual me estoy basando: filtrat todos los mail's de los usuarios basado en el mail spam y no-spam que recibe. Escencialmente, cada usurio debería tener dos botones de borrar, el borrar común y borrar como spam. Cualquiera borrado como spam pasa al cuerpo de spam, y todo lo demás va al cuerpo no-spam.

Podés iniciar usuarios con un filtro de semillas, pero últimamente este usuario debería tener su propia probabilidad por palabra en base a los mail's que recibe. Esto (a) hace que los filtros sean mas efectivos, (b) permite a los usuario decidir cual es su definición precisa de spam, y (c)tal vez lo mejor de todo le hace difícil a los spammers tunear(tune) los mail's para que pasen a través de los filtros. Si mucha de la inteligencia de los filtros está en bases de datos individuales, simplemente tuneando los spams para que pasen los filtros semilla no garantiza nada sobre cuan bien pasarán los variados y preparados(acostumbrados, educados) filtros de usuarios individuales.

Los filtros de spams basados en contenidos a menudo estan combinados con listas blancas(whitelist), una lista de remitentes cuyos mail's pueden ser aceptados sin filtros. Una forma fácil de crear tales listas es mantener una lista de todas las direcciones de usuarios que alguna vez te han enviado un mail. Si un usuario tiene el botón de borrar-como-spam también podrías agregar la dirección del remitente de todos los mail's que el usuario ha borrado de manera común.

Yo soy un defensor de las listas blancas, pero mas como una forma de ahorar cálculos que como una forma de mejorar los filtros. Solía pensar que las listas blancas harían mas fáciles los filtros, porque solo deberías filtrar mail's de personas de las cuales nunca escuchaste hablar, y cualquiera que te envíe un mail por primera vez está obligado a avisarte. Alguien que ya conoces podría enviarte un mail hablando de sexo, pero alguien que te lo envía por primera vez no será tan afortunado. El problema es, las personas pueden tener mas de una dirección de correo de correo, así que una nueva dirección no garantiza que el remitente te esté escribiendo por primera vez. Esto no es inusual para un viejo amigo(especialmente si es un hacker) el enviarte un mail con una nueva dirección, así que no podes arriesgarte a falso positivos filtrando especial y rigurosamente por direcciones desconocidas.

En un sentido, aunque, mis filtros contengan un tipo de lista blanca( y lista negra) estan basados en los mensajes enteros, incluyendo los encabezados. Así que la extensión que "conocen" las direcciones de mail de los verdaderos remitentes y aún las rutas por las cuales me llegan los mail's. Y ellos saben lo mismo sobre los spam, incluyendo el nombre del servidor, versión del programa de correo, y protocolos.

Si pienso que puedo mantener estadísticas actuales de los filtros spam, consideraría este problema resuelto. Peroe sto no significa que sea capaz de filtrar muchos de los spams de hoy en día, porque los spams evolucionan. Ciertamente, muchas técnicas anti spam hasta el momento has sido como pesticudas que no hacen mas que crear una nueva, y resistente variedad de bugs.

Estoy mas esperanzado con los filtros Bayesian, porque ellos evolucionan con los spams. Así como un spammer comienza a utilizar "c0ck" en lugar de "cock" para evadir filtros spam simples(simple-minded) basados en palabras individuales, los filtros Bayesian lo advierten automáticamente. Ciertamente,"c0ck" es evidencia mucho mas irrecusable(damning) que "cock", y los filtros Bayesian conocen precisamente mas.

A pesar de eso(aún), cualquiera que proponga un plan para filtrar spam tiene que ser capaz de responder la pregunta: si el spammer conoce exacatamente lo que estabas haciendo, cuan bien podría conseguir pasarte? Por ejemplo, pienso que los filtros spam basados en checksum(chequeo final, total) se conviertenen un obstáculo serio, los spammers solo cambiaran las técnicas "mad-lib" para generar cuerpos de mensajes.

Para dar un golpe bajo(beat) a los filtros Bayesian, no será suficiente que los spammers hagan que sus mails sean únicos o parar de utilizar palabras pícaras(naughty). Ellos deberían hacer que sus mail's sean indistinguibles de los mail's comúnes. Y creo que esto los restringiría gravemente. Los spam en la mayoría de los casos son un tipo de promoción (liquidación - sales pitches), así que a menos que tus mail's sean de este tipo, los spams inevitablemente tendran una característica diferente. Y los spammers tendrán también, por supuesto, que cambiar( y mantener el cambio) toda su infraestructura, porque de otra manera los encabezados serán como siempre malos para los filtros Bayesian, sin importar lo que le hicieron al cuerpo del mensaje. No conozco mucho de la infraestructura que utilizan los spammers para saber cuan difícil sería hacer que los encabezados parezcan inocentes, pero mi suposición es que sería tan difícil como hacer que el mensaje pareciera inocente.

Asumiendo que pudieran resolver el problema de los encabezados, los spam futuros se parecerán a:
Eh! ahí. Pienso que debes chequear(revisar) los siguiente: (Hey there. Thought you should check out the following:)
http://www.27meg.com/foo
porque esto es casi una "promoción" como que los filtros basados en contenido le permitirán a los spammer que lo hagan. (Ciertamente, será difícil aún conseguir los filtros anteriores, porque si todo lo demás en el mail es neutral, la probabilidad del spam se vinculará con la url, y le costará parecer neutral.)

El rango de los spammers desde los negocios - llamado opt- en listas que nadie trata de encubrir su identidad, hasta sujetos que usurpan servidores de correo para enviar promociones spams de sitios porno. Si utilizamos filtros para modelar las opciones de los correos como los anteriores, debería de forma bonita poner a los spammers en el final "legítimo" de los espectros del final del negocio, se sienten obligados por varias leyes de estado a incluir testo estandar(boilerplate) sobre como sus spam no son spam, y como cancelar tu suscripción, y este tipo de texto es fácil de reconocer.

(Yo solía pensar que era inocente(naive) creer que leyes estricatas disminuirían los spam. Ahora creo que mientras las leyes no pueden decrementar el total de spam que envían los spammer's, pueden ciertamente ayudar a filtrar para decrementar el total de spam que se reciben actualmente.)

A lo largo de todo el espectro, si restingís las "liquidaciones" que los spammers pueden hacer, inevitabelemente tenderás a dejarlos fuera del negocio. Es importante recordar la palabra "negocio". Los spammers son hombres de negocio. Ellos envían spam porque funcionan. Funcionan porque a pesar de que el porcentaje de respuesta es bajo(15 cada millón, contra 3000 por millón para un catálogo), el costo, para ellos, es practicamente nulo(nada). El costo es enorme para el receptor, alrededor de 5 semanas-hombre por cada millón de receptores que desperdician un segundo para borrar el spam, pero los spammers no tienen que pagar esto.

El envío de spam no le cuestan nada a los spammers, aunque. [2] Así que cuanto mas bajemos la probabilidad de respuesta de los spam- tanto filtrando, o utilizando filtros para forzar a los spammers a diluir sus promociones(pitches)- menos negocios encontran valor al enviar spam.

La razón por la cual los spammers utilizan este tipo de promociones(sales pitches) que ellos hacen es incrementar el porcentaje de respuesta. Esto es probablemente mas detestable que meterme en la mente del spammer, pero te permite tener una vista rápida de la mente de alquien que responde un spam. Esta persona es asombrosamente crédulo o profundamente negativa sobre el interes sexual. En todo caso, como a nosotros nos parecen repulsivos o idiotas los spam, a ellos les parecen excitantes. Los spammers no deberían decir estas cosas si no les sonara excitante. y "piensa que deberías chequear los siguiente" justamente no va a tener el empujón con el receptor del spam como tipo de cosas que los spammers dicen ahora. Resultado: Si no pueden contener promociones existentes, los spam se vuelven menos efectivos como un vehículo de marqueting, y menos negocios quieren utilizarlo.

Esta es la gran victoria al final. Comencé escribiendo software de filtrado de spam porque no quería mirar mas el material. Pero si conseguimos un filtro de spam bastante bueno, dejará de funcionar, y los spammers dejaran de enviarlos.

De todas las aproximaciones para filtrar spam, desde software hasta leyes, creo que los filtros Bayesian serña la mas simple y efectiva. Pero también pienso que cuanto mas esfuerzos de diferentes tipos de antyspam emprendemos, mejor, porque cualquier medida que restrinja a los spammers tenderá a que el filtrado sea mas fácil. Y aún dentro del mundo de los filtros basados en contenido, creo que será una buena idea si existieran muchos tipos de software utilizados simultaneamente. Cuanto mas filtros existan, será mas difícil para los spammer tunear(afinar) los spams para que puedan traspasarlos(pasarlos).

Apendice: Ejemplos de filtrado.

Aquí (http://lib.store.yahoo.net/lib/paulgraham/spam1.txt) hay un ejemplo de un spam que llega mietras estaba escribiendo este artículo. Las 15 palabras mas interesantes en este spam son:

qvp0045
indira
mx-05
intimail
$7500
freeyankeedom
cdo
bluefoxmedia
jpg
unsecured
platinum
3d0
qves
7c5
7c266675

Las palabras son una mezcla de cosas del encabezado y del cuerpo del mensaje, que es típico de los spam. También típico de los spams es que todas estas palabras tienen una probabilidad de spam, en mi base de datos, de .99. De hecho hay mas que 15 palabras con una probabilidad de .99, y estas son solo las 15 primera vistas.

Desafortunadamente esto hace que este mail sea un ejemplo aburrido del uso de las reglas Bayes'. Para ver una interesante probabildad tenemos que mirar este spam (http://www.paulgraham.com/lib/paulgraham/spam2.txt) realmente atípico.

Las 15 palabras mas interesantes en este spam, con sus probabilidades, son:
madam 0.99
promotion 0.99
republic 0.99
shortest 0.047225013
mandatory 0.047225013
standardization 0.07347802
sorry 0.08221981
supported 0.09019077
people's 0.09019077
enter 0.9075001
quality 0.8921298
organization 0.12454646
investment 0.8568143
very 0.14758544
valuable 0.82347786

Esta vez la evidencia es una mezcla de bueno y malo. Una palabra como "shortest" es casi como una evidencia de inocencia como palabras como "madam" o "promotion" son para culpable. Pero a pesar de esto el caso para culpable es mayor. Si combinas estos números de acuerdo a las reglas Bayes', la probabilidad resultante es .9027.

"Madam" es obviamente del comienzo de los spam "Dear Sir o Madam". No son muy comunes, pero la palabra "madam" nunca aparece en mail's legítimos. Esto es todo sobre los porcentaje.

"Republic" tiene una puntuación mas elevada porque es a menudo descubierta en mails de estafas nigerianas, y también aparece una o dos veces en spams referidos a Corea y Africa del sur. Tu debes decir que es un accidente que así ayuda a identificar estos spam. Pero he descubierto mientras examino las probabilidades de spam que hay un montón de este tipo de accidentes, y tienen una tendencia extraña de empujar las cosas en la dirección correcta en lugar de hacerlo en la erronea. En este caso, no es absolutamente una coincidencia que la plabra "Republic" aparezca en mail's de estafas nigerianas y este spam. Hay todo una clase de propósitos de negocios dudosos involucrando paises menos desarrollados, y estos a su vez son mas afortunados al tener nombres que especifícan explícitamente(porque no lo son) que son república[3].

Por otra parte, "enter" es una falla genuina. Esta ocurre en la mayoría de los casos en instrucciones de dessuscripción, pero aqui es utilizada de una manera completamente inocente. Afortunadamente la aproximación estática es medianamente robusta, y puede tolerar bastante bien las perdidas antes de que el resultado sea desechado(thrown off).

Para comparación, aquí hay un ejemplo de aquel "bicho raro", un spam que consigue pasar los filtros, Por qué? Porque por pura casualidad es cargado con las palabras que aparecen(ocurren) en mi mail actual:
perl 0.01
python 0.01
tcl 0.01
scripting 0.01
morris 0.01
graham 0.01491078
guarantee 0.9762507
cgi 0.9734398
paul 0.027040077
quite 0.030676773
pop3 0.042199217
various 0.06080265
prices 0.9359873
managed 0.06451222
difficult 0.071706355

Aquí hay un par de piezas de buenas noticias. Primero, la probabilidad del mail no pasaría los filtros de alguien que no se especialice en lenguajes de programación y que tengo un buen amigo llamado Morris. Para el usaurio promedio, todas las 5 primeras palabras serían neutrales y no contribuirían con la probabilidad de spam.

Segundo, creo que los filtros basados en pares de palabras(ver abajo) podría capturar(atrapar) este: "costo efectivo, "honorarios de configuración", "devolución de dinero" -- Cosas de incriminación lindas(bonitas). Y por supuesto si ellos continuan enviandome spam(spameandome)(o a una red a la cual pertenezco), "Hostex" por si mismo sería reconicido como un término de spam.

Finalmente, aquí hay un mail inocente. Sus primeras 15 palabras mas interesantes son:
continuation 0.01
describe 0.01
continuations 0.01
example 0.033600237
programming 0.05214485
i'm 0.055427782
examples 0.07972858
color 0.9189189
localhost 0.09883721
hi 0.116539136
california 0.84421706
same 0.15981844
spot 0.1654587
us-ascii 0.16804294
what 0.19212411

Muchas de las palabras indican que el mail es inocente. Hay dos palabras que huelen mal, "COLOR"(los spammers aman colorear las fuentes) y "CALIFORNIA"(la cual ocurre en testimonios y también en el menú de formularios), pero no son suficientes para pesar mas que palabras obviamente inocentes como "continuation" y "example".

Es interesante describir porcentajes como inocente a conciencia. No ha ocurrido en ninguno de mis 4000 spams. Los datos resultaron estar llenos de estas sorpresas. Una de las cosas que aprendes cuando analizas texto de spams es cuan limitado(estrecho) es el conjunto del lenguaje con el cual operan los spammers. Es este hecho, junto con el vocabulario característico igual al de cualquier mail individual de un usuario, lo que hacen de los filtros Bayesian una buena apuesta.

Apéndice: mas ideas.

Una idea que no he probado aún es el filtro basado en pares de palabras, o aún en triples, mas que en palabras individuales. Esto debería producir una estimación mas sutil(aguda) de la probabilidad. Por ejemplo, en mi base de datos actual, la palabra "offers" tiene una probabilidad de .96. Si basas las probabilidades en pares de palabras, deberías finalizar con "special offers" y "valuable offers" con una probabilidad de .99 y, supongamos, "approach offers" (como "this approach offers") teniendo una probabilidad de .1 o menor.

La razón por la que no lo he hecho es que los filtros basados en palabras individuales actualmente funcionan tan bien. Pero esto no significa que exista espacio para ceñir los filtros si los spam se vuelven mas difíciles de detectar. (curiosamente, un filtro basado en pares de palabras debería en efecto ser un generador de texto Markov-chaining en reversa).

Características especiales de los spams (por ejemplo no ver la dirección del receptor en el campo A:) por supuesto tienen valor en el reconocimiento de los spams. pueden ser considerados en este algoritmo al tratarlos como palabras virtuales. probablemente lo voy a hacer en versiones futuras, al menos para un puñado de los indicadores de spams mas ilustres. Los futuros filtros de reconocimiento de spam corrigen muchos detalles; cuya falta es todo una disciplina para combinar evidencia.

Reconocer características no-spam puede ser mas importante que reconocer características spam. Falsos positivos son tan preocupantes que demandan medidas extraordinarias. En futuras versiones probablemente agregue un segundo nivel de testeo de diseño específicamente para evitar falsos positivos. Si un mail dispara este segundo nivel de filtros será aceptado aún si su probabilidad de spam está por encima del umbral.

No pretendo que este segundo nivel de filtros sea un Bayesian. No será inevitablemente solo as hoc, pero basado en supuestos, porque el número de falsos positivos no tenderá a ser tan grande como para fijarse en patrones. (Es mejor así, de cualquier manera, sin un sistema de backup no se apoya en la misma tecnología que el sistema primario).

Otra cosa que puedo tratar en el futuro es prestar atención extra en partes específicas de un mail. Por ejemplo, alrededor del 95% de los spams actuales incluyen la url del sitio que quieren que visites. (El restante 5% quieren que llames a un número de teléfono, respondas por mail o a una dirección de mail US, o en unos pocos casos que compres un determinado stock). La url es en tales casos particularmente suficiente por si solas como para determinar si el mail es un spam.


Extras

Virus-Antivirus

Hosting by