von Bhabesh Raj Rai, Security Research

Unter Entwicklern ist ngrok ein beliebtes Reverse-Proxy-Programm, das interne Services über das Internet zugänglich macht, und den Datenverkehr über sein Cloud-Netzwerk leitet. Lassen Sie uns, inspiriert von einem Twitter-Thread, den Prozess der Erkennung des RDP-Tunnels (RDP: Remote Desktop Protocol) von ngrok durchgehen.

ngrok ist sehr einfach zu bedienen und kommt ohne Port-Weiterleitung, dynamisches DNS oder VPN aus. Dies macht es nicht nur für Entwickler attraktiv, sondern natürlich auch für Angreifer. Sie können ngrok für die Persistenz sowie die Ausbreitung im Netzwerk (Lateral Movement) missbrauchen, indem sie den lokalen RDP-Dienst öffnen.

Im Jahr 2019 berichtete Malwarebytes, dass Bedrohungsakteure ngrok in Lord EK integriert haben. Ein Jahr später meldete Trend Micro, dass ngrok bei einem Angriff auf einen Kunden zum Einsatz kam. Im selben Jahr enthüllte Mandiant, dass die Ransomware-Gruppierung MAZE ngrok verwendet, um RDP-Verbindungen zu tunneln. Obwohl ngrok eine Vielzahl von Protokollen tunneln kann, haben sich die Bedrohungsakteure verständlicherweise verstärkt auf RDP konzentriert.

ngrol blog

Sehen wir uns die verschiedenen Möglichkeiten an, mit denen Security-Verantwortliche in Unternehmen nach ngrok-Aktivitäten in ihrer Umgebung suchen können. Kunden können die Windows v5.4.1-Anwendung von LogPoint nutzen, die Warnmeldungen zur Erkennung von ngrok-Aktivitäten umfasst.

Erforderliche Logdaten-Quellen

  • Windows
  • Sysmon
  • Snort/Suricata
  • Zeek
  • Firewall

So erkennen Sie ngrok mit LogPoint

Wird ein RDP-Tunnel mit ngrok erstellt, wird der Quelladresswert ::%16777216 in den RDP-Event-Logdaten des Systems hinterlassen. Security-Verantwortliche können dieses Artefakt nutzen, um Reverse-RDP-Tunnel in ihrer Umgebung aufzuspüren.

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")

Searching for ngrok’s IP artifact in Windows’s RDP event logs.

Die Suche nach den IP-Artifakten von ngrok in den RDP-Event-Logdaten von Windows

Administratoren sollten sicherstellen, dass ihre Windows-Systeme die Logdaten von den Kanälen Microsoft-Windows-TerminalServices-LocalSessionManager/Operational und Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational an LogPoint weiterleiten.

Alternativ können Analysten Florians Sigma-Regel nutzen, die die von ngrok verwendeten Kommandozeilen-Parameter untersucht.

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.

Die Suche nach ngrok-Aktivitäten in Kommandozeilen-Mustern

Security-Verantwortliche können auch Sysmon verwenden, um nach ungewöhnlichen Prozessen zu suchen, die den RDP-Port mit localhost verbinden.

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.

Die Suche nach ungewöhnlichen Prozessen, die den RDP-Port mit localhost verbinden

Zudem ist möglich, ngrok-Aktivitäten mittels der Netzwerk-Logdaten zu erkennen. Der ngrok-Agent holt sich vor dem Aufbau des Tunnels zunächst die Liste der Domänen und IP-Adressen der ngrok-Tunnel-Server von https://s3.amazonaws.com/dns.ngrok.com/tunnel.json. Analysten können in DNS-Abfragen nach den ngrok-Domänen suchen.

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.

Ebenso können Analysten in den Netzwerk-Logdaten prüfen, ob ngrok-Tunnel-IPs vorhanden sind. Wir empfehlen Administratoren, ngrok-IP-Adressen in einer Liste – NGROK_TUNNEL_IPS – zu speichern und diese regelmäßig zu aktualisieren.

destination_address IN NGROK_TUNNEL_IPS

ngrok nutzt update.equinox.io für die Aktualisierung von Paketen, nach denen Security-Verantwortliche in den Netzwerk-Events suchen können.

domain="equinox.io"

Searching for ngrok’s domain used for update.

Die Suche nach der ngrok-Domäne, die für die Aktualisierung verwendet wurde

Neben der Firewall können Analysten auch IDS/IPS (wie beispielsweise Snort) verwenden, um ngrok-Aktivitäten zu erkennen.

norm_id=Snort message="*ngrok*"

Searching for Snort rule triggers related to ngrok.

Incident-Response bei echten Alarmen

Administratoren können die folgenden Schritte unternehmen, wenn sie eine korrekte ngrok-Warnung erkennen.

  1. Untersuchen Sie, wie der Angreifer die ngork-Binärdatei heruntergeladen und ausgeführt hat.
  2. Identifizieren Sie das Protokoll des ngrok-Tunnels.
  3. Ermitteln Sie die betroffenen Benutzerkonten.
  4. Finden Sie heraus, auf welche Systeme die Angreifer über den Tunnel zugegriffen haben.

Kunden können ihre SOAR-Playbooks ausführen, um kompromittierte Benutzerkonten zu reparieren und betroffene Systeme zu bereinigen.

Die Umsetzung von Detection-in-Depth ist in der aktuellen Bedrohungslandschaft entscheidend

ngrok ist nur eines von vielen Beispielen für Bedrohungsakteure, die legitime Tools für ihre schadhaften Zwecke nutzen. Die Angreifer werden ihr Bestes geben, um im Hintergrundrauschen unterzutauchen und den Security-Verantwortlichen die Arbeit zu erschweren. Detection-in-Depth, eine tiefgehende Erkennung von Bedrohungen, ist im Zusammenspiel mit der Transparenz der Logdaten für Endpunkte, Netzwerke, Identitäten und Cloud-Umgebungen unerlässlich.

Nutzen Entwickler das Tool ngrok, raten wir Unternehmen, die legitimen ngrok-Aktivitäten als Baseline zu erfassen und sie als sicher zu listen. Damit ist gewährleistet, dass alle ungewöhnlichen ngrok-Aktivitäten auffallen.