Vous êtes sur le site public du Cert-IST
"Torpark" et l'utilisation des réseaux collaboratifs

Date :01 Décembre 2006

Publication: Article

Aujourd'hui, les réseaux collaboratifs commencent à prendre une part de plus en plus prépondérante dans les systèmes de communications modernes au niveau mondial (Skype, ...) ou sur un niveau plus localisé (réseaux Wifi "Adhoc").

Ce type de réseau s'appuie généralement sur la mise en commun au sein d'une communauté plus ou moins bien définie de diverses ressources (espace disque, CPU, bande passante) afin d'offrir des communications et des services additionnels de qualité pour un moindre coût.

Initialement conçu pour répondre à des besoins de robustesse de l'infrastructure ou de la solution finale (notion de redondance), ce concept a rapidement trouvé une autre finalité très intéressante au fil des années en s'orientant vers des solutions capables de contourner les limites imposées par les contraintes de sécurité.

A travers cet article, nous allons vous présenter un cas concret de ce type de réseau et de son utilisation à travers l'outil de navigation web "Torpark" (http://www.torrify.com/).


"Torpark"

"Torpark" est un logiciel qui s'appuie sur le navigateur web Firefox et qui permet de surfer anonymement sur Internet en passant par une suite de nœuds (issus d'un réseau "TOR" - Cf. ci-dessous) avant d'arriver au serveur web final. Ainsi c'est le dernier nœud de la chaîne qui est vu, côté serveur web, comme étant l'initiateur de la connexion HTTP/HTTPS.

Outre ce comportement vis-à-vis du serveur web distant, "Torpak" adopte aussi un comportement spécifique pour l'initialisation de la connexion au niveau du client. A ce niveau, lorsque l'utilisateur sélectionne une URL (HTTP ou HTTPS), le client "Torpark" se connecte, dans un premier temps, vers une des adresses IP choisie de manière aléatoire (parmi l'ensemble des nœuds du réseau "TOR" disponibles) et initie une session TLS ("Transport Layer Security" – port 443) avec cette machine distante. Cette connexion contient de manière chiffrée la requête HTTP(S)/GET initiale saisie par l'utilisateur. Ensuite, par rebonds successifs au travers du réseau collaboratif, la requête initiale HTTP(S) de l'utilisateur est transportée jusqu'au serveur web où elle est transformée en une requête HTTP(S) standard par le dernier nœud TOR sollicité. La réponse du serveur web prend le chemin inverse vers le client "Torpark".

L'utilisateur ne se connecte donc pas directement au serveur web final; mais surtout l'URL et l'adresse IP du serveur web recherché ne peuvent pas être identifiées à la sortie du réseau de l'entreprise (généralement dans la première connexion de l'outil vers l'extérieur). Ces données sont encapsulées dans une première connexion "anodine" que les relais web laissent très probablement passer.

Cette pratique permet ainsi de contourner les listes noires ("blacklists") positionnées au niveau des relais HTTP(S) de l'entreprise.

Il est à noter que cette solution peut engendrer des problématiques de confidentialité/intégrité des communications dû au transit des données via des systèmes tiers (mais ces problématiques peuvent s'avérer moins "critiques" pour un utilisateur décidant de contourner la politique de sécurité d'un SI).


Le côté technique de "Torpak" :

"Torpark" s'appuie sur le réseau TOR ("The Onion Router") collaboratif (http://tor.eff.org) pour rendre la navigation anonyme.

"Tor, pour The Onion Router, est un réseau anonyme et décentralisé permettant de rendre anonymes les connexions Internet." (http://fr.wikipedia.org/wiki/Tor_%28r%C3%A9seau%29)

Un exemple d'architecture du réseau TOR est décrit à l'adresse suivante : http://tor.eff.org/overview.html.fr

En fait, il existe sur Internet des serveurs ("routeurs") TOR qui sont mis à la disposition de la communauté. Ce sont généralement des PC d'internautes qui ont fait une démarche volontaire pour mettre à la disposition de la communauté une partie de leur ressource en terme de bande passante (et de CPU). Pour cela, ils doivent installer le logiciel fourni par TOR.

Le logiciel de navigation web "Torpark", à proprement parler, est une sur-couche pour le navigateur Firefox. Il utilise le client du réseau TOR afin d'établir ses communications à travers le réseau TOR.

Pour cela, il se connecte dans un premier temps à un serveur contenant l'annuaire des PC du réseau TOR. Une fois que l'annuaire a fourni l'adresse d'un nœud du réseau, le client se connecte à ce serveur, qui se connecte lui-même à un autre serveur TOR, et ainsi de suite pour permettre d'anonymiser la connexion finale.

Les communications au travers du réseau TOR sont généralement chiffrées. Mais récemment des personnes ont découvert un moyen de "casser" ce chiffrement (http://www.packetstormsecurity.org/0610-advisories/Practical_Onion_Hacking.pdf).


Comment détecter l'utilisation de "Torpark" dans un SI :

Il existe une liste des principaux serveurs TOR sur le site suivant : http://moria.seul.org:9031/

L'IP du serveur/routeur TOR est située sur les lignes de type :

   router moria1 18.244.0.188 9001 0 9031

Nota : Les arguments suivant l'adresse IP "18.244.0.188" sont les ports sur lesquels cette adresse peut être contactée.

Il existe également un outil écrit en Python qui permet de récupérer cette liste (http://tor.eff.org/faq-abuse.html - section "I want to ban the Tor network from my service").

Sinon, contrairement à Skype, les éditeurs de "Torpark" et du réseau TOR proposent les sources de leur logiciel. On peut donc trouver dans les sources de TOR (fichier "config.c") les adresses des serveurs d'annuaire utilisés par le client TOR afin de mettre à jour la liste des serveurs TOR disponibles sur Internet.

Cette liste apparaît en effet "en clair" dans le source :

const char *dirservers[] = {

"moria1 v1 18.244.0.188:9031
"FFCB 46DB 1339 DA84 674C 70D7 CB58 6434 C437 0441",
"moria2 v1 18.244.0.114:80 "
"719B E45D E224 B607 C537 07D0 E214 3E2D 423E 74CF",
"tor26 v1 86.59.21.38:80 "
"847B 1F85 0344 D787 6491 A548 92F9 0493 4E4E B85D",
"lefkada 140.247.60.64:80 "
38D4 F5FC F7B1 0232 28B8 95EA 56ED E7D5 CCDC AF32",
"dizum 194.109.206.212:80 "
"7EA6 EAD6 FD83 083C 538F 4403 8BBF A077 587D D755",
NULL


Conclusion

Les réseaux collaboratifs pourraient devenir au fil du temps une source de problèmes pour la sécurité des systèmes d'information dans la mesure où de nombreux outils web sont en train de se développer autour de ce concept.

Bien que le code des principaux outils existants soit pour l'instant accessible, et permet d'identifier les traces que peut laisser leur utilisation sur un réseau, il est néanmoins nécessaire de surveiller les évolutions du code de ces outils et de l'environnement TOR ainsi que l'URL http://moria.seul.org:9031/ afin de détecter principalement des modifications sur les adresses IP contactées.