En cette fin d’Octobre quoi de mieux d’aborder un sujet sérieux qui depuis quelques mois sévit, une nouvelle forme de spam, peut-être l’avez-vous remarqué dans Google Analytics?

Semalt, Darodar, et bien d’autres aux noms étranges.
Ce sont invité dans vos statistiques en tant que source de trafic.
Et ils adorent revenir régulièrement sur votre site internet…

Vous trouver ça étrange? Vous avez raison! Ce n’est absolument pas des sources de trafic légitime, il s’agit de Spam Referrer.

 

I/ Comment fonctionne le Spam Referrer ?

 

La question qu’on pourrait plutôt directement se poser est qu’ont-ils à gagner en faisant cela?

Pour résumer simplement :

Gagner de l’argent en exploitant simplement la curiosité humaine.

 
L’objectif ?

Obtenir une masse de trafic sur le nom de domaine, qui redirigera vers une page monétisée !

 

Mais monétiser, comment? Il n’y a pas de publicité?
C’est parti pour un exemple pour comprendre tout ça…

 

A/ Le scénario classique d’attaque

Dans votre Google Analytics:

  1. Je vois une nouvelle source de trafic, forum882202.darodar.com
  2. Je suis intrigué, je ne connais pas ce site.
  3. Je clic dessus.
  4. Je suis redirigé vers un lien d’affiliation caché pour un site d’e-commerce (souvent des e-commerces chinois comme aliexpress, alibaba,… ; des concurrents d’Amazon).
  5. Puis je suis redirigé vers un faux site « leurre » en toute transparence.

Mais du côté du spammeur :

  • Il touche une somme fixe pour chaque visiteur unique sur son lien d’affiliation. (d’où l’importance d’avoir beaucoup de trafic)
  • Il touche d’autant plus d’argent sous forme de pourcentage sur la vente si la victime commande sur ledit site. (À savoir, le code d’affiliation est persistant via les cookies ou sessions de votre navigateur).
  • Il est imaginable qu’il puisse rajouter des codes malveillants sur le site leurre.
  • Il augmente artificiellement son référencement et par la même occasion endommage vos capacités d’analyse statistique de votre site.
  • Il augmente votre consommation en bande passante et ressources physique de votre serveur (type Crawlers).

Vous voyez c’est bien plus fin que ça.. c’est bien pour cela que l’on pourrait également appeler cela du Spam Referral (du spam par affiliation).

Donc si vous vous demandez si c’est rentable? Oui ça l’est !
Sachez que vous n’êtes pas le seul et que ce phénomène est en pleine expansion !

Rassurez-vous, il existe plusieurs moyens de les contrer.

Il faut d’abord bien différencier les 2 types de spams principalement utilisés :

  • le « Spam Crawler Referrer » (abrégeons le par SCR ou crawlers)
  • et le « Spam Ghost/Ghosting » (ou plus simplement ghosts).

 

B/ Explication du SCR – crawlers

I-B-fonctionnement-spam-crawler-referrer
Tout comme ferait le robot de Google pour indexer votre site internet, le robot (serveur) de l’attaquant va parcourir votre site internet régulièrement.
Et ainsi injecter artificiellement sa visite dans vos statistiques de Google Analytics.

Note: Bien sûr, ce robot, ne tiens pas compte de votre fichier robots.txt, inutile d’essayer de bloquer par ce moyen. Mais néanmoins il est facile de le contrer en le bloquant via un .htaccess ou une règle pare-feu.

 

C/ Explication du Spam Ghost

I-C-fonctionnement-spam-ghost
Comme son nom l’indique, il s’agit d’une visite fantôme.
L’attaquant ne va pas se rendre sur votre site internet, mais va interagir directement avec votre tracker Google Analytics.
Pour cela, il détourne une fonctionnalité peu documentée, le « Measurement Protocol« . Permettant ainsi d’injecter la visite directement sur les serveurs Analytics via votre code tracker !
 

II/ Comment détecter le Referrer Spam dans Google Analytics ?

 

Pour vous aider dans votre tâche d’identification, vous pouvez utiliser cette liste des CSR au format TXT comme référence.

 

A/ IDENTIFICATION : Vérifier le nom d’hôte

  1. Rendez-vous dans l’onglet « Rapports » de Google Analytics
  2. Dans la barre de gauche, sélectionnez « Acquisition »
  3. Déroulez le menu « Tout le trafic » et sélectionnez « Canaux »
  4. Dans ce rapport, sélectionnez « Source » comme dimension principale
  5. Ajoutez une dimension secondaire « Nom d’hôte »

II-A-1-verifier-nom-hote-google-analytics

  • Vous obtenez un rapport dont certaines lignes possèdent une colonne source avec un nom d’hôte différent, il s’agit de SCR.
  • Vous obtenez un tableau dont les noms d’hôtes sont « (not set) », il s’agit de Spam Ghost.

II-A-2-detecter-nom-hote-spam-google-analytics

En cas de gros doute sur un Referrer après avoir vérifié le nom d’hôte, vous pouvez changer la dimension secondaire en «Page de destination», pour cette fois-ci, déceler celle qui n’existe pas sur votre site internet.
Note: Il se peut aussi qu’ils utilisent simplement la racine « / » rendant cette technique difficilement exploitable.

 

B/ CONFIRMATION : Vérifier les métriques

  1. Rendez-vous dans l’onglet « Rapports » de Google Analytics
  2. Sélectionnez la période la plus longue possible
  3. Dans la barre de gauche, sélectionnez « Acquisition »
  4. Déroulez le menu « Tout le trafic » et sélectionnez « Site référents »


II-B-detection-verifier-spam-google-analytics

Applicable pour les SCR ou les ghosts, rechercher dans ce rapport, les référents suspects obtenant :

  • 100% de nouvelles sessions  ou ~= 0% de nouvelles sessions
  • 00:00:00 de durée moyenne de sessions

 

III/ Mais alors comment nettoyer ses statistiques Google Analytics?

 

Nous sommes assez surpris que Google n’intègre aucune protection contre cette nouvelle menace !

Il va falloir malheureusement le faire manuellement en attendant que Google réagisse.

Néanmoins, nous allons pouvoir utiliser la très pratique fonctionnalité « filtre » pour exclure tous ces indésirables de nos statistiques:

  • Filtrage en liste blanche des noms d’hôtes pour contrer les ghosts.
  • Filtrage en liste noire des sources de trafic pour exclure le SCR.

 

A/ LISTE BLANCHE : Nettoyer et protéger vos statistiques du Spam Ghost

Comme expliqué précédemment, les ghosts utilisent toujours un nom d’hôte non valide. La stratégie de cette solution est de créer une liste blanche de noms d’hôtes valides, afin d’exclure tout le trafic indésirable en Spam Ghost.

Avant de la créer, il nous faut d’abord dresser notre liste de noms d’hôtes légitime.

  1. Rendez-vous dans l’onglet « Rapports » de Google Analytics
  2. Dans la barre de gauche, sélectionnez « Audience »
  3. Déroulez le menu « Technologie » et sélectionnez « Réseau »
  4. Dans la partie haute de ce rapport, veillez à sélectionner « Nom d’hôte » comme dimension principale et non « Fournisseur de service ».


III-A-dresser-liste-hote-legtime-ou-non

Vous disposez maintenant d’un rapport contenant tous les noms d’hôtes :

  • Légitime:
    • www.mon-site.fr, blog.mon-site.fr, googleusercontent.com, …
  • et Non Légitime:
    • google.ru, forum2229292.darodar.com, …

 

Il est temps de créer notre filtre, pour cela :

  1. Rendez-vous dans l’onglet « Admin » de Google Analytics
  2. Dans la colonne « Vue », sélectionnez la vue sur laquelle vous souhaitez appliquer le filtre
  3. Cliquez sur « Filtres » puis « + Nouveau filtre »
  4. Cochez « Créer un filtre » et nommez-le « Nom d’hôte valide »
  5. Dans le champ « Type de filtre » sélectionnez « Personnalisé »
  6. Cochez « Inclure » et sélectionnez « Nom d’hôte » dans le menu déroulant
  7. Coller votre RegEXP dans le champ « Règle de filtrage »
  8. Cliquer sur « Vérifier ce filtre » pour voir si tout est OK.
  9. Puis valider.

Note:

  • Exemple de RegEXP : mon-site.fr|youtube.com|googleusercontent.com
  • Il n’y a pas besoin d’indiquer les sous-domaines.
  • Il faut patienter environ 24h pour que le filtre final prenne effet.
  • Nous vous conseillons de toujours créer une vue sans aucun filtre avant toute création de filtres supplémentaire.

 

B/ LISTE NOIRE : Nettoyer ses statistiques du SCR

Cette solution va vous permettre de simplement nettoyer vos statistiques existantes et bloquer les attaquants déjà connus par SCR.

Pour cela, nous allons créer un filtre « Source de la campagne ».

  1. Rendez-vous dans l’onglet « Admin » de Google Analytics
  2. Dans la colonne « Vue », sélectionnez la vue sur laquelle vous souhaitez appliquer le filtre
  3. Cliquez sur « Filtres » puis « + Nouveau filtre »
  4. Cochez « Créer un filtre » et nommez-le « Spam Referrals »
  5. Dans le champ « Type de filtre » sélectionnez « Personnalisé »
  6. Cochez « Exclure » et sélectionnez « Source de la campagne » dans le menu déroulant
  7. Pour terminer, coller dans le champ « Règle de filtrage » votre RegEXP contenant tous les domaines qui vous génèrent actuellement du spam.

Note:

  • Exemple de RegEXP : semalt.com|darodar.com
  • Il n’y a pas besoin d’indiquer les sous-domaines.
  • Il faut patienter environ 24h pour que le filtre final prenne effet.
  • Nous vous conseillons de toujours créer une vue sans aucun filtre avant toute création de filtres supplémentaire.

 

C/ TECHNIQUE BONUS : Filtrage des robots connus

Cette technique bonus n’a pas de lien direct avec le Spam Referrer, mais pourrait participer à des statistiques plus propres et qui sait bloquer quelques Spam Referrer?

Elle consiste à ne pas inclure dans les statistiques la visite des bots et spiders.

Pour ce faire:

  1. Rendez-vous dans l’onglet « Admin » de Google Analytics
  2. Dans la colonne « Vue », sélectionnez la vue sur laquelle vous souhaitez appliquer le filtrage
  3. Cliquez sur « Paramètre de la vue » puis recherchez le champ « Filtrage des robots » en bas de la page
  4. Cochez la case « Exclure tous les appels provenant de robots connus »

 

IV/ Comment se protéger du Spam Referrer ?

 

Pour les ghosts, vous ne pouvez agir que via un filtre directement dans Google Analytics (pour rappel, il ne s’attaque qu’à ce dernier) comme précédemment abordé dans « LISTE BLANCHE : Nettoyer et protéger vos statistiques du Spam Ghosting« . À moins de changer complètement son code Analytics?

Néanmoins pour les SCR – crawlers vous pouvez directement leur interdire l’accès de votre site internet (liste noire), c’est ce que l’on va aborder dans ce point (trié par complexité de mise en place).

 

1/ Plugin pour WordPress

Il existe un plug-in permettant de bloquer les crawlers, il est gratuit et fonctionne relativement bien.
Il s’agit de WordPress Plugin SpamReferrerBlock.

Son avantage est qu’il met régulièrement sa base de données à jour de site à bloquer, vous évitant de le faire manuellement.

Solution très facile à mettre en place et adaptée pour les hébergements mutualisés.

 

2/ Plugin pour PrestaShop ou autres CMS

Pour l’instant, il n’y a malheureusement pas de plug-in pour Prestashop ni pour d’autres solutions à ma connaissance, il faut s’appuyer sur le filtrage manuel dans le fichier htaccess.

 

3/ Modifier manuellement votre fichier htaccess

Il s’agit ici simplement d’énumérer dans ce fichier les spams afin de leur interdire complètement l’accès au site internet.

Voici un exemple très basique où nous bloquons 3 spammeurs :

RewriteCond %{HTTP_REFERER} buttons-for-website.com

[NC,OR] RewriteCond %{HTTP_REFERER} semalt.semalt.com [NC,OR] RewriteCond %{HTTP_REFERER} semalt2.semalt.com [NC] RewriteRule .* – [F]

Nous vous conseillons d’abord de faire une sauvegarde de votre fichier htaccess afin de pouvoir le restaurer.

Un autre exemple plus élaboré de htaccess : Htaccess de Kulturstartup

L’avantage est d’avoir un fichier léger, vous ne bloquez que ceux souhaités.
Mais vous ne bloquez pas les nouveaux vecteurs.
Cette solution en l’état n’est pas à recommander.

On peut parer ce problème en utilisant des bases de données spécialisées au détriment d’un fichier htaccess plus lourd…

Comme fonctionne un antivirus qui a besoin de mettre à jour sa définition de virus. Nous pouvons nous baser sur un htaccess mis à jour régulièrement, destiné à bloquer ces crawlers indésirables comme:

Il suffira juste de copier ces lignes et de les coller à la fin de votre htaccess régulièrement.

 

4/ Interagir directement au niveau serveur

Nous pouvons bien sûr imaginer, si vous possédez un serveur dédié:

Pour sa simplicité de mise en place et sa base de donnée à jour.
Nous vous conseillons la solution : création d’une règle pare-feu à jour avec fail2ban, vous pouvez ainsi utiliser:

 

5/ Utiliser des proxy CDN payants

Au lieu de faire transiter directement votre visiteur vers votre site internet, un intermédiaire va se charger de réguler la connexion.

Nous pouvons vous conseiller le célèbre CloudFlare ainsi qu’Encapsula.

Il semblerait qu’Encapsula serait plus efficace que CloudFlare face à ce problème. À vérifier…

 

V/ Conclusion

 

À travers cet article, nous avons pu aborder l’ensemble du sujet :

  1. Comment fonctionne le Spam Referrer ?
  2. Comment le détecter dans Analytics ?
  3. Comment nettoyer ses statistiques Analytics déjà polluées ?
  4. Comment s’en protéger ?

Le Spam Referrer affecte de plus en plus de sites internet et il est fort probable que le vôtre soit déjà affecté !

Comme nous l’avons abordé précédemment, nous pouvons retenir :

  1. Il est inutile de cliquer sur ces noms de domaine, ils n’attendent que cela.
  2. Au niveau des statistiques de Google Analytics, il n’est malheureusement pas possible de supprimer les métriques erronées, mais vous pouvez les exclures et permettre de les ignorés à l’avenir.
  3. Au niveau de votre site internet, plusieurs types actions peuvent être mis en place en fonction de votre architecture afin de pouvoir stopper les crawlers spam.

Il y a fort à parier que ces types de spams vont s’intensifier et se complexifier pour rendre leurs détections plus difficiles.

Néanmoins, cet article fournit déjà un éventail de solutions pour stopper ces spammeurs à l’heure actuelle.

Nous ne pouvons qu’encourager Google de réagir au plus vite vis-à-vis du Spam Ghosting de leur outil Google Analytics. Sous peine de voir ses utilisateurs migrés vers d’autres solutions de statistiques Open Source.

Nous espérons que cet article vous aura aidé à mieux comprendre cette tendance et que nos conseils et astuces permettront de ne plus faire des nuits blanches en analysant vos statistiques Analytics.

Si vous avez des questions ou besoins d’aide, n’hésitez pas à contacter notre Agence.