Contournement du filtre NoScript de Tor Browser

Tor Browser est un navigateur complet permettant d’être (un peu) anonyme sur internet et d’accéder aux sites web hébergés dans le réseau Tor, basé sur Firefox. Il est durci afin de protéger l’utilisateur et embarque des plugins comme NoScript afin de limiter les risques d’identification de l’utilisateur.
Ce navigateur a déjà été la cible de plusieurs exploitations publiques de vulnérabilités comme durant l’été 2016, et également par le FBI afin de compromettre un réseau de pédophiles.

La version 7.x est vulnérable à un contournement de NoScript trivial. NoScript inclut en gros une liste blanche de sites dont le Javascript est autorisé (entre autre) mais ce filtre est facile à contourner, il suffit que le serveur envoie une réponse légèrement modifiée en changeant l’entête « Content-Type ».
Normalement, cet entête (pour une page web), va contenir la valeur « text/html » et il suffit d’ajouter « ;/json » pour contourner NoScript (ce qui donne « text/html;/json »).

Ceci permet donc d’exécuter du Javascript sur un site qui ne le devrait pas et potentiellement de désanonymiser l’utilisateur (directement en Javascript comme c’était le cas avant avec WebRTC ou en exploitant une autre vulnérabilité).

Mais ce qui est intéressant c’est l’histoire de cette vulnérabilité car elle a été révélée publiquement par Zerodium. Zerodium est programme de recherche et d’achat de vulnérabilités inconnues (0day), crée par Chaouki BEKRAR (anciennement VUPEN). Ensuite, elles sont revendues à des agences gouvernementales ou des entreprises privées faisant de l’offensif (https://youtu.be/bbeiDL22DJA?t=1).

Zerodium dispose de cette vulnérabilité depuis « un certain temps » et l’a vendue, revendue, survendue à « des gens » jusqu’à ce qu’elle atteigne sa limite de durée de vie. Plus une vulnérabilité est utilisée dans la nature, moins elle a de valeur et risque d'être détectée puis corrigée. De ce fait (et sans doute pour d’autres raisons que je ne connais pas), ils mettent parfois une durée de vie à ces vulnérabilités avant de les publier ou les remonter aux éditeurs.

Dans le cas présent, ils doivent sans doute disposer d’autres vulnérabilités plus intéressantes leur permettant de la publier, principalement pour se faire de la publicité.

Ceci a bien entendu fait pas mal de bruit dans le milieu de la sécurité et Tor Browser a été rapidement corrigé en version 8. Mais surtout et cela a déjà été abordé de nombreuses fois : utiliser ce type d’outil seul n’assure pas un véritable anonymat. Alors oui, pour contourner les grilles de prix de certaines compagnies aériennes, cela fonctionne bien mais pas pour des usages à la limite de la légalité, ce que je ne recommande pas 😉.
L’utilisation de Tor Browser doit se faire à minima depuis une machine virtuelle « snapshotée » et remise à l’état précédent après chaque utilisation. Il est fortement recommandé aussi de mettre en place un réseau dédié évitant la désanonymisation. Pour faire simple, il s’agit d’avoir une zone dédiée derrière un firewall qui ne laisse sortir les flux que depuis une passerelle Tor, qui elle-même servira de proxy à la machine virtuelle que vous utiliserez pour naviguer sur internet.