Bots malveillants

Selon certains scientifiques ou entrepreneurs visionnaires comme Elon Musk, l'intelligence artificielle menace à terme l'humanité. Intelligents ou non, les robots ont toujours fasciné et effrayé les humains. Pour tout webmaster qui se respecte, interagir avec des ro(bots) est une activité bien réelle et quotidienne. Sur un petit site (max. 1000 visiteurs par jour), ils peuvent représenter jusqu'à 80% de l'audience totale. Dans le jargon d'internet, les bots sont des logiciels qui effectuent des tâches fastidieuses de manière automatique ou semi-automatique. Certains, comme le fameux Googlebot, indexent les pages web dans la base de données des moteurs de recherche.

Dans le domaine publicitaire, il existe des bots dont le seul but est d'apparaître comme source de visites (spam Referrer) dans Google Analytics pour promouvoir un service auprès du webmaster (qui est bien entendu furieux de voir ses stats pollués ainsi). D'autres plus discrets sont néanmoins bien plus nuisibles. Tous finissent par encombrer votre serveur au détriment des visiteurs humains légitimes. Ils peuvent le ralentir, fausser la mesure d'audience, piller le contenu de votre site pour le dupliquer ailleurs, l'envahir de spam ou permettre à des hackers de découvrir une faille qui peut menacer l'intégrité des données du site (voir cet article de Moz.com pour plus de détails sur ces bad bots). Bref, le contrôle des accès au serveur et le réglage des options de filtres dans Google Analytics, représentent des étapes importantes, mais peu connues, d'une stratégie de référencement.

Consulter son journal de bord

La lutte contre les bots commence par la lecture régulière des accès au serveur et des erreurs dans son journal de bord (log files). Si votre hébergement ne propose pas ces fichiers, changez d'hébergeur ! Voici un exemple d'entrée. Il s'agit d'une visite par Googlebot dont l'identité peut être vérifiée selon une procédure de double résolution DNS préconisée par Google à partir de l'adresse IP indiquée.

monsite.ch 66.249.67.73 -- [29/Apr/2015:00:06:06 +0200] GET /services HTTP/1.1 200 7987 - Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

L'entrée brute de la visite donne de nombreuses informations utiles sur l'utilisateur comme son adresse IP, la date de la visite, la page visitée, la méthode utilisée pour la visiter (ici un GET, mais POST *pourrait* indiquer que des données ont été publiées), le statut de la visite (le code 200 correspond à une visite réussie), la taille du fichier téléchargé et éventuellement la page de provenance du visiteur. Si le visiteur est un gentil bot, il l'indique dans la partie agent utilisateur avec une URL. Cette URL renseigne sur l'utilité du bot (généralement indispensable à la survie de l'humanité) et sur le moyen de lui refuser l'accès au site. Des choix peuvent être faits en fonction de la nature du site. Indexer le site d'un salon de coiffure à Genève dans les moteurs de recherche Yandex (Russie) ou Baidu (Chine) n'est pas indispensable pour la majorité des internautes de ces pays. On peut donc ajouter une directive dans un fichier robots.txt à la racine du site pour interdire aux robots de ces moteurs l'accès à d'autres pages du site.

User-agent: Baiduspider
User-agent: Yandex
Disallow: /

Il est possible de télécharger une liste de plus de 650 agents utilisateur indésirables à mettre dans votre fichier robots.txt ici.

Que faire avec les mauvais éléments ?

Bien entendu, les méchants bots se fichent comme d'une guigne du fichier robots.txt. On va rejeter leur accès au serveur de manière plus radicale en fonction de la signature qu'ils laissent dans le fichier log. Sur les serveurs les plus courants de type Apache, le webmaster va créer un pare-feu en écrivant des directives dans un fichier nommé .htaccess qui modifie le fonctionnement du serveur au niveau des différents répertoires où sont stockés les fichiers. Il est par exemple possible de rejeter les utilisateurs malveillants en fonction de critères comme leur adresse IP, leur nom d'agent (logiciel), leur provenance ou l'URL de la visite. En général, les utilisateurs indésirables se repèrent facilement, car ils tentent d'ajouter des paramètres dans les URL du site pour trouver des portes dérobées, des fichiers de paramétrage, d'anciennes sauvegardes ou injecter du code malveillant et provoquent souvent des erreurs de type 403 ou 404. Si l'aspect technique vous rebute ou si vous débutez, je conseille vivement d'utiliser un logiciel de sécurité comme Akeeba Admin Tools Pro, qui va écrire pour vous les directives dans le fichier .htaccess, effectuer des tests de sécurité, vous donner des statistiques sur les accès bloqués et des informations utiles pour améliorer la sécurité globale de votre site (disponible pour Joomla et Wordpress). Il existe aussi sur internet des listes de bad bots qu'il est possible de recopier dans son fichier .htaccess. Lorsque les adresses IP utilisées par les bad bots sont dénoncées publiquement sur des sites comme abuseip.com ou Project Honey Pots, les données peuvent être ensuite exploitées par les sites web pour bloquer préventivement ces mauvais éléments.

Comment filtrer les bots dans Google Analytics ?

Contrairement au journal de bord qui contient les données brutes du serveur, Google Analytics analyse l'audience du site à partir d'un code Javascript intégré aux pages du site. Il est le plus souvent utilisé pour analyser les comportements des visiteurs humains sur le site dans un but marketing. Il est donc important de filtrer les robots des visites, même si le nombre total de visiteurs va probablement diminuer dans vos statistiques. Pour ce faire, il faut cocher "Exclure tous les appels provenant de robots connus" dans la partie Administration > Paramètres de la vue.

Filtrer les bots dans Google Analytics
Filtrer les bots dans Google Analytics