Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Protections contre le spam

Description de différentes méthodes pour se protéger contre ce fléau


Le spam, c'est ce fléau qui pourrit nos boîtes aux lettres électroniques: pour la Commission Européenne, il représente plus de 50% des communications électroniques échangées dans l'Union Européenne et coûte 10 milliards d'Euros aux internautes chaque année. Et ça ne cesse d'empirer.


On continue de subir cette nuisance à longueur de journée en attendant une solution miracle, globale et définitive qui tarde toujours plus.
Mais en attendant que les DomainKeys et autres méthodes de traçage des emails ne se démocratisent, il est possible de combattre le spam localement, un compte email à la fois. Les outils de filtrage et de blocage sont là, et ils fonctionnent. Voyons ensemble les solutions qui s'offrent à un internaute débordé de publicités pour du viagra ou des crédits bancaires (ou pire) en suivant le parcours d'un email envoyé par un spammeur imaginaire à l'adresse (tout aussi imaginaire) [email protected]:

Se cacher des spammeurs
   
La première façon de ne pas être spammé, c'est de ne pas être dans leurs listes d'emails. Pour cela il faut éviter de publier son adresse email, mais il faut aussi que vos correspondants puissent vous écrire... Cruel dilemme, que l'on peut résoudre en rendant son adresse uniquement lisible à un être humain et invisible à un bot de ramassage d'adresses automatisé: par exemple, en l'écrivant de manière codée, comme [email protected] les _ par des . ou encore mort (point) au (point) spam (at) macbidouille (point) com. On peut aussi remplacer le texte par une image, ou encrypter son adresse.
Une autre façon de se cacher est d'utiliser une adresse email fantôme: c'est une adresse temporaire, utilisée seulement le temps de quelques messages. De tels services sont proposés par Mailinator et Jetable.
On peut aussi faire appel à un service de filtrage gratuit qui redirige les bons emails vers votre adresse secrète et efface le spam. C'est ce que proposent Spammotel, Despammed, Sneakemail et bien d'autres. C'est pratique, mais seulement pour ceux qui ont une boîte à lettres électronique qu'ils ont su garder secrète.
Pour éviter de voir votre adresse email tomber dans les listes des spammeurs, il faut aussi suivre quelques recommendations: ne jamais propager de lettres-chaînes et ne pas inscrire son adresse email n'importe où.
Pour les besoins de notre exemple, imaginons que mort.au.spam a laissé son adresse email sur une page web personnelle. Un bot spécialisé ouvre cette page depuis un moteur de recherche, et trouve l'adresse email, qu'il inscrit dans sa liste. Plus tard, le spammeur qui utilise ce bot récupère la liste, et commence à envoyer des messages à toutes ces adresses.
Bloquer la réception de spams
Dans notre exemple, le spam est envoyé soit directement par le spammeur depuis son propre serveur SMTP, soit à travers l'un des nombreux serveurs SMTP mal configurés de la planète... et c'est ainsi que ce serveur-là tente de se connecter au serveur SMTP de macbidouille.com, pour le convaincre de stocker un email publicitaire à destination de son utilisateur mort.au.spam.
Dans cette situation, il faudrait évidemment que notre serveur refuse tout net cette connection malveillante. C'est possible, mais ça demande un peu de travail:
Bloquer le spam à la réception consiste à empêcher un spammeur d'envoyer des spams sur votre compte email ou votre domaine (un domaine étant une adresse servant à désigner votre réseau d'ordinateurs, dans notre exemple: macbidouille.com). Elle agit au niveau du serveur SMTP, donc elle ne peut être utilisée que si vous avez accès à ce serveur. Si vous utilisez uniquement le(s) compte(s) email fourni(s) par votre fournisseur d'accès Internet ou un compte externe (Yahoo / Caramail / Hotmail / etc...), passez au chapitre suivant directement.
La première et indispensable mesure à prendre quand on configure un serveur SMTP, c'est de s'assurer qu'il est impossible qu'un spammeur ne s'en serve pour envoyer ses spams au reste du monde: ne jamais laisser son serveur en mode "Open-relay", il ne doit pas être possible d'envoyer des emails de n'importe quel domaine vers n'importe quel autre domaine. Les seuls échanges possibles doivent être d'un domaine externe vers votre domaine, et réciproquement de votre domaine vers un autre domaine. Par exemple, il ne doit pas être permis d'envoyer un email depuis joyeux-spammeur.net vers victime.org en passant par macbidouille.com ! Ce serveur ne doit répondre qu'aux besoins des utilisateurs du domaine concerné. Il faut donc vérifier que le domaine d'envoi et/ou de réception est bien le même domaine que celui auquel appartient votre serveur.
Attention, il faut aussi vérifier que l'adresse IP d'où provient la connection appartient bel et bien au domaine annoncé, pour empêcher n'importe qui de prétendre appartenir à n'importe quel domaine !
Ensuite il faut empêcher n'importe qui de se faire passer pour vous ou tout autre utilisateur de votre compte ou domaine, en limitant l'envoi d'emails depuis votre domaine aux seuls comptes valides, et en mettant en place un dispositif d'authentification (par mot de passe, de préférence) pour interdire à n'importe qui de se faire passer pour un utilisateur de votre serveur. Ainsi, le spam ne passera pas par vous.
C'est fait ? Bien, il vous reste encore une option: interdire la connexion à votre serveur SMTP depuis un domaine considéré comme un repaire de spammeurs. Pour cela il faut configurer votre serveur pour qu'il consulte une ou plusieurs liste(s) de serveurs connus pour leur envoi massif de spam, et bloque la tentative de connection lorsqu'il reconnaît une origine "douteuse".
Il est aussi possible de bloquer complètement un territoire géographique entier, mais cette mesure est souvent un peu trop efficace...

Filtrer le spam sur le serveur
Après réception par le serveur SMTP de macbidouille.com le message est stocké en attendant que l'utilisateur mort.au.spam ne le récupère. Il est possible d'agir à ce moment-là pour se débarasser du spam, à l'aide d'outils spécialisés comme l'excellentissime SpamAssassin ou le récent (et prometteur) DSpam, et MimeDefang. Ceux-ci analysent les emails reçus, et marquent ou éliminent les messages identifiés comme du spam, en utilisant plusieurs méthodes combinées (pour une plus grande fiabilité), parmi celles qui se sont imposées:
Analyse statistique de Bayes: celle-ci consiste à donner une valeur de "probabilité de spam" et une "probabilité de non-spam" à chaque mot, valeurs qui peuvent être modifiées avec chaque nouveau message reçu pour apprendre à faire le tri. La somme des logarithmes des rapports entre les deux valeurs pour chaque mot d'un message permet de déterminer si ce message est du spam ou pas.
Reverse-MX: il s'agit de vérifier l'origine du message, et la validité des informations de transmission associées. Par exemple, un message qui vient d'un domaine donné mais dont l'IP d'origine ne correspond pas à aux serveurs mail déclarés par ce domaine (dans le champ RMX de son enregistrement DNS) est très probablement du spam.
Analyse du message: cette méthode vient compléter la méthode de Bayes, en détectant des mots-clés, par exemple des tags HTML volontairement mal formés ou des traces typiques de spamming, comme l'absence de domaine d'envoi.
Identification collaborative: c'est le principe de Vipul's Razor. Comme un message publicitaire est généralement envoyé à l'identique à des milliers de gens, l'une de ces victimes peut déterminer une signature unique pour ce spam, et la partager avec tous les autres utilisateurs de Razor pour qu'ils bloquent ce spam-là lorsqu'ils le recevront.
Analyse des chaînes de tokens: cela consiste à étendre le principe de l'analyse statistique de Bayes aux groupes de mots, en les associant ensemble. Par exemple les mots "viagra cheap" ensemble ont plus de sens que s'ils étaient séparés, ce qui améliore sensiblement l'efficacité du filtrage en lui évitant de classer comme spam des messages légitimes.
Inoculation externe: derrière ce nom compliqué se cache en fait une méthode simple pour améliorer l'efficacité des filtres utilisant une analyse de Bayes, c'est-à-dire le partage des erreurs de classification entre les utilisateurs de ce filtre. Ainsi chacun sera préparé à ne pas faire une erreur de classification qui se serait déjà produite dans le groupe.

Il existe encore quelques autres méthodes, comme l'utilisation d'une liste des domaines de spammeurs à laquelle on compare l'origine des messages, la détection de mots à bannir (un peu simpliste), l'utilisation d'une liste de contacts autorisés (whitelist), etc...
Les grands fournisseurs de service email comme Yahoo et Hotmail proposent souvent leur propre fonction anti-spam sur serveur. Il est aussi possible parfois de configurer soi-même des règles de filtrage de mail pour son compte, mais c'est tout de suite plus compliqué.

Filtrer le spam sur le client
Imaginons que le message publicitaire a réussi à passer les filtres et les listes de blocage de connexion. Le voilà stocké pour de bon sur le serveur SMTP de macbidouille.com. L'utilisateur mort.au.spam se connecte ensuite au service POP du domaine macbidouille.com pour récupérer ses emails.
Il est encore possible d'agir à ce moment-là pour éliminer le spam, par exemple avec MailWasher, qui se connecte pour vous au service POP et élimine les spams sans que vous ayez à les télécharger d'abord, ou avec SpamCruncher, qui applique les techniques de détection de SpamAssassin à vos mails alors qu'ils sont encore sur le serveur.
Une méthode un peu hybride, entre le filtrage sur le serveur et le filtrage sur le client, consiste à utiliser un proxy POP. C'est un programme qui marche d'un côté comme un client POP, qui va récupérer vos emails, et de l'autre comme un serveur POP, sur lequel vous connectez votre client mail, et qui se charge de filtrer le spam entre les deux. C'est comme ça que fonctionnent l'excellent POPFile (attention, pour installer POPFile sous MacOS X il faut d'abord installer des modules supplémentaires pour Perl, DBIDBD-SQLite et HTML-Tagset, pour plus de détails sur cette installation voyez le Mac and Co de Juin 2004) et l'aussi excellent Cerebrus.
Bon, supposons que mort.au.spam a téléchargé le message. Celui-ci est maintenant stocké dans la base d'emails de son client (Mail.app, Entourage, Outlook, Eudora, etc...). Il faudrait pouvoir filtrer les spams et les mettre directement à la poubelle, pour éviter à mort.au.spam de devoir le faire manuellement pour chaque spam reçu (ce qui est vite frustrant et fatigant). Pour cela la plupart des clients mail disposent de filtres anti-spam intégrés, qu'il suffit d'activer (et parfois d'entraîner un peu). Par exemple les filtres de Mail.app s'activent depuis les préférences, onglet "Indésirable". Passez Mail en mode Essai pour lui apprendre à distinguer spam et emails légitimes, puis passez-le en mode Automatique quand vous estimez qu'il est prêt.
Vous pouvez aussi utiliser des filtres supplémentaires, comme JunkMatcher pour Mail.app, ou SpamBayes pour Outlook. Le Collectif Anti SPAM a également une liste très complète d'outils.

...et faire le mort
Il reste encore une étape pour se protéger des spams... car lorsque mort.au.spam va lire l'email reçu, il risque sans le savoir de confirmer la validité de son adresse au spammeur (qui ne le lâchera plus et vendra son adresse à d'autres spammeurs): car l'email reçu est une page HTML contenant une petite image hébergée sur le serveur du spammeur. Il faut impérativement désactiver le téléchargement de ces mouchards. Dans Mail.app, cela se règle en décochant "Afficher les images et les objets intégrés dans les messages HTML" dans l'onglet Visualisation des Préférences. Une option similaire doit exister dans les autres clients mail. L'autre avantage est qu'on économise de la bande passante.
Bien sûr, il ne faut jamais, JAMAIS répondre à un spam. Vous risquez d'inonder un compte mail légitime d'une autre victime (qui n'a rien fait), et en plus cela ne fait qu'augmenter encore plus la masse d'emails en circulation, pour un résultat nul.
Et enfin, il faut éviter de voir son ordinateur infecté par un ver, virus ou troyen, en effet ces programmes malveillants servent très très souvent à transformer votre machine en relai pour spammeurs (en plus d'avoir d'autres effets peu recommendables). C'est pourquoi il faut considérer que les emails générés par les virus et vers pour se propager sont bel et bien du spam, et bloquer leur propagation par tous les moyens vus dans cet article.
Comme vous le voyez, les outils existent, et ils fonctionnent. Un petit effort maintenant peut vous faire économiser beaucoup d'efforts plus tard. Si les principaux fournisseurs d'accès Internet utilisaient tous SpamAssassin, par exemple, le spam se réduirait vite à une peau de chagrin.

Partager sur

Sondage

Comptez-vous acheter un Vision Pro ?