Obligement - L'Amiga au maximum

Dimanche 19 novembre 2017 - 20:41  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Les spams
(Article écrit par Arnaud Danassié - décembre 2003)


Spam Wars - Episode I

Si vous avez une adresse électronique depuis plus de 15 jours, vous avez forcément tous reçu au minimum des dizaines (voire des centaines) de ces messages bidons vous proposant de visiter des sites pornos, acheter du viagra ou des médicaments génériques, un bon plan avec le Nigéria, régime bidon, acheter un logiciel antispam, des faux diplômes, des faux papiers, devenir riche (vente pyramidale), etc. en spammant vos (ex) amis ou les millions de pauvres internautes qui ne vous ont jamais rien demandé ;-(. Bref, rien de neuf sous le soleil au point de vue contenu : on y retrouve les mêmes canulars, chaînes bidons et autres arnaques que dans le bon vieux courrier papier...

L'objet de cet article sera bien sûr de comprendre le phénomène qui augmente fortement depuis le milieu des années 1990 et lutter contre cette pourriture envahissant insidieusement nos boîtes aux lettres et consommant une part de plus en plus importante de la bande passante (certaines études parlent de 30% de la bande passante d'Internet évaporée pour le spam et les virus à neuneus genre Blaster, Sobig, etc.) de la toile que nos FAI nous refacturent. ;-(

Un peu d'histoire...

On s'accorde généralement à dater le premier spam de mai 1978 (la guerre antispam a donc déjà 25 ans !) : un commercial de DEC avait eu l'idée (géniale) d'envoyer un courriel à tous les utilisateurs d'Arpanet (pas encore connu sous le nom d'Internet) de la côte ouest des États-Unis pour annoncer deux réunions de présentation du DEC 2020... Le spam était né. ;-(

Le terme spam en lui-même est venu beaucoup plus tard via les nouvelles d'usenet avant de passer très rapidement dans le langage courant. Le SPAM est un acronyme pour Spiced Pork And Meat (pâté épicé à base de porc et de viandes genre boîte de corned-beef) et c'est surtout une marque (anglo-saxonne) déposée de Hormel Foods pour son pâté épicé en boîte (6 milliards de boîtes vendues depuis 1937 !) : par extension, spam est donc généralement assimilé à un truc peu ragoutant ou de piètre qualité.

Spambox
Boîte de spams

C'est en fait un sketch délirant des Monty Python (épisode 25 de la 2e saison du Monty Python's Flying Circus diffusé pour la première fois en décembre 1970) qui est à l'origine du terme spam pour désigner les courriers publicitaires non désirés (comprendre abusifs) : on y voit notamment les Monty Python (les Robins des Bois de l'époque) installés dans un café et déguisés en Vikings amateurs de spam et chantant une chanson à rallonge dont les paroles sont "Spam spam spam spam, spam spam spam spam, spam spam spam spam...". Je vous renvoie à l'url suivante pour avoir plus de détails sur ce sketch désopilant : www.halte-spam.com/article.php?id_article=5.

On retrouve aussi parfois le terme UCE (Unsolicited Commercial Email) mais rassurez-vous on parle bien toujours de la même chose, de la m*rde en message (SPAM = Shit As Posing Mail, que l'on peut traduire par merde se faisant passer pour du courrier électronique. ;-)).

Le terme "scam" s'applique, lui, à un petit cousin du spam : l'escroquerie ou la tentative d'escroquerie par courriel. Certains spams (arnaque à la nigériane par exemple) sont des scams mais le site porno par exemple qui vous inonde de courriels de pub offre un produit qui existe (photos cochonnes sur site payant) : il y a donc plusieurs niveaux de gravités dans les spams mais tout cela ne sent pas très bon. ;-)

Le spam c'est rentable ?

Il y aura toujours des gogos et des arnaqueurs, inutile d'espérer le contraire... Le spam devient de semaines en semaines plus gênant et si les spammeurs développent des techniques de plus en plus élaborées pour contourner les différents filtres mis en place pour ralentir ou éliminer la plupart de leurs nuisances, c'est que le pactole est plus que juteux (des millions et des millions de dollars).

Mettons nous deux minutes dans la peau d'un spammeur (dans le rôle d'un vendeur de Viagramiga). Quelques dizaines d'euros (contre des millions d'euros pour l'envoi postal classique), une boîte postale et un compte de courriels (jetable de préférence) suffisent à envoyer un ou deux millions de courriels par exemple : même s'il n'y a que 0,01% de retours positifs pour commander une boîte de Viagramiga, le jeu en vaut la chandelle... et tant pis pour les 99.99% qui se foutent royalement de votre message. Inutile donc de cibler votre envoi du moment que vous arrivez à toucher les gogos intéressés par votre envoi, au contraire de l'envoi papier qui oblige le publicitaire à trier ses envois selon certains critères d'âge, de revenus, etc. vu le coût de revient plus élevé de l'envoi postal classique.

C'est ainsi que vous recevrez indifféremment des courriels en Chinois ou Coréen, de la pub pour des logiciels Windows en allemand alors que vous avez un Amiga ou un Mac, de la pub pour des DVD pornos alors que vous êtes bonne soeur ou pour le dernier CD de la Star Academy ou des L5 alors que vous êtes fan de Rammstein et de U2.

Ces envois en nombre ont un inconvénient majeur toutefois : ils spamment des FAI, des policiers, des administrateurs réseaux, administrations, hackers et autres geeks qui ne sont pas tous des hippies barbus "peace et love" qui effacent tranquillement leur pourriture comme l'utilisateur lambda qui peste contre cette "pub de merde". Certains disposent de moyens, d'outils pour remonter leurs traces (sur le Net, même en camouflant ses traces, il reste quasiment toujours des indices) et riposter en clôturant les "vrais" comptes de courriels et accès, gelant les comptes en banque ou les attaquant en justice.

La chasse au spammeurs est un sport de plus en plus populaire, surtout qu'une partie des méchants se contente d'utiliser des outils de piètre qualité (aspirateurs d'adresses électroniques, etc.) faciles à traquer et à logger.

Certains spammeurs célèbres ont toutefois gagné assez d'argent pour monter leur propre FAI : inutile de vous dire qu'ils sont morts de rire de recevoir des plaintes sur l'adresse abuse@toto.com ou postmaster@toto.com alors que c'est eux qui hébergent et possèdent toto.com qui vous inonde de spam. Mieux, votre courriel de protestation sert à leur confirmer que votre courriel est valide et donc un peu plus de valeur dans leurs fichiers ;-(.

Heureusement, de plus en plus souvent, les gros spammeurs sont aussi pourchassés et punis par les associations de lutte contre le spam puisque la plupart des spammeurs exploitent toutes les failles et flous juridiques possibles (question bonus : selon quelles lois, s'il en existent, juger un spammeur américain qui utilise un serveur australien pour contrôler un open relay coréen pour spammer des Suisses ou des Français ?) pour soutenir que leur spam est une activité normale et échapper à la justice ;-(.

Je vous recommande d'aller sous Google et de taper "Alan Ralsky" : ce gros spammeur (on parle de 190 serveurs envoyant des spams 24h/24, 365 jours sur 365) se souviendra longtemps de la fin 2002 et d'un simple article publié sur Slashdot.org (référence en fin d'article).

Retenez que le spammeur n'a pas de morale, seul le profit compte, et que les spammés ont parfois la rancune tenace (certains n'hésitent pas à téléphoner à 3 heures du matin dans la maison de campagne du spammeur pourtant sur liste rouge. ;-)

Limiter le spam : précautions élémentaires

Aucune méthode n'est efficace à 100% pour éviter tous les spams, c'est généralement une combinaison de plusieurs précautions élémentaires (avant la collecte de votre adresse électronique) et d'outils de filtrage (après la collecte de votre adresse électronique) qui permet de surfer à peu près tranquillement et de limiter les spams reçus :
  • Utilisez plusieurs adresses électroniques en plus de votre adresse principale que vous réserverez à vos amis, ouvrez une adresse électronique chez Free ou Yahoo par exemple que vous pourrez détruire quand le compte commencera a être spammé.
    Utilisez ces adresses de rechange pour les réglages de votre navigateur préféré, pour remplir les formulaires sur les sites que vous visitez surtout ceux auxquels vous n'accordez qu'une confiance limitée. Les loteries et autres casinos en lignes par exemple sont bien reconnus pour revendre vos coordonnées à tous "leurs partenaires commerciaux", plus généralement décochez systématiquement, suivant les cas, la petite case qui "autorise à communiquer votre adresse à des tiers".

  • Déguisez votre courriel ou utilisez une adresse jetable pour poster dans les nouvelles et autres forums publics. AWeb, par exemple, dispose d'une excellente option de sécurité "antispam" pour camoufler votre courriel quand vous postez sur comp.sys.amiga.hardware par exemple. Certains utilisaient une astuce genre obligement-nospam@free.fr (ou obligement@pas_de_spam_obligement.org pour un domaine obligement.org qui aurait l'option "catch all" activée) pour poster dans les news. L'humain sait faire la différence (surtout si on lui indique dans la signature) et enlever le "-nospam" mais les derniers bots de collecte de courriels savent depuis peu éviter ce genre de pièges grossiers voire pour une poignée convertir bill "at" kro "dot" soft en bill@kro.soft.

  • Si vous avez une page Web, ne laissez pas de lien hypertexte avec un mailto: et votre adresse en clair ! Utilisez plutôt un CGI ou un script PHP par exemple pour vos formulaires avec la méthode POST plus difficile à décrypter pour les bots que la méthode GET. Mieux, il existe des solutions simples pour empoisonner la vie aux bots et pourrir les courriels récoltés (voir quelques références en fin d'article).

  • Quand vous envoyez un message à plusieurs personnes, utilisez le champs BCC: (en français CCI: ou Copie Carbone Invisible) plutôt que de coller tous vos correspondants dans le champs To: (et donc faire apparaître en clair leurs adresses à tous vos correspondants) : c'est assez rare heureusement mais certains petits malins revendent ces adresses (valides) pour quelques euros aux marchands de listes sans scrupules.

  • Ne répondez jamais à un spam, surtout si l'on vous fournit une procédure de désinscription qui ne sert généralement qu'à vérifier que votre adresse est valide et régulièrement consultée par un humain (client potentiel). Les spammeurs peuvent ensuite le revendre plus cher à d'autres spammeurs en prétextant de la fraicheur de leurs listes de courriels.

  • Utilisez plutôt les services de www.abuse.net (pour contacter poliment l'abuse ou le postmaster du domaine concerné qui peut vous aider, abuse AT club-internet.fr par exemple pour les courriels abusifs envoyés via le smtp de Club-Internet) ou soumettez le spam (entête comprise) à Spamcop.net (sous YAM avec le script de Stan paru dans BoingAttack n°19 par exemple ou avec celui de Gérard "Shaman" Cornu).

  • N'achetez jamais les produits proposés dans un spam, tout achat incite le spammeur à multiplier ses envois ! De plus, certains produits n'arrivent jamais et vous pourrez dire adieu à votre argent.
Il existe de nombreux services de lutte contre le spam sur la toile qui nécessitent généralement un simple gestionnaire de courriels ou votre navigateur habituel, vous en retrouverez quelques URL utiles en fin d'article.

Vous retrouverez ces quelques conseils pratiques dans les dernières pages de "la petite encyclopédie du courrier électronique et du SPAM" ou sur www.arobase.org/spam/prevenir.html par exemple.

Spam 2
mailto: et courriels capturés par les robots

Retenez que toutes les méthodes sont bonnes aux spammeurs pour récolter un maximum d'adresses électroniques : robots parcourant la toile, les listes de diffusion et les forums, robots de type renifleurs ou testant toutes les adresses possibles d'un domaine, achats de CD bourrés d'adresses (quelques dollars pour des dizaines de millions d'adresses plus ou moins valides), canulars, fausses chaînes ou pétions n'ayant pour but que de collecter un maximum d'adresses électroniques, vol de cookies ou informations comme les historiques en exploitant des failles d'Internet Explorer sous Windows par exemple.

Les spammeurs s'inspirent des méthodes antispams pour développer leurs outils et inversement les outils antispams s'inspirent de ces derniers. La bataille et les progrès en ce domaine sont donc sans fin. ;-)

Filtrer le spam

Grosso modo, il existe deux sortes de filtres :

1. Des filtres au niveau du serveur de courrier (MTA = Mail Transfert Agent) avec des outils comme Sendmail, Postfix ou Exim qui "rejettent" directement les spams. Généralement les filtres reposent sur des "listes noires en Temps réel" (RBL = Real-Time Black Lists telles que celles d'Ordb.org, Orbl.org ou Spamhaus.org) d'adresses IP de spammeurs connus mises en place par certains FAI ou sites de lutte antispam et de programmes qui vérifient la cohérence des informations contenues dans les entêtes des messages (champs From: To: Received: Reply-to: etc.), bref des solutions peu gourmandes au niveau ressources.

2. Des filtres "à postériori" sur le message reçu via votre gestionnaire de courriel habituel ou des petits outils comme SpamAssasin qui sont parfois très gourmands en mémoire ou en ressources pour pouvoir filtrer les messages.

C'est cette deuxième catégorie qui nous intéressera tout spécialement. Si vous êtes courageux/masochiste et que vous ne recevez pas des centaines de courriels tous les jours, vous pouvez toujours filtrer manuellement les courriels via YAM (ou Telnet, webmail) directement sur le serveur de votre FAI en paramétrant la taille maximum des messages chargés sans requête utilisateur à une faible valeur ou écrire quelques règles simples permettant d'éliminer les indésirables sans les télécharger complètement (en ne chargeant que les 100 premières lignes par exemple et en analysant quelques mots récurrents dans les spams comme "sex", "viagra", "limited time offer" ou "dollars").

Les FAI sérieux installent d'ailleurs des filtres pour limiter le spam (renseignez-vous éventuellement auprès de votre fournisseur d'accès pour savoir comment activer ces filtres) mais au moindre doute, ils préfèrent laisser passer un spam plutôt qu'effacer un message qui vous est destiné. Le doute profitant aux spammeurs, c'est donc à vous, qui êtes en fin de chaîne, d'élaborer des filtres assez précis pour effacer ou mettre en quarantaine le spam sans pour autant effacer vos messages utiles (attention, il arrive d'avoir quelques "faux-positifs" reconnus comme spam par vos filtres).

Bien évidemment il existe des solutions toutes faites pour bloquer ou filtrer ces spams mais malheureusement, encore trop peu sur Amiga mais à part quelques scripts ARexx assez basiques. Un port correct de Bogofilter ou de SpamAssasin en tant qu'extension pour YAM ou Simplemail ne serait pas du luxe. Côté Linux c'est carrément l'abondance, comme sur Windows bien sûr, même si des petits malins vendent souvent 20 ou 30 $ de simples adaptations Windows de script Linux ;-(.

Il y a quelques années (1995-1997), on pouvait encore se contenter de rejeter les spams en tenant des listes noires d'adresses électroniques de spammeurs contenus dans le champs From: de l'entête. Il y a belle lurette que les méchants savent "forger" des adresses truquées ou pire utiliser des adresses d'innocents dans les champs d'entête de courriels : c'est pourquoi ceux qui veulent remonter à la source d'un spam doivent commencer par analyser les champs Received: (de plus certaines lignes Received: sont souvent forgées), ou utiliser des services comme SpamCop par exemple. Les spammeurs ne se gênent pas pour prendre des techniques de pirates pour utiliser des machines mal configurées ou vulnérables (typiquement des serveurs de messagerie mal configurés appelés "open relay" et pourchassés et listés par les "chasseurs de spams" surtout depuis le déploiement des connexions type ADSL).

Le "rasoir de Vipul" (razor.sf.net ou pyzor.sourceforge.net pour sa version python) est une solution de détection distribuée basée sur un travail collaboratif qui permet de passer à la poubelle les trois quarts du spam. A chaque réception d'un message, vous calculez une clé de contrôle (checksum) et la comparez à celles stockées dans une base de données centrale. Si votre clé correspondant à celle d'un spam référencé, vous pouvez classer ce message comme spam et choisir l'option adéquate (effacement, archivage, etc.).

L'idée en elle-même est simple, des comptes de courriels piégés (parfois appelés pots de miels) sont disséminés sur la toile de manière à être référencés par les bots des spammeurs et non par un utilisateur "normal". Chaque envoi de spam étant généralement des envois en très grand nombre, ces comptes "sentinelles" permettent d'identifier rapidement les nouveaux spams. De plus, vous pouvez envoyer vos spams à Razor afin d'améliorer les spams référencés. SpamAssasin, notamment, utilise cette technique dans sa batterie antispam. ;-)

Plusieurs solutions d'outils antispam utilisent des filtres basés sur les expressions régulières (oui les mêmes expressions régulières genre ^((2[A-B])|([0-9]{2}))[0-9]{3}$ que vous utilisez en PHP ou Perl. C'est l'une des raisons pour laquelle le Perl est souvent utilisé pour les scripts antispam, tout comme le Python). Ainsi si vous ne lisez pas le Chinois ou le Coréen, vous pouvez choisir de rejeter tous les courriels contenant des caractères 8 bits (jeux de caractères asiatiques soit environ 25 à 30% des spams) dans leur sujet :

/^Subject:.*[^ -~][^ -~][^ -~][^ -~]/ utilise une expression régulière qui rejettera les courriers dont le sujet comporte plus de 4 caractères consécutifs en dehors de la fourchette ASCII s'étendant de l'espace au tilde (~).

SpamAssassin, par exemple, est un bon logiciel de filtrage écrit en Perl qui utilise quelques règles écrites manuellement (taille du message, champs de l'entête, mots-clés typique du spam comme "sex", etc.) et attribue des mauvais points à chaque adresse au fur et à mesure de l'analyse : à partir d'un certain niveau (seuil de xxx points) le courrier est considéré et marqué en tant que spam. Sa force vient en partie de l'importante communauté qui oeuvre à son maintien et de la multitude des méthodes qu'il utilise : analyse des entêtes, rasoir de vipul, filtre bayesien, etc. Il est très gourmand en ressources mais il est aussi très efficace : plus de 90% des spams y succombent !

Une autre solution très prometteuse actuellement s'appuie sur des statistiques et le fameux théorème de Bayes (voir liens de référence en fin d'article), utilisé dans l'industrie pharmaceutique par exemple. Au contraire de filtres prédéfinis utilisés par des outils comme SpamAssasin et qui donc fonctionnent dès l'installation, chaque utilisateur d'un filtre bayesien (Bogofilter par exemple ou ses homologues sous Windows) doit passer par une phase d'apprentissage en classant méticuleusement quelques centaines/milliers de courriels (pour avoir un échantillon significatif) en courriels désirés et non désirés pour que le filtre (statistique) Bayesien puisse comprendre ("apprendre") ce que vous classez comme spam.

Par la suite, quand la phase d'apprentissage est correctement effectuée, il est encore plus efficace et rapide que des solutions style SpamAssasin puisqu'on atteint des pourcentages de plus de 99% de spams éliminés. Cerise sur le gâteau, il ne génère que peu de "faux-positifs" (courriels inoffensifs classés comme spams) et on peut encore réduire ce nombre en analysant ces derniers pour améliorer le filtre (voir les explications dans l'article de Paul Graham).

Les spammeurs ont bien compris l'utilité de ces filtres et ils parsèment leurs courriels HTML de commentaires genre avec des mots neutres ou de suites de lettres genre qui semblent aléatoires (mais qui servent aussi d'ID pour vous identifier) pour essayer de neutraliser les effets de systèmes filtrants en noyant le spam dans un océan de mots inoffensifs.

Nous étudierons plus en détail quelques exemples de spams HTML et des moyens de se protéger des robots collecteurs d'adresses dans notre prochain article, Spam Wars - Episode II !

Pour conclure, certains sites de services antispam ont récemment dû mettre la clé sous la porte. Pas volontairement. Preuve que les spammeurs n'apprécient pas vraiment qu'on résistent à leurs activités, Spamhaus.org par exemple subit des attaques de type DDOS (Distributed Denial of Service) depuis le mois de juillet 2003. L'analyse des logs a révélé que les attaques proviennent de machines tournant sous Windows et infectées par le (virus) vers Sobig. Spamhaus pense que les spammeurs sont aux commandes de ces machines infectées et sont également à l'origine de la disparition de sites comme Compu.net ou Monkeys.com (voir leur site avec l'excellent cgi Wpoison).

Les robots

Tous les moyens sont bons pour un spammeur pour avoir un maximum d'adresses valides. Aussi certains de ces ignobles individus ont rapidement recyclé des méthodes et outils utilisés par les moteurs de recherche (Google par exemple) pour programmer des scripts ou des robots ("bots" pour les intimes) afin de moissonner sur le Net des dizaines de milliers voire des millions d'adresses bonnes à spammer ou à revendre à d'autres sociétés peu scrupuleuses sur l'origine des sources de collecte.

Bref, si vous commencez à mettre en page quelques pages Web et vous voulez compliquer au maximum la vie de ces robots (renifleurs, aspirateurs d'adresses...) vous trouverez ci-dessous quelques conseils qui pourront vous être utiles. Ne les confondez pas avec les bots des moteurs de recherche qui sont généralement civilisés et respectent un minimum les indications des fichiers robots.txt par exemple (voir le lien en référence pour plus d'informations). Leur seul but est de collecter un maximum d'adresses électroniques en parcourant page après page les sites Web pour relever les balises "mailto:" contenues dans les liens et tout ce qui ressemble de près ou de loin à une adresse électronique (de la forme email@domaine.suffixe) en examinant notamment les informations textuelles (METAs, ALT des balises IMG, contenu texte des tables, etc.). N'ayez donc aucun scrupule à blinder un minimum votre site Web contre ces "vampires". ;-)

Les mailto:

N'utilisez absolument aucun "mailto:email@domaine.suffixe" dans vos liens (ou formulaires) de type
<a href="mailto:toto@example.com">toto@example.com</A>
ou encore
<FORM METHOD="POST" ACTION="mailto:toto@example.com">
...
</FORM>
Le mailto: une mauvaise habitude !

La balise mailto: était une très bonne idée à l'origine mais elle a été rapidement détournée de son usage notamment à cause des scripts de collecte automatique d'adresses. Si vous avez un très bon filtre antispam ou du temps à perdre à effacer manuellement les courriels inopportuns à chaque fois que vous relevez vos courriels vous pouvez mettre en clair votre adresse électronique (la plupart des sociétés commerciales par exemple sont bien obligées de mettre une adresse électronique de contact mais généralement elles prennent leurs dispositions pour filtrer les visiteurs indésirables).

Certains utilisent donc des comptes de courriels jetables (genre comptes secondaires Free, Yahoo, Club-Internet, etc. facilement remplacables dès qu'ils sont spammés) mais cela oblige à une certaine gymnastique (ouvertures et clôtures de comptes) qui en rebutera rapidement certains. Des sites comme Spamgourmet.com (je cite celui-là car il est traduit en français mais il existe plusieurs autres du même style) vous proposent un service de courriels jetables : en fait ce sont des alias de votre compte de courriel véritable mais qui sont valides pour 1, 2 ou n courriels (vous fixez sa période de validé à "n" courriels) avant de s'autodétruire (le spammeur qui aura collecté votre adresse ne pourra pas l'utiliser mais revers de la médaille, la personne qui voudrait vous joindre une n+1e ou n+2e fois sans avoir votre véritable adresse devra repasser par votre site Web pour avoir votre adresse actuellement valide sinon elle risque d'envoyer un courriel sur une adresse périmée).

Un bon test pour vérifier si votre adresse est facilement "aspirable" consiste à utiliser le moteur de recherche www.google.fr et faire une simple recherche avec votre adresse électronique en argument (toto@example.com dans le reste de notre article).

Les brosses

La manière la plus simple de camoufler vos adresses électroniques aux yeux des robots trop curieux est de générer une petite brosse reprenant votre adresse sous une forme plus ou moins travaillée : en effet, à l'heure ou j'écris ces quelques lignes, quasiment aucun bot ne charge (et encore moins interprète via un programme d'OCR) les images PNG/GIF/JPG et la plupart s'attaquent en priorité aux données textes (HTML ou autre) plus faciles à travailler...

Quelques secondes sous votre programme de dessin habituel (FxPaint, Personal Paint ou autre Photoshop si vous travaillez sous l'OS de la pomme ou des fenêtres) suffisent donc à vous générer une brosse PNG par exemple. Les quelques exemples ci-dessous ont pour leur part été générés avec une ou deux lignes de REBOL (voir lien en référence pour les personnes intéressées par le source) :

1er exemple de brosse d'adresse électronique

2e exemple...

Une brosse avec un fond dégradé et des caractères de largeurs et hauteurs différentes sera bien évidemment plus compliquée à décrypter par un "bot" qu'une brosse deux couleurs bien contrastées que certains outils de petits malins savent déjà interpréter (à titre d'anecdote Yahoo mail utilise un système de brosses dynamiques pour compliquer la vie des scripts qui ouvrent automatiquement des tas d'adresses électroniques pour spammer notamment mais ils ont dû complexifier leurs brosses (polices déformées, fonds variés, etc.) car certaines personnes (au MIT notamment) avaient déjà trouvé des parades en utilisant un système de reconnaissance de caractères adapté).

Cette solution présente hélas un inconvénient de taille : les utilisateurs qui surfent sans afficher les images (des utilisateurs de Lynx aux Geeks en passant par certaines personnes handicapées visuelles ne peuvent voir ou entendre votre courriel !). Ne mettez surtout pas votre adresse dans le marqueur "ALT" même sous la forme d'un ALT="Écrivez-moi à l'adresse toto at example dot com" (on lit couramment l'adresse toto@example.com sous la forme de toto "at" (chez) example "dot" (point) com soit "toto chez example point com" ou example.com est le nom de domaine).
Il serait plus judicieux d'utiliser un marqueur "ALT" du style ALT="Chargez cette image pour obtenir mon adresse électronique".

Utiliser des entités HTML

Un truc très souvent utilisé consiste simplement à remplacer le symbole @ d'une adresse par sa correspondance HTML &#064; mais bien évidemment 95% des bots savent convertir à la volée les entités HTML en caractères "normaux" donc cette bidouille est quasiment inutile (s'il est utilisé seul) pour les égarer.

Ainsi avec une adresse électronique bidon toto@example.com cela donne la notation HTML toto&#064;example.com ce qui affiche toto@example.com.

De la même façon il est inutile d'utiliser la notation (adresse électronique exprimée entièrement en entités HTML) &#116; &#111; &#116; &#111; &#64; &#101; &#120; &#97; &#109; &#112; &#108; &#101; &#46; &#99; &#111; &#109; ou encore une variante (mix d'entités HTML et de caractères normaux comme x ou ".") &#116; ot &#111; &#64; &#101; x &#97; &#109; p &#108; e. &#99; &#111; &#109; pour écrire toto@example.com dans vos pages HTML.

Ainsi les quatre exemples suivants s'affichent à l'identique dans un navigateur mais ne tromperont que peu de bots (affichez le source HTML de cet article pour les détails ;-(.
  • toto@example.com
  • toto@example.com
  • toto@example.com
  • toto@example.com
La bonne vieille méthode "descriptive à la usenet"

L'idée de base est simple et reste très utilisée dans les groupes de discussion (terrain de chasse très parcouru par les bots depuis des années) : communiquer la bonne adresse sans utiliser le format classique nom@domaine.suffixe par des trucs dont certains sont maintenant bien connus et utilisés par les bots. En voici quelques variantes avec notre adresse toto@example.com :

toto "at" example "dot" com
toto at example.com
toto at example dot com
toto chez example point com
toto@nospam.example.com (enlevez le nospam pour m'écrire)
toto-no@spam.example.com (enlevez le nospam pour m'écrire)

Toutes ces notations sont maintenant couramment contournées par les scripts les moins basiques... Par contre, les notaions qui suivent sont encore relativement efficaces :

toto@exampleAMIGARULEZ.com (enlevez AMIGARULEZ pour m'écrire)
toto@rougeexample.com (enlevez la couleur pour m'écrire)
toto@examplemouton.com (enlevez Edmond le ... pour m'écrire)
toto@XZQYFJKLMWZXexample.com (ôtez les lettres XZQYFJKLMWZX et la lumière jaillira)

Soyez créatif et vous aurez plus de chance de passer entre les mailles du filet. A noter qu'il vaut mieux vérifier que le domaine examplemouton.com ou XZQYFJKLMWZXexample.com n'existe pas !

JavaScript (ECMAScript) rules !

Une autre solution est d'utiliser un JavaScript pour générer le "mailto:" avec l'adresse voulue à la volée (voir exemple ci-dessous). Cette solution présente hélas l'inconvénient de ne pas fonctionner sur tous les navigateurs (gestion JavaScript désactivée, etc.) mais elle est très efficace.

<script language="javascript">
<!-- 
var chien = "com";
var lapin = "toto";
var chat = "@example";
var cheval = "mail" + "to:" + lapin + chat + "." + chien;
document.write("<form>");
document.write("<input type=\"submit\" value=\"Envoyez moi un courriel\" ");
document.write("onclick=\"parent.location=cheval\"> ");
document.write("</form>");
// -->
</script>

Ce qui nous génère donc un bouton de formulaire classique "Envoyez moi un courriel" :


Vous noterez qu'on utilise ici des noms de variables fantaisistes (chien, chat, cheval, etc.) et qui n'ont aucun rapport avec leur contenu... Si tout le monde appelait "email" sa variable contenant l'adresse électronique cible, on faciliterait trop le travail des "méchants" qui n'auraient plus qu'à analyser les fichiers visités pour débusquer nos précieuses adresses.

Tous les JavaScripts utilisent des astuces plus ou moins complexes pour crypter l'adresse électronique de la personne à protéger : pour ma part, je donnerais un "JavaScript d'or" à l'excellent script "EMail protector" de Jim Tucek dont vous trouverez le lien en fin d'article. Il a reçu un jour un spam pour vanter les mérites d'un outil antispam (il faut vraiment être crédule pour répondre à une proposition commerciale pour acheter un outil antispam envoyée via un spam !) et il a tout simplement développé un script qui utilise deux nombres premiers pour générer un mailto: avec votre adresse cryptée en RSA (10 bits) et qui sont décodés via un excellent JavaScript.

Le mailto: vers toto@example.com devient donc un appel vers la fonction JavaScript de décryptage du genre :
<a href='javascript:bid("165 555 165 555 11 233 404 526 523 519 90 233 145 511 555
523 195 210 376 224 501 233 511 165 150 464 210 210 526 364",703,389)'>Me contacter</A>

La fonction de décryptage en elle-même doit être insérée dans l'entête de votre page HTML (entre les deux balises <head> et </head> donc juste avant la balise <body> qui commence la description de la page en elle-même) :

<SCRIPT LANGUAGE='JAVASCRIPT'>
// <!-- 1863645430
// This script is (C) Copyright 2002 Jim Tucek
// Leave these comments alone!  For more info, visit
// www.jracademy.com/~jtucek/ 

function bid(alchemy,animal,approval) {
alchemy += ' ';
var camera = alchemy.length;
var punishment = 0;
var center = '';
for(var custom = 0; custom < camera; custom++) {
punishment = 0;
while(alchemy.charCodeAt(custom) != 32) {
punishment = punishment * 10;
punishment = punishment + alchemy.charCodeAt(custom)-48;
custom++;
}
center += String.fromCharCode(mistake(punishment,animal,approval));
}
parent.location = 'm'+'a'+'i'+'l'+'t'+'o'+':'+center;
}

function leave(square,structure,farm) {
square += ' ';
var furnace = square.length;
var image = 0;
for(var incredulity = 0; incredulity < furnace; incredulity++) {
image = 0;
while(square.charCodeAt(incredulity) != 32) {
image = image * 10;
image = image + square.charCodeAt(incredulity)-48;
incredulity++;
}
document.write('&');
document.write('#');
document.write(mistake(image,structure,farm));
}
}

function mistake(hieroglyphic,lip,book) {
if (book % 2 == 0) {
moon = 1;
for(var butterfly = 1; butterfly <= book/2; butterfly++) {
way = (hieroglyphic*hieroglyphic) % lip;
moon = (way*moon) % lip;
}
} else {
moon = hieroglyphic;
for(var mortality = 1; mortality <= book/2; mortality++) {
way = (hieroglyphic*hieroglyphic) % lip;
moon = (way*moon) % lip;
}
}
return moon;
}
// -->
</SCRIPT>

Rendez-vous sur la page www.jracademy.com/~jtucek/email/download.html pour une petite démonstration (notez au passage que les noms des variables et fonctions utilisés par son script (ici bid, alchemy, custom, caméra, mistake, mortality, hieroglyphic, etc.) sont aléatoires ce qui évite aux petits malins de repérer trop facilement les pages utilisant son script). A première vue, ce script fonctionne très bien sous Voyager et IBrowse (ainsi qu'IE, Opéra, Netscape/Mozilla, Safari/Konqueror, etc.) mais AWeb sèche dessus apparemment (gestion incomplète de certaines fonctions ecma/JavaScript).

Webmestre : au tableau !

Il y a quelques années, certains ont aussi eu l'idée de décomposer l'adresse électronique affichée en plusieurs parties dans une table simple du genre (avec border=0 mais ici je le fixe à 3 pour afficher un encadré).

<table border=3>
  <tr>
    <td>toto</td>
    <td>@</td>
    <td>example.com</td>
  </tr>
<table>

ce qui affiche bien

toto @ example.com

Rapidement sont alors apparus des scripts/bots qui éliminaient les balises HTML inutiles (ici balises table tr et td) et aspiraient donc l'adresse toto@example.com que la plupart d'entre eux n'avaient alors aucune peine à convertir en toto@example.com ;-(.

Une des solutions pour contourner ces scripts consiste simplement à compliquer un chouilla la table de manière à générer un résultat idiot pour le bot (ici "toto Pour me contacter : example.com" s'il filtre les balises HTML) et à utiliser par ailleurs une brosse GIF ou PNG pour l'arobase plutôt que le caractère @ ou son entité &#064; trop "repérables" (la brosse est ici volontairement trop grande).

Voici donc notre source modifié :

<table border="3">
  <tr>
   <td rowspan="2" valign="bottom">toto</td>
   <td align="left" colspan="2">Pour me contacter :</td>
  </tr>
  <tr>
   <td><img alt="Commentaire bidon" width="47" height="47" src="gfx/spam_chez.gif" /></td>
   <td valign="bottom">example.com</td>
  </tr>
</table>

Ce qui nous affiche donc

toto Pour me contacter :
Commentaire bidon example.com


ou si l'on fixe le border à 0 (encadré "invisible")

toto Pour me contacter :
Commentaire bidon example.com

Conseil : n'appelez pas votre brosse représentant l'arobase avec un nom style at.gif, chez.gif ou arobase.png mais plutôt avec un nom passe-partout sans aucun rapport avec son contenu.

Utilisez des formulaires au lieu d'un lien direct sur l'adresse ou vers une autre page

Cette solution ne présente quasiment que des avantages :
  • Tous les navigateurs la gèrent,
  • Votre adresse n'apparaît jamais directement en clair,
  • Même les personnes sans adresse électronique (utilisateurs occasionnels d'internet par exemple) peuvent vous contacter rapidement.
C'est typiquement le principe utilisé par les scripts pour les "Livres d'Or".

Seule petite précaution à prendre, il faut utiliser la méthode POST (car la méthode GET est plus facile à analyser puisque les variables apparaissent généralement en clair dans l'URL qui a la forme www.example.com/toto.html?variable1=valeur1&variable2=valeur2&variable3=val... etc. et peuvent donc se faire intoxiquer par un script qui exploite cette faille) avec un script CGI (perl, C) ou PHP en argument ACTION qui redirige les données collectées vers l'adresse ou la page correspondante.

L'avantage d'un script PHP est qu'il restera toujours "invisible" aux bots au contraire d'un script perl par exemple qui pourra être analysé un jour ou l'autre par un programme qui ne respectera pas le robots.txt et visitera le répertoire /cgi-bin/. Vous pourrez d'ailleurs trouver quelques scripts PHP prochainement sur mon site Web qui exploitent plusieurs techniques explicitées dans cet article.

De la même façon, vous pouvez utilisez un système de menu déroulant (formulaire avec la méthode POST + JavaScript + script cgi / PHP ou autre) pour naviguer sur votre site et égarer ainsi la plupart des bots des spammeurs (mais aussi les bots des moteurs de recherche donc utilisez ce genre de techniques à bon escient !).

Conclusion

Comme le dit le proverbe, "il ne faut pas mettre tous ses oeufs dans le même panier". Pour vos pages Web, c'est exactement pareil : il est très important que tout le monde n'utilise pas exactement la même technique de camouflage d'adresse électronique sinon inévitablement les spammeurs vont se concentrer rapidement sur cette technique "rentable à contourner" pour trouver une faille et reprendre leurs activités en toute tranquillité.

Généralement j'utilise un mélange de plusieurs des techniques précédentes (brosses, tables et formulaires + php) ce qui permet d'éviter une grande partie des bots moissonneurs de spams (plus de 99%). J'espère que cet article vous aura donné quelques idées sympathiques de mesures de protections "en amont" du spam : nous verrons une prochaine fois comment piéger ou intoxiquer les robots des spammeurs avec de fausses données.

Références (à vos navigateurs... surfez !)

[Retour en haut] / [Retour aux articles]