zurück zur Übersicht

Aller guten Dingen sind drei? Oder drei statische Methoden zur Malware Analyse (Teil 2)

Malware Analyse ist ein forensischer Prozess, der umfangreiche Kenntnisse erfordert.

Im ersten Teil  unserer Malware Analyse haben wir uns mit der Reputationsanalyse und der dem Import/Export Verhalten von potenzieller Malware beschäftigt. Doch jetzt wird es wirklich spannend.

Verwendete Strings innerhalb der Datei

Durch die Analyse der verwendeten Strings können im Rahmen der Malware Analyse sehr interessante Informationen aus einer Datei herausgezogen werden, vorausgesetzt die Datei ist nicht verschlüsselt oder gepackt.

Klassische Beispiele für Indicators of Compromise die mittels einer String Analyse ausgelesen werden können:

  • Kontaktierte Domains und IP-Adressen
  • Registry Keys
  • Dynamische API Calls
  • Erstellte und gelesene Dateien
  • Passwörter
  • Angesprochene Dienste (z.B.: SMB)
  • Verwendete Protokolle (SMTP, HTTP/S, TOR…)
  • Und viele weitere….

Der folgende Screenshot zeigt eine Beispielmalware die innerhalb der ausführbaren Datei eine weitere ausführbare Datei enthält. Das ist ein ganz klassisches Muster für sogenannte Dropper, also Malware deren einziger Zweck es ist, weitere Schadkomponenten nachzuladen.

Abbildung 3: Der Screenshot zeigt den Standard erwarteten String „This program…“ allerdings warum zweimal?
Abbildung 3: Der Screenshot zeigt den Standard erwarteten String „This program…“ allerdings warum zweimal?

Folgen wir dem String in einem Hex Editor der Wahl, hier HxD, sehen wir, dass deutlich nach dem Ende des normalen PE Headers plötzlich ein zweiter erscheint.

Abbildung 4: PE-Header bei Offset 0000B020, dieser sollte bei Offset 00000000 liegen und eigentlich nicht erneut auftreten.
Abbildung 4: PE-Header bei Offset 0000B020, dieser sollte bei Offset 00000000 liegen und eigentlich nicht erneut auftreten.

Verwendet die zu analysierende Datei Mechanismen, die das Auslesen von Strings erschweren sollen (z.B. Packen oder Crypten) und sind diese wirksam implementiert, ist es in der Regel in der statischen Analyse nicht möglich, diese zu extrahieren. Wichtig ist, dass die Obfuscation von Strings sehr häufig auch bei legitimen Programmen eingesetzt wird, um das Reverse Engineering eines Programmes zu erschweren. Das verschlüsseln von Strings ist damit kein Indikator für die Entscheidung, ob eine Datei bösartig ist oder nicht.

Das Packen und Verschlüsseln von Dateien wird beim Ladevorgang einer Datei i.d.R. umgekehrt, das heißt die Daten liegen danach wieder im Klartext vor, zumeist in den Speichersektionen.

Abbildung 5: Zwei mal die gleiche Datei: Einmal nicht gepackt und einmal mit dem öffentlichen Packer "UPX".
Abbildung 5: Zwei mal die gleiche Datei: Einmal nicht gepackt und einmal mit dem öffentlichen Packer „UPX“.

Extra – Analyse des WannaCry Killswitch

Die letzten zwei Techniken erlauben uns bereits, eine Analyse der Killswitch Funktionalität von WannaCry durchzuführen. Die Ransomware hatte im Mai 2017 enormen Schaden bei mehreren global tätigen Unternehmen verursacht (mehr zum Ausbruch im Artikel Wannacry – weltweiter Ransomware Ausbruch kommt nicht unerwartet). WannaCry hat sich mittels eines von der NSA geklauten Exploits (Ethernal Blue) sehr schnell auf Rechnern weltweit ausgebreitet. Der alsbald entdeckte Killswitch von WannaCry sorgte allerdings dafür, dass die Ransomware sich nicht mehr von bereits Infizierten Systemen auf andere weiterverbreiten konnte. Die Funktionsweise war relativ simpel: Wenn eine bestimmte Domain (die Anfangs nicht registriert war) erreichbar ist, wird die Verbreitung gestoppt. Es genügte also, die fragliche Domain zu registrieren, um die Infektionswelle einzudämmen.

Durch eine String Analyse der Ransomware kann die für den Killswitch verwendete Domain schnell identifiziert werden:

Abbildung 6: String Analyse WannaCry Killswitch mittels der Software IDA Pro.
Abbildung 6: String Analyse WannaCry Killswitch mittels der Software IDA Pro.

Durch den Shortcut „X“ können alle Programmfunktionen identifiziert werden die die Variable „aHttpWwwIuqerfs“ verwenden, sogenannte XRefs.

Abbildung 7: Die Datei wird nur in der Funktion "WinMain" verwendet.
Abbildung 7: Die Datei wird nur in der Funktion „WinMain“ verwendet.

Wenn wir uns den Pseudocode der Funktion „WinMain“ ansehen, erkennen wir eine ganz einfache Abfrage, ob die Webadresse http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com erreichbar ist, oder nicht. Ist die Adresse nicht erreichbar, wird ein Call auf die Funktion „sub_408090“ ausgeführt – dort beginnt die Malware dann sehr schnell mit der Weiterverbreitung der Malware.

Abbildung 8: WinMain Funktion von WannaCry.
Abbildung 8: WinMain Funktion von WannaCry.

Eine einfache String Analyse mit einem Wissen der einzelnen API Funktionen und einem professionellen Toolsets ermöglicht also relativ problemlos die Identifizierung einzelner Softwarekomponenten und deren funktionsweise.

Fazit

Zusammenfassend bin ich persönlich der Meinung, dass es mittels statischer Analyse auf jeden Fall möglich ist, sehr viele Informationen über eine Datei zu sammeln. Für eine vollständige Bewertung einer Datei reichen allerdings diese Methoden meistens nicht aus. Geschicktes platzieren von schadhaftem Programmcode innerhalb von legitimen Anwendungen (z.B. wie im Fall von CCleaner), geschicktes Verstecken weiteren Schadcodes im System und viele andere Techniken können in den meisten statischen Analysen nicht festgestellt werden.

Einem erfahrenen Analysten stehen natürlich noch weit mehr Methoden zur Verfügung, als wir Sie in einem Blogbeitrag darstellen können.

 


Bild: ©iT-CUBE SYSTEMS AG 2018

Schreibe einen Kommentar

Wir nehmen Datenschutz ernst! Deshalb informieren wir Sie, was mit Ihren Daten geschieht:

  • Daten aus Formularen und Webseiten-Tracking können von uns zur Analyse gespeichert werden
  • Die Daten können zur Optimierung der Webseite ausgewertet werden. Das ermöglicht es uns, besser zu verstehen, wo das Interesse unserer Besucher liegt. Wir benutzen primär Hubspot für dieses Tracking (mehr dazu finden Sie in der Erklärung auf unserer Datenschutzseite, siehe unten)
  • Wir geben Ihre Daten nicht an Dritte weiter. Im Rahmen von Veranstaltungen, an denen Sie teilnehmen möchten, kann es nötig sein, dass Ihre Daten an Vertragspartner übermittelt werden.
  • Sie haben jederzeit ein Recht auf die Herausgabe, Berichtigung oder Löschung persönlicher Daten.
  • Sie können Ihre Einwilligung, mit uns in Kontakt zu treten, jederzeit mit sofortiger Wirkung widerrufen.

Weitere Details dazu, was wir mit den Daten tun und nicht tun finden Sie auf unserer Datenschutzseite, oder schreiben Sie mich bei Fragen direkt an!

Felix Möckel
Data Protection Officer