DataDome

Comment détecter les attaques de scraping web ?

Table des matières

Qu’est-ce que le scraping ?

Les attaques par scraping se produisent lorsque des bots collectent automatiquement des données depuis votre site web, souvent à des fins malveillantes (revente de contenu, s’informer sur vos tarifs pour proposer des prix inférieurs etc.). Les bots de scraping imitent de vrais utilisateurs sur des navigateurs standards pour accéder à vos sites web et y extraient les données que le programmeur du bot souhaite stocker dans des bases de données locales.

En quoi les scrapers diffèrent-ils des autres types de bots ?

Contrairement à des bots comme les scalpers, qui n’ont pas besoin d’effectuer de nombreuses requêtes, les scrapers doivent souvent effectuer des millions de requêtes pour scraper des pages web. Les bots de scraping sont conçus pour être rentables malgré le volume élevé de requêtes qu’ils exécutent.

Par exemple, les scrapers peuvent utiliser des proxies de qualité inférieure par rapport aux bots scalpers, mais ils ont tendance à utiliser les mêmes technologies sous-jacentes que les autres bots. Les scrapers peuvent être basés sur des navigateurs automatisés (headless) où ils peuvent tirer parti de clients HTTP comme aiohttp et Axios.

Les bots de scraping peuvent être conçus sur mesure ou à partir de frameworks spécialisés, tels que Scrapy.

De nombreux bots-as-a-service (BaaS) sont également spécialisés pour le scraping : tout ce qu’ils ont à faire est d’utiliser une API pour scraper vos sites web.

Comment détecte-t-on les attaques de scraping ?

Comme les autres types d’attaques, les attaques de scraping peuvent être détectées en utilisant trois principaux types de signaux :

  1. Comportement
  2. Réputation
  3. Signature

Comportement

Les signaux comportementaux peuvent être collectés à la fois côté serveur et côté client.

Côté serveur, le moteur analyse la manière dont un utilisateur navigue sur un site web ou une application mobile pour détecter des anomalies suspectes dans le nombre de requêtes au fil du temps, car un bot peut faire des requêtes beaucoup plus rapidement qu’un humain.

Côté client, JavaScript (pour les sites web) ou un SDK (pour les applications mobiles) collectera des détails sur les événements dans le navigateur, tels que les clics, les événements tactiles, la vitesse de frappe et les mouvements de la souris. Ces détails peuvent ensuite être analysés par des modèles de machine learning pour détecter si les interactions sont cohérentes avec un comportement humain.

Réputation

Les signaux de réputation sont calculés uniquement côté serveur, à différents niveaux de granularité (comme l’adresse IP ou la session utilisateur) et différentes fenêtres temporelles (minutes, heures, jours ou mois).

Avec les signaux de réputation, les moteurs de détection peuvent utiliser des connaissances préalables pour ajuster les décisions. Par exemple, si un certain système autonome est souvent lié au scraping, les modèles de machine learning décideront d’être plus agressifs avec le blocage du trafic provenant de ce système.

Puisque les scrapers doivent échelonner leurs attaques pour scraper des milliers ou des millions de pages, ils ont tendance à s’appuyer fortement sur les proxies. Les scrapers les plus avancés utilisent des proxies résidentiels pour accéder à des adresses IP similaires à celles des utilisateurs humains. C’est pourquoi il est important de pouvoir détecter les proxies pour arrêter les scrapers.

Signature

Les signaux de signature sont collectés à la fois côté serveur et côté client, et peuvent inclure :

  • Empreintes HTTP : détails sur les en-têtes HTTP (côté serveur).
  • Empreintes TLS : métadonnées extraites pendant la poignée de main TLS (côté serveur).
  • Empreintes de navigateur : JavaScript (JS) collecte des informations sur le système d’exploitation (OS), le navigateur et l’appareil (côté client, dans le navigateur).
  • Empreintes mobiles : un SDK collecte des informations sur l’OS et l’appareil (côté client, dans une application mobile).

La détection la plus approfondie utilisera toujours les empreintes de navigateur et empreintes mobiles, car des solutions avancées, réalisées avec JS ou un SDK, peuvent détecter les navigateurs headless populaires et les cadres d’automatisation, comme Chrome headless, Puppeteer, Playwright et Selenium.

Les challenges côté client peuvent également aider à détecter et à suivre les cadres de bots modifiés fréquemment utilisés par les scrapers qui visent à contourner les techniques traditionnelles de détection de bots, en particulier :

Questions et idées reçues sur la détection et la protection contre le scraping

La plupart des sites web et des applications mobiles mettent en œuvre des contre-mesures contre les scrapers, qui peuvent inclure des CAPTCHAs, la limitation de taux, des pare-feu d’application web (WAFs), etc. Mais certaines des contre-mesures communes ne suffisent pas à protéger votre site web contre les scrapers sophistiqués—et pire, certaines d’entre elles pourraient engendrer des faux positifs.

Les CAPTCHAs traditionnels sont-ils suffisants contre les scrapers ?

Non. La plupart des scrapers peuvent contourner les CAPTCHAs traditionnels, en utilisant la reconnaissance d’image ou audio basée sur l’IA ou des fermes à CAPTCHA dans lesquelles des travailleurs humains résolvent les challenges CAPTCHA pour le compte des bots.

De plus, présenter des CAPTCHAs à vos utilisateurs (aka « faux positifs ») dégrade significativement l’expérience utilisateur de vos vrais utilisateurs humains.

Utiliser une limitation de taux basée sur l’IP sur mon site web et les points de terminaison de mon API me protège-t-il ?

Bien que la limitation de taux basée sur l’IP puisse arrêter les bots les plus simples (ceux qui opèrent à partir d’une seule ou de quelques IP), elle ne capturera pas les scrapers les plus sophistiqués. Les scrapers sophistiqués utilisent des proxies pour distribuer leurs attaques à travers des milliers d’adresses IP différentes. Ainsi, chaque adresse IP ne fait que quelques requêtes, ce qui permet à l’attaquant de rester sous le seuil de limitation de taux.

De plus, bloquer une adresse IP entière est dangereux car de nombreuses adresses IP sont fortement partagées. En fait, la plupart des adresses IP mobiles sont partagées par des centaines ou des milliers d’utilisateurs à tout moment. Ainsi, bloquer l’IP peut entraîner de nombreux faux positifs (mettant au défi les vrais utilisateurs humains) qui nuisent à votre UX et frustrent vos consommateurs.

Bloquer tout le trafic provenant des IP de centres de données suffit-il à arrêter les scrapers ?

Malheureusement, bloquer tout le trafic IP des centres de données n’est pas suffisant, et pire, cela déclenchera des faux positifs. Beaucoup de trafic légitime provient des IP de centres de données, y compris les utilisateurs de VPN et les gros proxies d’entreprise. Vous ne voulez pas bloquer vos utilisateurs légitimes.

De plus, les attaquants ont accès à des millions de proxies résidentiels, pas seulement des proxies de centres de données. Plusieurs services de proxy fournissent un accès à des IP résidentielles pour quelques dollars par gigaoctet de bande passante. Ainsi, les attaquants peuvent utiliser des IP appartenant à des fournisseurs de services Internet (ISPs) bien connus tels que Comcast, AT&T et Verizon, tout comme vos vrais utilisateurs.

Si j’utilise le géoblocage pour bloquer tout le trafic provenant de pays où mon entreprise n’opère pas, les scrapers peuvent-ils le contourner ?

Bien que le géoblocage puisse arrêter les scrapers simples opérant à partir d’une seule IP ou de proxies de centres de données étrangers, cela n’arrêtera pas les attaquants plus sophistiqués qui utilisent des proxies résidentiels. Les réseaux de proxies résidentiels permettent aux fraudeurs de sélectionner des proxies situés dans des pays spécifiques.

Ce que nous observons chez DataDome, c’est que la plupart des attaquants sélectionnent des proxies qui sont situés dans le même pays que les sites web qu’ils ciblent, ce qui les aide à paraître plus humains et à contourner les techniques de géoblocage.

Le géoblocage engendre également des faux positifs, car certains de vos utilisateurs peuvent voyager ou vivre temporairement à l’étranger. De plus, gardez à l’esprit que la localisation des adresses IP n’est pas précise à 100 %. Ainsi, il pourrait y avoir une mauvaise classification des pays dans la base de données de localisation des IP, et le géoblocage peut créer des faux positifs sur ces IP.

Mon WAF peut-il prévenir le scraping ?

Non, pas entièrement. Les WAFs ne sont pas à la hauteur des bots de scraping sophistiqués d’aujourd’hui (et peuvent avoir du mal à prévenir le scraping de prix) car les WAFs sont conçus pour détecter et filtrer le trafic malveillant en utilisant un ensemble de règles binaires. Bien que les bots simples d’hier et les menaces connues puissent être limités par les règles désignées dans votre WAF, les scrapers ont maintenant un accès facile à des bots sophistiqués qui utilisent des proxies et le machine learning pour imiter le comportement humain.

Les scrapers sophistiqués d’aujourd’hui peuvent facilement contourner les outils de sécurité basés sur des règles comme les WAFs.

Détectez et prévenez les attaques de scraping avec DataDome

Le scraping est l’une des attaques de bots les plus répandues sur Internet aujourd’hui. Même si vous n’avez pas encore remarqué d’attaques de scraping sur votre site web, application mobile ou API, les scrapers sont le type d’attaque de bot le plus commun sur internet. Nos données montrent que le scraping émerge comme une menace passerelle, menant à des attaques à plus fort impact, telles que le scalping.

Une solution de protection contre les bots en temps réel comme DataDome détectera les attaques de scraping et vous protégera, le tout sans ajouter de friction à l’expérience utilisateur. Essayez DataDome gratuitement pendant 30 jours et obtenez un aperçu en temps réel avec une visibilité détaillée de toutes les menaces automatisées à vos applications mobiles, sites web et/ou APIs. Aucune carte de crédit requise. Créez un compte gratuit ici. (Pas de scrapers autorisés !)