Ransomware kann für Unternehmen zum Stresstest werden: Daten und Systeme, mit denen man täglich arbeitet, sind nicht mehr verfügbar und werden nur gegen die Bezahlung hoher Summen wieder freigegeben. Umso schlimmer ist es, wenn die Backups ebenfalls von der Verschlüsselung betroffen sind oder gar für bestimmte Bereiche der IT-Infrastruktur gar nicht erst angefertigt wurden.
So kommt es immer wieder vor, dass nicht nur die Dateien auf Arbeitsplatz-Rechnern, Servern und Fileshares verschlüsselt, sondern auch die Hypervisoren wie Hyper-V oder ESX-Server übernommen werden. Dabei werden die dort vorliegenden virtuellen Festplatten (z. B. in Form von vhdx- oder vmdk-Dateien) ebenfalls verschlüsselt, sodass die Server-Systeme gar nicht erst gestartet werden können.
Diese Dateien sind mitunter sehr groß und eine Vollverschlüsselung der virtuellen Festplatten kann sehr viel Zeit in Anspruch nehmen. Je länger die Verschlüsselung dauert, desto eher kann das Opfer diese erkennen und Gegenmaßnahmen treffen. Deshalb wird bei großen Dateien nicht immer alles, sondern nur der Dateianfang und das Dateiende verschlüsselt. Das reicht in den meisten Fällen aus, um die Datei unbrauchbar zu machen: Virtuelle Maschinen lassen sich so nicht mehr starten oder in anderen Systemen mounten. Für klassische Recovery-Strategien sieht es dann düster aus, wenn die Backups auch nicht mehr funktionieren.
Und genau so einen Fall hatten wir bei einem Kunden im Rahmen eines DFIR-Einsatzes!
Wir müssen an die unternehmenskritischen Daten
Um den Betrieb wieder aufnehmen zu können, mussten zwingend unternehmenskritische Daten eines dedizierten Systems wiederhergestellt werden. Doch diese befanden sich auf einem System, was über den Zugriff der Angreifer auf den Hypervisor verschlüsselt wurde. Ein Mounten der virtuellen Festplatte war leider unmöglich, doch wir konnten nach einer kurzen Analyse erkennen, dass nicht die gesamte Festplatte, sondern nur ein Teil (Anfang und Ende) der Festplatte verschlüsselt war. Zwar ist das Dateisystem mit Informationen wie Dateinamen, Dateigrößen, oder Struktur nicht mehr nutzbar, aber mit ein bisschen Glück kann man über sogenanntes File Carving an die Rohdaten der Festplatte.
File Carving
File Carving ist eine forensische Methode zur Wiederherstellung von Dateien, bei der ein intaktes Dateisystem nicht zwingend notwendig ist. Stattdessen werden dabei die Rohdaten auf einem Speichermedium auf bekannte Dateistrukturen anhand definierter Muster - wie Header (Dateianfang) und Footer (Dateiende) - analysiert. Wenn der Anfang von einer Festplatte betroffen ist, sind meist auch die Partitionstabellen und die Dateisystem-Metadaten nicht mehr lesbar. Das führt dazu, dass Betriebssysteme oder klassische Wiederherstellungssoftware keine Informationen mehr darüber haben, welche Dateien vorhanden waren, wo sie gespeichert wurden oder wie groß diese waren. File Carving kann Fragmente von Dateien extrahieren, indem es direkt in den Rohdaten nach Dateisignaturen sucht. Beim klassischen File Carving werden die sogenannten Header und Footer gesuchter Dateitypen identifiziert. Anschließend wird manuell oder vorwiegend automatisiert eine Suche nach dem Header dieses Dateityps gestartet. Wird dieser gefunden, findet eine Prüfung statt, ob in den nachfolgenden Fragmenten der Footer des Dateityps identifiziert werden kann. Fragmente, die sich zwischen Header und Footer befinden, werden als Dateiinhalte klassifiziert und inklusive Header/Footer exportiert.
Diese Methode hat allerdings auch ihre Grenzen. Insbesondere dann, wenn die gesuchten Dateien kein eindeutiges Ende haben.
Während viele Formate klar definierte Header und Footer verfügen, die Anfang und Ende der Datei markieren, fehlt diese Struktur bei anderen, wie z. B. bei Datenbanken, Rohdaten oder proprietären Formaten. In solchen Fällen ist es sehr schwierig bis unmöglich, exakt zu bestimmen, wo eine Datei aufhört. Das kann dazu führen, dass beim Carving entweder nur unvollständige Datenfragmente extrahiert oder dass versehentlich benachbarte Datenbereiche mitgelesen werden, die zu anderen Dateien gehören. Das Resultat sind beschädigte oder vermischte Dateien, deren inhaltliche Integrität nicht mehr gewährleistet werden kann. Die Interpretation der wiederhergestellten Inhalte erfordert dann Erfahrung im Umgang mit den spezifischen Dateiformaten, um relevante Informationen korrekt zu identifizieren und voneinander abzugrenzen.
File Carving lässt sich mit diversen Werkzeugen - von professionellen kommerziellen Tools bis hin zu kostenfreien und dennoch gut funktionieren Open-Source-Programmen - umsetzen.
Eine Variante ist die Verwendung des Open-Source-Tools foremost.
Benutzung von foremost
Möchte man Dateien aus einem defekten oder verschlüsselten Image extrahieren, ist es am einfachsten, wenn man sowohl den Datei-Header als auch den Footer kennt. Im folgenden Beispiel wird versucht, aus einem Image verloren gegangene xcf-Dateien des Open-Source-Bildbearbeitungsprogramms GIMP wiederherzustellen. Leider bietet foremost per Standardkonfiguration keine Möglichkeit der Extraktion von xcf-Dateien an. Daher ist es empfehlenswert, sich vorher Referenzdateien anzusehen. Hierbei wird überprüft, ob die Anfänge von fünf Referenzdateien dasselbe Muster aufweisen:
Es scheint, dass alle Dateien mit derselben Zeichenfolge beginnen. Daher wird in diesem Beispiel der folgende Header (”gimp xcf”) definiert:
\x67\x69\x6d\x70\x20\x78\x63\x66
Dasselbe Verfahren wird nun für das Dateiende genutzt. Nicht alle Dateitypen haben ein fest definiertes Ende. Anhand der Referenzdateien kann überprüft werden, ob dies hier der Fall sein könnte:
Die Dateienden sind nicht unbedingt eindeutig, scheinen aber grundsätzlich mit vier Nullbytes abzuschließen:
\x00\x00\x00\x00
Mit diesen Informationen kann nun eine neue Zeile in der Konfigurationsdatei von foremost (/etc/foremost.conf
) eingetragen werden:
Dabei wird Folgendes definiert:
- Dateiendung, mit der die wiederhergestellten Dateien benannt werden sollen
- Beachtung der Groß- und Kleinschreibung von gesuchten Dateiinhalten (in diesem Fall nein)
- Maximale Dateigröße (hier 5 MB)
- Datei-Header
- Datei-Footer
Anschließend kann foremost mit den Parametern -o (Ablageort für wiederhergestellte Dateien) und -i (zu nutzendes Image) gestartet werden:
foremost -o recovered -i image.img
Der Test zeigt, dass foremost mit der gesetzten Konfiguration in der Lage war, mehrere xcf-Dateien wiederherzustellen.
File Carving im konkreten Ransomware-Fall
Was im Beispiel für die xcf-Dateien so einfach aussah, hat sich im konkreten Fall beim Kunden als wesentlich schwieriger herausgestellt. Die dringend benötigten Daten hatten keinen eindeutigen Datei-Footer und sowohl die Header als auch die Dateiinhalte der unterschiedlichen Dateitypen wiesen sehr starke Ähnlichkeiten auf. Dadurch ergaben sich folgende Probleme:
- Beim File Carving würden zwangsläufig unsaubere Dateien entstehen
- Die Dateien lassen sich nicht während des Carvings eindeutig voneinander unterscheiden
Um die Probleme anzugehen, haben wir uns vom Kunden mehrere Referenzdateien der unterschiedlichen Dateitypen zur Analyse geben lassen. Dadurch konnten wir zumindest schon einmal eine maximale Dateigröße mit ein wenig Puffer definieren. Um die Dateien zu carven, konnten wir uns nur am Datei-Header orientieren. Dieser war bei allen Dateitypen sehr ähnlich, weshalb wir in der Konfiguration unseres Carving-Tools nur einen Bruchteil des Headers genommen haben, um “möglichst grob” erst einmal alles aus dem Dateisystem herauszuholen.
Als Ergebnis hatten wir hunderte Dateien mit mehreren Gigabytes an Gesamtgröße. Um die Dateien nun voneinander zu unterscheiden, mussten wir vermehrt auf den Inhalt der Dateien achten. Aufgrund der Datenmenge wäre eine manuelle Überprüfung nicht effizient gewesen. Daher haben wir uns dazu entschlossen, für die unterschiedlichen Dateitypen YARA-Regeln zu schreiben, mit denen wir automatisiert die Inhalte durchsuchen und die Dateien nach Typ sortieren konnten.
Jedoch gab es das Problem, dass diese Dateien aufgrund ihrer unsauberen Wiederherstellung nicht ohne weiteres in die neu aufgesetzten Systeme importiert werden konnten. Nach einiger Recherche konnten wir ein Programm finden, was genau dieses Problem für uns gelöst hat. Der Kunde konnte die unsauberen Dateien in dieses Programm importieren, das Tool hat alles, was nichts mit den für das System wichtigen Daten zu tun hatte, ignoriert und konnte per Knopfdruck die relevanten Dateiinhalte sauber exportieren.
Dadurch war es möglich, unternehmenskritische Systeme trotz Ransomware wieder in den Betrieb zu nehmen und eine vorerst als notwendig erscheinende Zahlung der Erpressersumme abzuwenden.
Fazit
In diesem konkreten Fall hatten wir und der Kunde das Glück, dass große Teile der virtuellen Maschinen trotz Ransomware-Verschlüsselung noch intakte Daten enthielten. Durch das File Carving und zusätzliche freie Werkzeuge konnte ein unternehmenskritisches System wieder in Betrieb genommen und dem Kunden zumindest ein Teil seiner Arbeitsfähigkeit zurückgegeben werden.
Dennoch ist es wichtig, folgendes zu betonen: Solche Erfolge sind Ausnahmen und keine Garantie, mit dieser Methode immer erfolgreich sein zu können.
Es ist für Unternehmen absolut wichtig, alle relevanten Systeme regelmäßig zu sichern und diese von der IT-Infrastruktur zu trennen. Hilfe für sichere Backup-Konzepte finden sich unter anderem beim BSI.
Weiterführende Links
Weitere Beiträge
von Timo Sablowski & Finn Hohlfeld
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Blog-Autor*innen
Timo Sablowski
Principal IT-Security Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Finn Hohlfeld
IT-Security Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.