Des chercheurs allemands, américains et français viennent de révéler avoir exploité une faille de sécurité majeure de Skype (que l'on pourrait également exploiter dans d'autres logiciels de messagerie instantanée basés sur une architecture Peer-to-Peer) pour déterminer avec précision l'identité d'un utilisateur, sa position géographique et la liste des fichiers qu'il est en train de télécharger sur BitTorrent. Ils ont même répliqué l'expérience sur 100 000 utilisateurs différents. Explications.

Un groupe de chercheurs américano-germano-français s’est penché sur la possibilité que des pirates ou des entreprises mal intentionnés récoltent des données personnelles transitant via les logiciels de messagerie basés sur une architecture en Peer-to-Peer. Leur impératif était que cela ne demande pas des moyens financiers colossaux, pour démontrer la simplicité avec laquelle ces données peuvent être obtenues.

En utilisant l’annuaire de Skype pour identifier des utilisateurs et en utilisant des failles du logiciel pour retrouver leurs adresses IP, ils ont pu développer un robot leur permettant de récupérer les informations de milliers d’utilisateurs.

Enfin, le groupe de chercheurs a voulu savoir si toutes ces informations obtenues pouvaient être mises en corrélation avec des systèmes de téléchargements en Peer-to-Peer afin de déterminer leurs habitudes de téléchargement. Ainsi, sans qu’ils n’en soit informé à aucun moment, ils ont cherché à identifier des internautes grâce à Skype, à savoir où ils se trouvaient et à déterminer quels fichiers ils téléchargeaient sur BitTorrent.

Déterminer l’identifiant et l’IP d’un utilisateur

Tout d’abord, le groupe explique qu’il est très simple de trouver l’identifiant Skype d’un utilisateur. Il suffit de connaître son nom ou son adresse e-mail pour le trouver dans près de 65 % des cas. Dans les autres cas, des homonymes empêchent d’être tout de suite sûr de leur identité. Néanmoins, en les appelant, il est possible d’intercepter leur adresse IP et donc leur localisation géographique, ce qui peut donner une très bonne indication.

Pour déterminer cette adresse IP, les chercheurs n’ont eu qu’à analyser les paquets IP échangés lors d’un appel et à la lire dans les headers. Si l’utilisateur n’est pas en ligne, mais qu’il l’a été dans les 72 dernières heures, l’information sera quand même retournée, dans les sources et destinations du datagramme IP. Le problème, c’est que Skype se base également sur des « supernodes ». Ce sont des machines, sur le réseau, qui sont utilisées lorsqu’un utilisateur est dans un lieu différent ou utilise un nouvel appareil. Ces machines permettent de router les appels vers l’utilisateur que l’on souhaite contacter, comme une sorte d’annuaire géant faisant le lien entre un identifiant et une nouvelle machine ou une nouvelle IP que ses contacts ne connaîtraient pas encore.

Donc, en analysant simplement le datagramme IP, il est possible que l’adresse retournée soit celle d’un supernode. Les chercheurs ont donc dû étudier des schémas de communication entre un appelant et un appelé afin de filtrer les communications avec les supernodes et ne garder que les datagrammes contenant l’IP d’utilisateurs.

Pour vivre heureux, vivons cachés

Il ne leur restait plus qu’à rendre ces appels transparents pour l’appelé. Pour ce faire, les chercheurs n’ont pas utilisé le logiciel mais simplement les paquets TCP et UDP échangés par ce dernier. En bloquant le TCP (en interdisant toute entrée ou sortie des paquets SYN servant à la synchronisation), Skype ne sonne pas et l’utilisateur n’est pas alerté. C’est cette astuce très simple qui permet d’éviter que Skype ne sonne tout en récoltant l’adresse IP de l’appelé. Cette méthode fonctionne même lorsque l’on a été bloqué dans Skype par l’appelé et qu’il est normalement impossible d’entrer en contact avec lui.

Retrouver cette IP sur BitTorrent pour identifier les pirates

Une fois l’IP obtenue, il est facile de trouver sa localisation géographique en utilisant des services comme MaxiMind, par exemple, et les chercheurs ont utilisé l’API fournie par Skype pour répliquer l’expérience sur 100 000 identifiants tirés au sort parmi 13 millions. Plusieurs machines appelaient, toutes les heures, 10 000 personnes chacune. Le groupe a même estimé cette opération à 500$ la semaine si elle devait tourner sur un plateforme de cloud computing telle qu’EC2 d’Amazon.

Pour déterminer si les utilisateurs de Skype étaient en train de télécharger, et ce qu’ils téléchargeaient, les chercheurs ont ensuite combiné la méthode de récupération des IP avec un logiciel permettant de déterminer les 50 000 fichiers les plus populaires sur BitTorrent (en se basant sur les hash des fichiers) et un second récupérant les adresses IP participants aux échanges de ces 50 000 fichiers. Enfin, un dernier logiciel vérifiait que Skype et BitTorrent tournaient bien en même temps sur la machine.

Cette méthode leur a permis de lister 400 personnes qui utilisaient bien Skype et BitTorrent parmi les 100 000 identifiants initiaux. En couplant les informations obtenues par Skype, il leur a donc été possible de connaître avec précision leur nom, leur prénom, leur localisation géographique et la liste des fichiers qu’ils téléchargeaient.

Les chercheurs, pour finir, donnent quelques conseils aux éditeurs de solution de VoIP pour résoudre ces problèmes. Si Skype est resté muet face à leurs remarques, ils affirment qu’il suffirait de ne transmettre l’adresse IP qu’à l’acceptation de l’appel. Impossible d’appeler secrètement l’utilisateur avec cette protection. Néanmoins, cette protection n’empêcherait pas une personne connue de l’utilisateur de l’appeler régulièrement et de récupérer les données à ce moment là. Il faudrait alors repenser entièrement les systèmes de VoIP pour faire passer les communications via des relais. Plus compliqué, il serait également possible de repenser le datagramme IP pour ne pas transmettre les adresses à chaque échange.

Partager sur les réseaux sociaux

Articles liés