Je ne suis (vraiment) pas un robot : les fermes à CAPTCHA et les défis de la détection des bots CAPTCHA
Qu’est-ce qu’une ferme à CAPTCHA ?
Une ferme à CAPTCHA est un service automatisé que les développeurs de bots peuvent solliciter. Celui-ci leur permet de faire appel à une réserve d’employés humains, généralement dans des pays en voie de développement, pour résoudre les CAPTCHA pour leurs bots. Les fermes à CAPTCHA les plus connues sont 2Captcha et DeathByCaptcha. Ces services sont une réponse directe à la prévalence des CAPTCHA traditionnels dans tous les secteurs d’activité en ligne.
Faciles à mettre en œuvre et souvent gratuits, les CAPTCHA traditionnels sont couramment utilisés comme mesure de protection de base contre les bots. Ils ne sont toutefois pas imperméables aux bots (des données montrent en effet que 50 % des reCAPTCHA réussis sont résolus par des bots ). En effet, les fraudeurs trouvent des moyens de plus en plus sophistiqués pour contourner les CAPTCHA traditionnels, notamment en utilisant l’intelligence artificielle (IA) pour la reconnaissance automatique d’images et de sons.
Une stratégie de plus en plus courante s’appuie sur un dispositif de résolution des problèmes qui a fait ses preuves : le travail humain. Dans un retournement de situation intéressant, il ne s’agit pas ici d’humains assistés par des bots, mais de bots assistés par des humains.
Comment fonctionnent les fermes à CAPTCHA ?
Les développeurs de bots se connectent aux services d’une ferme à CAPTCHA via une API et recrutent automatiquement des êtres humains chargés de résoudre des CAPTCHA. Au lieu d’utiliser l’IA pour résoudre les tests CAPTCHA, les fermes à CAPTCHA distribuent des CAPTCHA à des équipes d’employés humains pour un prix très bas.

Le coût de la main-d’œuvre étant faible dans ces pays, les services de résolution de CAPTCHA peuvent revenir entre 1 à 3 dollars les 1 000 CAPTCHA résolus, en fonction du type de CAPTCHA (CAPTCHA à base d’image ou de texte, reCAPTCHA, hCAPTCHA, GeeTests, etc.)
Suivons la trajectoire d’un bot assisté par une ferme à CAPTCHA qui est confronté à un CAPTCHA. Voici ce qui se passe :
- Un test CAPTCHA bloque le bot.
- Ce dernier lance un appel API à la ferme à CAPTCHA avec en paramètres la clé publique CAPTCHA du site Web et le nom de domaine.
- La ferme à CAPTCHA demande à l’un de ses employés de résoudre le CAPTCHA.
- Il faut environ 30 à 45 secondes pour que le CAPTCHA soit résolu et que le bot obtienne son jeton de réponse.
- Le bot résout le CAPTCHA en soumettant le jeton de réponse.
Les fermes à CAPTCHA permettent aux développeurs de bots de réduire considérablement leurs coûts d’infrastructure. Pour un attaquant menant des cyberattaques de crawling ou de credential stuffing à grande échelle, utiliser de vrais navigateurs automatisés ou des navigateurs sans tête automatisés coûte cher. Cela nécessite d’importantes ressources de calcul (RAM/CPU) par rapport à un bot qui n’utilise qu’une simple bibliothèque de requêtes HTTP comme Curl, le module Python urllib.request, ou la bibliothèque Axios dans Node.js.
Les fermes à CAPTCHA permettent aux développeurs de bots de faire fonctionner leurs bots avec une infrastructure moins coûteuse, ce qui explique que les faibles frais de service offrent un excellent retour sur investissement.
Les bots CAPTCHA ciblent tous les secteurs d’activité.
Si vous pensez que votre site Web n’est pas impacté par les fermes à CAPTCHA, vous vous trompez probablement. Chez DataDome, nous voyons des bots CAPTCHA dans tous les domaines.
Voici trois aperçus de trois secteurs très différents.
1ʳᵉ étude de cas : site Web et application de transports publics
Un client du secteur des transports publics a activé la solution de protection contre les bots de DataDome sur tous ses sites Web et applications.
Les bots pouvaient facilement explorer le site avant qu’une protection ne soit mise en place. Le site était également la cible de fréquentes attaques de credential stuffing attacks. Une fois la protection activée, le volume de trafic de bots a considérablement diminué. Ce constat est fréquent : lorsque les opérateurs de bots se rendent compte que leurs bots sont bloqués, beaucoup vont laisser tomber et chercher une autre victime.
Peu après avoir activé la protection, nous avons constaté que le nombre de CAPTCHA résolus augmentait.

Le volume de CAPTCHA résolus (courbe verte) commence à augmenter autour du 11 avril.
Une analyse superficielle aurait facilement pu conclure que les CAPTCHA résolus étaient des faux positifs, c’est-à-dire des humains identifiés par erreur comme des bots. Cependant, notre moteur de détection a pu déterminer qu’ils provenaient de fermes à CAPTCHA.
En l’espace de six jours, notre système de détection des bots CAPTCHA a invalidé environ 12 000 CAPTCHA résolus par les employés d’une ferme à CAPTCHA. (Et non, notre client n’a reçu aucune plainte d’utilisateurs légitimes bloqués).
2e étude de cas : site Web de comparaison de prix
Notre deuxième étude de cas porte sur un site Web de comparaison de prix à fort trafic qui était constamment la cible de bots CAPTCHA. Entre novembre 2019 et avril 2020, des bots ont tenté de falsifier plus de 265 000 CAPTCHA en utilisant des fermes à CAPTCHA.

Activité importante de fermes à CAPTCHA (courbe rouge) sur un site de comparaison de prix.
Le graphique ci-dessus montre un phénomène intéressant : dans certains cas, le volume de CAPTCHA soumis par les bots dépasse le volume de CAPTCHA affichés. Comment est-ce possible ?
En effet, nous considérons qu’un CAPTCHA a été affiché uniquement lorsque le navigateur a exécuté le JavaScript responsable de son affichage. Cela signifie que les bots qui avaient soumis les CAPTCHA « excédentaires » ne provenaient même pas de véritables navigateurs.
Un site Web s’appuyant exclusivement sur les CAPTCHA pour se protéger des bots aurait été piégé et aurait considéré les visiteurs comme des humains, puisque les CAPTCHA étaient effectivement « résolus ».
Le moteur de détection de DataDome, quant à lui, analyse environ 250 signaux pour chaque requête afin de déterminer si le visiteur est un humain ou un bot. Un CAPTCHA n’est accepté que lorsque nous sommes sûrs qu’il a été résolu par un humain naviguant réellement sur le site Web, et non pas un employé d’une ferme à CAPTCHA.
3e étude de cas : site marchand
Notre dernier exemple est celui d’un grand détaillant qui possède à la fois des magasins en ligne et des magasins physiques. Sur les trois premières semaines de février 2020, ses applications et sites Web ont reçu plus de 26 000 CAPTCHAs contrefaits par des bots.

Activité régulière d’une ferme à CAPTCHA sur un site marchand.
Là encore, un site Web ne disposant d’aucune autre solution de protection contre les bots aurait pris les CAPTCHA résolus pour argent comptant et aurait laissé passer les bots. Cela illustre notre argument principal : les CAPTCHA traditionnels ne sont pas une mesure de protection suffisante contre les bots, à cause des fermes à CAPTCHA.
Détecter des fermes à CAPTCHA
Il est difficile de détecter les bots qui exploitent des fermes CAPTCHA. De nombreux outils de gestion de bots acceptent les CAPTCHA résolus comme preuve que le visiteur est humain. (Nous savons que ce n’est pas toujours le cas.)
D’autres outils de gestion de bots accorderont à l’utilisateur un certain « crédit » de requêtes autorisées, en fonction du cookie de session, après avoir réussi un CAPTCHA traditionnel. Dans ce cas, le bot n’a qu’à envoyer son cookie de session valide avec des requêtes malveillantes pour éviter d’être remis en question pendant un certain temps.
Les CAPTCHA résolus peuvent également servir de mécanisme de rétroaction pour les faux positifs (c’est ce que nous faisons chez DataDome). Si un humain est bloqué par erreur, notre système de détection corrige l’erreur en lui permettant de continuer à naviguer sur le site Web après avoir résolu le CAPTCHA. Notre système de détection des bots utilise l’apprentissage automatique, donc l’algorithme utilise toutes les erreurs pour s’autocorriger.

Le tableau de bord de DataDome indique le nombre de CAPTCHA réussis, ce qui permet aux utilisateurs de contrôler la qualité de la détection.
Les fermes à CAPTCHA rendent la boucle de rétroaction CAPTCHA moins fiable. Si le système accepte les CAPTCHA résolus comme preuve absolue que vous êtes humain, les fermes à CAPTCHA augmenteront le nombre de faux négatifs (bots se faisant passer pour des humains).
D’autre part, si le système de protection contre les bots invalide les CAPTCHA de manière trop rigoureuse, il augmente le risque de faux positifs (blocage d’utilisateurs humains légitimes).
Il est essentiel de détecter avec précision les fermes à CAPTCHA pour bloquer efficacement les mauvais bots tout en préservant l’expérience utilisateur humaine.
Nous ne pouvons pas donner trop de détails sur la façon dont nous détectons les fermes à CAPTCHA. Vous trouverez néanmoins ci-dessous quelques exemples d’approches de haut niveau utilisées par le moteur de détection en temps réel de DataDome pour détecter les bots qui soumettent des CAPTCHA résolus par les employés des fermes à CAPTCHA.
Empreinte
Notre moteur de détection procède toujours à une analyse approfondie des empreintes du navigateur des visiteurs. Si le moteur est sûr et certain que l’utilisateur est un bot (par exemple, s’il détecte un bot Selenium, Puppeteer, ou Playwright bot,) modifié), il invalidera automatiquement le CAPTCHA réussi.
Notre moteur ne se contente pas de détecter les cadres d’automatisation de navigateur bien connus et les navigateurs sans tête. Il analyse également d’innombrables autres signaux d’empreintes avant de prendre sa décision.
Vitesse de résolution
Outre les empreintes du navigateur des visiteurs, nous examinons également la rapidité avec laquelle un visiteur résout un CAPTCHA. Le graphique ci-dessous montre deux fonctions de distribution cumulative : une pour la vitesse à laquelle l’employé d’une ferme à CAPTCHA résout un CAPTCHA, une autre pour la vitesse à laquelle les autres utilisateurs les résolvent.

La ligne bleue croît nettement plus vite que la ligne orange. Cela signifie que les employés des fermes à CAPTCHA résolvent les CAPTCHA beaucoup plus rapidement que les utilisateurs ordinaires. Les employés des fermes à CAPTCHA ont en effet résolu environ 50 % des CAPTCHA en moins de 5 secondes, alors que les utilisateurs normaux n’en ont résolu qu’environ 30 %.
Détection des valeurs aberrantes par l’IA
DataDome s’appuie également sur la détection des valeurs aberrantes par l’IA pour identifier le trafic de résolution de CAPTCHA suspect.
Par exemple, si notre moteur de détection détecte une augmentation soudaine du nombre de navigateurs obsolètes (sur la base de l’agent utilisateur) provenant de pays inhabituels pour un site Web protégé, il signalera ces réponses CAPTCHA comme pouvant provenir de fermes à CAPTCHA. DataDome a récemment analysé 2 millions de CAPTCHA réussis en 3 mois pour mieux comprendre quels pays utilisent le plus d’employés de fermes à CAPTCHA.
Nous avons examiné les adresses IP des employés des fermes à CAPTCHA et les avons associées à des pays particuliers (toute classification plus granulaire que le pays a beaucoup plus de risques d’être inexacte). Voici ce que nous avons trouvé :
Ces données ont été ventilées entre les FAI et les fournisseurs de services de télécommunication des employés des fermes à CAPTCHA.
Le moteur de détection de DataDome utilise les données ci-dessus, ainsi que des techniques heuristiques et statistiques plus avancées basées sur différents signaux (comme le score IP et l’empreinte de l’appareil), pour déterminer s’il doit valider ou non chaque tentative de CAPTCHA.
Si le CAPTCHA résolu est invalidé, le moteur génère un modèle pour bloquer automatiquement les tentatives de CAPTCHA similaires à l’avenir.
Les CAPTCHA ne sont pas une solution miracle contre les bots.
Les CAPTCHA traditionnels ont toujours leur utilité, mais ils ne mettront pas votre site Web ou votre application mobile à l’abri des bots malveillants. Même les CAPTCHA prétendument plus intelligents, notamment reCAPTCHA v2 vs v3, , présentent des inconvénients :
- La difficulté de fixer des seuils de blocage/d’autorisation appropriés.
- La nécessité de surveiller les faux positifs et les faux négatifs (boucle de rétroaction).
- Le risque de bloquer les bons bots légitimes (bots des moteurs de recherche, bots SEO, partenaires techniques, etc.)
Comme nous l’avons vu, les développeurs de bots motivés peuvent facilement, moyennant des coûts très faibles, exploiter des fermes à CAPTCHA pour contourner les systèmes de sécurité qui font trop confiance aux CAPTCHA ou qui les utilisent comme première ligne de défense. En revanche, une solution efficace de protection contre les bots bloquera les bots (notamment ceux qui s’appuient sur des fermes à CAPTCHA) tout en restant invisible pour les utilisateurs humains.
Le logiciel de protection contre les bots de DataDome—(désormais doté de son propre CAPTCHA intégré)—analyse 100 % des requêtes qui arrivent sur les applications de nos clients. Nous traitons 1 000 milliards de signaux par jour, en collectant et en analysant plus de 250 événements différents pour chaque requête afin de distinguer avec précision les humains des bots. Nous protégeons 99,99 % de vos utilisateurs sans jamais leur présenter de CAPTCHA.
Les nouvelles menaces sont identifiées par le biais d’une détection statistique et comportementale, à l’aide de données provenant d’empreintes côté serveur, d’un moteur de rendu JS, d’entrées SDK et d’un suivi de session. Nous utilisons largement l’apprentissage automatique en ligne et détectons un nouveau modèle de mauvais bot toutes les 10 millisecondes. Notre taux de faux positifs est inférieur à 0,01 %, c’est-à-dire que moins d’un CAPTCHA sur 10 000 est vu par un humain.
Si vous souhaitez voir l’activité des bots en temps réel sur votre propre site Web, vous pouvez mettre en place un essai gratuit de DataDome en moins d’une heure (sans engagement, ni carte bancaire). Il vous suffit de créer votre compte gratuit et de suivre les instructions d’installation. Vous pourrez ensuite accéder à votre tableau de bord personnel pour obtenir un aperçu complet du trafic de bons et de mauvais bots, ainsi que du trafic humain sur votre site.
Prêt(e) ? Commencez ici.