Sécurité IT : des chercheurs ont pris la tangente avec reCaptcha

Sécurité
securite-captcha
2 19

Trois chercheurs ont mis en défaut le système reCaptcha de Google, destiné à filtrer les robots sur les sites et services en ligne.

Google a porté une attention particulière à la démonstration effectuée la semaine passée par Suphannee Sivakron, Jason Polakis et Angelos Keromytis dans le cadre de la Black Hat Asia.

Le groupe Internet est concerné au premier chef par les découvertes – document PDF, 12 pages – de ces trois chercheurs en sécurité informatique issus de l’université Columbia.

Et pour cause : leurs travaux se sont portés sur les CAPTCHA* (« Completely Automated Public Turing test to tell Computers and Humans Apart »), ces systèmes de filtrage des robots qui consistent, pour l’utilisateur d’un service en ligne, à prouver qu’il est bien un humain, en résolvant quelques problèmes simples sur lesquels les machines sont censées buter.

De nombreux sites exploitent le service reCaptcha développé par Google, sous la forme d’un widget JavaScript.

Ce widget, dont le code est caché pour empêcher son analyse, collecte diverses informations et les envoie aux ordinateurs de Google, qui décident du type de captcha à présenter.

Si la requête semble émaner d’une connexion « légitime », l’utilisateur doit simplement cocher une case. C’est le principe du « No captcha ».

En cas de doute, on passe à « l’Image reCaptcha » : il faut alors identifier et sélectionner des images ayant un contenu similaire.

Le dernier niveau est celui du « Text reCaptcha ». Sélectionné quand le niveau de risque est élevé ou que toutes les vérifications n’ont pas pu être effectuées, il demande de recopier des mots ou des suites de caractères – une pratique qui, soit dit en passant, a valu un procès à Google.

Histoire de cookies

Les chercheurs ont d’abord cherché à comprendre ce qui influait sur le choix du captcha… et de quelle manière ce choix pouvait être guidé.

L’historique de navigation semble jouer un rôle important, indépendamment du réseau utilisé pour la connexion. Les trois chercheurs se sont aperçus qu’une machine était souvent considérée comme légitime lorsqu’elle disposait, depuis au moins 9 jours, d’un cookie associé aux services en ligne de Google.

S’appuyant sur une partie du code de reCaptcha publiée sur GitHub, Sivakron, Polakis et Keromytis ont aussi déterminé qu’une connexion était considérée suspecte dès lors qu’elle se faisait sur un navigateur jugé trop ancien.

Jusque récemment, il était possible, pour un tiers, de déporter la résolution des captchas sur une adresse IP dont il avait le contrôle. Google ayant finalement corrigé la faille, les chercheurs ont dû mettre en place un hôte virtuel sur leur serveur, en lui associant les informations correspondant au site où s’affiche le captcha.

Ils se sont surtout rendu compte qu’une même IP (ici, celle de leur serveur) pouvait créer plus de 60 000 cookies par jour sans être bloquée, la seule limite étant celle des systèmes anti-DDoS. Ils ont ainsi pu obtenir plus de 50 000 « No Captchas » par jour.

Le choc des images

Dans le cas des « Image Captchas », il a fallu recourir à l’intelligence artificielle. Et à quelques calculs de probabilités qui ont simplifié la tâche : dans 74 % des cas, deux des neuf images présentées doivent être sélectionnées, sachant qu’on peut en oublier une ou en choisir une mauvaise… et qu’elles se répètent parfois d’un captcha à l’autre.

Sur le principe de la rétroingénierie, Google Reverse Image Search a été mis à profit pour obtenir davantage d’informations sur les images : mots-clés, URL associées, éventuelle disponibilité en de plus grandes résolutions…

Pour reproduire la fonctionnalité sur leur serveur, les chercheurs ont examiné le format de l’adresse associée à chacune de leurs requêtes. Lorsque c’était nécessaire, ils ont traduit les descriptions en anglais via Google Translate.

L’intelligence artificielle, et plus précisément le machine learning, intervient lorsque les mots-clés attribués à une image ne correspondent pas à l’indice donné par reCaptcha. Dans ce cas, les mots sont représentés en vecteurs – avec Word2Vec – pour mieux comprendre leur proximité sémantique.

Certaines images se répétant souvent, il est possible d’en créer un historique avec les tags associés (pour plus de détails sur la réalisation, voir en pages 8 et 9 du document).

Selon les outils utilisés (Clarifai, Alchemy, TLD, NeuralTalk, Caffe…), le taux de réussite varie entre 40 et 50 %. En y ajoutant la technique de contournement évoquée plus haut, on en est à 70,78 % sur 2 235 tentatives, avec une durée moyenne de résolution de 19,2 secondes. La proportion atteint même 83,5 % sur Facebook, qui n’a pas apporté de modification à ses captchas, au contraire de Google, comme le soulignent les chercheurs.

* Nous avons choisi d’orthographier « CAPTCHA » en minuscules pour améliorer la lecture du texte.

Crédit photo : metrue – Shutterstock.com


Lire la biographie de l´auteur  Masquer la biographie de l´auteur