Aller au contenu
ARTICLE
Comment utiliser le darknet Tor pour protéger son système d’information ?

Retour

Comment utiliser le darknet Tor pour protéger son système d’information ?

Dans l’article sur la problématique de l’exposition des services, et 10 cyberattaques qui ont exploité le principe d’exposition, nous mettions en évidence les risques liés à la mise en écoute des services sur internet.

Et si nous dissimulions ces services, pour éviter qu’ils ne puissent être trouvés par n’importe qui ?

Une des façons de faire est d’utiliser le réseau Chimere et le mécanisme des services cachés qu’il propose. Cependant, si vous avez peu de services et d’utilisateurs à gérer, que les questions de performance ne sont pas un sujet pour vous, et que vous aimez mettre les mains dans le cambouis, pourquoi ne pas directement utiliser le réseau Tor ? Cette méthode, est intéressante pour les particuliers, ou les petits systèmes d’information d’entreprise.

Voyons comment protéger un service SSH, et éviter d'être la cible d’attaques. En avant !

Le commencement : un service SSH exposé sur internet. Et attaqué.

Pour cet article, nous disposons d’un serveur Linux, ainsi que d’un service d’administration SSH en écoute sur internet.

Exposer le port SSH est très pratique pour administrer à distance son serveur. C’est également un risque de sécurité important. Pour bien se rendre compte du problème, il suffit d’analyser le trafic à destination du service.

Pour cela, nous utilisons l’outil TCPDUMP qui affiche en temps réel les paquets réseaux captés par la machine. Nous configurons l’outil pour n’afficher que les paquets TCP présentant le flag SYN activé et à destination du port 22. En d’autres termes, nous filtrons le trafic pour n’afficher que les tentatives de connexion à destination de notre service SSH, exposé sur internet. Nous exécutons la commande suivante :

tcpdump -ni ens3 'tcp[tcpflags] == tcp-syn and tcp[tcpflags] != tcp-ack and port 22'

Sans trop de surprises, à peine notre service SSH disponible, il est déjà ciblé par des attaques et des scans réseaux :

Tcpdump

Tcpdump

Qui vient toquer à notre porte ? Prenons la toute première adresse identifiée (200.52.65.41), et faisons une rapide recherche Google. Pas de doute, le service en ligne IPDB nous informe qu’il s’agit d’une adresse IP Mexicaine connue pour réaliser des actions malveillantes :

AbuseIP

AbuseIP

Nous pouvons également vérifier qu’il y a bien des tentatives d’attaques et d’authentification sur notre service SSH. Pour cela, il suffit de rechercher les tentatives d’authentification échouées dans la journalisation, via la commande suivante :

tail -f /var/log/auth.log | grep "Failed password"

Résultat :

Password_failed_ssh.png

SSH failed password

Voyons comment empêcher ces attaques, en dissimulant notre service sur le darknet Tor.

Publier l’application sur le darknet

La première chose à effectuer est d’installer Tor sur la machine, afin de permettre d’enregistrer notre service sur le darknet :

apt install tor

Puis, nous vérifions que le processus Tor est bien en cours de fonctionnement :

systemctl status tor

Tor_running.PNG

Tor running

Nous allons maintenant configurer la machine pour publier notre service SSH sur le darknet.

Tout d’abord, nous identifions les interfaces sur lesquelles le service est en écoute :

netstat -lpa

Ssh_listening.PNG

SSH listening

Le service écoute sur 0.0.0.0, soit toutes les interfaces. Nous savons donc qu’il est également accessible depuis la boucle locale 127.0.0.1. En d’autres terme, un programme de notre machine peut contacter localement le service SSH en initiant une connexion vers 127.0.0.1 port 22.

Utilisons cette information pour faire pointer le processus Tor vers 127.0.0.1 et le port 22, et rendre accessible ce service via le darknet.

Nous éditons le fichier de configuration tor /etc/tor/torrc et y ajoutons les lignes suivantes :

HiddenServiceDir /var/lib/tor/ssh/
HiddenServicePort 22 127.0.0.1:22

La première ligne indique d’utiliser le répertoire /var/lib/tor/ssh/ comme le répertoire de données de notre service. Ce répertoire contiendra notamment la clé cryptographique et l’adresse “onion” du service, que nous utiliserons ensuite pour contacter l’application SSH à travers le darknet Tor.

La seconde ligne indique de publier l’accès au service final 127.0.0.1:22 à travers le darknet, également via le port 22. En effet, l’adresse “onion” doit être couplée à un port pour accéder au service. Ici, nous précisons le même port que celui du service exposé. Ce n’est pas un problème car le port ne pourra pas être scanné par les attaquants sans la connaissance de l’adresse onion du service.

Redémarrons le service Tor pour prendre en compte les modifications :

systemctl restart tor

Accéder à l’application à travers le darknet

Maintenant que le service est publié, nous allons y accéder.

Le fichier /var/lib/tor/ssh/hostname contient l’adresse “onion” de notre service, qui a été générée lors de l’enregistrement :

Ssh_onion_address.PNG

SSH Onion Address

Copions cette adresse qui nous sera utile pour accéder au service.

Sur notre poste de travail, nous allons également installer Tor. Nous travaillons avec un poste de travail Linux, mais ces étapes sont aussi adaptables sur Windows et MacOS :

apt install tor

Une fois installé, le processus Tor propose un proxy local, en écoute sur 127.0.0.1 et le port 9050. Toute requête socks5 envoyée à destination de cette adresse et de ce port est routée vers le réseau darknet Tor.

Il suffit donc de préciser l’adresse “onion” précédemment récupérée, pour se connecter au service.

Pour faciliter l’emploi du client SSH à travers le proxy Tor, nous utilisons le programme torsocks, et nous exécutons la commande de connexion au service :

torsocks ssh ubuntu@fjickkhzvwxpzokvfa5lqjow6ecwjsjfkkfbpozanziwjk4tphvpvlad.onion

Et nous voilà connectés au service SSH à travers Tor :

Ssh_connected_through_tor.PNG

SSH connected through Tor

Nous allons maintenant utiliser cette connexion pour couper l’exposition du service d’internet et éviter d'être la cible d’attaques.

Couper l’exposition du service

Comme nous l’avons vu précédemment, le service SSH écoute sur toutes les interfaces et est donc exposé sur internet. Nous souhaitons faire en sorte que son exposition se limite à la boucle locale pour permettre au processus Tor d’y accéder, et non à des clients externes.

Il existe plusieurs façons de faire cela. Par exemple, nous pourrions ajouter une règle de pare-feu, ou modifier tout simplement l’interface d'écoute du service.

Penchons nous sur la deuxième option.

Nous éditons le fichier de configuration SSH /etc/ssh/sshd_config, puis nous y ajoutons la ligne suivante :

ListenAddress 127.0.0.1

Enfin, nous redémarrons le service SSH pour prendre en compte les modifications :

systemctl restart sshd

Si nous essayons de nous connecter directement au service, sans passer par le darknet, nous obtenons bien un refus :

Connection_refused.PNG

Connection refused

Et maintenant, qu’en est-il des attaques ?

Regardons de nouveau le fichier de journalisation. Avons-nous toujours des tentatives d’authentification de la part des attaquants ?

Attack_stopped.PNG

Failed attack

Les tentatives d’authentification se sont arrêtées depuis la coupure d’exposition du service. Il est devenu indétectable, et seuls les connaisseurs de l’adresse onion (qui est en réalité une clé cryptographique) sont en mesure de négocier une connexion avec le service, désormais dissimulé sur le darknet Tor.

Généraliser la dissimulation des services

Bien sûr, le réseau Tor n’est pas adapté à une dissimulation massive des services d’entreprise.

Il est fastidieux d’automatiser la dissimulation de dizaines ou de centaines de service, d’amener les utilisateurs à manipuler des adresses .onion pour accéder à leurs services, ou encore d’accepter les faibles performances du réseau.

Pour toutes ces raisons, nous avons conçu le réseau Chimere : un darknet privé, facile à utiliser, performant, permettant de gérer de façon centralisée et “on-premise” les listes d’utilisateurs, de services et les droits d’accès associés. Chimere est aussi conçu pour permettre à tous les utilisateurs d’accéder aux services cachés en utilisant les programmes qu’ils ont l’habitude d’employer au quotidien.

DM-UA-TA.png

Chimere

Pour en savoir plus sur Chimere, n’hésitez-pas à visiter notre site, et inscrivez-vous à la newsletter pour ne pas manquer les prochains articles.


Inscription à la newsletter Chimere

Une newsletter mensuel avec de l'actualité cyber et des nouvelles de la startup.