De la faille Twitter au ver façon "web 2.0"

Date : 08 Novembre 2010

Dans cet article, nous revenons sur une faille découverte sur le réseau social Twitter en septembre dernier, qui, si elle avait été exploitée par des hackers malintentionnés, aurait peut-être pu donner lieu à l’infection massive de milliers d’ordinateurs dans le monde. Techniquement très différent des vers que nous avons historiquement connus tels que Sasser ou plus récemment Conficker, le ver version "web 2.0" n’en est pas moins dangereux, en particulier en raison de la nature intrinsèquement connectée du réseau Twitter. 

 

Rappels sur Twitter et son fonctionnement

Pour comprendre comment un code a pu si facilement se propager sur le réseau social Twitter, il est nécessaire de donner quelques rappels sur son fonctionnement. Twitter est un service de microblogging mais c’est probablement avant tout un réseau social. Aujourd’hui, Twitter est devenu un média de communication et d’information incontournable au même titre que Facebook par exemple. Toutes les grandes entreprises, les boutiques en lignes, les gouvernements et les partis politiques dialoguent et informent via un fil d’actualité Twitter.

Lorsque vous vous inscrivez à Twitter vous avez notamment la possibilité :

  • De poster des messages sur votre page Twitter. Ces messages sont appelés des tweets (gazouillis si l’on traduit littéralement) et peuvent être assimilés à des billets de blog avec la particularité qu’ils sont limités à 140 caractères. Ces messages apparaissent automatiquement sur la page d’accueil de toute personne qui suit votre Twitter (les "followers" ou abonnés dans la version française).
  • De suivre (s’abonner à) d’autres Twitters afin de voir apparaître leurs actualités dans votre page d’accueil.
  • De « re-tweeter » une information que vous voyez apparaître dans un Twitter que vous suivez. Ce procédé, qui est largement impliqué dans la propagation du ver dont nous allons parler, permet de reprendre à son compte et de transmettre à tous vos « followers » une actualité remarquée sur un autre Twitter.

A partir de ces éléments, on comprend déjà bien la nature « ultra-connectée » du réseau que nous évoquions en introduction. En particulier, on imagine plus facilement comment un tweet d’apparence anodine et dont le contenu est accrocheur, peut se retrouver relayé en quelques minutes de follower en follower sur le Twitter de plusieurs milliers de personnes via le procédé du « re-tweet ».

 

Twitter, un terrain de choix pour les spammeurs

Twitter, à l’image d’autres réseaux sociaux tels que Facebook, est une plateforme de choix pour l’envoi de message de spam et la diffusion de malwares. En effet, en raison de la rapidité des échanges d’informations sur cette plate-forme, les pirates y voient un vecteur rentable et rapide pour l’envoi de publicités, ou même la diffusion de logiciels malveillants.

Le mode opératoire pour la diffusion de spam sur Twitter est relativement simple :

  1. Le spammeur récupère les identifiants de connexion d’un certain nombre de comptes Twitter valides en utilisant la plupart du temps des attaques par Phishing.
  2. Grâce aux identifiants obtenus, le spammeur diffuse du contenu sur le Twitter ainsi compromis. Tous les « followers » de ce Twitter verront alors apparaître ce contenu malveillant sur leur page d’accueil. Ils ne se méfieront pas forcément de ce contenu, puisqu’il est publié depuis un Twitter qu’ils ont peut être décidé de suivre depuis longtemps (il s’agit donc de tweets dans lesquelles ils ont a priori confiance).

Les messages envoyés par le spammeur peuvent soit avoir simplement un but publicitaire, soit avoir pour but de compromettre davantage de comptes, en incitant la victime à cliquer sur un lien malicieux (par exemple un lien vers une page exploitant des failles du navigateur pour installer automatiquement des chevaux de Troie sur le système). Comme la plupart des URLs diffusées sur Twitter sont raccourcies, il sera difficile pour la victime de savoir à l’avance sur quel site elle sera redirigée en cliquant sur un tel lien (voir à ce sujet l’article du Cert-IST intitulé « Danger des URLs courtes »).

Mais ici, il ne s’agit rien moins que des dangers inhérents aux réseaux sociaux, et c’est la crédulité de l’utilisateur qui permet à l’infection de se propager. Nous allons voir qu’il en est autrement lorsqu’une véritable faille de la plate-forme est exploitée.

 

Une faille XSS à l’origine de la propagation

La rapidité de circulation de l’information sur Twitter rend difficile la reconstitution de l’historique de cette vulnérabilité. Mais il semble que ce soit un japonais, un dénommé Masato Kinugawa, qui ait, au départ, découvert cette faille XSS (Cross-Site Scripting) au mois d’août dernier. Pour rappel, une attaque par Cross-Site Scripting consiste pour l’attaquant à provoquer l’insertion de code actif (généralement du JavaScript) sur un site web vulnérable. Lorsqu’un utilisateur légitime du site vulnérable visualise une des pages compromises, le code JavaScript est alors exécuté dans son navigateur web, et plus précisément dans le contexte privilégié de la session qu’il a ouvert sur le dit site (dans notre cas il s’agit de Twitter). Le code JavaScript a alors strictement les mêmes droits que l’utilisateur dont la session vient d’être compromise.

En août dernier, Masato Kinugawa a remarqué qu’il était possible d’insérer assez facilement du code JavaScript dans des tweets, du moment que celui-ci ne dépassait pas la limite des 140 caractères imposés par Twitter. D’après ses dires, il a signalé la faille le 14 août dernier, et Twitter l’a corrigée rapidement. Mais c’est autour du 21 septembre, avec la mise en service d’une refonte complète du site, que la faille a été réintroduite. Le jeune hacker japonais a alors créé un compte Twitter nommé @RainbowTwtr dédié à la démonstration de la vulnérabilité : lorsqu’un visiteur de cette page Twitter passait simplement le pointeur de sa souris sur un lien situé dans un tweet, ce dernier devenait multicolore (voir par exemple les illustrations de cet article de Panda Security). Pour obtenir ce résultat, le hacker a utilisé la propriété « onMouseOver » des liens hypertexte, qui permet en langage HTML de désigner un code à exécuter lorsqu’un lien est survolé par la souris. C’est d’ailleurs sous ce nom (onMouseOver) que l’attaque a été relayée les jours suivants par la presse.

Il n’a pas fallu très longtemps pour que l’idée de départ soit reprise par d’autres et utilisée dans le but de pousser encore plus loin l’exploitation de la faille. Par exemple :

  • Un adolescent australien nommé Pearce Delphin (@zzap sur Twitter) a créé des tweets qui ouvraient des fenêtres pop-up lorsque l’on passait le pointeur de la souris dessus.
  • Ensuite, un programmeur norvégien du nom de Magnus Holm (@judofyr sur Twitter) est allé encore plus loin, et a montré que la faille pouvait être exploitée pour créer un code « wormable ». Lorsqu’une victime passait la souris sur un tweet infecté (le message étant imbriqué dans un bloc de couleur noire pour dissimuler le code viral), celui-ci se trouvait immédiatement « re-tweeté », c'est-à-dire automatiquement relayé vers tous les abonnés du Twitter de cette victime. Holm a signalé plus tard que son ver, qui était du reste complètement inoffensif,  avait infecté plus de 200.000 comptes Twitter.
  • Enfin, il semble que le ver principal, celui qui a causé le plus de dégâts aurait été créé par un pirate ayant pour identifiant Twitter « @matsta » (probablement le seul protagoniste de l’histoire qui n’a pu être formellement identifié). Son code s’est propagé de la même manière sur des centaines de milliers de comptes Twitter dont notamment celui de la femme de l’ex premier ministre britannique Sarah Brown (voir cette capture d’écran montrant son Twitter compromis). Ce ver a été particulièrement efficace notamment parce que les Twitters infectés pouvaient difficilement être visités sans que son propre compte soit infecté à son tour. En effet, la présence de plusieurs tweets en gros caractères faisait qu’il était impossible de déplacer sa souris sur l’écran sans activer le code viral. Lorsque le code JavaScript de ce ver était activé, il redirigeait automatiquement la victime vers des enquêtes en ligne, ou même des sites pornographiques, dans le but de générer des visites sur ces sites et donc de l’argent (via le principe du "pay per click" que nous avions présenté dans cet article en 2006).

L’équipe de développement de Twitter a heureusement été réactive et le site n’est resté vulnérable que quelques heures. Apparemment, sur cette petite période, il n’y a pas eu d’infection de postes par de véritables malwares. Magnus Holm (l’un des hackers ayant exploité la faille) a tout de même rapporté qu’il a pu observer des tweets conduisant au téléchargement de logiciels espions hébergés en Russie, ce qui signifie que lors de la correction de la faille, les vers lancés par des « amateurs » étaient sur le point de laisser place à des gangs de cybercriminels beaucoup plus professionnels.

 

Conclusion

La propagation de ce ver sur Twitter au mois de septembre est riche d’enseignements. Elle montre notamment qu’une plateforme web, même populaire, peut toujours faire l’objet de graves failles de sécurité. Ici nous constatons qu’un problème aussi évident que la possibilité d’insérer des scripts dans des tweets, n’a vraisemblablement pas été détectée dans le cycle de développement de la plateforme. Pire, il a, à un moment donné, été corrigé puis réintroduit à la suite de nouveaux développements. Nous pourrions même insister en disant que ce n’est pas la première fois que Twitter fait l’objet de failles XSS (cf. une série de vers envoyés sur le réseau par un hacker newyorkais nommé Mikeyy Mooney en avril 2009).

Il faut donc être conscient qu’un site de réseau social n’est pas sûr, même si sa popularité pourrait laisser penser que ses mainteneurs mettent tout en œuvre pour la sécurité des utilisateurs. Les derniers événements montrent bien que naviguer sur une plateforme comme Twitter, sans observer un minimum de bonnes pratiques de sécurité (navigateur à jour, utilisation de plug-in bloquant le JavaScript par défaut - comme NoScript pour Firefox), est devenu un comportement dangereux.

Pour conclure plus globalement, les réseaux sociaux comme Twitter mais aussi Facebook sont non seulement une menace pour les entreprises en ce qui concerne la confidentialité des données (l’utilisateur peut dévoiler plus ou moins consciemment des informations sur son contexte de travail), mais ils sont aussi une porte d’entrée pour des malwares qui utilisent des faiblesses de la plateforme pour se propager. Les sites de réseaux sociaux deviennent de plus en plus complexes, interactifs et dynamiques, ce qui s’accompagne d’une complexification du code utilisé pour gérer ces sites (par exemple l’utilisation systématique de technologies d’échange  rapide de données entre le navigateur web et le serveur comme l’AJAX ou le HTML 5). Un code complexe est forcément beaucoup plus difficile à auditer et à sécuriser, et nous sommes pour cette raison convaincus que les failles de sécurité exploitées sur les réseaux sociaux ont encore de beaux jours devant elles. 

 

Pour plus d’informations :

 

Précedent Précedent Suivant Suivant Imprimer Imprimer