SPAM

De Cliss XXI
Révision datée du 14 février 2006 à 19:31 par imported>SylvainBeucler (Greylisting, concepts généraux)
Sauter à la navigation Sauter à la recherche

Principes et problèmes du SPAM

Le mail circule via Internet via le protocole protocole SMTP et en se basant sur IP et DNS.

Le problème: il n'y a aucune identification, et envoyer du courriel et pour ainsi dire gratuit, par conséquent toute boîte au lettre peut être remplie de spam par n'importe qui, sans la contrainte de coût du courrier postal.

Depuis plusieurs années, à mesure que ce phénomène gagne en puissance, diverses solutions ont été mises en oeuvre. Pour résumé aucune ne fonctionne vraiment bien, et aucune n'est réellement sans douleur.

On cherchera, au passage, des solutions qui permettront de filtrer à cause quasi-sûr un spam, de manière à réaliser ce filtrage en amont, épargnant cette peine à l'utilisateur de notre service de courriel, et d'autre part afin d'éviter de devoir vérifier ce filtrage manuellement, au cas où le filtre aurait filtré un bon message ("false-positive").

On gardera enfin à l'esprit tous les types d'utilisation de SMTP, notamment les listes de diffusion qui sont parfois jugées incompatibles avec les solutions proposées.


Principes de combat

L'évolution du spam au cours des dernières année fait penser à la lutte contre la grippe: chaque année on crée de nouveau remède pour l'éradiquer, et chaque année une nouvelle forme plus résistante fait son apparition. Plus on la combat sévèrement, plus la forme suivante sera résistante.

Dans ces conditions deux solutions sont envisigeables:

  • accepter la fatalité de l'existence du problème, et ne lutter qu'à un niveau minimum
  • être sûr de détruire complètement toute souche de l'espèce

Individuellement les solutions contre le spam tendent à vouloir définitement régler le problème du spam. Soit elles n'y parviennent que partiellement (et les spammers d'adaptent), soit elles filtrent des courriels légitimes en quantité non-négligeable, soit elles proposent des solutions qui à long terme éradiquent non seulement les spammeurs mais également un certains nombre de libertés aux particuliers et/ou aux PME/PMI - sans nécessairement garantir la fin de la publicité dite "légale".

Cependant certaines solutions peuvent être intégrées à un système de "score" tel que SpamAssassin. À la place d'éradiquer de nombreux messages légitimes, la solution fournit une heuristique qui combinées avec d'autres méthodes tendent à cerner relativement précisemment le SPAM, sans garantie toutefois.


Les bases

La FAQ de Hashcash est bien faite et aborde les points du point de vue d'un utilisateur soucieux de sa boîte aux lettres mais aussi de ses libertés.

Listes noires

La solution qui vient rapidement à l'esprit est de mettre des IPs sur liste noire. Le principal défaut de cette solution, outre le fait qu'une adresse IP peut être falsifiée ("man in the middle"), est d'estimer que toutes les IPs sont fixes. Je ne serais pas surpris si la majorité des IPs étaient plutôt dynamiques. Utiliser une adresse IP comme vecteur d'authentication est une erreur qu'on ne fait logiquement plus depuis les klines IRC.

Cela occasionne plusieurs inconvénients:

- le listage d'adresses IP dynamiques, donc un emplacement plutôt que l'expéditeur à proprement parler, interdisant aux particuliers d'utiliser leur propre serveur SMTP. Le fait qu'il s'agisse d'une pratique effectivement peu répandue 1) n'en est pas moins intéressant 2) n'est pas répandu partiellement à cause de telles politiques.

- le listage d'adresses IP est souvent erroné et long à rectifier

- une adresse IP peut représenter plusieurs personnes (adresse IP dynamique), mais une personne peut également être représentée par plusieurs adresses IP: répartition de charge.

Authentification

SMTP est un protocole sans authentification - une approche est donc de corriger ce "défaut". Le courriel peut donc être identifié à l'aide des solutions suivantes, mais l'identification d'une base d'utilisateur de potentiellement 8 milliards d'individus * une infinité de boîtes aux lettres par personnes ne permet pas directement d'affirmer quoi que ce soit sur le contenu du message. On notera enfin qu'une entreprise utilisera en général la même adresse pour communiquer à ses clients à la fois des informations cruciales (notification d'un service arrivant à expiration, mots de passe...) et du spam (publicités en tout genre).

Ces méthodes sont appuyées par de grande entreprise qui cherchent plus à éradiquer le spam illégal que le spam tout court. Il n'y a pas, à proprement parler, de spam légal: aucune personne sensée ne souhaite recevoir du spam (ou de la publicité, ou de l'information client, qu'importe le nom que l'on lui donne), et un spam reste un spam quels que soient son origine et son mode de transmission.

SPF

SPF propose une idée intéressante d'authentifier toujours au niveau IP mais en passant par un champ DNS qui indique quels noms de machine peuvent envoyer le courriel d'un domaine donné. Cela permet a priori les serveurs SMTP des particuliers, pourvu d'utiliser un service de DNS dynamiques.

Ceci permet dans un premier temps non pas de savoir si un message est ou non du spam, mais de détecter s'il a été envoyé par le possesseur du domaine. On peut donc automatiquement, avec un faible temps de traitement, éliminer tous les messages forged / falsifié d'un domaine utilisant SPF.

Les spammers peuvent eux aussi utiliser SPF. Si tout le monde est sous SPF, alors on est logiquement sûr de la provenance de chaque message, mais en aucun cas de sa teneur spam/non-spam. Les ennuis commencent ici: la base SPF donnerait naissance à un groupe de domaines "reconnus", et les nouveaux arrivants seraient suspectés d'être des spammeurs par défaut, devant alors négocier l'acceptation de leur courrier soit par l'age de leur domaine, soit en payant un des membres du groupe qu'il lui apporte son soutien.

La composition de ce groupe initial est critique; les suggestions incluent par exemple les entreprise Fortune 2000, et les exemples données impliquent souvent amazon.com ou aol.com - ce qui est discutable, ces entreprises envoyant certainement plus de messages de publicité que l'ensemble des sites persos de l'Internet.

Cette organisation élèverait également la barrière d'entrée pour les entreprises nouvelles sur Internet.

La FAQ du site mentionne fièrement que le système de mail passe d'une présomption d'innocence à une présomption de culpabilité, ce qui devrait suffire pour rendre l'approche questionnable.


SPF n'est pas nécessairement mauvais en soi (mettre fin aux courriels anonymes), mais le futur qu'il nous laisse entrevoir n'est pas nécessairement enviable au présent.


Graylisting

Il s'agit apparemment d'un principe général étudiant les différence entre les méthodes d'envoi des spammeurs et celles des utilisateurs légitimes.

Une proposition en particulier semble attirer l'attention et s'appuie sur le fait que les spammeurs n'envoie souvent un courriel qu'une seule fois, même si le serveur distant demande de réessayer plus tard. La technique est donc de mémoriser (adresse IP + adresse d'envoi (à vérifier)) et de n'accepter un envoi qu'au bout de N connexions ou N secondes/minutes/heures.

Et si les spammeurs s'adaptent? Cela leur coûtera plus cher, d'une part, et surtout on disposera d'un délai appréciable avant l'acceptation du mail, permettant de mettre


Des personnes enthousiasmes parlent de résultats miraculeux. Cependant ce filtrage s'effectue avant le transfert du message proprement dit. Il n'est pas possible de tester son efficacité. Le système peut être tourné en dérision: rejeter tous les mails sans exception sera également miraculeux, car aucun spam ne sera délivré - mais on ne sait effectivement pas combien de mails légitimes ont été ainsi manqués.

D'autres personnes critiquent l'utilisation d'un code d'erreur (demandant de réessayer plus tard) pour un autre but que celui spécifié dans le protocole.


En pratique, on lit que certains logiciels (certaines version de Lotus Notes par exemple) ne gère par ce code correctement et considère l'échec d'envoi comme définitif. D'autres services utilisent de la répartition de charge et ne présentent pas toujours la même adresse IP d'origine, même s'il s'agit qu'envoyer le même e-mail.

La solution présentée pour ce 'bug' est nettement plus discutable puisqu'elle fait intervenir une liste blanche contenant par exemple les serveur de Yahoo. Il n'y a pas vraiment de raison de faire ainsi confiance aux utilisateurs d'un ISP, ni à l'ISP lui même. D'un autre côté, on peut être à peu près sûr que ces adresses IP ne seront pas utilisées pour envoyer du courriel via mass-mailing - sauf IP spoofing.


L'avis en cours de Sylvain est que cette technique, un peu trop manichéenne à son goût, pourrait peut-être s'avérer utile à son niveau le plus simple, disons accepter au 2e essai, et sans liste blanche.


Filtres Bayesien naïfs

Liens

Des systèmes:

Des black lists:

Des sites à éventuellement regarder:

Masquage minimal de son adresse e-mail:

perl -e '$a = "your\@email.tld"; $a =~ s/(.)/"&#".ord($1).";"/eg; print "$a\n";'