heise+ | Reverse Engineering: Wie sich Malware selbst verteidigt

vor 12 Stunden 1
  1. Reverse Engineering: Wie sich Malware selbst verteidigt
    • Debugger-Erkennung
  2. Patching als Gegenmaßnahme
  3. Zeit als Waffe
  4. Analyseumgebung erkennen
  5. Verwirrtechniken
  6. Fazit
Artikel in iX 10/2025 lesen

Um unentdeckt zu bleiben, kann sich Schadsoftware tarnen, wie der vorangegangene Tutorialartikel beschrieb. Manche Malware geht aber noch einen Schritt weiter: Sie erkennt, wenn sie beobachtet oder analysiert wird, und reagiert darauf, indem sie sich beispielsweise selbst beendet. Von Debugger-Erkennung bis hin zu Codeverschleierung nutzen Angreifer eine Vielzahl an Techniken, um sich vor Reverse Engineering zu schützen. Das Ziel ist dabei immer, Sandboxes auszutricksen und die Analyse zu verlangsamen oder zu verhindern. Der letzte Teil der Tutorialreihe zum Reverse Engineering nimmt diese Abwehrmechanismen deshalb unter die Lupe. Er zeigt, mit welchen Techniken Angreifer die Analysten ausbremsen oder fehlleiten – und wie man diese Verteidigung in der Praxis überwindet.

  • Selbstverteidigende Malware erkennt, ob sie gerade untersucht wird. Sie bleibt dann inaktiv, beendet sich selbst oder stört die Analyse anderweitig.
  • Techniken von API-Missbrauch über Codeverschleierung bis hin zu versteckten Einstiegspunkten sollen Malware-Analysten Zeit und Nerven kosten.
  • Wer die Mechanismen versteht und abfängt, kann trotzdem zum Kern der Schadsoftware vordringen.

Zu den gängigsten Methoden, mit denen sich Malware gegen eine Analyse auf Codeebene schützt, zählt das Erkennen aktiver Debugger. Dabei prüft die Schadsoftware, ob sie in einer Debugging-Umgebung ausgeführt wird. Ist das der Fall, beendet sich die Malware selbst, um ihre Funktionen nicht preiszugeben. Alternativ führt sie gezielt irreführende Befehle aus, um Reverse Engineers auf falsche Fährten zu locken.

Eine der einfachsten Varianten, mit der Schadsoftware ihre Umgebung prüft, besteht im Aufruf der Microsoft-Funktion IsDebuggerPresent. Sie gibt einen Wert ungleich null zurück, sollte der aktuelle Prozess unter Debugging stehen. Daneben gibt es weitere häufig genutzte API-Aufrufe mit ähnlicher Zielsetzung wie CheckRemoteDebuggerPresent oder NtQueryInformationProcess beziehungsweise ZwQueryInformationProcess.

Das war die Leseprobe unseres heise-Plus-Artikels "Reverse Engineering: Wie sich Malware selbst verteidigt". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.

Gesamten Artikel lesen