Donde guarda Thunderbird los datos del spam: training.dat

Noviembre 29th, 2005

Para que Thunderbird pueda clasificar nuestros correos en spam y ham necesita tener una lista de tokens con sus probabilidades. Esta lista está inicialmente vacia y se crea entrenando a Thunderbird, es decir, diciendole cuales de nuestros mensajes son ham y cuales son spam. Habitualmente, con repetir este proceso con el correo que recibamos en tres o cuatro días el programa ya será capaz de clasificar con un alto grado de fiabilidad.

Esta lista de palabras se guarda en nuestro directorio de profile (en mi caso “c:Documents and SettingsmadelmanDatos de programaThunderbirdProfilesdefault.ph9”) en el fichero training.dat. Este fichero no es directamente visible ni editable, pero podemos tratarlo gracias a Bayes Junk Tool, una herramienta en Java que permite realizar modificaciones del fichero.

Leer el resto de la entrada »

Guardado en Spam | Comentarios desactivados en Donde guarda Thunderbird los datos del spam: training.dat

Algoritmo de detección de spam en Thunderbird

Noviembre 28th, 2005

En la nota anterior A plan for spam explicaba el algoritmo genérico que propuso Paul Graham para la detección de spam y comentaba que el de Thunderbird es una implementación ligeramente modificada de este. Veamos entonces como funciona.

El algoritmo está implementado en el fichero mozillamailnewsextensionsbayesian-spam-filtersrcnsBayesianFilter.cpp concretamente en la función classifyMessage. Para hacerlo más sencillo de entender lo pasaré a pseudo-código y lo simplificaré. En primer lugar debemos ver cuales son las variables que utiliza:

  • mGoodCount: número de mensajes ham clasificados
  • mBadCount: número de mensajes spam clasificados
  • mGoodTokens: tabla de hash de tokens ham con el número de veces que han aparecido
  • mBadTokens: tabla de hash de tokens spam con el número de veces que han aparecido

Leer el resto de la entrada »

Guardado en Spam | Comentarios desactivados en Algoritmo de detección de spam en Thunderbird

A plan for spam: detectar spam con filtrado bayesiano

Noviembre 27th, 2005

Hace ya bastante tiempo que se proponen soluciones para la detección del spam, pero una de las que más repercusión ha tenido ha sido la propuesta de Paul Graham A plan for Spam. En ella propone utilizar métodos estadísticos para calcular la probabilidad de que un mensaje sea spam o no.

Para poder utilizar estos métodos, en primer lugar es necesario tener un conjunto de mensajes de ejemplo, tanto de spam como de correo ordinario (que él denomina ham, jamón, en contraposición a spam, que además de correo basura también es una carne en lata). Estos mensajes deberán ser trozeados en tokens, trozos de texto, habitualmente palabras. Esta partición del texto es muy importante, ya que dependiendo de como la hagamos el algoritmo funcionará mejor o peor.

Leer el resto de la entrada »

Guardado en Spam | Comentarios desactivados en A plan for spam: detectar spam con filtrado bayesiano

No se podrán bajar conciertos de Grateful Dead desde archive.org

Noviembre 27th, 2005

Me entero a través de BoingBoing que los conciertos que se ofrecían gratuítamente desde archive.org de Grateful Dead no se podrán seguir bajando, gracias a que la mujer de Jerry Garcia, el líder de los Grateful Dead lo ha prohibido.

Gran movimiento, si señor, teniendo en cuenta que la fama de los Grateful Dead fue creada en gran parte porque estos permitían a sus fans hacer copias de las grabaciones de los conciertos del grupo. La comunidad que se había formado alrededor de ellos (los deadheads) eran auténticos fanáticos (en el buen sentido de la palabra) del grupo y muchos de ellos dedicaban su vida a ir a conciertos de Grateful Dead, sobreviviendo mediante la venta de artesanía en las afueras del recinto donde hiceran el concierto.

Estos fans fueron los que hicieron que la fama del grupo creciera (vale, que fueran buenos músicos también influyó) y ahora se les quita la posibilidad de poder compartir esa música, que para muchos fue su vida.

A partir de ahora, solo se podrá escuchar los conciertos grabados desde el público en modo streaming, es decir, que no se puede grabar al disco duro (imaginemos, como ejemplo, una radio), mientras que los conciertos grabados directamente desde la mesa de mezclas no se podrán descargar ni escuchar.

Particularmente, no me habría bajado ninguno de los conciertos, ya que aunque me gusta Grateful Dead, tampoco soy un gran fan, pero me molesta que se quite esa oportunidad a muchos de sus fans que, probablemente gracias a esas descargas, se comprarían también los discos originales.

Guardado en Copyfight | Comentarios desactivados en No se podrán bajar conciertos de Grateful Dead desde archive.org

Ejemplos de tipos de spam

Noviembre 24th, 2005

Comentaba que ultimamente la cantidad de spam no detectado por mi lector de correo es bastante alta y está creciendo. Para saber porque se está produciendo esto, voy a analizar primero las diferencias entre los mensajes de spam que son clasificados correctamente y los que no.

Una vez tengamos ejemplos de como es cada uno de los tipos de spam, estudiaremos el algoritmo de clasificación e intentaremos ver porque estos correos no se están clasificando correctamente.

Leer el resto de la entrada »

Guardado en Artículo, Spam | 1 comentario »

Dropdowns relacionados en RubyOnRails

Noviembre 22nd, 2005

Si necesitamos tener dos dropdown relacionados, en el cual los valores del segundo dependan de cual esté seleccionado en el primero, podemos hacerlo mediante Ajax.

Supongamos las siguientes tablas:

countries
  id  INT
  name  VARCHAR

cities
  id INT
  country_id INT
  name VARCHAR

Queremos dos dropdown, de forma que los valores de las ciudades se carguen dependiendo del país seleccionado. Para ello, en el controlador creamos la función:

def list_cities
  @cities = City.find_all_by_country_id(@params["country_id"])
  @html = "<SELECT id=city_id name=group[city_id]>" 
  @html += "<OPTION selected value="">Select city</OPTION>" 
  @cities.each do |@city| 
    @html += "<OPTION value="#{@city.id}">#{@city.name}</OPTION>" 
  end 
  @html += "</SELECT>"
end

y en la vista:

<select id="group_country_id" name="group[country_id]"> 
  <option value="" selected>Select country</option></select>

<div id="city_id_container">
  <select id="group_city_id" name="group[city_id]">
    <option value="" selected>Select city</option>
  </select>
</div>

<%= observe_field "group[country_id]",
  :frequency => 0.25,
  :update => "city_id_container",
  :url => { :action => :list_cities },   
  :with => "'country_id='+value")
 %>

El truco está en el observe_field, que observa el dropdown de los países, y cuando su valor cambia hace una llamada al método list_cities pasando como parámetro el país seleccionado. Este devuelve el HTML que se inserta en el div con valor city_id_container.

Muy útil y limpio, aunque encontrar la documentación para hacer esto es un poco difícil, así que lo dejo aquí para quien lo necesite.

Guardado en Artículo, RubyOnRails | Comentarios desactivados en Dropdowns relacionados en RubyOnRails

Aumento de la cantidad de spam no detectado

Noviembre 22nd, 2005

En los últimos días vengo notando un incremento notable de la cantidad de spam no detectado en mi bandeja de entrada. Utilizo Thunderbird para leer mi correo y tengo el filtro de correo basura activado.

Hasta ahora el filtro me había funcionado bastante bien, dando algún falso positivo (algunas newsletters en inglés) y dejando pasar alguno de vez en cuando, cada dos o tres días. Pero en la última semana es raro el día que no encuentro dos o tres correos que no son filtrados, pero que cuando los lees compruebas que son spam.

Por regla general, este spam no detectado está bien escrito. Parece que los spammers han pasado de complicar cada vez más los mensajes que enviaban, llenándolos de código HTML, imágenes,… a escribir texto simple, correctamente redactado y que no levante sospechas.

Veamos un ejemplo de spam que si ha sido detectado:

Hi there,

Try this special product, Cialis. We have millions of happy customers all around the worId .You wiII qet the perfect feeIinq of being a man aqain!

Vemos como contiene una serie de palabras mal escritas que, si leyeramos con otro tipo de letra diferente, parecen correctas. En cambio, el correo que no ha sido detectado como spam, además de estar mejor redactado no tiene faltas de ortografía:

Get the Finest Rolex Watch Replica

We only sell premium watches. There’s no battery in these replicas just like the real ones since they charge themselves as you move. The second hand moves JUST like the real ones, too. These original watches sell in stores for thousands of dollars. We sell them for much less.

¿Alguno de vosotros ha notado también este cambio? Estaré atento a ver como evoluciona el tema y en un próximo post explicaré como funciona la detección de correo basura de este tipo de filtros.

Guardado en General, Seguridad 101 | 1 comentario »

Nuevo diseño, nuevos contenidos

Noviembre 21st, 2005

Los que leais el weblog desde el navegador habreis visto que he cambiado el diseño de la página. Me había cansado ya del anterior, que era el que venía por defecto en el WordPress, así que tocaba encontrar uno nuevo.

Con el cambio de diseño va a haber también un cambio de contenido. Seguiré hablando sobre seguridad, pero ampliaré la lista de temas que trato en el blog.

También intentaré escribir más frecuentemente, aunque eso siempre es complicado, pero habrá que probarlo.

Guardado en General | Comentarios desactivados en Nuevo diseño, nuevos contenidos