Exfiltration de données : Les techniques ICMP et DNS tunneling
Aujourd’hui, l’un des principaux objectifs des cyberattaques est l’exfiltration d’informations, que ce soit à but d’espionnage ou de chantage. Souvent consécutif à des attaques de type phishing ou par l’exploitation de vulnérabilités connues, les techniques classiques d’exfiltration de données reposent sur des protocoles communs (http, https, tcp, imap, etc.). Simples à mettre en œuvre, elles sont cependant peu furtives et souvent bloquées par des protections mises en place.
Pour les contourner, les cybercriminels ont développé de nouvelles approches qui s’appuient sur les protocoles DNS et ICMP, présents dans tous les systèmes d’information et généralement moins surveillés.
L’ICMP TUNNELING
Le protocole ICMP ou « ping » est notamment utilisé par les administrateurs pour diagnostiquer les problèmes réseau. Les messages ICMP sont donc souvent autorisés à traverser les pare-feux et les segments de réseau qui filtrent généralement le trafic malveillant entrant et sortant.
Ce protocole est défini dans la RFC 792. Cette documentation spécifie que les datagrammes ICMP comprennent une section de données qui peut contenir une « charge utile » de n'importe quelle taille.
C’est la possibilité d’ajouter des données arbitraires dans un paquet de type « echo » qu’un attaquant va utiliser pour faire un tunnel ICMP.
MISE EN PRATIQUE
Pour matérialiser cette pratique, voici un exemple de scénario d’exfiltration de données dans le réseau local entre :
- La machine de l’attaquant (192 .168.3.129)
- La machine contenant les informations à exfiltrer (192.168.3.130)
Voici une capture d’un trafic ICMP généré par l’outil : ptunnel-ng
On peut y voir qu’au travers de cette requête ICMP, l’attaquant utilise la possibilité d’intégrer de la donnée pour exfiltrer des informations.
COMMENT EMPÊCHER LA CRÉATION DE TUNNELS ICMP ?
Étant donné que le protocole ICMP contribue à maintenir des connexions réseau saines, le blocage de l'ensemble du trafic ICMP peut poser des problèmes. Un monitoring du réseau et une analyse des paquets ICMP est nécessaire pour mettre en évidence ce genre de tunnel.
DNS TUNNELING
Sur le même principe que précédemment, il est possible de faire un tunnel via les requêtes DNS.
Mise en pratique
Pour matérialiser cette pratique, voici un exemple de scénario d’exfiltration de données dans le réseau local entre :
- Le serveur de l’attaquant (test.com)
- La machine contenant les informations à exfiltrer (192.168.5.128)
- Le routeur qui relaie les informations DNS (192.168.5.2)
Le nom de domaine utilisé par le pirate pour son attaque est : « tunnel.this.a.test.com »
Voici une capture d’un trafic DNS généré par l’outil : iodine
On peut remarquer que l’information est contenue dans le sous-domaine de la requête DNS.
NB : Cette information est encodée car la RFC (RFC 1035) concernant le DNS limite les caractères acceptables pour un nom de domaine.
Détection de tunnel DNS
Comme pour le tunnel ICMP, le meilleur moyen de détecter un tunnel DNS est le monitoring du réseau et l’analyse des paquets DNS.
CONCLUSION
Les attaques présentées permettent généralement 3 objectifs :
- Exfiltrer des données de manière furtive ;
- Mettre en place un serveur « Commande et contrôle » (C2) : à partir du moment où l’on peut établir une connexion entre deux machines alors il est possible de transmettre des commandes ;
- Déployer un Tunnelage IP : Il existe des services qui ont implémenté une pile IP sur le protocole ICMP ou DNS (par exemple mais ne sont pas limités à ces deux protocoles). Cela rend relativement simple le transfert de données à l’aide de logiciels de communication standards tels que FTP, Netcat, SSH, etc.
Ces attaques présentent l’avantage d’une plus grande furtivité mais sont cependant bien plus lentes pour transférer des fichiers que leurs prédécesseurs. Elles s’inscrivent donc généralement dans une stratégie d’attaque persistante sur le long terme (APT).
Différentes méthodes permettent de réduire les risques, pouvant prendre, par exemple, la forme d’une surveillance fine du trafic et des requêtes, ou d’une recherche d’anomalie sur des ouvertures de flux illégitimes. Elle nécessite cependant une étude et personnalisation préalable des fonctionnalités nécessaires à la gestion du système d’information, afin que les mesures de sécurisation n’entravent pas les besoins de production.
Sources :
https://www.cynet.com/attack-techniques-hands-on/how-hackers-use-icmp-tunneling-to-own-your-network/
https://github.com/DhavalKapil/icmptunnel
https://github.com/bdamele/icmpsh
https://blog.varonis.fr/quest-ce-que-le-dns-tunneling-guide-de-detection/
https://code.kryo.se/iodine/
https://calebmadrigal.com/dns-tunneling-with-iodine/
https://datatracker.ietf.org/doc/html/rfc1035