BLOG

Comment les cybercriminels contournent le CAPTCHA

 Vignette
Publié le 12 juillet 2017


Le CAPTCHA (test de Turing public entièrement automatisé pour distinguer les ordinateurs des humains) a été conçu à l'origine pour empêcher les robots, les logiciels malveillants et l'intelligence artificielle (IA) d'interagir avec une page Web. Dans les années 90, cela signifiait empêcher les robots spammeurs. De nos jours, les organisations utilisent CAPTCHA pour tenter d’empêcher des attaques automatisées plus sinistres telles que le bourrage d’identifiants.

Cependant, presque aussitôt après l’introduction du CAPTCHA, les cybercriminels ont développé des méthodes efficaces pour le contourner. Les gentils ont répondu avec des CAPTCHA « renforcés » mais le résultat reste le même : le test qui tente d’arrêter l’automatisation est contourné par l’automatisation.

Il existe plusieurs façons de contourner le CAPTCHA. Une méthode courante consiste à utiliser un service de résolution CAPTCHA, qui utilise une main-d’œuvre humaine à faible coût dans les pays en développement pour résoudre les images CAPTCHA. Les cybercriminels s'abonnent à un service de solutions CAPTCHA, qui s'intègrent dans leurs outils d'automatisation via des API, renseignant les réponses sur le site Web cible. Ces entreprises douteuses sont si omniprésentes que nombre d’entre elles peuvent être trouvées grâce à une recherche rapide sur Google, notamment :

  • Mort par CAPTCHA
  • 2Captcha
  • Kolotibablo
  • ProTypers
  • Anti-porte

Cet article utilisera 2Captcha pour démontrer comment les attaquants intègrent la solution pour orchestrer des attaques de bourrage d'informations d'identification.

2Captcha

En accédant au site 2Captcha.com, le visiteur est accueilli par l'image ci-dessous, lui demandant si le visiteur souhaite 1) travailler pour 2Captcha ou 2) acheter 2Captcha en tant que service.

Comment les cybercriminels contournent le CAPTCHA

Option 1 – Travailler pour 2Captcha

Pour travailler pour 2Captcha, créez simplement un compte en fournissant une adresse e-mail et un compte PayPal pour les dépôts de paiement. Lors d'un test, un compte a été validé en quelques minutes.

Les nouveaux travailleurs doivent suivre une formation unique qui leur apprend à résoudre rapidement les CAPTCHA. Il fournit également des conseils sur les cas où la casse a ou n'a pas d'importance. Après avoir terminé la formation avec suffisamment de précision, le travailleur peut commencer à gagner de l'argent.

Comment les cybercriminels contournent le CAPTCHA

Après avoir sélectionné « Démarrer le travail », le travailleur est redirigé vers l’écran de l’espace de travail, illustré ci-dessus. Le travailleur reçoit ensuite un CAPTCHA et est invité à soumettre une solution. Une fois le problème résolu correctement, l’argent est déposé dans un « porte-monnaie » électronique et le travailleur peut demander un paiement quand il le souhaite. Il semble que le nombre de CAPTCHA qui apparaissent dans l'espace de travail soit infini, ce qui indique une demande constante pour le service.

Comment les cybercriminels contournent le CAPTCHA

Les travailleurs de 2Captcha sont incités à soumettre des solutions correctes, tout comme un chauffeur Uber est incité à fournir un excellent service : les évaluations des clients. Les clients de 2Captcha évaluent l'exactitude des solutions CAPTCHA qu'ils ont reçues. Si la note d’un employé de 2Captcha tombe en dessous d’un certain seuil, il sera expulsé de la plateforme. À l’inverse, les travailleurs ayant les notes les plus élevées seront récompensés pendant les périodes de faible demande en recevant la priorité dans la distribution CAPTCHA.

Option 2 – 2Captcha en tant que service

Pour utiliser 2Captcha en tant que service, un client (c'est-à-dire un attaquant) intègre l'API 2Captcha dans son attaque pour créer une chaîne d'approvisionnement numérique, alimentant automatiquement les puzzles CAPTCHA du site cible et recevant des solutions à saisir dans le site cible.

2Captcha fournit utilement des exemples de scripts pour générer des appels d'API dans différents langages de programmation, notamment C#, JavaScript, PHP, Python, etc. L'exemple de code écrit en Python a été reproduit ci-dessous :

Comment les cybercriminels contournent le CAPTCHA

Intégration de 2CAPTCHA dans une attaque automatisée

Comment un attaquant utiliserait-il 2Captcha dans une attaque de vol d’informations d’identification ? Le diagramme ci-dessous montre comment les différentes entités interagissent dans un processus de contournement CAPTCHA :

Comment les cybercriminels contournent le CAPTCHA

Processus technique :

  1. L'attaquant demande la source de l'iframe CAPTCHA et l'URL utilisée pour intégrer l'image CAPTCHA à partir du site cible et l'enregistre localement
  2. Un attaquant demande un jeton API au site Web 2Captcha
  3. L'attaquant envoie le CAPTCHA au service 2Captcha via HTTP POST et reçoit un ID Captcha, qui est un ID numérique attribué à l'image CAPTCHA qui a été soumise à 2Captcha. L'ID est utilisé à l'étape 5 pour une requête API GET à 2Captcha pour récupérer le CAPTCHA résolu.
  4. 2Captcha attribue le CAPTCHA à un travailleur qui le résout ensuite et soumet la solution à 2Captcha.
  5. L'attaquant programme un script pour envoyer un ping à 2Captcha en utilisant l'ID CAPTCHA (toutes les 5 secondes jusqu'à résolution). 2Captcha envoie ensuite le CAPTCHA résolu. Si la solution est toujours en cours de résolution, l'attaquant reçoit un message de 2Captcha indiquant « CAPTCHA_NOT_READY » et le programme réessaye 5 secondes plus tard.
  6. L'attaquant envoie une demande de connexion au site cible avec les champs remplis (c'est-à-dire un ensemble d'informations d'identification provenant d'une liste volée) ainsi que la solution CAPTCHA.
  7. L'attaquant répète ce processus avec chaque image CAPTCHA.

Associé à des frameworks de tests Web comme Selenium ou PhantomJS, un attaquant peut sembler interagir avec le site Web cible d'une manière humaine, contournant ainsi efficacement de nombreuses mesures de sécurité existantes pour lancer une attaque de bourrage d'informations d'identification.

Monétisation et écosystème criminel

Avec une solution aussi élégante en place, à quoi ressemble l’écosystème financier et comment les parties gagnent-elles de l’argent ?

Monétisation : Solutionneur de CAPTCHA

Travailler comme solutionneur de CAPTCHA est loin d’être lucratif. Sur la base des mesures fournies sur le site Web de 2Captcha, il est possible de calculer le paiement suivant :

En supposant que chaque CAPTCHA prenne 6 secondes, un travailleur peut soumettre 10 CAPTCHA par minute ou 600 CAPTCHA par heure. En 8 heures, cela représente 4 800 CAPTCHA. Sur la base de ce que nous avons gagné pendant notre essai en tant qu'employé pour 2Captcha (environ 0,0004 $ par solution), cela équivaut à 1,92 $ par jour.

C'est une perte de temps pour les individus dans les pays développés, mais pour ceux qui vivent dans des endroits où quelques dollars par jour peuvent aller relativement loin, les services de résolution de CAPTCHA sont un moyen facile de gagner de l'argent.

Monétisation : Attaquant

L'attaquant paie le tiers, 2Captcha, pour des solutions CAPTCHA par lots de 1 000. Les attaquants misent sur les solutions, payant entre 1 et 5 dollars par pack.

De nombreux attaquants utilisent les services de résolution de CAPTCHA comme composant d'une attaque de bourrage d'informations d'identification plus vaste, ce qui justifie les dépenses. Par exemple, supposons qu'un attaquant lance une attaque pour tester un million d'informations d'identification de Pastebin sur un site cible.  Dans ce scénario, l'attaquant doit contourner un CAPTCHA avec chaque ensemble d'informations d'identification, ce qui coûterait environ 1 000 $.  En supposant un taux de réutilisation réussie des informations d’identification de 1,5 %, l’attaquant peut prendre le contrôle de 15 000 comptes, qui peuvent tous être monétisés.

Monétisation : 2Captcha

2Captcha reçoit un paiement de l'attaquant sur une base de 1 000 CAPTCHA. Comme mentionné ci-dessus, les clients (c'est-à-dire les attaquants) paient entre 1 et 5 $ pour 1 000 CAPTCHA. Des services comme 2Captcha prennent ensuite une part du prix de l'offre et distribuent le reste à leur personnel humain. Étant donné que les services de résolution de CAPTCHA sont utilisés comme solution à grande échelle, les bénéfices s'additionnent considérablement. Même si 2Captcha ne reçoit que 1 $ pour 1 000 CAPTCHA résolus, ils gagnent un minimum de 60 cents par paquet. Les propriétaires de ces sites se trouvent souvent eux-mêmes dans des pays en développement, de sorte que les revenus apparemment faibles sont substantiels.

Qu'en est-il du reCAPTCHA invisible de Google ?

En mars de cette année, Google a publié une version améliorée de son reCAPTCHA appelée « Invisible reCAPTCHA ». Contrairement à « no CAPTCHA reCAPTCHA », qui obligeait tous les utilisateurs à cliquer sur le fameux bouton « Je ne suis pas un robot », Invisible reCAPTCHA permet aux utilisateurs humains connus de passer tout en ne proposant qu'un défi d'image reCAPTCHA aux utilisateurs suspects.

On pourrait penser que cela pourrait décourager les attaquants, car ils ne pourraient pas voir quand ils sont testés. Pourtant, juste un jour après que Google ait introduit Invisible reCAPTCHA, 2CAPTCHA a écrit un article de blog expliquant comment le battre.

Google sait qu’un utilisateur est un humain si celui-ci a déjà visité la page demandée, ce que Google détermine en vérifiant les cookies du navigateur. Si le même utilisateur a commencé à utiliser un nouvel appareil ou a récemment vidé son cache, Google ne dispose pas de cette information et est obligé de lancer un défi reCAPTCHA.

Pour qu'un attaquant puisse automatiser une attaque de bourrage d'informations d'identification à l'aide de 2Captcha, il doit garantir un défi CAPTCHA. Ainsi, une façon de contourner Invisible reCAPTCHA est d'ajouter une ligne de code au script d'attaque qui efface le navigateur à chaque requête, garantissant ainsi un défi reCAPTCHA résoluble.

Le problème avec Invisible reCAPTCHA est que le défi CAPTCHA est caché, mais il existe une solution de contournement. Le CAPTCHA peut être « trouvé » en utilisant l’outil de navigateur « inspecter l’élément ». L'attaquant peut donc envoyer un POST à 2Captcha qui inclut un paramètre détaillant où se trouve le CAPTCHA caché. Une fois que l'attaquant reçoit la solution CAPTCHA de 2Captcha, Invisible reCAPTCHA peut être vaincu via l'automatisation de l'une des deux manières suivantes :

  1. Action JavaScript qui appelle une fonction pour fournir le jeton résolu avec le formulaire de soumission de la page
  2. Modification du code HTML directement dans la page Web pour remplacer un extrait de code CAPTCHA normal par l'entrée de jeton résolu.

Le fait que le reCAPTCHA invisible puisse être contourné n’est pas dû à un défaut fatal dans la conception du nouveau CAPTCHA. C’est que tout test de Turing inversé est intrinsèquement réalisable lorsque les conditions de réussite sont connues.

Tant qu’il y aura des CAPTCHA, il y aura des services comme 2Captcha, car les aspects économiques jouent en faveur des criminels. Profiter du faible coût de la main d’œuvre humaine minimise le coût des affaires et permet aux cybercriminels de récolter des profits pouvant atteindre des millions de dollars à grande échelle. Et il y aura toujours des régions du monde avec des coûts de main d’œuvre bon marché, donc la demande constante assure une offre constante du côté de 2Captcha.

Le monde n’a pas besoin de développer un meilleur CAPTCHA, car toute cette approche présente des limites fondamentales. Au lieu de cela, nous devrions reconnaître ces limites et mettre en œuvre des défenses dans lesquelles les conditions de passe sont inconnues ou sont au moins difficiles à déterminer pour les attaquants.

Sources

Holmes, Tamara E. « Statistiques sur les cartes prépayées et les cartes-cadeaux. » Cartes de crédit.com . Creditcards.com, 01 déc. 2015. La toile.

Chasse, Troie. « Briser le CAPTCHA avec des humains automatisés. » Article de blog. Chasse à Troie . Troy Hunt, 22 janvier 2012. La toile.

Motoyama, Marti, Kirill Levchenko, Chris Kanich et Stefan Savage. Concernant: CAPTCHA – Comprendre les services de résolution de CAPTCHA dans un contexte économique . Actes du 19e Symposium sur la sécurité USENIX, Washington DC. Imprimé.