by Bhabesh Raj Rai, Security Research

Parmi les développeurs, ngrok est un utilitaire proxy inverse populaire pour exposer des services internes à Internet en acheminant le trafic via son réseau Cloud. En s’appuyant sur un fil Twitter, passons en revue le processus de détection du tunnel RDP (Remote Desktop Protocol) de ngrok.

Ngrok est très facile à utiliser et ne repose pas sur la redirection de port, le DNS dynamique ou le VPN. Et bien évidemment, ce qui le rend attractif pour les développeurs, le rend également attractif pour les adversaires. En effet, ces derniers abusent de ngrok pour la persistance et le mouvement latéral en exposant le service RDP local.

En 2019, Malwarebytes a signalé la présence d’acteurs malveillants incorporant ngrok dans Lord EK. Un an plus tard, Trend Micro a signalé l’utilisation de ngrok dans une attaque contre un de ses clients. La même année, Mandiant a révélé que le groupe de ransomwares MAZE avait utilisé ngrok pour créer des connexions RDP par tunnel. Bien que ngrok puisse créer des tunnels au niveau d’un large éventail de protocoles, les acteurs malveillants se sont naturellement davantage concentrés sur le RDP.

ngrol blog

Passons en revue les différentes méthodes que les défenseurs des entreprises peuvent utiliser pour rechercher l’activité ngrok au sein de leur environnement. Les clients peuvent utiliser l’application Windows v5.4.1 de Logpoint qui inclut des alertes liées à la détection de l’activité ngrok.

Sources de log nécessaires

  • Windows
  • Sysmon
  • Snort/Suricata
  • Zeek
  • Pare-feu

Détecter ngrok avec Logpoint

La création d’un tunnel RDP par ngrok laisse la valeur d’adresse source ::%16777216 dans les logs d’événements RDP du système. Les défenseurs peuvent utiliser cet artefact pour rechercher les tunnels RDP inversés dans leur environnement.

norm_id=WinServer
((event_source IN ["Microsoft-Windows-TerminalServices-LocalSessionManager",
"Microsoft-Windows-TerminalServices-RemoteConnectionManager"])
OR (channel=Security event_id=4779)) (source_address="::%16777216" OR eventxml.address="::%16777216")

Recherche de l'artefact IP de ngrok dans les logs d'événements RDP de Windows.

Recherche de l’artefact IP de ngrok dans les logs d’événements RDP de Windows.

Les administrateurs doivent s’assurer que leurs systèmes Windows transfèrent bien les logs des canaux Microsoft-Windows-TerminalServices-LocalSessionManager/Operational et Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational vers Logpoint.

Alternativement, les analystes peuvent utiliser la règle sigma de Florian qui examine les paramètres de ligne de commande utilisés par ngrok.

label="Process" label=Create (("process"="*\ngrok.exe"
command IN ["* tcp *", "* http *", "* authtoken *"])
OR (command="* start *" command="*--all*" command="*.yml*" command="*--config*")
OR (command IN ["* tcp 139*", "* tcp 445*", "* tcp 3389*", "* tcp 5985*", "* tcp 5986*"]))

Searching for ngrok activity via its command line patterns.

Recherche de l’activité ngrok via les modèles de ligne de commande.

Les défenseurs peuvent utiliser Sysmon pour rechercher des processus inhabituels liant le port RDP à localhost.

norm_id=WindowsSysmon label=Network label=Connection
destination_address IN ["0:0:0:0:0:0:0:1", "127.0.0.1"] destination_port=3389 
-"process"="C:\Windows\System32\svchost.exe"

Searching for unusual processes binding the RDP port with localhost.

Recherche de processus inhabituels liant le port RDP à localhost.

Il est également possible de détecter l’activité ngrok via les logs réseau. Avant de créer le tunnel, l’agent ngrok récupère d’abord la liste des domaines et des adresses IP des serveurs de tunnel ngrok à partir de https://s3.amazonaws.com/dns.ngrok.com/tunnel.json. Les analystes peuvent rechercher les domaines ngrok dans les requêtes DNS.

label=DNS label=Query (domain IN ["tunnel.nrok.com", "tunnel.us.ngrok.com", "tunnel.eu.ngrok.com", "tunnel.ap.ngrok.com", "tunnel.au.ngrok.com", "tunnel.sa.ngrok.com", "tunnel.jp.ngrok.com", "tunnel.in.ngrok.com"]
OR query IN ["tunnel.ngrok.com", "tunnel.us.ngrok.com", "tunnel.eu.ngrok.com", "tunnel.ap.ngrok.com", "tunnel.au.ngrok.com", "tunnel.sa.ngrok.com", "tunnel.jp.ngrok.com", "tunnel.in.ngrok.com"])

Searching for DNS queries to ngrok’s domains.

De même, les analystes peuvent vérifier la présence d’adresses IP de tunnel ngrok dans les logs réseau. Nous conseillons aux administrateurs de placer les adresses IP ngrok dans une liste – NGROK_TUNNEL_IPS – et de les mettre à jour régulièrement.

destination_address IN NGROK_TUNNEL_IPS

Ngrok utilise update.equinox.io pour mettre à jour les packages, lesquels peuvent être recherchés par les défenseurs dans les événements du réseau.

domain="equinox.io"

Searching for ngrok’s domain used for update.

Recherche du domaine de ngrok utilisé pour la mise à jour.
Outre le pare-feu, les analystes peuvent également utiliser IDS/IPS (comme Snort) pour détecter l’activité ngrok.

norm_id=Snort message="*ngrok*"

Searching for Snort rule triggers related to ngrok.

Réponse à un incident suite à un vrai positif

Les administrateurs peuvent suivre les étapes suivantes lors de la détection d’une véritable alerte ngrok positive :

  1. Investiguez la manière avec laquelle l’acteur malveillant a téléchargé et exécuté le binaire ngork.

  2. Identifiez le protocole du tunnel ngrok.

  3. Identifiez les comptes utilisateur concernés.

  4. Investiguez les systèmes auxquels les pirates ont accédé à l’aide du tunnel.

Les clients peuvent exécuter leurs playbooks SOAR pour remédier les comptes utilisateur compromis et nettoyer les systèmes affectés.

La mise en œuvre d’une détection en profondeur est essentielle dans le paysage des menaces actuel

Ngrok n’est qu’un acteur parmi tant d’autres qui utilisent des outils légitimes à des fins malveillantes. Les adversaires feront de leur mieux pour se fondre dans le bruit de fond afin de rendre le travail des défenseurs plus difficile. La détection en profondeur est essentielle, ainsi que la visibilité sur les logs des systèmes endpoint, du réseau, des identités et du Cloud.

Si les développeurs utilisent ngrok, nous conseillons aux entreprises d’identifier et de référencer l’activité ngrok légitime puis de l’inscrire sur une liste d’exceptions (safelist) afin que toute activité ngrok inhabituelle se démarque du bruit.

Contacter Logpoint

Contactez-nous et découvrez
pourquoi les entreprises
leaders dans leur secteur
choisissent Logpoint: