
Contourner le reCaptcha audio de Google avec une précision de 85%.
Vaincre le système audio reCaptcha de Google avec une précision de 85 %. 
unCaptcha est conçu comme une preuve de concept. Au moment de la publication de notre article, nous avons constaté qu'il résolvait avec succès les défis audio de reCaptcha avec un taux de succès de 85 %. Depuis lors, reCaptcha semble inclure des protections supplémentaires qui limitent le succès d'unCaptcha. Nous ne maintiendrons pas ce code pour qu'il constitue une attaque efficace contre reCaptcha.
Par exemple, Google a également amélioré sa détection d'automatisation des navigateurs. Cela signifie que Selenium ne peut pas être utilisé dans son état actuel pour obtenir des captchas de Google. Cela peut amener Google à renvoyer des segments audio étranges à l'utilisateur final. De plus, nous avons observé que certains défis audio incluent non seulement des chiffres, mais aussi de petits extraits de texte parlé.
Nous vous encourageons à être prudent lorsque vous effectuez des recherches dans ce domaine, à respecter les lois locales, étatiques et fédérales, et à signaler de manière responsable toute vulnérabilité potentielle à Google immédiatement.
De plus, nous avons retiré nos clés API de toutes les requêtes nécessaires. Si vous cherchez à reproduire une partie du travail ou à effectuer vos propres recherches dans ce domaine, vous devrez obtenir des clés API auprès de chacun des six services utilisés. Ces clés sont délimitées dans nos fichiers par une longue chaîne de caractères 'X'.
À travers Internet, des centaines de milliers de sites s'appuient sur le système reCaptcha de Google pour se défendre contre les bots (en fait, Devpost utilise reCaptcha lors de la création d'un nouveau compte). Après qu'une équipe de recherche de Google a démontré une défaite quasi complète du reCaptcha textuel en 2012, le système reCaptcha a évolué pour s'appuyer sur des défis audio et visuels, historiquement plus difficiles à résoudre pour les systèmes automatisés. Google a continuellement amélioré sa conception, publiant une version plus récente et plus puissante encore cette année. Démontrer avec succès une défaite de ce système de captcha représente une vulnérabilité significative pour des centaines de milliers de sites populaires.
Notre système unCaptcha dispose de capacités d'attaque écrites pour le captcha audio. En utilisant un logiciel d'automatisation de navigateur, nous pouvons interagir avec le site cible et interagir avec le captcha, en extrayant les éléments nécessaires pour lancer l'attaque. Nous nous appuyons principalement sur l'attaque du captcha audio - en identifiant correctement les nombres prononcés, nous pouvons passer le reCaptcha par programmation et faire croire au site que notre bot est un humain. Plus précisément, unCaptcha cible le site populaire Reddit en simulant les étapes de création d'un nouvel utilisateur, bien qu'unCaptcha s'arrête avant de créer l'utilisateur pour atténuer l'impact sur Reddit.
Le système reCaptcha de Google utilise un système d'analyse de risque avancé pour déterminer par programmation la probabilité qu'un utilisateur donné soit un humain ou un bot. Il prend en compte vos cookies (et par extension, votre interaction avec d'autres services Google), la vitesse à laquelle les défis sont résolus, les mouvements de la souris et (évidemment) la réussite de la tâche donnée. À mesure que le système devient de plus en plus méfiant, il propose des défis de plus en plus difficiles et exige que l'utilisateur en résolve davantage. Des chercheurs ont déjà identifié des faiblesses mineures dans le système reCaptcha - 9 jours d'interaction légitime (plus ou moins) avec les services de Google suffisent généralement pour réduire considérablement le niveau de suspicion du système.
Le format du captcha audio est une série de nombres de longueur variable, espacés et lus à voix haute à des vitesses, hauteurs et accents variés, sur fond de bruit de fond. Pour attaquer ce captcha, la charge utile audio est identifiée sur la page, téléchargée et automatiquement divisée par emplacements de parole.
De là, chaque extrait audio de nombre est téléchargé vers 6 services de transcription audio en ligne gratuits (IBM, Google Cloud, Google Speech Recognition, Sphinx, Wit-AI, Bing Speech Recognition), et ces résultats sont collectés. Nous combinons les résultats de chacun d'eux pour énumérer de manière probabiliste la chaîne de nombres la plus probable à l'aide d'une heuristique prédéterminée. Ces nombres sont ensuite tapés de manière organique dans le captcha, et le captcha est complété. Lors des tests, nous avons observé une précision de 92 %+ dans l'identification individuelle des nombres, et une précision de 85 %+ dans la défaite du captcha audio dans son intégralité.
Tout d'abord, installez les dépendances Python :
$ pip install -r requirements.txt
Assurez-vous également d'avoir installé sox, ffmpeg et selenium !
$ apt-get install sox ffmpeg selenium
Ensuite, pour lancer la preuve de concept :
$ python main.py --audio --reddit
Cela ouvre reddit.com, interagit avec la page pour accéder à l'inscription du compte, génère un faux nom d'utilisateur, email, mot de passe, puis attaque le captcha audio. Une fois le captcha terminé (qu'il ait réussi ou non), le navigateur se ferme.
Veuillez lire notre article, disponible ici, pour plus d'informations. De plus, vous pouvez visiter notre site web ici, ou consulter les originales.