ALPHANET: Système anti-SPAM

Introduction

Le but de ce document est de définir ce qu'est le SPAM, de proposer des solutions pour les utilisateurs finaux et de présenter le filtrage effectué sur alphanet.ch.

Qu'est-ce que le SPAM

En référence à l'inondation de boîtes de viande (SPiced hAM) durant la Seconde Guerre Mondiale par les USA, on appelle SPAM du courrier électronique non sollicité (publicité p.ex.).

Par extension nous considérons également certains types de chaînes par mail ou de virus comme SPAM.

La détection des spams est quelque chose de complexe, mais qui progresse sans cesse. Le but est de maximiser le nombre de SPAMs détectés et supprimer en minimisant le nombre de messages validés mal détectés.

Vous pouvez trouver une description plus complète du SPAM en anglais et en français.

Solutions pour utilisateurs finaux

Beaucoup de clients mail offrent des systèmes de détection de publicité basés sur des règles; certains offrent des fonctionnalités avancées, basées sur procmail par exemple.

Une option est de faire la détection sur le serveur, c'est ce que nous faisons. La motivation est que les SPAMs créent un trafic non négligeable, occupent beaucoup de place, que certaines méthodes anti-spam ne sont applicables qu'en première ligne et que la plupart des personnes se satisfont de solutions standard. Sans compter que la problématique évalue sans cesse, une gestion centralisée est probablement bonne.

Nous faisons également le traitement sur le serveur (ce que l'on peut nous reprocher, voir plus bas).

Solution de filtrage alphanet.ch

Tout le courrier transitant par alphanet.ch (courrier privé, BSMTP-Exchange, SMTP, listes de distribution, etc) est contrôlé par un système évolutif, despam-check, utilisant les méthodes suivantes:

  • listes noires d'adresses IP (mail-abuse.org, snoop)
  • contrôle d'existence DNS de l'émetteur
  • listes noires simples locales sur l'expéditeur
  • utilisation du système postgrey, une implémentation du grey-listing, qui a l'avantage de reporter le travail sur le serveur de mail du spammeur, et ne pas nécessiter d'intervention de l'utilisateur ni de l'émetteur tout en s'assimilant à une liste blanche dynamique
  • utilisation du système spamassassin (y compris RBL et razor), avec des règles locales supplémentaires
  • suppression de certaines annexes dangereuses, renommage de certaines annexes inconnues (defang)
  • anti-virus clamav sur ce qui reste, mis à jour automatiquement avec freshclam.

Si un message est considéré comme SPAM, il est sauvegardé dans un répertoire spécial et non délivré.

Une fois par jour, le destinataire du message (vous) reçoit une liste des messages interceptés (regroupés en un seul mail synthétique) avec un lien (URL) qui permet de débloquer, visualiser ou ignorer le message. Les messages ainsi débloqués sont appris par le filtre! Ne débloquez donc pas des spams!

Notre système a un taux de mauvaise détection (faux positifs) très faible, avec pourtant un taux de détection de spam très grand (très peu de faux négatifs). Ajouté à l'inspection manuelle régulière, et à la notification (optionnelle!) à l'émetteur et obligatoire au destinataire et la possibilité pour l'émetteur et pour le destinataire de débloquer son message lui-même, cela fait un excellent système.

Il est important de comprendre que l'émetteur du message n'a pas de notification (du moins dans les dernières étapes de la détection anti-spam, une fois le message déjà transféré, et encore, peu de gens lisent véritablement ce genre d'erreurs). Une erreur pourrait être optionnellement envoyée à l'émetteur supposé avec un numéro de référence qui lui permettrait de visualiser voire débloquer lui-même: nous avons décidé de supprimer cela pour éviter de spammer en retour en cas de modification abusive du From: et d'éviter des attaques sur nos données bayesiennes.

Problèmes possibles

Si les utilisateurs d'un systèmes ont des mails très différents, l'apprentissage global utilisé dans notre cas pourrait être moins bon qu'un apprentissage par utilisateur (Bayesian filtering). En pratique jusqu'ici, il semblerait que cela ne soit pas le cas.

Trois cas sont cependant connus comme presque indéspammables:

  • si vous utilisez l'HTML dans vos mail à l'envoi et à la réception, vous risquez un taux de faux positifs plus grands immédiatement, et un taux de faux négatifs en augmentation à long terme
  • si vous communiquez avec des partenaires dans les pays asiatiques, en particulier chinois, les listes anti-spams RBL et autres risquent des faux positifs, voire des pertes de message.
  • l'utilisation de formats de documents annexés non libres ou sujets à problèmes n'est pas supporté

Comportement des utilisateurs

Veuillez envoyer les spams qui sont malgré tout passés à travers les mailles du filet à announce-spam@alphanet.ch

Notez que si vous pouvez envoyer le message tel quel sans aucune modification, alors faites-le à announce-spam-auto@alphanet.ch à la place. Ne le faites pas si vous n'êtes pas sûr!

Si vous disposez d'un accès IMAP, déplacez les spams non interceptés dans le répertoire .Spam. Les filtres seront adaptés en conséquence et les messages supprimés. Ne vous trompez pas! Ne mettez que les SPAMS.

Veuillez ne débloquer (respam) que les messages qui ne sont véritablement pas du spam! Sinon vous allez fausser le filtre.

Posez vos questions à mailadm@alphanet.ch

Développements futurs

  • statistiques par types
  • possibilité de mettre les spams dans un folder de cet utilisateur, accessible par IMAP ou POP (user+spam) p.ex.
  • possibilité de configurer plus finement le système
  • mettre RBL et autres aussi dans ce mécanisme pour éviter les problèmes
  • donner le choix pour
    • comportement classique
    • base d'apprentissage spécifique à cet utilisateur plutôt que globale
    • marquage des SPAMs détectés (via Subject: et/ou entêtes) plutôt que suppression/déplacement
    • mise des SPAMs dans répertoire IMAP spécial
    • désactivation anti-spam (cf plus haut mettre RBL et autres ... dans ce mécanisme)

 
info@alphanet.ch - Copyright © 1997-2009 - ALPHANET / Marc SCHAEFER