Comment détecter les bots malicieux ou « bad bots » ?

Les formes d’attaques menées par des programmes automatisés – ou bots – sont nombreuses. DDOS, spam, réplication de contenu: la plupart des SysAdmins français ont été amenés à s’interroger sur les meilleurs moyens de contrer ces agressions pour sécuriser leurs serveurs Web et assurer des performances optimales pour leurs sites. 

Au fil des ans, les SysAdmins ont appris à maîtriser les outils leur permettant de mieux comprendre et sécuriser leurs serveurs Web contre cette menace.

Qu’il s’agisse de voler du contenu, d’attaquer votre base client ou de gâcher vos investissements publicitaires, l’activité des robots peut avoir un impact réel et direct sur votre business – et nous comptons bien limiter leur influence au maximum.

Mais distinguer le trafic généré par les humains de celui produit par des programmes automatisés – robots ou « bots » – n’est pas une tâche facile.

Les limites des solutions actuelles

Les pratiques actuelles demandent une concentration continue, coûteuse en temps et en énergie. Des solutions, telles que Cloudflare ou Arbor, permettent d’automatiser les défenses contre les attaques distribuées reposant sur le traitement des accès par volumétrie – mais de plus en plus de bots visant à récupérer des contenus, données privées ou à impacter les infrastructures des sites opèrent de façon plus discrète, spécialement pensés pour passer sous le radar de ces solutions.

Les logs comme point de départ

Que ce soit sous Nginx, Varnish, Apache ou IIS, l’analyse des logs est souvent le point de départ pour le blocage à postériori des attaques de bots.

Ce processus, long et fastidieux, permet d’isoler les IP les plus agressives semblant avoir un comportement non approprié afin de les bloquer.

Monitoring des logs

Heureusement pour les SysAdmin, de nouveaux outils ont fait leur apparition au cours des dernières années afin de rendre ce travail plus rapide et intuitif. Parmi les solutions OpenSource, ELK s’est rapidement imposé comme une stak incontournable: Elasticsearch pour l’indexation, Logstash pour l’ingestion des logs, Kibana pour les dashboards de visualisation.

Si la centralisation et l’analyse des logs fait aujourd’hui parti des bonnes pratiques d’un sysadmin, elle ne permet qu’un blocage à postériori, souvent lorsque les dommages sont déjà causés.

Blocage automatique d’IP

Certains SysAdmin ont développé des outils maison, ou mis en place Fail2Ban, une solution bien connu des utilisateurs de Linux. Cet outil, initialement développé pour bloquer les tentatives de bruteforce SSH, permet également de bannir des IP en fonction de seuils. Cette solution permet assez rapidement de bloquer les très grosses attaques orchestrées depuis quelques IP.

Cependant, cela pose plusieurs problèmes car les seuils ne sont pas différenciés.

Les robots légitimes des moteurs de recherche peuvent réaliser un volume élevé de requêtes. Le seul moyen fiable de les authentifier est de réaliser un reverse DNS. Une opération trop couteuse pour être réalisée en temps réel.

D’autre part, des entreprises où certains ISP utilisent une seule IP pour des dizaines, voire centaines d’utilisateurs. Cela peut conduire au blocage involontaire d’utilisateurs légitimes.

Des solutions, telles que Cloudflare ou Arbor, permettent d’automatiser les défenses contre les attaques massives reposant sur le traitement des accès par volumétrie – mais de plus en plus de bots visant à récupérer des contenus, données privées ou à impacter les infrastructures des sites opèrent de façon plus discrète, spécialement pensés pour passer sous le radar de ces solutions.

Toutes les  solutions de blocage basées sur la seule adresse IP est dangereuses et peu efficace contre le vol de contenu et la fraude au click.

Analyse des IP

Outre un nombre de hit, l’adresse IP fournit de précieux éléments :

–       Réputation de l’IP

–       Cohérence de sa localisation par rapport à l’audience du site

–       Nature de son propriétaire (ASN) et son range (CIDR blocks) : hébergeur, FAI, entreprise, organisation

–       L’IP a-t-elle des ports ouverts, quels services y sont hébergés (web, SSH, FTP)

–       Est-ce une IP de proxy, proxy anonyme, TOR

S’ils ne sont pas suffisant en soit pour prendre une décision, l’ensemble de ces critères doivent nourrir des algorithmes de décision temps réel.

Navigateur

Les navigateurs envoient avec chaque requête leur nom : le UserAgent. Cet élément est purement déclaratif. Il est donc évidemment exclu de l’utiliser en whitelist (vous seriez surpris de voir le nombre de GoogleBot qui crawle depuis AWS…). En revanche, la constitution de blacklist est une des solutions pour bloquer les robots les plus basiques qui représentent environ 20% des bad bots. Que ce soit Nginx, Varnish, ou Apache, tous les webserver offre la possibilité de définir des règles basées sur le UserAgent.

Mais il est nécessaire d’aller plus loin en analysant la validité de l’UserAgent.

Certains robots utilisant des générateurs de UserAgent, ils créaient souvent des combinaisons invalide : IE11 sous windows XP. Un excellent moyen de les démasquer. De même les statistiques montrent qu’un trafic de masse en provenance de IE 5.5 ou Netscape est plus qu’improbable en 2016.

Sessions

Que ce soit grâce à l’utilisation de cookies ou à la reconstitution de session grâce à du machine learnin, c’est au niveau de la session que l’analyses et la plus fine. Elle permet d’aller au plus proche de l’utilisateur, qu’il soit légitime, où automatisé. Ainsi, l’analyse comportementale au niveau de la session, est un critère extrêmement efficace.  La plupart des utilisateurs légitimes ont une consommation de data bien différente des robots.

Mais là encore, il y a des exceptions. Certains utilisateurs, que nous qualifierons de « passionnés », peuvent passer 10h sur un seul topic de forum, ou se rendre 10 fois par heure sur une fiche produit pour suivre l’évolution des prix ou commentaires. C’est pourquoi ce seul critère n’est pas suffisant.

Et si l’utilisateur fait 30 refresh de page par minutes ?

Dans ce cas-là, difficile de ne pas agir, car ce comportement est trop proche d’un robot : price monitoring, enchère automatisée, fraude au jeux concours…

Cependant, plutôt que de simplement bloquer la requête, leur proposer un captcha est un excellent moyen de ne pas bloquer ces utilisateurs « compulsifs ».

La big data au service de la protection en temps réel

Grâce à sa technologie et son expertise humaine, DataDome a mis en place une stratégie de détection et d’identification unique et en constant développement pour détecter les bad bots et limiter au maximum leur impact. L’objectif est simple : être capable d’empêcher ces bad bots d’accéder à votre site.

Une fois configuré, le Dôme traque chaque hit reçu sur votre site web, captant des data relatives à chaque visiteur, qu’il soit humain ou non. Ces informations sont comparées avec des patterns complexes pour révéler et bloquer les bad bots. Des critères techniques et comportementaux sont combinés pour distinguer le véritable trafic du frauduleux.

datadome_bot_protection_dashboard

Critères techniques

Nos algorithmes propriétaires commencent par analyser les critères techniques. Chaque hit sur votre site web apporte des éléments précieux que le Dôme intègre immédiatement dans le but de détecter des comportements suspects générés par l’activité des robots.

  • User agent : informations relatives au navigateur web utilisé pour accéder au site web.

  • IP owner : le trafic généré par les humains provient majoritairement des fournisseurs d’accès et des opérateurs téléphoniques alors que le trafic des bots afflue fréquemment depuis les serveurs des hébergeurs.

  • Géolocalisation : le trafic généré par des visiteurs particulièrement actifs et localisés en dehors de vos marchés cibles peut être suspect.

Critères comportementaux

Les critères techniques ne sont pas toujours suffisants pour séparer le bon grain de l’ivraie. Les critères comportementaux nous aident à comprendre les agissements des humains et à mettre en évidence les agissements des robots.

  • Nombre de hits par adresse IP : beaucoup de bots, particulièrement les Web scrapers et les hacker bots, peuvent indexer des milliers de pages en quelques minutes, à la recherche de l’information pertinente ou des failles de sécurité.

  • Vitesse de crawl (nombre de hits par minute) : un robot peut indexer et stocker une page de contenu en un rien de temps. Une adresse IP unique visitant un grand nombre de pages en un laps de temps court révèle fréquemment une activité frauduleuse.

  • Récurrence des hits : les bots suivent des règles strictes et précises en termes de fréquence des visites, vitesse de crawl etc.

  • Nombre de hits générant des erreurs 404 : les bots traquant les failles de sécurité logicielles génèrent des URL spécifiques à des applicatifs, essayant de détecter ainsi une brèche dans l’architecture de votre site web pour le pirater.

    Une adresse IP générant un nombre anormalement élevé d’erreurs 404 est immédiatement considérée comme suspecte.

  • Cookies : contrairement aux humains, les bots n’acceptent pas les cookies de tracking. Cela signifie qu’un visiteur qui, au cours de sa seconde visite sur votre site, ne présente pas de cookie, va immédiatement être identifié comme suspect.

Une fois mise en place, la solution vous décharge ainsi du travail de supervision nécessaire dans les configurations actuelle, traitant en temps réel chaque hit reçu par votre serveur et bloquant automatiquement les tentatives d’accès correspondant aux critères de détection des bots.

Proposée en SaaS, la solution DataDome confronte immédiatement chaque hit à une base de données de plusieurs To, lui permettant de choisir en 2 millisecondes si l’accès au site doit être autorisé ou non.

La solution DataDome est ainsi un outil idéal pour les SysAdmins souhaitant optimiser la sécurité et les performances de leur site, tout en leur permettant de mieux gérer leurs ressources et leur temps grâce à la détection et au blocage automatisés permis par l’outil.

N’hésitez pas à nous contacter pour recevoir plus d’informations sur les spécificités techniques de la solution, ou à l’installer gratuitement pour ajouter immédiatement une couche de sécurité supplémentaire à vos serveurs.

Essayez DataDome gratuitement pendant 30 jours

  • Créez et activez votre compte en moins d’une minute, sans engagement ni carte bancaire
  • Installez le module sur votre site en moins de dix minutes
  • Accédez à votre tableau de bord
  • Découvrez toute l’activité des robot sur votre site : Les good bots, les bad bots et les bots monétisables !