Le chat et la souris
Il y a maintenant 1 mois, nous apprenions que spider.io (http://spider.io/blog/2012/12/internet-explorer-data-leakage/) avait informé Microsoft, au début du mois d'octobre 2012, d'une faille permettant de suivre les mouvements de la souris à partir d'Internet Explorer, version 6 à 10.
Jusqu'à maintenant, Microsoft, à l'exception de la publication d'un "fixIt" en apparence incomplet, n'a toujours pris aucune mesure pour corriger la situation.
Le code de "l'exploit", si on peut le considérer comme tel tant il est trivial, a donc été publié sur une foule de site. Voici le code original de l'exploit publié pendant le mois de Décembre:
Lorsque ce code est exécuté, tel que le montre la figure suivante, le div "detector" affiche la position effective se la souris dans l'écran de la victime.
Certains diront "NO BIG DEAL"... Mais en fait, qu'en est-il de l'impact de cette vulnérabilité sur les usagers utilisant des "touch screen" ou le clavier virtuel de Windows? Car en fait, il faut savoir que la vulnérabilité, permet effectivement de suivre le positionnement de la souris et ce même si Internet Explorer n'a pas le focus et qu'il est diminué.
Ainsi, pour donner une idées de "comment" cette problématique pourrait être utilisée par un attaquant, nous avons modifié le code original de l'exploit pour qu'il affiche non pas une seule position, mais la liste complète des coordonnées de la souris utilisée par la victime. Dans notre cas, cette liste, pour des raisons pratiques, s'affiche à l'écran. Il serait cependant facile d'adapter ce code pour que la liste soit envoyée sur un service web sous le contrôle de l'attaquant alors que le code de l'exploit est intégré à une page vulnérable. Voici notre version de l'exploit:
Comme vous pouvez le remarquer, les modifications sont mineures. Ainsi, imaginons qu'une victime tombe dans le piège et que cette page soit exécutée en arrière plan sur son poste alors qu'elle utilise un clavier virtuel. La page malicieuse collectera ainsi une liste des position de la souris de la victime tel que montré à la figure suivante.
Cette liste, lorsqu'elle sera en possession de l'attaquant pourrait par la suite être utilisée dans un outil utilisé par ce dernier pour reconstruire un graphique du mouvement de la souris. Nous avons fait un tel outil (simplifié bien entendu) qui pourrait être utilisés dans ce genre de scénario. Voici le code, vous y verrez une liste de positions collectées par la page exploitant la vulnérabilité.
Ainsi, lors de l'exécution de cette page par l'attaquant, ce dernier se retrouve, tel que le montre la figure suivante, avec un graphique montrant les déplacements de la souris de la victime.
Ce graphique peut par la suite être superposé à une image écran permettant de visualiser les mouvements en questions tel que le montre la figure suivante.
Ainsi, il est relativement simple d'espionner les utilisateurs sur la base des mouvements de souris. Bien entendu, certains parmi vous auraient peut-être le goût d'énoncer le fait que l'analyse des résultats, pour réussir une attaque complète, peut être assez fastidieuse en raison que l'ensemble des mouvements de la souris sont enregistrés. Ce n'est pas faux. Par contre, il est important de ne pas oublier que, dans la situation où un utilisateur utilise un "touch screen", il n'y a normalement pas de mouvement de souris sauf dans la situation où l'utilisateur "clique" avec son doigt pour déplacer cette souris. Ainsi, un utilisateur faisant usage d'un tel écran, ce qui est de plus en plus courant, devient une parfaite victime pour ce genre de scénario d'attaque.
En attendant que le bug soit réglé, pour ceux qui ne l'utiliseraient pas déjà, nous vous souhaitons un bon téléchargement de Firefox!