La détection des bots est le processus d'identification de l'origine du trafic vers un site web, une application ou une API, qu'il provienne d'un logiciel automatisé ou d'un humain. Elle permet également de séparer les bots nuisibles des légitimes, tels que les robots d'exploration des moteurs de recherche. Les systèmes de détection évaluent les signaux provenant du réseau, du client et du comportement de l'utilisateur. Le résultat détermine si une demande est autorisée, contestée ou bloquée.
Les couches de la détection des bots
- Signaux au niveau du réseau : réputation IP, filtrage ASN
- Signaux au niveau du client : empreintes TLS et de navigateur, cohérence des en-têtes
- Signaux comportementaux : télémétrie comportementale, limites de taux conscientes de la session
Une demande qui passe une couche peut toujours être signalée par une autre.
Certains signaux peuvent être vérifiés les uns par rapport aux autres. L'OWASP note que les en-têtes Client Hints sont déclarés par le client mais peuvent être vérifiés par rapport à son empreinte TLS.
Vérification des bons bots
Tout le trafic automatisé n'est pas indésirable. Les robots d'exploration des moteurs de recherche, par exemple, récupèrent des pages pour qu'elles apparaissent dans les résultats de recherche. Comme tout bot peut prétendre être un robot d'exploration dans son User-Agent, les sites vérifient plutôt l'adresse IP. Google documente deux façons de vérifier Googlebot :
- Vérification DNS : Effectuer une recherche DNS inversée sur l'IP. Confirmer que le nom d'hôte se termine par googlebot.com, google.com ou googleusercontent.com. Ensuite, effectuer une recherche directe et confirmer qu'elle renvoie l'IP d'origine.
- Plages IP : Faire correspondre l'IP avec les listes de plages IP de robots d'exploration que Google publie en JSON.
Menaces ciblées par la détection des bots
Le projet OWASP Automated Threats to Web Applications nomme 21 menaces automatisées. Des exemples incluent :
- Credential stuffing (OAT-008) : Tentatives de connexion massives testant des paires de noms d'utilisateur et de mots de passe volés.
- Scraping (OAT-011) : Collecte de contenu d'application ou d'autres données pour une utilisation ailleurs.
- Scalping (OAT-005) : Obtention de biens et services à disponibilité limitée ou préférés par des méthodes déloyales.
- Création de comptes (OAT-019) : Création de nombreux comptes pour une utilisation abusive ultérieure.