Nat 2 – Spam 2

Il fût une époque où je fanfaronnais joyeusement avoir vaincu la première tentative de spam sur le présent site, dans un article orgueilleusement intitulé Nat 1 – Spam 0. Mais le spam a fini par reprendre le dessus, pour arriver à Nat 1 – Spam 2. Mon retard est aujourd'hui rattrapé, grâce à mon nouveau moteur de blog.

Résumé des épisodes précédents

Alors que mon blog était encore tout beau et tout neuf (non, c'est une blague, il a toujours été laid), j'ai été confrontée au problème du spam. Je l'ai résolu brutalement mais efficacement en ne traitant pas les requêtes sur vibrissae.org et seulement celles sur www.vibrissae.org.

Ensuite le temps a passé, et à cause de diverses erreurs personnelles, je suis arrivée à un stade où je n'avais plus le code source de mon moteur de blog, ce qui m'empêchait de pouvoir ajouter une nouvelle mesure antispam.

Sans grande surprise, le spam est revenu, et je n'ai pas trouvé d'autre solution que d'amputer de mon blog les pages touchées.

Pendant toute cette période où j'ai été harcelée par le spam, je n'ai pas arrêté de penser que bientôt j'aurais ma revanche, et que cette revanche n'était qu'à quelques (milliers de) lignes de code. C'était d'ailleurs ma principale motivation pour avancer.

Nouveau moteur, nouvelle attaque

Ce qui me surprend, c'est que quelques heures après le changement de moteur, mon blog s'est pris une violente attaque de spam. Une attaque comme je n'en avais jamais vue depuis ma première victoire. 55 spams en trois jours.

Et ils ont tous été arrêtés. Un joli 100 % de réussite. Ça fait chaud cœur de voir que tous ces efforts de code sont récompensés.

Mais ça me laisse perplexe, une grosse attaque de spam qui commence quelques heures après mon changement de moteur. Coïncidence ? Ou est-ce que d'une façon ou d'une autre ils ont remarqué le changement de moteur ? Peut-être le passage de www.vibrissae.org à vibrissae.org qui leur a donné l'impression que c'est un nouveau blog sur lequel ils doivent sévir ?

Ça marche comment ?

Il paraît qu'il ne faut pas se reposer sur le secret d'une mesure de sécurité, donc autant publier mon système antispam. Et surtout, je doute que les spammeurs regardent le site sur lequel ils spamment, à la recherche d'une éventuelle indication des mesures anti-eux présentes. Il me semble que c'est quelque chose de trop artisanal pour leurs activités qui sont plutôt orientée vers la masse.

En fait la vraie raison pour laquelle je le publie, c'est que le problème d'un système antispam trop efficace, c'est que ça devient plus difficile de repérer un éventuel faux-positif. Si les gens connaissent les règles, même s'il est peu probable qu'ils les aient vraiment lues, j'ai moins de problèmes de conscience. Genre vous ne pourrez pas dire que je ne vous l'avais pas dit, quoi.

Voici donc la liste des critères. Il suffit qu'un commentaire satisfasse au moins un d'entre eux pour qu'il soit considéré comme un spam. Cette liste sera éditée au fur et à mesure de l'évolution du moteur.

  • Les champs postés sont incohérents.
  • Le texte du commentaire contient la séquence de six caractères « <a href » ou la séquence de quatre caractères « [url ».

Rien n'est parfait

C'est la conclusion à laquelle je suis arrivée, en étant confrontée pour la première fois à une toute nouvelle forme de spam, contre laquelle je me sens complètement démunie.

Le seul commentaire de l'article sur mes vacances en Suisse vient d'un robot de spam, à base de carbone.

Si quelqu'un a une idée contre ce type de spam, ça m'intéresse.

Publié le lundi 14 janvier 2008 à 15:10.

Catégorie : Site

Commentaires

1. Le jeudi 17 janvier 2008 à 0:52, par FrnchFrgg :

Pour contrer le spam "msn", peut-être que tu peux utiliser une règle du genre "moins de <n> mots sont dans le dico" ? Sinon, ça veut dire quoi "incohérents" ? D'accord, si le gars raconte sa vie dans le champ "nom", ou ne mets pas une adresse e-mail dans "e-mail", ça peut être un indicateur. C'est ça que tu fais ?

2. Le jeudi 17 janvier 2008 à 9:29, par Natacha :

Pour ce qui est d'un dictionnaire, je n'y ai pas vraiment réfléchi, mais à première vue ça me semble très porteur de faux positifs.

Pour l'incohérence des champs, je n'ai pas pensé non plus à l'incohérence sémantique comme tu la décris. Je pourrais le faire, par exemple vérifier que le mail est vide ou que c'est une adresse bien formée, voire même faire un callout pour vérifier qu'elle existe ; mais tout ça me semble aussi générateur de faux-positifs. L'incohérence qui est implémentée est plutôt syntaxique : concrètement je vérifie que l'ensemble des champs dans la requête POST est identique à l'ensemble des champs du formulaire (enfin c'est ce que je voulais faire, en ce moment il y a un test plus faible que ça). En particulier, il ne faut pas envoyer de valeur pour le champ qui est en commentaire HTML.

3. Le jeudi 17 janvier 2008 à 11:17, par FrnchFrgg :

Pour le coup du dico, il me semble tout de même que seuls les hardcore msn-lovers ont moins de 5% de leurs mots qui sont dans le dico. En particulier le message en question semble n'en avoir aucun de plus de 3 lettres. Surtout, l'intérêt, c'est que tu peux dire "Attention, écrivez en vrai français, pas langage SMS; un message entièrement écrit en SMS ou MSN sera automatiquement bloqué"

Copyright © 2007-2008 Natacha Kerensikova

Lithium Blog - commit dad867adc7a3fc6476990c37fcfa09685831b7d9 - Thursday 7 February 2008