SEO, SEO, SEO, SEO et aussi le SEO

Posté par (page perso) . Édité par Davy Defaud, ZeroHeure et Florent Zara. Modéré par Florent Zara. Licence CC by-sa.
Tags :
57
26
avr.
2019
LinuxFr.org

En février 2018, j’avais fait un petit point sur une tâche régulière, répétitive et rébarbative liée à LinuxFr.org, qui n’est probablement pas significativement perçue par la plupart des lecteurs (tant mieux) : la gestion du spam, des pénibles publicitaires sans scrupules, de la plaie des SEO, des escroqueries et autres arnaques type scam ou loterie, etc. Bref, des pénibles du quotidien qui ne sont pas des vrais visiteurs du site, mais qui veulent juste fourguer leur camelote par n’importe quel moyen. Il s’agit d’évoquer les différentes formes que cela prend, les méthodes mises en place pour réduire ou bloquer la nuisance et d’illustrer le propos par divers exemples.

Contexte

Je me balade sur le site, je vois un commentaire vantant un comparatif de VPN, je me dis que c’est louche (pour plein de raisons, la huitième va vous étonner, mais principalement par expérience, voir plus loin la discussion sur PreSpam), c’est un nouveau compte. OK, il s’agit donc d’un spam de type SEO sournois. Pris d’une frénésie vindicative contre le spam, je lance une recherche en base de données sur ce domaine en particulier. Une seule occurrence. Petite déception, j’étais persuadé d’en voir plus régulièrement des vendeurs de spams, euh, de VPN.

Là, paf, mauvais réflexe, je me dis qu’il suffirait de lister tous les domaines présents dans les commentaires supprimés sur les trois dernières années, de nettoyer un peu tout ça, et de relancer une recherche pour détecter du spam résiduel. Après tout, y en a juste pour cinq minutes.

Sommaire

Quelque temps plus tard, me voici en possession d’une liste de plus de deux cents domaines et/ou morceaux d’URL.

À la recherche du spam perdu

Donc cinq minutes on avait dit, pas la peine de faire dans le subtil, optons pour le brutal.

D’abord une petite recherche tout en délicatesse sur les commentaires (SELECT comments.id, comments.created_at FROM comments WHERE state!='deleted' AND (body LIKE '%iamabigvillain.invalid%' OR …);), en gros une pleine page de requêtes SQL cracra.

La première exécution donnera 9 résultats, en raison d’un faux positif (un des domaines est juste un site lié à l’impression 3D en général, et les spammeurs ont utilisé des sous-parties du site alors que j’avais filtré sur le domaine complet). Après nettoyage, cela donnera :

+---------+---------------------+
| id      | created_at          |
+---------+---------------------+
| 1647294 | 2016-03-09 15:33:37 |
| 1703702 | 2017-06-03 07:39:51 |
| 1753669 | 2018-11-06 18:18:50 |
| 1768965 | 2019-04-25 08:23:37 |
| 1768975 | 2019-04-25 08:36:30 |
+---------+---------------------+
5 rows in set (51 min 5.62 sec)

OK, donc au moins encore cinq commentaires à nettoyer au lance‐flammes.

À tout hasard, jetons un œil du côté des contenus, de manière tout aussi délicate (du type SELECT diaries.id, diaries.created_at FROM diaries,nodes WHERE diaries.id = nodes.content_id AND nodes.content_type='Diary' AND nodes.public=1 AND (body LIKE '%iamabigvillain.invalid%' OR …); pour les journaux, par exemple. Après 3 min et 30 s pour les journaux, 2 min 18 s pour les forums, 5 s pour le suivi, 1 min 20 s et 3 min 24 s pour les dépêches (première et seconde parties) et 4 s pour les pages wiki, et en omettant les sondages et les liens pas vraiment concernés, on peut conclure que les contenus ne sont pas trop concernés (ou plutôt que le ménage y a déjà été fait précédemment).

Le traitement des cinq commentaires détectés va permettre de fermer quatre comptes, de finalement supprimer un total de dix‐neuf commentaires : oui, souvent le SEO tergiverse, flâne, complimente, tourne autour du pot, avant de poser son étron sur la table, donc il y a souvent plusieurs commentaires d’approche avant les premiers commentaires de pur spam. En cas de nettoyage, tout est supprimé. Au passage, on gagnera aussi quatre domaines supplémentaires, et on aura le droit de recommencer la recherche en incluant ces quatre nouveaux domaines [Empty set (52 min 8.04 sec)].

La liste des domaines/URL des pénibles du coin

Que trouve‐t‐on dans la liste des domaines/URL des pénibles fréquentant LinuxFr.org ? Est‐on plutôt dans le domaine jacky tuning auto, joaillerie parfumerie luxe, sadomasochisme et bondage, couture et pâtisserie ou tutoriel jardinage ?

Une grande catégorie (plutôt anglophone) comporte les applications : il semble qu’il existe de nombreux sites dédiés aux applications mobiles (probablement légitimes et pas directement propriétés des spammeurs SEO), de la forme nom.du.site/nom_appli, et donc, naturellement, on se retrouve avec plein de noms contenant apk, app, download, android, ios, mob, etc. Et sur chacun de ces sites, notre spammeur va essayer de fourguer ces applis, souvent les mêmes. Les applis, d’après leurs noms, semblent être liées (en tout cas prétendre être liées ou utiliser des noms faisant penser que) à Android en général, à la communication et les réseaux sociaux, aux achats (légaux ou non), aux jeux d’argent en ligne, aux VPN et Wi‐Fi, aux torrents, etc. Et parfois le spammeur a directement un domaine pour fourguer son application. Ça reste de toute façon varié, on va trouver du .com, du .biz, du .vip, du .in (Inde), du .onl, .software, du .fyi, etc.

On va aussi trouver la même chose pour des applis non mobiles ou des sites, avec des usurpations assez évidentes de noms sur des jeux connus (Counter Strike, Minecraft, etc.), des services connus (iTunes, Google Play, comment contourner Hadopi, etc.), et le logiciel libre n’est pas épargné (7-Zip, FileZilla, Kodi, etc.). On peut y ajouter les jeux (d’argent ou non) en ligne (du games, du poker, du casino, etc.) et les applis servant à se protéger (nettoyeurs, bloqueurs) ou attaquer (logiciels espion, pirater des comptes GAFAM), il suffit d’avoir confiance…

En vrac, on peut aussi trouver du vendeur de parfums, des comparateurs de trucs (VPN, mutuelles, banques, énergie, téléphone, etc.), de coloriage, de pneus, de SEO, de l’huile à barbe, un chirurgien esthétique, du médical en général, un site anti‐arnaques (sic), des (faux) sites de support en ligne (HP, iTunes, Lenovo, etc.), du cul (à consulter ou en rendez‐vous), du streaming de sport, du JSON (si), du marabout, du site à clic sur les chats malades ou les poupées en silicone, du serrurier parisien, de l’agence de communication, du patin à roulettes, des thermomètres pour bébé, des prêts à la consommation, des produits reconditionnés, de la relecture de textes, etc. Et un peu de non identifiable (probablement lié à des langues étrangères ou des références « subtiles »).

Enfin, on peut citer la catégorie de l’indirection : il s’agit de pointer vers une entrée sur un autre site (qui, comme LinuxFr.org, permet aux visiteurs de créer des comptes et de commenter) qui va lui contenir le spam ou des liens vers le spam. C’est varié, ça peut être des titres de presse, des sites type réseaux sociaux ou blogs, des hébergeurs gratuits, des boutiques sur des sites marchands, etc., et c’est varié en termes de langues aussi (vietnamien, brésilien, indonésien, pakistanais, etc., ça fait voyager).

Détection et traitement

On constate :

  • des comptes ouverts et jamais utilisés, qui sont soit des vrais spammeurs qui n’ont jamais réussi à spammer (robots ou humains dysfonctionnels), soit des utilisateurs légitimes (et c’est assez indiscernable sur un compte sans contenu, sans commentaire et qui a le même domaine pour le courriel qu’un tiers des comptes valides, par exemple, tout en ayant une adresse IP dans une plage tout aussi indiscernable) ;
  • des comptes ouverts avec spam d’entrée (c’est plutôt rare, et plutôt sur du spam francophone, tendance SEO débutant) ;
  • des comptes ouverts, puis attente avant de commencer à spammer ;
  • des comptes ouverts, des propos lénifiants (merci, c’est très intéressant, etc., le plus souvent en anglais d’ailleurs, puis spam quelques commentaires plus tard) ;
  • des comptes ouverts, des copier‐coller de commentaires déjà existants ou trouvés sur d’autres sites, avec liens de spam en bonus ;
  • pas vraiment de cas de réédition des commentaires plus tard (la période de réédition de ses commentaires sur LinuxFr.org étant probablement trop courtes pour ça) ; en revanche, on va poster sur des vieux contenus âgés d’un ou deux mois .

On réagit avec :

  1. de la vigilance et de l’expérience de l’équipe de modération ;
  2. des remontées par les visiteurs, qui aident pas mal ;
  3. si un motif est identifié, on peut lancer une petite requête en base de données pour voir si l’on s’est déjà fait avoir ;
  4. une attention portée au besoin de bienveillance pour les nouveaux ; on ne peut pas demander à chaque nouvel inscrit, un dossier complet avec copie de passeport, un mot des parents, une caution bancaire, une clé GPG premium et un compte IRC certifié, plus une période de surveillance avec modération a priori pour chaque caractère tapé ; donc, il y a un compromis entre la forteresse vide et l’agora avec un videur discret pour les indélicats.

Un exemple de l’expérience en modération, ce que j’ai appelé PreSpam (en référence à PreCrime de P. K. Dick, dans Minority Report notamment) :

20:23:56 Benoît Sibaud : [url] futur spammeur ?
20:25:41 Benoît Sibaud : C’est pour voir si ma boule de cristal est bonne en prédiction ou non
22:44:04 Ysabeau : Là [url], ça sent le spam à plein nez, le lien renvoie vers un truc qui n’a rien à voir.
22:45:55 Ysabeau : Donc, oui, c’était bien un futur spammeur, commentaire supprimé.
11:18:03 Benoît Sibaud : Compte fermé.

ou :

20:18:35 Benoît Sibaud : [url] nouveau signalement de PreSpam ?
21:15:20 palm123 : à surveiller
(2 jours plus tard)
06:59:10 Julien Jorge : Il revient [url]
10:07:59 palm123 : Il essaie de monter son karma
10:27:18 Benoît Sibaud : Plutôt de passer deux commentaires 'plausibles' pour éviter une détection (je ne suis sûr que notre système de karma soit suffisamment commun pour être pris en compte par un spammeur).
10:27:53 Benoît Sibaud : On a déjà de multiples cas de “je spamme au 3ᵉ commentaire”.

(cette dernière expérience continue, cet utilisateur n’a posté que deux commentaires. Suspense !)

Conclusion

C’est pratique, je peux réutiliser à peu près la même conclusion que la dernière fois (d’autant que cette dépêche ne doit me prendre que 5 minutes, évidemment). J’espère avoir donné un petit panorama varié des publicitaires pénibles et des SEO sans scrupules, bref du spam reçu/subi par l’équipe LinuxFr.org. C’est malheureusement un travail régulier de les bouter hors d’ici : chaque lettre rétrospective de la quinzaine passée, comme la dernière de début avril 2019, mentionne le sujet, inlassablement. Avec un peu de chance, l’équipe agit suffisamment vite pour que vous n’en perceviez qu’une petite partie (idéalement 0). Lorsque vous détectez du spam, n’hésitez pas à nous le signaler (étiquette [tag] spam sur un contenu, par tribune de rédaction, par courriel, etc., peu importe), on adore le bruit que cela fait quand on l’écrase.

Si vous avez vous‐même une expérience sur le spam sur votre propre site ou dans une autre communauté, si vous avez des idées d’outils ou de configuration, n’hésitez pas à partager dans les commentaires.

Et si vous êtes un spammeur/SEO et que vous voulez placer vos solutions dans lesdits commentaires parce que ça a l’air bien ici ça parle spam et SEO, sachez que je vous conchie toujours.

Aller plus loin

  • # Business is business

    Posté par . Évalué à 10.

    A vendre, compte créé le 13/08/2008, karma à plus de 5000, idéal SEO, indétectable par la patrouille.

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Business is business

      Posté par (page perso) . Évalué à 2.

      Je sais même pas où voit son karma …

      • [^] # Re: Business is business

        Posté par . Évalué à 6.

        Clique sur ton pseudo, et sur la colonne de gauche, sous "rédaction", tu as une rubrique avec des infos sur ton compte, dont le karma.

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Business is business

        Posté par . Évalué à 2.

        Moi, mon karma, l'est dans le comma. Sans doute à cause de mes Attaques répétées sur Linuxfr…

        -->[]

  • # Intéressant

    Posté par (page perso) . Évalué à 2.

    Intéressant…. non je rigole je ne suis pas un bot :)

    Ça serait marrant d'avoir un peu de détection automa… ah oui non c'est dangereux, faut pas se mettre à filtrer les contenus, après on va montrer aux États de surveillance que c'est réalisable dans une certaine mesure.

    • [^] # Re: Intéressant

      Posté par (page perso) . Évalué à 5.

      C'est une question de volume : des dizaines/une centaine de commentaires par jour ça passe avec quelques modérateurs bénévoles. En centaines/milliers, ça va les saouler, il en faudra beaucoup ou plutôt il faudra payer des gens blasés pour lire les commentaires. En dizaine/centaines de milliers ou millions, il faudrait une armée de modérateurs ou un traitement automatique avec les problèmes de sur/sous-blocage que ça peut poser.

      Vu que l'on n'a pas encore de bouton de signalement de commentaires (contrairement aux contenus que l'on peut taguer spam, et qui sont bien moins nombreux par jour), le nombre de visiteurs n'aide pas trop pour la modération.

      • [^] # Re: Intéressant

        Posté par . Évalué à 4.

        C'est vrai ça, pourquoi on peut pas spam-tag les commentaires ? Ça aiderait sûrement…

      • [^] # Re: Intéressant

        Posté par . Évalué à 2.

        Tiens, j'en ai un : https://linuxfr.org/nodes/116619/comments/1770089

        l'adresse pour remonter les comptes qui ne spam que dans les commentaires, c'est moderateur chez linuxfr.org ou c'est une autre ?

        • [^] # Re: Intéressant

          Posté par . Évalué à 2. Dernière modification le 05/05/19 à 11:14.

          je note que le compte a été fermé, mais le commentaire pas modéré. Est-ce un autre pattern où le spammeur ferme son compte après avoir posté son spam pour réduire l'incitation au signalement par les lecteurs ?

        • [^] # Re: Intéressant

          Posté par (page perso) . Évalué à 3. Dernière modification le 05/05/19 à 11:38.

          ça marchera avec moderateurs@ ou team@. Merci pour le signalement. Du coup j'en ai profité pour rajouter et déployer le test régulier de la base de données (donc un signalement automatique des cas déjà connus, en plus de la vigilance de la modération et des signalements des visiteurs).

  • # Coquille

    Posté par . Évalué à 2.

    et le logiciel libre n’est pas épargné (7-Zip, FileZilla, Kodi, Discord, etc.).

    Discord a libéré Discord entre parenthèses.

  • # Merci à tous

    Posté par (page perso) . Évalué à 8.

    Tout d'abord : merci à tous pour inutiler/signaler le moindre SPAM dès qu'il pointe son nez.
    Ces derniers temps j'en ai inutilé 2 en étant le premier à tomber dessus. Ça ne change rien, il est juste caché pour ceux qui ne naviguent pas en -42.

    Il y a très peu de SPAM sur ce site, donc ils polluent peu notre attention.
    Si les liens sont en NOFOLLOW, cela ne suffit pas pour que le SEO soit inopérant ? Beaucoup de forum mettent les liens en NOFOLLOW, ce n'est pas le cas ici, quelle est la vraie raison ? (vraie raison = pas un baratin idéaliste)

    À titre perso je fais du SPAM : j'ai un lien vers mon entreprise à côté de mon pseudo. Ça fait actuellement plus de 6000 liens.
    Un spammeur pas trop stupide peu faire la même chose, il lui suffit de poster un commentaire utile une fois pas mois et il aura un SEO correct depuis ce site.

    • [^] # Re: Merci à tous

      Posté par (page perso) . Évalué à 8.

      Le lien vers le site perso est en "nofollow" pour les karmas inférieurs au karma initial.

      Le lien vers les commentaires d'un compte donné (sur la page dudit compte) est en "nofollow" (ils seront indexés ou non avec le contenu concerné).

      Les pages de contenu notés strictement négativement sont en "noindex, nofollow".

      Les liens des commentaires n'ont pas de réglage "nofollow" actuellement, ce qui est une partie du problème.

      Les spammeurs humains ne regardent probablement pas si les liens sont en nofollow ou noindex (déjà qu'ils ne comprennent pas la langue du site sur lesquels ils spamment, le plus souvent). De toute façon ça dépend du moment où ils le regardent si c'est dépendant du karma. Enfin le nofollow/noindex, c'est pour les moteurs de recherche, ça n'empêche pas des humains de cliquer dessus, donc d'un point de vue spam, est-ce que ça vaut le coup de s'embêter à vérifier si y a du nofollow/noindex ? On a bien du spam dans les contenus alors qu'ils sont vite notés négativement (puis masqués administrativement).

      • [^] # Re: Merci à tous

        Posté par (page perso) . Évalué à 6.

        J'ai créé une entrée dans le suivi mais globalement ça ne semble pas si facile à faire (la conversion markdown->html n'est pas refaite à chaque fois pour les commentaires).

        Sinon concernant ta question, voir sur Nofollow Criticism of usage by Wikipedia : Wikipédia a généralisé le nofollow, le site d'origine se retrouve en compétition avec Wikipédia niveau visibilité (donc perd le plus souvent), perd même en visibilité, et en plus ça n'empêche pas les brillants SEO de venir quand même.

    • [^] # Re: Merci à tous

      Posté par (page perso) . Évalué à 2.

      Je plussoie : effectivement, pourquoi ne pas mettre les liens en NOFOLLOW ?

  • # Requêtes SQL lentes ?

    Posté par . Évalué à 4.

    En lisant ça :

    5 rows in set (51 min 5.62 sec)

    Je me demande si la base de données de linuxfr est aussi volumineuse que ça, ou si quelques optimisations ne manqueraient pas (index, …) ?

    Peut-on consulter le schéma de la BDD ?

  • # Pareil pour ma forge...

    Posté par (page perso) . Évalué à 3.

    Sur une forge logicielle dont je m'occupe, j'ai aussi des problèmes de spam sur le système de tickets. Pour l'instant, je fait le nettoyage à la main, en cherchant dans les logs d'apache quelle est l'IP responsable, puis via un whois, quel est le domaine. Ensuite, je mets la plage d'IP appartenant au domaine dans hosts.deny et je laisse fail2ban faire le videur. C'est très manuel, mais mon espoir est que ce sont toujours les mêmes entreprises (dans un pays à la main d’œuvre peu coûteuse) qui génèrent ce genre de spam, donc que rapidement je dois pouvoir en bloquer la majorité. Vu que le code php de ma forge n'est plus développé, il n'est pas possible d'intégrer d'autres choses plus automatiques…

    Par exemple, désactiver les liens dans les commentaires tant qu'un utilisateur n'a pas été validé manuellement par un administrateur (ou bien par un système de karma). Les nouveaux utilisateurs pourraient donc poster sans problèmes, mais ne pourraient pas détourner le système pour faire leur référencement (des liens non-actifs, voir lien remplacé par un "lien interdit" dans des commentaires sur des posts vieux de plusieurs mois n'ont pas un grand intérêt pour ces spammeurs). Si des dev. de Tuleap m'entendent, je m’apprête à migrer ma forge vers Tuleap et j'espère qu'il y a / aura des mécanismes de défense contre le spam dans Tuleap :-)

    Mathias

  • # Dépèche très intéressante, merci !

    Posté par . Évalué à 2.

    Plus que deux commentaires comme celui-là et je peux spammer :)

    bépo powered

    • [^] # Re: Dépèche très intéressante, merci !

      Posté par (page perso) . Évalué à 4.

      Ah ah, on ne se laissera pas avoir et l'équipe de modération sera sans pitié !

      OS préféré Mageia 6 et Mageia 7, CMS préféré SPIP, suite bureautique préférée LibreOffice, logiciel de dessin préféré Inkscape.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.