Compartiendo información entre usuarios de dspam
Introducción
dspam dispone de un mecanismo que permite a los usuarios compartir información acerca de qué es spam y que no, y que va a venirme muy bien dada la falta de interés de los usuarios por colaborar en el entrenamiento del filtro.
Este mecanismo son los grupos de usuarios de los que existen varios tipos en función del tipo de compartición de datos y necesidades de filtrado.
Shared
Permiten a usuarios con una dirección de comportamiento similar compartir un mismo diccionario mientras que mantienen buzones de cuarentena separados.
- Pros:
- El aprendizaje es rápido.
- Comparten un único alias para el spam.
- Utilizando el tipo
MANAGED
es posible compartir un buzón de cuarentena controlable por el administrador de grupos.
- Contras:
- La dirección de correo tiene que tener un comportamiento similar porque en caso contrario el nivel de aciertos del filtro será muy pobre.
- Si se comparte un buzón de cuarentena el administrador podría tener accesos a los correos personales que resultansen falsos positivos.
Inoculation
Este tipo de grupo permite que los usuarios tengan sus propios diccionarios de spam y se inocularán unos a otros automáticamente cuando reenvíen a sus alias de spam.
Pros:
- Las direcciones de correo pueden tener comportamientos dispares puesto que los diccionarios son independientes.
Contras:
- Un usuario no puede ser inmediatamente añadido a un grupo de este tipo, sino que es necesario que termine el periodo de adiestramiento de su filtro, porque en caso contrario acarrearía a los demás falsos positivos.
- Tampoco un usuario puede pertenecer a un grupo de este tipo y a un grupo
shared
al mismo tiempo.
Classification
En este tipo de grupo los usuarios forman parte de una red de resultados. Si dspam no está seguro sobre la clasificación de un correo comenzará un turno de consultas a los demás usuarios del grupo; si uno de ellos afirma que el mensaje es spam éste se marcará como tal.
- Avisos:
- Un usuario puede ser miembro de un grupo tipo
innoculation
yclassification
al mismo tiempo, pero no puede pertenecer a un grupoclassification
yshared
a la vez.
- Un usuario puede ser miembro de un grupo tipo
Global
Un grupo de este tipo permite a dspam proporcionarles un diccionario inicial, al estilo del filtrado genérico de spamassassin, a los nuevos usuarios hasta que ellos tengan uno adaptado a sus necesidades.
Cuando se crea un grupo de este tipo los usuarios que tengan menos de 1000 mensajes inocentes, menos de 250 mensajes spam ó si su filtro duda acerca de un mensaje consultará el diccionario global para que le enseñe.
Advertencia: el modo de entrenamiento en las preferencias de usuario globales debe ser cambiado a
TOE
(Train On Error) para evitar que las herramientas administrativas purgen los registros a los 90 días.
Merged
Estos grupos se asemejan a los de tipo global
en que comparten el
diccionario de un usuario global, al que se considera el antecesor del
grupo.
La diferencia estriba en que los diccionarios son mezclados en tiempo de ejecución, sin necesidad de conmutar entre uno y otro, lo que también permite tratar a la base de datos del grupo como un ente único; de esta forma el aprendizaje es más rápido que los otros tipos, con el inconveniente de tener cuidado con la actualización del diccionario, puesto que afecta inmediatamente a todos los demás.
Un ejemplo para el token Viagra
es el siguiente:
Fuente de datos | Puntuación para SPAM | Puntuación para Inocente | |
---|---|---|---|
Grupo | 10 | 0 | |
Usuario | 5 | 15 |
El resultado de la mezcla anterior será de 15 puntos para SPAM y 15 para Inocente, por lo que la probabilidad se situará en el 50%. Por separado para el grupo sería spam con certeza, mientras que no para el usuario.
Definiendo grupos en dspam
Para definir un grupo de usuarios se usa un archivo llamado group
en el
directorio personal de dspam, que puede ser /var/dspam
ó /var/spool/dspam
dependiendo de la instalación.
El formato del fichero es muy simple, un registro por línea y los campos están separados por dos puntos; cada registro define un grupo, su tipo y los usuarios que a él pertenecen:
group1:shared:user1,user2,user3
group2:inoculation:user4,user5,user6
En el caso de los grupos de tipo global
ó merge
para designar a un usuario
como antecesor, maestro ó guía de un grupo se prefija su nombre con un
asterisco (*
)
global:classification:*maestroarmero
En el caso de los grupos merged
el nombre del grupo representa el nombre del
usuario global con el cual mezclar a todos los demás.
grupo_mezclado:merged:*
grupo_mezclado:merged:usuario1,usuario2,enesimo