Oligomorphe Malware (griechisch „oligos“ = wenig) ist Schadsoftware, die ihren Decryptor bei jeder Generation aus einer kleinen, festen Menge von Varianten neu wählt. Sie steht damit zwischen einfach verschlüsselter und polymorpher Malware.

So funktioniert Oligomorphismus

Wie bei polymorpher Malware liegt der eigentliche Schadcode verschlüsselt in der Datei. Eine Entschlüsselungsroutine (Decryptor) entschlüsselt ihn zur Laufzeit und führt ihn aus. Der Unterschied liegt in der Mutations-Engine: Oligomorphe Malware erzeugt keine unbegrenzt neuen Decryptor-Abbilder, sondern wählt aus einer überschaubaren Zahl vorbereiteter Varianten – oft nur ein paar Dutzend –, die sich in Anweisungsreihenfolge, Registern und Füllcode unterscheiden.

Das erste bekannte Beispiel war 1990 der Whale-Virus für MS-DOS, der aus einigen Dutzend verschiedenen Decryptor-Varianten wählte. Der ebenfalls 1990 erschienene 1260 (V2PX) von Mark Washburn gilt dagegen als einer der ersten polymorphen Viren, weil er neue Decryptor-Varianten zur Laufzeit selbst generierte statt aus einem festen Vorrat zu wählen.

Grenzen der Tarnung

Weil die Zahl der Varianten begrenzt ist, kann ein Virenscanner alle möglichen Decryptor-Muster sammeln und per Signatur abdecken – der Vorteil gegenüber einfacher Verschlüsselung ist damit nur zeitlich begrenzt. Moderne Erkennung nutzt zusätzlich Entschlüsselungs-Emulation: Der Scanner führt den Decryptor in einer kontrollierten Umgebung aus und prüft den danach offen liegenden Code.

Die Stufen der Selbsttarnung bauen aufeinander auf: metamorphe Malware geht am weitesten und schreibt den gesamten Code neu; polymorphe Malware erzeugt unbegrenzt viele Decryptor-Varianten; oligomorphe Malware nur wenige feste. Auch ein Packer oder Crypter wird eingesetzt, um den Schadcode vor der Erkennung zu verbergen – dort übernimmt allerdings ein Entpack- oder Entschlüsselungs-Stub die Arbeit, keine Mutation des Codes selbst.

Verwandte Grundlagen: Malware, Virus, Trojaner.