« Tor, conception, fonctionnement et limites » : différence entre les versions

Ligne 221 : Ligne 221 :


=== Javascript ===
=== Javascript ===
*A VENIR*
 
Javascript est un langage de programmation qualifié de "client side". Concrètement, quand vous vous connectez à un site hébergé sur un serveur, vous êtes le client et le code s'éxécutera de votre côté. Javascript est un langage extrêmement répandu sur internet au point que beaucoup de sites internet ne fonctionnent tout simplement pas fonctionner s'il est désactivé.
 
Javascript est sans doute l'un des points les plus sensibles lorsqu'on utilise Tor. D'un côté, comme on vient de le voir, beaucoup de sites ne fonctionnenent pas sans. De l'autre côté, il existe des exploits javascript qui peuvent être envoyés par le serveur pour faire éxécuter du code malicieux par votre ordinateur.
 
C'est de cette façon qu'une vulnérabilité affectant le navigateur firefox qualifiée de critique par Mozilla a été publiée en 2013 (https://www.mozilla.org/en-US/security/advisories/mfsa2013-53/). Etant donné que le Tor browser est un firefox customisé, il est donc également concerné (https://blog.torproject.org/blog/tor-security-advisory-old-tor-browser-bundles-vulnerable). Cette vulnérabilité concerne en théorie tous les systèmes d'exploitation, et comme elle permet de faire exécuter du code arbitraire sur votre ordinateur, il est en théorie possible d'en prendre le contrôle (https://lists.torproject.org/pipermail/tor-announce/2013-August/000089.html).
 
Concrètement, cette vulnérabilité a été exploitée en 2013 par le FBI pour démanteler un ensemble de services cachés pédopornographiques (https://www.wired.com/2013/09/freedom-hosting-fbi/ https://blog.torproject.org/blog/tor-security-advisory-old-tor-browser-bundles-vulnerable). L'attaque consistait à faire injecter le code javascript exploitant la vulnérabilité par l'hébergeur de service cachés (en l'occurence Freedom hosting (https://www.wired.com/2013/09/freedom-hosting-fbi/ https://blog.torproject.org/blog/hidden-services-current-events-and-freedom-hosting)). Ensuite, le code éxécuté par la machine cible de l'utilisateur (le payload) récupérait le nom de la machine et l'adresse mac, et l'envoyait sur un serveur via une connexion non torrifiée, ce qui permettait également de récupérer l'IP réelle (https://tsyrklevich.net/tbb_payload.txt).


=== Time pattern ===
=== Time pattern ===
245

modifications