vignette|un message de spam La lutte antipourriel (anti-spam ou anti-spamming, ou antipollupostage) est un ensemble de comportements, de systèmes et de moyens techniques et juridiques permettant de combattre le pourriel (ou « spam », courriers électroniques publicitaires non sollicités).

L'intérêt de la lutte anti-spam

Rester anonyme Pour éviter de recevoir du spam, les internautes font souvent figurer leurs adresses email d'une manière masquée lorsqu'elle doit apparaitre dans un site web ou dans Usenet. Par exemple : [email protected] pour [email protected]. jean chez exemple point fr pour [email protected] jean[at]exemple.fr pour [email protected] (l'arobase se prononçant en anglais).

Mais cette méthode est aussi déconseillée car rien n'interdit au spammeur de faire un traitement d'enlèvement des drapeaux les plus communs (NOSPAM, AT, chez etc.).

Une autre méthode consiste à encoder son adresse avec un algorithme quelconque (par exemple, remplacer chaque lettre par la suivante dans l'alphabet), et d'insérer dans la page une fonction javascript qui décode. Ainsi rien ne change pour l'internaute qui peut toujours cliquer sur le lien « envoyer un mail », mais l'adresse n'apparaît pas en clair dans la page. Jusqu'ici, les arroseurs n'exécutent pas le code javascript avant de chercher les adresses (trop long, plus complexe, etc.).

Une autre méthode consiste à encoder son adresse en caractères hexadécimaux par exemple : &X02&X36... Cela ne sera pas détectable par les robots qui parcourent les pages web parce que la plupart n'ont pas de moteur de rendu (interprétation du code source comme un navigateur web : internet explorer, firefox), ils lisent juste des caractères alphanumériques sans les détecter en tant qu'adresse email. Il est par exemple possible de faire cela avec du JavaScript exécuté dans le navigateur (Système hexadécimal, Base64, etc.), ou bien directement en PHP qui est exécuté côté serveur.

Enfin, on peut choisir de communiquer son adresse par une image, ainsi on ne pourra pas la récupérer par un robot. Pourvu que cette image soit étirée et maquillée afin qu'un logiciel de reconnaissance de caractères (OCR) ne puisse reconstituer votre adresse (sur le même principe qu'un captcha). Cette dernière méthode est considérée comme la plus sûre, bien qu'elle ait pour inconvénient majeur de la rendre très difficile à lire pour des personnes ayant un handicap visuel.

La méthode la plus sûre est sans doute de ne pas divulguer son adresse personnelle sur le Net, lieu public par excellence, mais de la communiquer seulement à vos amis et à vos proches, ou bien encore d'utiliser un formulaire de contact sécurisé. Et encore, certaines applications populaires utilisées par vos correspondants accèdent à leur carnet de contact et récoltent les adresses pour vous démarcher ou les partager à des partenaires. De plus, les serveurs des plateformes (messagerie, réseaux sociaux, etc.) peuvent parfois être hackés (voir la ).

Avoir un système à jour Les spammeurs font en outre preuve d'ingéniosité lorsqu'il s'agit de trouver de nouvelles techniques de spam, et de déjouer les systèmes anti-spams existants. En fait, les spammeurs et leurs adversaires rivalisent d'astuce pour déjouer les techniques de l'autre partie, d'où l'importance de garder son système de protection à jour : plus souvent le système est mis à jour, plus il est efficace, et le nombre de faux-négatifs s'en trouve diminué. Pour centraliser cette démarche, certains systèmes d'exploitation et suites logicielles de sécurité intègrent une gestion des mises à jour de la plupart des logiciels présents sur la machine. Dans le cas contraire, il est recommandé d'installer un gestionnaire de paquets ou un magasin d'applications, tels que WAPT ou F-Droid.

Plusieurs techniques de lutte contre le spam sont possibles et peuvent être cumulées : filtrage par mots-clés ou par auteur, analyse statistique (méthode bayésienne), listes blanches (désignation de personnes ou de machines autorisées à publier dans certains lieux), listes noires (désignation de personnes ou de machines auxquelles il est interdit de publier dans certains lieux), interrogation en temps réel de serveurs spécialisés dans la lutte contre le spam.

Ces techniques de lutte doivent s'adapter en permanence, à la manière des logiciels antivirus, car de nouveaux types de spams apparaissent continuellement et réussissent à contourner ces défenses.

Méthodes d'analyse et de filtrage à la réception Bien que souvent différentes en matière d'utilisation, d'implantation et de coût, les solutions de lutte anti-spam par filtrage utilisent sensiblement les mêmes techniques pour distinguer le spam du courrier légitime. Ces techniques peuvent être mises en œuvre soit au niveau des fournisseurs de service Internet qui protègent leur messagerie, soit au niveau des utilisateurs par des outils appropriés (filtres anti-spams). Le filtre est souvent implanté au niveau du MTA (Mail Transfer Agent) récepteur du courriel.

Ces techniques peuvent être préventives (marquage du courrier pour indiquer qu'il s'agit de courriers indésirables) ou curatives (blocage, voire renvoi des messages incriminés vers l'expéditeur). Cette dernière comporte des inconvénients puisque le destinataire doit pouvoir être maître des courriers qu'il souhaite recevoir. De plus renvoyer un message peut aggraver la situation en occupant un peu plus le réseau, avec de fortes probabilités que l'auteur du spam ait maquillé sa véritable adresse ou utilisé l'adresse d'un tiers (tout à fait innocent) comme adresse de retour. De plus, cette façon de faire indique au spammeur que l'adresse visée est bien active, ce qui augmente bien souvent les envois.

Ces outils peuvent être divisés en deux groupes : le filtrage d'enveloppe, et le filtrage de contenu. L'en-tête du courriel constitue les informations de base de ce dernier : expéditeur, destinataire, copie conforme, copie conforme invisible, date d'envoi, serveur source, sujet. Le contenu du message est le message en tant que tel : texte, images, code HTML, etc.

Filtrage d'enveloppe Ce type de filtrage s'applique uniquement à l'enveloppe du message, qui contient souvent assez d'informations pour pouvoir distinguer un spam. Il ne s'attache pas au contenu du courriel.

Cette technique présente l'avantage de pouvoir bloquer les courriels avant même que leur corps ne soit envoyé, ce qui diminue grandement le trafic sur la passerelle SMTP (puisque le corps du message est envoyé après que l'en-tête a été reçu et accepté). De plus, le taux de faux positifs dans ce type de filtrage est quasiment nul : lorsqu'un filtre d'enveloppe a identifié un courriel comme du spam, il se trompe rarement.

Filtrage de contenu Les filtres de contenu analysent le contenu des messages et détectent les spams qui ont réussi à passer à travers le filtre d'enveloppe. Le filtrage de contenu est un peu plus sensible que le filtre d'enveloppe : après tout, les informations véhiculées à travers le message sont subjectives, et ce qui peut paraître un spam selon le filtre de contenu peut être un courriel tout à fait légitime (typiquement, un médecin urologue pourra considérer comme souhaitable un message à propos de médicaments contre l'impuissance sexuelle masculine ; c'est ce que l'on appelle un faux positif), et l'inverse est aussi vrai (faux-négatif). Le filtrage de contenu peut se développer en plusieurs couches. Par exemple, le filtre peut faire appel à un logiciel antivirus, à un désarchiveur pour analyser les fichiers archivés s'il y a lieu, à un analyseur bayésien (voir plus bas), et ainsi de suite.

Exemples de filtre de contenu : SpamAssassin, j-chkmail.

Au-delà de ces deux grandes catégories, il est possible d’affiner en techniques spécifiques.

Intégrité SMTP Les courriels transitant grâce au protocole SMTP, une grande quantité de normes ont été définies pour ce protocole (RFC5321), que les spammeurs omettent souvent de respecter. Par exemple, le nom serveur qui envoie le courriel doit être, préférablement, pleinement qualifié (FQDN) (exemple : mail.domaine.com), règle que les spammeurs ne suivent pas toujours. De même, certains spammeurs usurpent le serveur d'envoi en faisant croire au filtre que le message vient d'un serveur connu (127.0.0.1, par exemple). Un bon filtre est capable de détecter ces usurpations. Autre exemple : certains spams n'émettent pas de bannière de présentation (HELO), ce qui est pourtant exigé dans les normes SMTP. Ces tests sont laissés à la discrétion du filtre et de l'administrateur système, qui décide quelles sont les règles pertinentes pour son serveur de messagerie. Les règles d'intégrité SMTP sont souvent très efficaces, car, pour les spammeurs, elles agissent comme inhibiteurs de performance (elles ralentissent les envois). Or, un spammeur a intérêt à être le plus performant possible et il peut être très payant pour lui de passer outre à ces règles.

Filtrage bayésien

Le filtrage bayésien du spam (du mathématicien Thomas Bayes) est un système fondé sur l'apprentissage d'une grande quantité de spams et courriels légitimes afin de déterminer si un courriel est légitime ou non. Afin de bien fonctionner, le corpus de spam et le corpus de ham (courriels légitimes) doivent contenir idéalement plusieurs milliers de « spécimens ».

Le message à identifier est découpé en morceaux (souvent réduits à de simples mots) qui sont comparés à tout le corpus de courriels (spams ou non), pour déterminer la fréquence des différents morceaux dans les deux catégories. Une formule probabiliste est utilisée afin de calculer la probabilité que le message soit un spam ou non. Lorsque la probabilité est suffisamment élevée, le système bayésien catégorise le message comme du spam. Sinon, il le laisse passer. Le seuil de probabilité peut être défini par l'administrateur système : il s'agit de trouver le seuil le plus efficace.

La méthode bayésienne sert également à d'autres classifications automatiques du courrier, en particulier dans Lotus Notes.

Filtrage par mots-clés ou adresses Cette méthode est très limitée car elle se base sur le rejet ou le tri du courrier en fonction de règles de vocabulaire préalablement établies, définissant des mots comme interdits. Certains mots-clés revenant souvent dans les spams, tels que « sexe », « viagra » ou « money » pourront servir de base pour la constitution de ces règles. De même on pourra décider de bloquer tous les messages en provenance d'un expéditeur précis, d'un domaine spécifique, voire d'un pays entier.

Cette méthode engendre de forts taux d'erreur et s'avère peu efficace lorsque les spammeurs maquillent les mots utilisés (« vi@gr@ », « s3x », etc.). Elle redevient plus pertinente si elle utilise des expressions rationnelles.

Filtrage par expressions rationnelles Une expression rationnelle (appelée souvent « expression régulière » en informatique) est un motif que l'on peut appliquer à une chaîne de caractères afin de voir si ladite chaîne correspond au motif (par exemple : un chiffre suivi de trois lettres suivi d'un d'espace, puis d'un chiffre pourrait s'écrire de cette manière : /^[0-9]{1}[A-Za-z]{3} [0-9]{1}$/). En utilisant des expressions rationnelles afin de trouver des variations de mots « sensibles », on augmente les chances de découvrir des spams. Par exemple, si un spammeur tente de déjouer un filtre de mots-clés en utilisant le mot « viiaaagraa », l'expression rationnelle /^vi+a+gra+$/i (un « v » suivi d'un ou plusieurs « i » suivi d'un ou plusieurs « a », suivi d'un « g », d'un « r », et de un ou plusieurs « a », sans se soucier de la casse) permet de retrouver le mot. Évidemment, cet exemple est très simple, mais les expressions rationnelles complexes permettent de détecter des expressions et des déclinaisons beaucoup plus subtiles et sophistiquées.

Une limite de l'utilisation d'expressions rationnelles est illustré dans le problème de Scunthorpe, qui produit des faux positifs.