Saut à tous, aujourd’hui on va voir comment détecter du trafic TOR sur son réseau. Je vais considérer que le réseau « en onion » TOR est aujourd’hui suffisamment connu. Je n’ai pas besoin de vous refaire un topo sur son fonctionnement, ou sur la portée politique de cet outil. Si vous voulez en savoir plus, allez voir le site du projet et sa page wikipédia.
Je tiens juste à rappeler avant de commencer que TOR ne sert pas qu’a des usages illégaux. Il permet aussi à des journalistes, lanceurs d’alertes X ou Y dans des pays V ou W de faire leurs boulot sans finir en taule, et ca c’est plutôt bon pour la Démocratie (avec un grand D).
Détecter du trafic TOR – prérequis:
Donc l’objectif d »aujourd’hui, détecter du trafic TOR sur son réseau et identifier les postes du réseau qui utilisent TOR pour bypassé vos sécurités. Il va sans dire que ce genre de recherche ne peut se faire sans un ou plusieurs logiciel de supervision qui vous donne accès au logs des machines, aux captures du trafic réseau : quand on ne voit rien, on ne trouve rien…
I – Installer un IDS
La plupart des IDS aujourd’hui détecte plutôt bien le traffic tor, aussi déployer un Snort, Bro ou Suricata vous permettra de faire le boulot automatiquement sans vous poser trop de questions. Mais où est le fun la dedans ?
II – Les logs Windows
Deuxième approche toute bête si vous avez un moyen de collecte et de traitement des logs des vos machines, et que vous avez activé les logs qui trace les démarrage de processus : cherchez simplement toutes les lignes de journaux contenant « tor.exe ». Ca parait simple, mais vous allez attraper tous les utilisateurs qui ont installé tor sans se poser plus de question. Autre avantage, vous détecterez aussi les exécutables tor « portables » lancé depuis une clé USB. Cette technique est très efficasse en contrôle de vos utilisateurs. Mais ne rêvez pas trop, les malwares et autres APT utilisant TOR en exfiltration de données ne laisserons pas trainer un fichier tor.exe bien en évidence…
III – Le réseaux
La, ca va commencer à piquer un peu plus TOR fait bien attention à utiliser un protocole HTTPS relativement standard pour ne pas faire crier tous les firewalls et IDS sur son chemin. On a quelques options tout de même :
La liste des relais
Tout d’abord, la liste des nœuds du réseau TOR est accessible, par exemple via le site : atlas.torproject.org, qui utilise l’API onionoo. Ca permet déjà de tester un couple IP/port pour savoir si c’est un routeur TOR qui est derrière. Et si vos traces datent un peu, pas d’inquiétude : le site exonerator conserve la liste des relais TOR dans le temps ce qui permet de savoir si une IP était relais TOR à une date ‘t’.
Si cette liste des relais vous intéresse, je vous conseille de jeter un œil à la lib python onion_py qui permet de scripter la récupération de la liste.
Installer Onion_Py :
sudo pip install OnionPy
Récupérer la liste relais TOR en 8 lignes python:
from onion_py.manager import Manager from onion_py.caching import OnionSimpleCache manager = Manager(OnionSimpleCache()) sd = manager.query('details') len(sd.relays) for relay in sd.relays: for addr in relay.or_addresses: print(addr)
Je vous laisse en exercice de déterminer si le relais est actif ou non, de séparer le port et l’IP, de récupérer le petit nom du routeur-oignon, son pays, et son empreinte. et il ne vous reste plus qu’a croiser cette liste IP:Port avec vos journaux de sondes, routeurs ou firewalls pour avoir des bonnes pistes des clients TOR chez vous. Un exemple en utilisant SiLK par sur ce blog.
L’analyse du trafic
Dernière option, la plus efficasse, analyser le trafic : notamment via les certificats SSL généré par TOR qui présente un pattern particulier. Et la je vous invite à lire les 2 article qui en parle mieux que moi :
https://www.rsreese.com/detecting-tor-network-traffic-with-yaf-and-python/
https://www.rsreese.com/detecting-tor-traffic-with-bro-network-traffic-analyzer/
C’est beaucoup plus difficile à mettre en place en terme de moyens (humain, technique) par contre c’est ce qui donnera les meilleurs résultats car vous verrez même les programmes dérivés utilisant TOR comme anonymox ou les « Tor-based Malware« . Et en plus c’est fun à faire…
Conclusion : et si on mélange tout ?
Bon voilà, j’espère que ca vous a montré ce qu’il est possible de faire comme chasse aux oignons sur vos réseaux. Là ou ca devient vraiment efficasse c’est quand vous commencerez à pouvoir croiser les résultats de votre IDS, avec les logs d’une machine et les capture réseaux associées. Vous pourrez alors faire la différence entre un utilisateur qui cherche juste à contourner la politique d’entreprise avec un malware avancé capable de se connecter à TOR pour exfiltrer des infos ni vu ni connu.
En ouverture, je invite à jeter un oeil à ce script python, si vous cherchez à comprendre comment TOR fonctionne dans le dedans : https://github.com/cea-sec/TorPylle