Les attaques contre le CAPTCHALe CAPTCHA, mis en place dans les années 2000, a été jusqu'à aujourd'hui
une protection incontournable pour différencier l'homme d'un robot.
Les pirates ont compris l'intérêt de casser cette méthode afin de
pouvoir polluer les forums ou de créer automatiquement des comptes mail.
Depuis quelques mois, les techniques d'attaques contre les CAPTCHA se développent.
Présentation et explications des différentes techniques utilisées par les pirates...
IntroductionPrésentation des CAPTCHALe SPAM est devenu, année après année, un fléau qui ne cesse de
progresser. Les pourriels représentent une part de marché de plus en
plus importante chaque jour.
On estime à près de
90% le pourcentage des emails publicitaires
et frauduleux sur l'ensemble des emails envoyés à travers le
monde�autant dire que la guerre est perdue...
Le SPAM peut également revêtir une autre forme, les spammeurs tentent de
s'attaquer au contenu de forums afin d'y insérer leurs publicités ou
redirection vers d'autres sites malveillants.
Auparavant, aucun mécanisme ne pouvait empêcher des outils et des virus
de créer des comptes sur les webmails ou d'insérer des commentaires au
sein de forums de manière automatisée.
Afin d'y remédier, les développeurs ont mis en place à partir de 2000, le
CAPTCHA (Completely AutomatedPublic Turing test to tell Computers and Humans Apart), méthode destinée
à différencier les humains des machines.
Cette méthode repose sur le principe qu'en fournissant une image
contenant des caractères déformés, seul un humain était capable d'en
extraire lecontenu et de saisir les lettres sur son clavier.
Le CAPTCHA est particulièrement utilisé sur les forums ou sur les
webmails lors de la création de comptes ce qui empêche les spammeurs de
mener leurs campagnes publicitaires de manière automatisée.
Les pirates face aux CAPTCHA Face à ces protections, les pirates ont dû trouver des moyens de continuer à polluer la toile.
En effet, l'utilisation de serveurs piratés ou loués pose toujours le même problème (
voir ActuSécu n°18). Ces derniers sont rapidement identifiés en tant que serveurs de SPAM par les organismes dédiés (Spamhause...).
Les logiciels anti-spam qui se basent également sur des listes noires peuvent alors contrer les tentatives des spammeurs.
Les pirates se sont donc concentrés sur des méthodes de contournement de
ces CAPTCHA. Les enjeux sont de taille, en réussissant à contourner
cette protection, les spammeurs peuvent automatiser des requêtes afin
d'utiliser les serveurs de messagerie de sociétés réputées (Gmail,
Microsoft, Yahoo, ...) afin que les emails ne soient pas bloqués auprès
des filtres anti-spam. En utilisant les adresses IP de serveurs de
confiance, les pirates passent ainsi à travers ces filtres (si aucune
autre règle n'a été mise en place pour refuser les emails provenant des
MX de ces sociétés).
Voilà pourquoi les spammeurs
s'attaquent aux méthodes de contournement des CAPTCHA des webmails et les forums les plus implantés. Dans la suite de cet
article, nous vous présenterons les techniques utilisées par les
attaquants.
Les CAPTCHA actuelsOnze années après son invention, les algorithmes de génération se sont
améliorés et diversifiés (avec l'apparition de captcha audio) afin de
contrer les attaques des pirates.
Le CAPTCHA visuel reste le plus utilisé, mais son efficacité varie d'un algorithme à un autre.
Certains CAPTCHA sont donc plus simples à casser que d'autres.
Les CAPTCHA actuellement utilisés ont tous été cassés avec des taux de
réussite variés. Cependant, un algorithme de décodage ne doit pas être
jugé qu'en
fonction de son pourcentage de réussite.
En effet, le temps nécessaire pour décoder est un paramètre également primordial.
Un algorithme nécessitant 5 secondes avec un taux de réussite de 10% sera, suivant la situation, préférable à
un algorithme permettant de décoder un Captcha en 1 minute avec un pourcentage de réussite de 90%.
"Les attaques des CAPTCHA se développent de plus en plus et leur
efficacité ne cesse de progresser notamment grâce au partage et à la
mise à disposition de code sources"Le CAPTCHA de Microsoft Live Hotmail, réputé comme l'un des plus
robustes, a été récemment exploité par un malware (voir la partie dans
la suite de l'article). Deux mois auparavant, c'était GMail qui était la
cible d'attaques.
Les attaques se développent de plus en plus et leur efficacité ne cesse
d'augmenter notamment grâce au partage et à la mise à disposition de
code source. Ces attaques ne nécessitent plus d'ordinateurs puissants.
Les algorithmes développés peuvent à présent casser n'importe quel
CAPTCHA en quelques secondes.
Cependant, certains CAPTCHA ne sont pas forcément évidents, même pour l'être humain (ci-dessous
2rV2prn ou
2rV2pm).
Voici les principaux CAPTCHA utilisés actuellement :
Les différentes techniques utilisées par les piratesPlusieurs techniques d'attaques ont été élaborées pour parvenir à contourner cette protection.
La méthode manuelleAfin d'obtenir la chaîne de caractères correspondant au CAPTCHA,
certains groupes de pirates industrialisent le procédé. Ils emploient
des personnes décodant des CAPTCHA tout au long de la journée. L'attaque
est complètement manuelle.
De nombreuses annonces sur Internet rémunèrent ce type de travail.
Cette annonce rémunère 1$ les 1000 CAPTCHA. Les employés travaillent
environ 50 heures par semaine en fournissant une moyenne de 500 CAPTCHA
toutes les heures.
Une solution moins « onéreuse » consiste à utiliser les particuliers
pour réaliser cette tâche. Part le biais de logiciels ou de sites
internet, les utilisateurs doivent décoder un CAPTCHA afin d'accéder à
un contenu privé (photos pornographiques, inscription à des forums,
téléchargement de fichiers...).
Le CAPTCHA suivant n'est en aucun cas utilisé à des fins de sécurité,
mais uniquement pour créer des comptes email à l'insu de l'internaute.
Logiciel utilisant l"utilisateur pour décoder le CAPTCHA de Yahoo MailForum utilisant les nouveaux utilisateurs pour décoder le CAPTCHA de YahooLe schéma ci-dessus présente cette technique.
1) L'utilisateur souhaite accéder à un contenu pornographique ou privé
ou poster un commentaire sur un forum contrôlé par un spammeur.
2) Le site pirate envoie une requête à un serveur de messagerie afin de créer un nouveau compte.
3) Une fois la réponse du serveur de messagerie, le site pirate analyse la page reçue pour en extraire le CAPTCHA.
4) Celui-ci est envoyé au particulier. L'internaute est alors invité à décoder le CAPTCHA.
5) Ce dernier décode le CAPTCHA et envoie au site pirate la chaîne de caractères.
6) Celle-ci est transmise au serveur de messagerie.
7) Si la chaîne de caractère correspond au CAPTCHA fourni, un compte
Yahoo est créé avec succès et l'utilisateur reçoit la ressource
convoitée, sinon le processus recommence.
Cette attaque s'apparente aux attaques de type
MITM (Man In The Middle).
La récupération de CAPTCHA en masseD'autres spammeurs tentent d'autres techniques d'attaques afin de
constituer une base de connaissance de toutes les combinaisons
possibles. Ces rainbowtables (bases exhaustives contenant un CAPTCHA et
sa chaîne de caractère associée) permettent ainsi de réduire
considérablement le temps de traitement d'un CAPTCHA puisque le calcul a
été réalisé auparavant.
En comparant l'empreinte du CAPTCHA à décoder avec celles détenues en
base, le temps de réponse est de l'ordre de la milliseconde.
Récupération automatique des CAPTCHA de Yahoo : Et les CAPTCHA audio?Les Captcha audio, moins répandus, sont également la cible d'attaques.
La chaîne de caractères à saisir est alors épelé accompagné d'un bruit
de fond. L'utilisateur
doit donc comprendre les lettres
dictées et soumettre la chaîne de
caractères correspondante.
Dernièrement, un code PHP à été mis en circulation, décodant les captcha audio anglais des forums SMF (Simple Machine Forum).
http://securitydot.net/vuln/exploits/vulnerabilities/articles/24699/vuln.htmlDes scripts sont disponibles dans l'objectif de récupérer un grand nombre de CAPTCHA afin de les traiter par la suite.
Extrait des CAPTCHA récupérés grâce au script php.
Des scripts récupérant les CAPTCHA des serveurs de messagerie les plus importants sont disponibles depuis les liens suivants :
Yahoo : http://maluc.pastebin.ca/939379Hotmail : http://maluc.pastebin.ca/939368Hotmail (Audio) :http://maluc.pastebin.ca/939373Google : http://maluc.pastebin.ca/939381Google (Audio) : http://maluc.pastebin.ca/939622L'utilisation de la reconnaissance de caractèresLa reconnaissance de caractère (OCR), inventée en 1953, permet de
déterminer le texte contenu dans un document sous forme d'image. Cette
technologie a fait d'énormes progrès ces dernières années.
Voici les différentes étapes nécessaires au décodage d'un CAPTCHA:
-
Suppression du bruit et mise en noir et blanc. Les pixels parasites sont supprimés. Le fond est blanc tandis que la chaîne est en noir.
-
Segmentation. L'image est découpée en plusieurs segments contenant chacun un seul caractère.
-
Identification de la lettre contenue dans chaque segment.
Des algorithmes permettent ainsi d'automatiser cette tâche fastidieuse.
La plupart sont payants et se vendent entre
3000$ et
5000$.
Le site
CAPTCHA Killer propose ce service gratuitement.
Ce site met à disposition une API permettant d'automatiser les actions
sans passer par le site ainsi qu'un plugin firefox (voir info).
CAPTCHA KILLER et l'extension Firefox...Le site CAPTCHA killer propose même un plugin Firefox. Ce dernier permet
en un clic droit d'envoyer le CAPTCHA vers le serveur qui se chargera
via la méthode de reconnaissance de caractère de renvoyer à
l'utilisateur la correspondance. Lors de nos tests, le taux de réussite
s'est élevé à 80% pour le captcha de Yahoo mais le temps de traitement
était assez long (de 25 secondes à 4 minutes).
Des malwares ont également été développés afin d'automatiser la création de comptes depuis les postes infectés.
1) Un malware, installé sur un poste infecté, envoie une requête à un serveur de messagerie afin de créer un nouveau compte.
2) Le malware analyse la page reçue par le serveur et en extrait le CAPTCHA.
3) Le CAPTCHA est envoyé au serveur pirate.
4) Le serveur résout le CAPTCHA (à l'aide d'un outil de reconnaissance
de caractère ou d'une personne traitant chaque requête) et envoie le
code au malware.
5) Le malware peut alors valider l'inscription d'un compte dédié au spam enregistré avec l'IP d'un particulier.
6) Le serveur indique si le code transmis est valide.
7) En cas de succès, le malware envoie au serveur pirate les
identifiants générés (adresse email, mot de passe), sinon un nouveau
processus d'enregistrement est lancé.
De manière générale, un poste infecté crée une vingtaine de comptes, afin d'éviter de blacklister l'IP du poste compromis.
Les CAPTCHA du futurLes modèles 3DComme nous l'avons vu, les CAPTCHA basés sur la reconnaissance de
caractères sont de plus en plus contournables. Les CAPTCHA audio, jugés
plus faciles à contourner et plus difficiles à implémenter (la
prononciation des lettres est différente dans chaque langue), ne peuvent
pas remplacer les systèmes actuels.
Les algorithmes se complexifient de plus en plus , jusqu'à rendre l'image ininterprétable pour un humain.
Des algorithmes ont alors développé surdes modèles en 3D.
Ceux-ci, plus efficaces que les CAPTCHA en 2D ne seront sûrement pas
implémentés. En effet, il a été démontré qu'ils étaient cassables
(rotation de l'image), mais en un temps nettement plus important avec
des ressources plus
performantes.
Reconnaissance d'imagesMicrosoft a rendu disponible, en version béta, le projet
Asirra (Animal Species Image Recognition for Restricting Access).
Ce système, jugé plus simple et plus ludique, demande à l'utilisateur de
sélectionner toutes les photos contenant un chat parmi des photos de
chats et de
chiens. Ce nouveau système laisse à penser qu'un ordinateur ne pourra
pas différencier un chat d'un chien.
http://research.microsoft.com/asirra/Le projet, largement inspiré de
HotCAPTCHA, a été jugé plus
éthique. En effet, HotCAPTCHA propose à l'internaute de choisir 3 photos
parmi 9, celles représentant les femmes ou les hommes les plus
attrayants.
Cependant, des chercheurs développent dès à présent des algorithmes afin
de casser ces systèmes, basés sur la reconnaissance de forme et de
textures.
Textures disponiblesForme déterminéehttp://www.cs.berkeley.edu/~fowlkes/project/boundary/pb/index.htmlhttp://www.cs.berkeley.edu/~fowlkes/project/boundary/index.htmlConclusionLes algorithmes et les techniques de
CAPTCHA actuellement utilisées sont tous faillibles. Le CAPTCHA n'a
jamais été une protection, mais seulement un
moyen censé empêcher les spammeurs de polluer les forums et nos boites emails.Que peut-on faire aujourd'hui pour contrer ces pirates ?
À l'heure actuelle, la réponse n'a toujours pas été trouvée. Les futures
implémentations des CAPTCHA devront utiliser des algorithmes complexes
pour que le décodage et l'interprétation automatique soient plus coûteux
qu'un traitement humain.
Mais peut-on réellement imaginer un algorithme que seul un humain puisse résoudre ?
Webographie-
Analyse Captcha :http://www.w3.org/2004/Talks/0319-csun-m3m/http://sam.zoy.org/pwntcha/http://homepages.cs.ncl.ac.uk/jeff.yan/msn_draft.pdfhttp://ocr-research.org.ua/index.html-
Reconnaissance de formes et de textures :http://www.cs.berkeley.edu/~fowlkes/project/boundary/index.html-
Reconnaissance de caractères :http://www.lafdc.com/soft/ocr163.rarhttp://www.brains-n-brawn.com/default.aspx?vDir=aicaptcha-
Analyse de malwares :http://securitylabs.websense.com/content/Blogs/2919.aspxhttp://securitylabs.websense.com/content/Blogs/3063.aspxhttp://blog.wintercore.com/?p=11#more-11