Tavis Ormandy nous avait prévenu. Il y a un mois, le chercheur en sécurité de Google Project Zero avait révélé des failles critiques dans Transmission, un logiciel de téléchargement BitTorrent. Il avait alors indiqué que d’autres logiciels de ce type étaient également vulnérables. Désormais, c’est au tour de µTorrent, l’un des clients BitTorrent les plus populaires, d’être cloué au pilori.

Comme avec Transmission, le problème fondamental réside dans l’architecture logicielle. Un serveur JSON RPC, qui tourne en tâche de fond façon daemon, reçoit les commandes émises depuis l’interface utilisateur et assure les téléchargements des fichiers. Malheureusement, ce serveur est mal protégé et peut être piraté à distance au travers d’un site web piégé.

Substitution par DSN Rebinding

Dans le cas de la version « µTorrent Web », l’interface utilisateur est un serveur web local (adresse localhost ou 127.0.0.1) qui transmet des requêtes JSON RPC. Le hic, c’est qu’un site web piégé peut, grâce à un tour de passe-passe appelé DNS Rebinding , se substituer au serveur web local et envoyer lui aussi des commandes au daemon.

Les développeurs avaient quand même eu la bonne idée d’intégrer un token d’authentification dans les requêtes RPC du serveur web local, ce qui aurait empêché cette attaque triviale. Malheureusement, ce token est librement accessible depuis la racine du serveur web. A partir de là, un attaquant peut, par exemple, télécharger un programme dans le dossier Démarrage de Windows. Celui-ci sera alors automatiquement exécuté au prochain démarrage du PC. Bref, il est possible d’exécuter à distance du code arbitraire sur tous les ordinateurs disposant de µTorrent Web. Une page de démonstration est disponible en ligne.        

Patchés en partie seulement

Dans le cas de la version « µTorrent Classic », l’attaque est plus limitée. L’interface utilisateur est une application Desktop, ce qui ne permet pas d’envoyer des commandes au daemon. Par contre, il est possible d’accéder depuis un site web piégé au proxy du serveur JSON RPC et de lire et copier la totalité des torrents téléchargés. Une page de démonstration est, là aussi, disponible en ligne. Enfin, Tavis Ormandy a également détecté une faiblesse dans le design du générateur de nombres aléatoires de µTorrent. Elle permet « à n’importe qui de reconstruire des choses telles que les clés d’appairage, les tokens, les cookies de sessions, etc. ». Pas cool.

Les développeurs de µTorrent ont corrigé les failles dans la version Classic, mais celle-ci n’est disponible pour l’instant qu’en bêta. Il faut donc encore attendre un petit peu. Pour la version Web, un patch a été créé, mais celui-ci se révèle inefficace. A l’heure actuelle, il est donc conseillé de ne plus utiliser µTorrent Web.     

Cet article a été importé d’un feed RSS, cliquez-ici pour voir l’article original