Internet est un océan d'informations qui change et s'étend continuellement. Le rôle essentiel dans l'exploration et la collecte de ces vastes données est joué par les bots de web crawling, communément appelés bots, qui sont des programmes automatisés. Ces bots qui parcourent le web, indexent des informations, collectent des données et offrent divers services sont des membres importants de l'écosystème web. Cependant, tous les bots ne sont pas bénéfiques pour le web. Il existe parfois des bots nuisibles qui peuvent causer des dommages aux sites web ou être utilisés à des fins malveillantes.
Dans cet article, nous allons examiner les types et caractéristiques des bots célèbres que vous rencontrez souvent sur le web, comment distinguer les bots bénéfiques des bots nuisibles, ainsi que des méthodes efficaces spécialisées pour protéger votre site web contre les bots nuisibles.
Bots célèbres souvent observés sur le web (Bots bénéfiques)
La plupart du trafic web est généré par des bots plutôt que par des humains. Parmi ceux-ci, les bots les plus importants et bénéfiques comprennent :
1. Bots des moteurs de recherche (Search Engine Bots)
Ce sont les bots les plus courants et les plus importants. Ils explorent les pages web pour collecter du contenu, puis l'ajoutent à l'index des moteurs de recherche pour aider les utilisateurs à trouver des informations.
-
Googlebot (Google) : Le crawler web emblématique de Google. Il explore presque toutes les pages du web pour mettre à jour les résultats de recherche et fournit des données aux services Google (cartes, actualités, etc.). Il est affiché dans
User-Agent
commeGooglebot
ouMediapartners-Google
. -
Bingbot (Microsoft Bing) : Le crawler du moteur de recherche Bing de Microsoft. Il est affiché dans
User-Agent
commeBingbot
. -
Baidu Spider (Baidu) : Le crawler du principal moteur de recherche chinois, Baidu. Si vous ciblez le marché chinois, les visites de Baidu Spider sont également importantes. Il est affiché dans
User-Agent
commeBaiduspider
. -
Yandex Bot (Yandex) : Le crawler du principal moteur de recherche russe, Yandex. Il est affiché dans
User-Agent
commeYandexBot
. -
Yeti (Naver) : Le crawler emblématique du moteur de recherche Naver en Corée du Sud. Il recueille les résultats de recherche adaptés au marché coréen et est affiché dans
User-Agent
commeYeti
.
2. Bots des médias sociaux (Social Media Bots)
Utilisés pour générer un aperçu (titre, description, image) d'un lien partagé sur les réseaux sociaux.
-
Facebook External Hit (Facebook) : Récupère les informations de la page lors du partage d'un lien sur Facebook. Il est affiché dans
User-Agent
commefacebookexternalhit
. -
Twitterbot (Twitter/X) : Génère un aperçu d'un lien sur Twitter (X). Il est affiché dans
User-Agent
commeTwitterbot
. -
Slackbot (Slack) : Génère un aperçu lorsque le lien est partagé sur Slack. Il est affiché dans
User-Agent
commeSlackbot
.
3. Bots de surveillance/analyse (Monitoring/Analytics Bots)
Utilisés pour surveiller l'état, les performances, les vulnérabilités de sécurité des sites web, ou pour l'analyse du trafic.
-
UptimeRobot, Pingdom : Surveille le temps de fonctionnement d'un site web et envoie une notification lorsqu'il est en panne.
-
Site Crawlers (Screaming Frog, Ahrefsbot, SemrushBot, etc.) : Les outils SEO analysent les sites web pour identifier les améliorations SEO ou collecter des données d'analyse concurrentielle. Le nom de l'outil est inclus dans
User-Agent
. -
Ahrefsbot (Ahrefs) : Ahrefs est l'un des crawlers d'analyse SEO les plus puissants évoqués ci-dessus. Ahrefsbot est le crawler commercial le plus actif sur le web. Il collecte une vaste quantité de données SEO telles que les backlinks, le classement des mots-clés, le trafic organique et fournit ces données aux utilisateurs des services Ahrefs. En particulier, il explore largement Internet pour construire une base de données de backlinks, ce qui en fait l'un des bots les plus notables après
Googlebot
dans les logs de serveurs web. Il est affiché dansUser-Agent
commeAhrefsBot
.
Distinguer les bots nuisibles des bots bénéfiques
L'impact du trafic bot sur un site web varie considérablement en fonction des objectifs et des comportements des bots. Les bots nuisibles peuvent épuiser les ressources d'un site web, voler des données ou exploiter des vulnérabilités de sécurité.
Caractéristiques des bots bénéfiques
-
Respect du
robots.txt
: La plupart des bots bénéfiques respectent le fichierrobots.txt
du site web et suivent les règles spécifiées (zones autorisées/interdites pour le crawling, vitesse de crawling, etc.). -
Modèle de demande normal : Maintiennent des délais appropriés entre les requêtes afin de ne pas surcharger le serveur.
-
User-Agent
légitime : Utilisent une chaîneUser-Agent
claire et connue, souvent incluant des informations sur le propriétaire du bot (par exemple,Googlebot/2.1 (+http://www.google.com/bot.html)
). -
Adresse IP authentique : Envoient les requêtes depuis la plage d'adresses IP réelle du propriétaire du bot. (Par exemple, Googlebot utilise la plage IP possédée par Google)
Caractéristiques des bots nuisibles
-
Ignorer le
robots.txt
: Tentent d'accéder sans autorisation à des zones interdites et ignorent le fichierrobots.txt
. -
Modèle de demande anormal : Génèrent des requêtes répétées en très peu de temps pour certaines pages (tentatives d'attaque DDoS), ou un taux de crawling anormalement rapide, surchargeant ainsi le serveur.
-
User-Agent
altéré : Usurpent leUser-Agent
des bots bénéfiques (comme Googlebot) pour se dissimuler, ou utilisent unUser-Agent
généré aléatoirement. -
Adresse IP inconnue : Utilisent des serveurs proxy ou VPN, ou des ordinateurs compromis pour cacher leur adresse IP ou la changer fréquemment.
-
Activités malveillantes :
-
Content Scraping : Copient le contenu d'un site web sans autorisation pour le republier ou le revendre sur un autre site.
-
Inventory Sniping : Exploitent rapidement les stocks de produits sur des sites de commerce électronique pour faire des achats massifs.
-
Credential Stuffing : Tentent de se connecter en utilisant des informations de compte volées sur d'autres sites web.
-
Spam Registration : S'inscrivent automatiquement avec du contenu spam sur des forums ou dans des sections de commentaires.
-
DDoS Attack : Génèrent un trafic massif pour paralyser un site web.
-
Vulnérabilité Scanning : Scannent automatiquement les vulnérabilités de sécurité connues d'un site web pour trouver des points d'attaque.
-
Comment bloquer efficacement les bots nuisibles
Les bots malveillants ignorent des règles telles que robots.txt
et cherchent à infiltrer les sites web en se faisant passer pour des utilisateurs réels. Ainsi, pour les bloquer, il est nécessaire de détecter leurs comportements anormaux et de sélectionner uniquement les requêtes à bloquer avec des stratégies avancées.
1. Blocage basé sur l'adresse IP et le User-Agent
(première ligne de défense limitée)
Si le trafic malveillant provient d'une adresse IP ou d'une plage IP spécifique de manière continue ou utilise clairement une chaîne User-Agent
nuisible, cela peut être temporairement efficace.
-
Configuration serveur web (Apache, Nginx) :
- Blocage d'adresses IP spécifiques :
# Exemple Nginx
deny 192.168.1.100;
deny 10.0.0.0/8;
- **Blocage d’`User-Agent` nuisibles:**
# Exemple Apache .htaccess
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "BadBotString|AnotherBadBot" [NC]
RewriteRule .* - [F,L] # Retourne 403 Forbidden
Limitation : Les adresses IP peuvent être dynamique ou facilement contournées par des proxys, VPN ou réseaux Tor. Les bots malveillants peuvent tenter des attaques en changeant leur IP presque indéfiniment, rendant le blocage basé sur l'IP difficile à gérer et peu durable sur le long terme. De plus, User-Agent
peut facilement être usurpé, rendant cette méthode insuffisante à elle seule pour bloquer des bots malveillants sophistiqués.
2. Limitation du taux de requêtes (Rate Limiting)
Si le nombre de requêtes provenant d'une adresse IP, d'un User-Agent
, ou d'une URL spécifique augmente de manière anormale en peu de temps, ces requêtes peuvent être limitées ou bloquées. Cela est efficace pour prévenir les attaques DDoS ou les tentatives de scraping excessif.
- Configuration du serveur web (Exemple Nginx) :
# Dans le bloc http Nginx
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;
# Dans un bloc server ou location
location / {
limit_req zone=mylimit burst=10 nodelay; # Permet 5 requêtes par seconde, jusqu'à 10 de manière ponctuelle
# ...
}
Difficulté et Risque : La limitation du taux de requêtes est très utile, mais décider d'un seuil adéquat est très délicat. Si le seuil est fixé trop sévèrement, cela peut limiter le trafic des utilisateurs normaux ou des bots de moteurs de recherche bénéfiques, réduit la convivialité du service. Inversement, s'il est trop lâche, cela peut permettre aux bots malveillants d'atteindre leurs objectifs. Un suivi constant et des ajustements basés sur une compréhension approfondie des caractéristiques de service et des modèles de trafic normaux sont nécessaires.
3. Mise en place d'un système de détection basée sur les comportements et des défenses personnalisées (la stratégie la plus efficace)
C'est la méthode la plus avancée et efficace. Les bots malveillants peuvent masquer leur IP ou User-Agent
, mais leur comportement sur le site web se manifeste souvent de manière distincte. Analyser ces comportements anormaux pour identifier les bots malveillants et construire un système de défense basé sur ces modèles est la clé.
-
Importance de la surveillance du trafic et de l'analyse des logs :
Les logs du serveur web (Access Log) sont la source de données la plus importante pour comprendre le comportement des bots. Il est essentiel de prendre l'habitude d'examiner et d'analyser les logs régulièrement (au moins une fois par jour). Grâce à l'analyse des logs, vous pouvez détecter des comportements anormaux de bots malveillants, tels que :
-
Chemins d'exploration anormaux : Ordres de page qui ne suivent généralement pas un parcours humain, déplacements de page anormalement rapides, accès répétés à certaines pages.
-
Tentatives répétées d'actions spécifiques : Échecs répétés de connexion, tentatives de connexion avec des comptes inexistants, soumissions infinies de formulaires pour des systèmes de réservation.
-
Demandes d'URL suspectes : Tentatives d'accès répétées à des chemins d'exploitation de vulnérabilités connues (ex:
/wp-admin/
,/phpmyadmin/
,.env
, etc.) qui n'existent pas sur le site. -
Analyse des en-têtes HTTP : Combinaisons ou ordres anormaux des en-têtes HTTP, en-têtes manquants, etc.
-
-
Exemples de modélisation du comportement des bots malveillants :
Il est nécessaire d'identifier les modèles d'action spécifiques des bots malveillants que l'on découvre dans les logs et de créer une logique de défense basée sur ceux-ci.
-
GET /cgi-bin/luci/;stok=.../shell?cmd=RCE
- Description : Tentative d’attaque exploitant une vulnérabilité d'exécution de code à distance (RCE) dans le panneau d'administration
OpenWrt
. Cela concerne principalement les vulnérabilités des systèmes basés sur Linux utilisés dans les routeurs ou dispositifs embarqués.
- Description : Tentative d’attaque exploitant une vulnérabilité d'exécution de code à distance (RCE) dans le panneau d'administration
-
POST /wp-login.php
(tentatives répétées de connexion)- Description : Tentatives d'attaques par force brute sur la page d'administration de WordPress ou tentatives de Credential Stuffing.
-
GET /HNAP1/
- Description : Tentatives de scan et d'attaque cherchant à exploiter la vulnérabilité HNAP1 (Home Network Administration Protocol) découvertes dans les routeurs D-Link.
-
GET /boaform/admin/formLogin
- Description : Tentatives d'intrusion sur le panneau de connexion des administrateurs du serveur web
Boa
utilisé sur des routeurs anciens ou webcams.
- Description : Tentatives d'intrusion sur le panneau de connexion des administrateurs du serveur web
-
GET /.env
ouGET /.git/config
- Description : Tentatives d'accès au fichier
.env
(variables d'environnement) ou au répertoire.git
pour tenter de voler des informations sensibles.
- Description : Tentatives d'accès au fichier
En détectant ces modèles, il est possible de bloquer les requêtes concernées ou d'ajouter temporairement l'IP à une liste noire. Cela peut être mis en œuvre côté serveur via des middlewares (ex: middleware Django) ou les configurations des serveurs web (modules
map
de Nginx,mod_rewrite
d'Apache, etc.). -
-
Test d'exécution de JavaScript :
La plupart des bots malveillants ne simulent pas parfaitement l'exécution de JavaScript, comme un véritable navigateur. Des méthodes telles que l'incitation à exécuter un code JavaScript caché (par exemple, incitation à cliquer sur un certain élément DOM), fingerprinting via canvas, ou vérification des appels d'API de navigateur peuvent être utilisées pour identifier un bot, bloquant les clients échouant à cette exécution.
4. Utilisation d'un honeypot
Un honeypot est un piège intentionnel conçu pour attirer et identifier les bots malveillants. Il cache des éléments sur une page web qui ne sont pas visibles aux utilisateurs normaux, mais qui sont conçus pour être explorés ou interagi par des bots automatisés.
-
Principe de fonctionnement :
-
Liens/Champs cachés : Utilisation du CSS (
display: none;
,visibility: hidden;
,height: 0;
, etc.) ou création dynamique via JavaScript pour déplacer des éléments hors de l'écran, créant ainsi des liens ou des champs de formulaire totalement invisibles pour l'utilisateur. -
Incitation au comportement des bots : Une personne utilisant un navigateur web normal ne pourra pas voir cet élément, elle ne pourra donc pas interagir. Cependant, les bots malveillants qui analysent mécaniquement tous les liens ou formulaires de la page tenteront d'interagir avec cet élément caché (par exemple, en remplissant un champ de formulaire caché ou en cliquant sur un lien caché).
-
Identification des bots malveillants : Si une valeur est saisie dans un champ caché ou s'il y a une requête d'accès à un lien caché, cela peut être considéré comme une action de bot malveillant.
-
Blocage automatique : Les adresses IP ou les sessions ayant engagé de telles actions détectées peuvent être ajoutées automatiquement à une liste noire ou bloquées.
-
-
Exemple d'implémentation :
<form action="/submit" method="post">
<label for="username">Nom d'utilisateur :</label>
<input type="text" id="username" name="username">
<div style="position: absolute; left: -9999px;">
<label for="email_hp">Laissez ce champ vide :</label>
<input type="text" id="email_hp" name="email_hp">
</div>
<label for="password">Mot de passe :</label>
<input type="password" id="password" name="password">
<button type="submit">Connexion</button>
</form>
Le serveur considère une requête malveillante si le champ `email_hp` a une valeur.
- Avantage : Permet d'identifier efficacement les bots malveillants sans nuire à l'expérience utilisateur. Relativement simple à implémenter et difficile à usurper.
5. Pare-feu d'application web (WAF) et solutions de gestion des bots spécialisées
Pour les sites web de grande envergure ou pour des services sensibles, l'utilisation de solutions WAF professionnelles (Cloudflare, AWS WAF, Sucuri, etc.) ou de solutions de gestion des bots (Cloudflare Bot Management, Akamai Bot Manager, PerimeterX, etc.) est la plus efficace. Ces solutions :
-
Analyse comportementale avancée : Analyser le trafic en temps réel à l'aide d'apprentissage automatique pour détecter les différences subtiles de comportement entre les humains et les bots.
-
Intelligence sur les menaces : Utiliser des bases de données de modèles d'attaques mondiaux et des listes noires d'adresses IP pour identifier des menaces étendues.
-
Minimisation des faux positifs : Utiliser des algorithmes sophistiqués pour réduire au minimum les faux positifs pour les bots bénéfiques et les utilisateurs normaux tout en filtrant uniquement les bots malveillants.
-
Réponses automatisées : Prendre des mesures pour bloquer automatiquement les bots malveillants détectés, comme des défis.
Conclusion : Stratégie de défense contre les bots active et multicouche
Les bots malveillants évoluent continuellement et cherchent à attaquer les sites web. Le robots.txt
ne sert que de guide pour les bots honnêtes, mais ne peut pas servir de bouclier contre les intrus. Ainsi, pour assurer la sécurité et la stabilité de votre site web, il est essentiel de analyser et identifier les comportements des bots en vue de sélectionner uniquement les bots malveillants à bloquer par une stratégie de défense active et multicouche.
En adoptant une modélisation des comportements anormaux via l'analyse des logs, en réglant finement la limitation du taux de requêtes, en utilisant des honeypots, et si nécessaire, en adoptant des solutions de gestion des bots spécialisées ou des WAF, vous pouvez protéger votre site web de manière plus sécurisée tout en maintenant une interaction fluide avec les bots bénéfiques et en offrant aux utilisateurs un service agréable. Dans quelle mesure votre site web est-il vulnérable aux menaces des bots ? Il est temps de réfléchir à des stratégies de défense adaptées.
Aucun commentaire.