Entender las reglas y tests de SpamAssassin

Los administradores de servidores de correo que utilizan SpamAssassin suelen tener que lidiar a diario con el modo en que se determina si un mensaje es spam o no. Aquí entra la configuración, tests, reglas y score que SpamAssassin asigna según la versión de reglas que tenemos instalada.

Cuando SpamAssassin analiza un mensaje, vuelca en el log correspondiente una entrada similar a la siguiente:

Mon Dec 22 21:08:33 2008 [23258] info: spamd: result: Y 5 -
HTML_MESSAGE,LOCALPART_IN_SUBJECT,RDNS_NONE,TVD_SPACE_RATIO
scantime=0.2,size=1946,user=(unknown),uid=500,required_score=5.0,
rhost=serv5.foo.org,raddr=10.0.0.1,rport=4154,mid=,autolearn=no

Para quienes no sepan interpretar bien estos logs, lo más importante es el resultado (result: Y 5) que nos dice si el mensaje ha sido considerado Spam o no, y su puntaje, en este caso el umbral de spam era 5 así que sí que lo es. Posteriormente tenemos el listado de test/reglas que han sido utilizadas para determinar si el mensaje es Spam. Hay algunas que son descriptivas, pero para otras debemos recurrir a google u otros medios de información para entender que está sucediendo:

HTML_MESSAGE,LOCALPART_IN_SUBJECT,RDNS_NONE,TVD_SPACE_RATIO

Lo que os quiero enseñar (que probablemente la conozcáis) es una URL oficial de SpamAssassin con un listado de todos los tests que se realizan en cada versión, la descripción de cada regla, su puntaje y un link para encontrar documentación adicional de la misma:

De este modo tenemos siempre a mano el listado de reglas y su documentación, de modo que podamos entender que está sucediendo con el antispam y tunearlo en consecuencia. En nuestro caso por ejemplo averiguamos que, por ejemplo:

  • HTML_MESSAGE: regla aplicada al cuerpo del mensaje: HTML included in message. Puntaje de 0.001
  • LOCALPART_IN_SUBJECT: regla aplicada al header. Local part of To: address appears in Subject. Puntajes de 0.001 0.730 1.199 1.107

Veréis que la documentación muestra, para cada regla, el area que se revisa (header, body, rawbody…), la descripción de la regla, el nombre, sus puntajes por defecto (local, net, with bayes, with bayes+net) y el link a su página del Wiki de SpamAssassin.