Metamorphe Malware ist Schadsoftware, die ihren gesamten Code bei jeder neuen Generation umschreibt – ohne Verschlüsselung und ohne festen Kern. Dadurch entsteht pro Exemplar eine strukturell andere Datei, die mit klassischen Signatur-Datenbanken nicht zu erkennen ist.

So funktioniert Metamorphismus

Eine Morphing-Engine (auch Mutation-Engine) ist fester Bestandteil des Schadcodes. Bei jeder Verbreitung oder Ausführung erzeugt sie eine neue Variante, indem sie Anweisungen umschreibt und neu anordnet: Sie vertauscht Register, ersetzt Befehle durch äquivalente Sequenzen, fügt nutzlose Code-Schleifen und NOPs ein, kehrt Bedingungen um und zerlegt oder verschränkt Funktionen neu. Der Algorithmus und die Schadfunktion bleiben gleich, aber die Bytefolge ist in jeder Generation eine andere – die Datei sieht aus wie ein völlig neues Programm.

Anders als bei polymorpher Malware existiert kein verschlüsselter Kern, der nach der Entschlüsselung im Speicher offen liegt. Metamorphe Malware schreibt sich selbst um, während sie läuft (Self-Modifying Code), und hinterlässt keine gleichbleibende Code-Struktur, an der sich eine Erkennung festhalten könnte.

Bekannte Beispiele

  • Win32/Simile (auch MetaPHOR, 2002): in Assembler geschriebener metamorpher Virus; rund 90 Prozent seines Codes bestanden aus der Metamorphic-Engine selbst.
  • Zmist (2001): experimentelles metamorphes Virus-Framework, das unter anderem den Windows-Startcode infizierte und sich tief in ausführbare Dateien einwebte.

Erkennung und Abwehr

Gegen Metamorphismus versagen reine Signatur-Verfahren. Moderne Abwehr kombiniert deshalb Verhaltensanalyse, Heuristik, Sandbox-Analyse, Emulation und Endpoint Detection and Response (EDR). Eine Möglichkeit ist die Emulation mehrerer Generationen, um die gleichbleibende Semantik hinter den wechselnden Bytefolgen zu erkennen – das kostet allerdings deutlich mehr Rechenzeit als ein einfacher Mustervergleich.

Metamorphe Technik gilt als höchste Stufe der Selbsttarnung. Die Vorstufen sind oligomorphe Malware (wenige feste Varianten) und polymorphe Malware (mutierender Decryptor um einen festen Kern). Ein Packer ist dagegen kein Selbst-Umschreiben, sondern ein Werkzeug, das Schadsoftware zur Laufzeit entpackt.

Verwandte Grundlagen: Malware, Virus, Crypter.