Die verschiedenen Arten von Makroviren

Im Gegensatz zu den herkömmlichen Dateiviren infizieren Makroviren keine Programme wie etwa .EXE oder .COM-Dateien, sondern übertragen ihren Programmcode mittels einer Makrosprache in andere Dokumente oder Datenbanken. Damit sind Makroviren nicht mehr abhängig von der CPU und vom Betriebssystem. Word-Makroviren können z.B. problemlos Word unter Windows 3.1, Windows 95, Windows NT, OS/2 oder auf Macintosh-Computern infizieren. Makroviren sind damit also "Applikationsabhängig", d.h. sie benötigen ein bestimmtes Anwenderprogramm, um sich zu vermehren und ihre Schadensfunktionen durchzuführen. Das jeweilige Anwenderprogramm stellt für Makroviren dann das eigentliche "Betriebssystem" dar. Sie können nur solange aktiv werden, solange das entsprechende Anwenderprogramm vom Benutzer ausgeführt wird. Wenn der Anwender Microsoft Word beendet, wird auch gleichzeitig ein eventuell aktiver Makrovirus aus dem Speicher entfernt. Da die verschiedenen Makroprogrammiersprachen im Vergleich zu Assembler relativ einfach zu erlenen sind, ist das Erstellen eines Makrovirus leider auch für viele Möchtegern-Virenprogrammierer kein größeres Problem mehr. Hinzu kommt, daß die jeweiligen Anwenderprogramme sich kaum gegen Makroviren schützen und das Gefahrenpotential lange Zeit unterschätzt wurde.

Mittlerweile gibt es Makroviren für eine ganze Anzahl von bekannten Anwenderprogrammen. Entsprechend werden diese Viren klassifiziert.

WM-Viren (WordMacro, Viren für Microsoft Word 2.0 bis 7.0)

WM-Viren benutzen die Word-interne Makrosprache "WordBasic" und befinden sich in WordBasic-Makros, die dann in andere Dokumente übertragen werden.

Regulär wird als erstes die globale Dokumentenvorlage "NORMAL.DOT" infiziert, da diese bei jedem Start von Microsoft Word geladen und der Virus damit aktiviert wird.

Ebenfalls typisch für WM-Viren ist das Konvertieren von Dokumenten in Dokumentvorlagen. Dies muß geschehen, da sonst der Virus keine Makros in die betreffende Datei speichern kann, bzw. diese sonst nicht aktiv werden.

Für Microsoft Word 2.0 sind nur sehr wenige Makroviren bekannt, die nicht weiter verbreitet sind und daher kein Problem für die Anwender darstellen.

XM-Viren (ExcelMacro, Viren für Excel 6.0 und höher)

Diese Viren infizieren Excel-Datenblätter (Spreadsheets) und verwenden die Programmiersprache Visual Basic for Applications 3.0 (VBAVBA).

Sie übertragen das VBA-Modul mit dem Viruscode in andere Dateien, setzen das "Very Hidden"-Attribut und machen somit das Datenblatt mit dem Virus für den Anwender unter Excel unsichtbar.

Typisch für XM-Viren ist das Erzeugen einer neuen globalen Vorlage im "XLSTART"-Verzeichnis.

W97M-Viren (Word97Macro, Viren für Word97 und höher)

W97M-Viren entsprechen den WM-Viren für die älteren Word-Versionen, benutzen allerdings die Programmiersprache VBA 5.0VBA und müssen nicht mehr Dokumente in Vorlagen umwandeln, da jedes Office-Dokument ohne Probleme VBA-Programmcode enthalten kann. Viele der bekannten Word97-Viren sind alte WM-Viren, die von Word97 automatisch konvertiert wurden. Es sind jedoch auch "reinrassige" Word97-Viren bekannt, am bekanntesten ist hier wohl "W97M/Class". Word 2000-Makroviren werden wahrscheinlich als W97M-Makroviren klassifiziert werden, da sich das interne PCode-Format relativ leicht von VBA6 zurück in VBA5 umrechnen läßt und somit der Programmcode wieder identisch ist.

X97M-Viren (Excel97Macro, Viren für Excel97 und höher)

Entsprechen den Makroviren für die älteren Excel-Versionen (XM-Viren), nur das hier entsprechend VBA5 als Programmiersprache verwendet wird.
Es ist möglich, daß Excel-Viren zwischen beiden Excel-Dateiformaten (VBA3 und VBA5) hin- und herkonvertiert werden können.

XF-Viren (ExcelFormula, Viren für Excel 4.0 und höher)

Viren dieser Art infizieren ebenfalls Excel-Dateien, allerdings wird dazu nicht VBA verwendet sondern die ältere Makrosprache ExcelBasic, die seit Excel 4.0 existiert.

Der Programmcode der Viren befindet sich in Formeldatenfeldern, daher wird dieser Virustyp "ExcelFormula" genannt.
Nach den ersten XF-Virus, "XF/Paix.A", erschienen Ende 1998 weitere ExcelFormula-Viren wie etwa "XF/Sic.A" oder "XF/Craze.A".

XF-Viren werden ohne Beanstandung konvertiert und funktionieren auch unter Excel97 und höher.

A97M-Viren (Access97Macro, Viren für Microsoft Access97)

Der erste bekannte Makrovirus für Accesss97 "A97M/Excessiv.A" infiziert Access97-Datenbanken (".MDB"-Dateien), entspricht aber im Prinzip einen normalen VBA5-Virus, ähnlich wie die bisher bekannten Word97- und Excel97-Viren.

Ein Access97-Virus nutzt ebenfalls die Programmiersprache VBA 5.0 und VBA5-Module zur seiner Verbreitung, Makroviren unter Access 2.0 benutzen AccessBasic (ähnlich WordBasic und ExcelBasic). Es sind mittlerweile eine Anzahl weiterer A97M-Viren bekannt, von denen aber keiner bei Anwendern verbreitet ist.

Da bestimmte Aktivierungsroutinen wie etwa Document_Close() unter Access97-VBA fehlen, müssen alle bisher bekannten Access97-Makroviren auch einen AccessBasic-Teil enthalten, der wiederum den VBA5-Code aktiviert.
Genau dies ist das Problem bei der Reinigung - kein Antivirenprogramm schafft es bisher, den AccessBasic-Teil eines Access97-Virus zu erkennen oder zu reinigen.

PP97M-Viren (PowerPoint97Macro, Viren für Microsoft PowerPoint97)

Ähnlich wie bei Microsoft Access97 haben Makroviren unter PowerPoint97 eine Anzahl von Beschränkungen, die allerdings nicht so gravierend wie unter Access97 sind.

Es sind ca. ein Dutzend PP97M-Makroviren bekannt, von denen keiner als ITW eingestuft wird. Allerdings könnte dies sich durch den Trend hin zu Multi-Applikationsviren (O97M) ändern.

O97M-Viren (Allgemein, Viren für Microsoft Office 97)

Makroviren, die nicht nur ein Dateiformat infizieren werden als O97M-Viren bezeichnet. Erste primitive Ansätze wie etwa "O97M/Teocatl" über Debug-Scripts waren wenig erfolgreich. Auch "O97M/Shiver", welcher über DDE seine Makros überträgt, erreichte keine nennenswerte Verbreitung.

Aktuelle O97M-Viren wie etwa "O97M/Hopper" oder "O97M/Triplicate" verwenden den VBA5-Befehl CreateObject, der wesentlich leistungsfähiger ist und damit leider diesen Virentyp eine starke Verbreitung ermöglichen könnte.

Weitere Applikationen

Es sind auch Makroviren für andere Applikationen wie etwa Lotus oder AmiPro bekannt, diese gelten jedoch als reine Laborviren und sind noch nie bei Anwendern aufgetreten. Einige Firmen planen jedoch, VBA von Microsoft zu lizensieren und in ihre Produkte einzubauen, mit unabsehbaren Konsequenzen für die Entwicklung neuer Makroviren (z.B. Corel).

Erste Tests mit der Beta-Version des Microsoft Office 2000 haben ergeben, daß SR-1/SR-2 kompatible Office97-Viren problemlos auch unter der neuen Version funktionieren, sich aber intern erneut das Dateiformat geändert hat.

[zum Anfang der Seite]


Weitere Unterscheidungskriterien

Man kann die Makroviren noch weiter unterscheiden, z.B. je nachdem, welche Infektionsmethode sie verwenden oder ob sie Tarnkappenfunktionen einsetzen.
Unter anderen gibt es folgende Eigenschaften:

Stealth, Tarnkappenfunktion
Makroviren mit Stealtheigenschaften versuchen sich vor der Entdeckung durch den Anwender zu verbergen, indem sie die sonst für Viren typischen Merkmale "filtern". So wird z.B. versucht, die Anzeige der Makroliste unter Word zu manipulieren damit die Makros des Virus dort nicht mehr erscheinen. Das reicht vom einfachen Blockieren der entsprechenden Word-Funktion, dem Löschen des entsprechenden Word-Menüeintrages "Extras/Makro" über eine vollständige Nachbildung des Makrolistenfensters bis hin zu komplizierten Tricks mit Hilfe von AddIns und anderen Methoden.

Unter Word97 und Excel97 wird beispielsweise versucht, den VBA-Editor zu umgehen oder gleich der komplette Virus aus der Datei gelöscht, falls der Anwender den VBA-Editor aufruft. Aber auch einfachere Tricks wie etwa das Ausschalten des Word-Virenschutzes (was ohne weiteres möglich ist!) werden häufig von den Makroviren eingesetzt.

Polymorph
Polymorphe Makroviren versuchen die Erkennung durch die Antiviren-Programme zu erschweren, indem sie ihren Programmcode mit jeder Infektion verändern. Eine einfache Erkennung über Signaturen wird damit je nach Komplexität des Virus unmöglich. Zum Glück sind durch WordBasic bzw. VBA Grenzen gesetzt, da diese Programmiersprachen viel zu langsam sind um wirklich komplexe polymorphe Viren zu programmieren. Die Veränderung des Programmcodes kann durch ein einfaches Einfügen von Kommentaren erfolgen oder z.B. durch geschicktes Vertauschen von Befehlen oder ganzer Programmzeilen. Anfangs versuchten die Virenprogrammierer durch zufällig generierte Makronamen die Antiviren-Programme zu täuschen, diese Technik wird aber nicht als polymorph angesehen. Beispiele für polymorphe Makroviren sind "WM/Slow.A", "WM/UglyKid.A", "W97M/Splash.A", "W97M/Class" oder "W97M/Walker.C".

Anti-heuristisch
Der Virenprogrammierer versucht, durch besonders komplexe und trickreiche Programmierung eine Erkennung durch Antiviren-Programme zu verhindern, welche Makros mittels einer Heuristik nach verdächtigen Befehlen durchsuchen.

Dazu gehört z.B. auch das Verstecken des eigentlichen Programmcodes in Dokumentvariablen, Autotexten oder verschlüsselten Strings. Oft erzeugt der Virus dann zur Laufzeit ein neues Makro und fügt den versteckten Programmcode dort ein und führt ihn anschließend aus. Beispiele sind hier "Minimal.K" oder "Target.A".

Resident
Richtig speicherresident wie DOS-Viren können Makroviren nicht sein, allerdings können sie ähnlich wie bei den DOS-Viren (Interrupts) bestimmte Funktionen des Anwenderprogramms abfangen und übernehmen. Sehr viele Makroviren für Word benutzen die Auto-Makros wie "AutoOpen" und "AutoClose" um beim Öffnen und Schließen eines Dokuments aktiv zu werden und weitere Dokumente zu infizieren.
Ebenfalls werden häufig Funktionen wie "DateiSpeichernUnter", "DateiÖffnen", "ExtrasMakro" oder "DateiDrucken" abgefangen.
Im Prinzip kann so gut wie jedes Ereignis innerhalb von Microsoft Word bzw. Excel abgefangen werden. Auto-Makros sind allerdings sprachunabhängig und funktionieren daher mit jeder nationalen Version von Word. System-Makros wie "DateiÖffnen" lauten in der englischen Version "FileOpen". Ein Virus der sich auf solche Makros verläßt, ist daher sprachabhängig.

Shortcut-Aktivierung
Neben bestimmten Makros, die wichtige Funktionen von Word/Excel übernehmen, können Makroviren auch die Tastaturbelegung ändern. So ist es z.B. möglich die Leertaste und andere beliebige Tasten mit einem Makro zu verbinden, das ausgeführt wird sobald der Anwender die betreffende Taste drückt.
"WM/Outlaw" verwendet diese Art der Aktivierung.

Formular-Aktivierung
Formularfelder können mit zwei Makros verknüpft werden, die beim Betreten und Verlassen des Formularfeldes ausführt werden.

Button-Aktivierung
Die Auswahlleiste mit Knöpfen für bestimmte Funktionen wie etwa "Datei speichern", "Datei drucken" usw. kann beliebig abgeändert werden. Es möglich, diese Knöpfe mit bestimmten Makros zu verknüpfen.

AddIn-Infektoren
Diese Makroviren infizieren nicht wie üblich die globale Vorlage "NORMAL.DOT", sondern erzeugen eine neue Vorlage in die der Virus dann kopiert wird. Damit werden unter anderen alle "NORMAL.DOT" - Schutzmechanismen umgangen und zusätzlich fortschrittliche Tarnkappenmethoden möglich. Diese Infektionsmethode wird z.B. von "WM/Hunter" oder "WM/Eraser" verwendet.

Companion-Infektoren
Companion-Viren infizieren Dokumente nicht direkt und fügen dort keine Makros ein. Statt dessen erzeugt der Virus eine gleichnamige Datei mit der Dateiendung ".DOT", die den eigentlichen Virus enthält und die mit der ".DOC"-Datei verknüpft wird.
Öffnet der Anwender das Dokument, bezieht Word automatisch die Makros aus der ".DOT"-Datei. Diese Art der Infektion ist sehr uneffektiv und kaum verbreitet, da der Anwender in der Regel nur die ".DOC"-Dateien weiterkopiert und daher den Virus nicht verbreitet.
Beispiele für Companion-Viren sind etwa der "WM/Dietzel" oder "WM/Birthday".

Direct-Action-Infektioren
Diese Viren infizieren ebenfalls nicht die "NORMAL.DOT"NORMAL.DOT und umgehen damit zusammenhängende Schutzmechanismen. Sie suchen direkt auf nach weiteren Dateien, die sie infizieren können. Einige Viren infizieren z.B. jedes Dokument das der Anwender zuletzt bearbeitet hat (diese Dateien werden in der MRU-Liste gespeichert), andere durchsuchen die Festplatte einfach nach Dateien mit der Endung ".DOC".
Viren, die diese Infektionsmethode verwenden sind z.B. "WM/Snickers" oder "W97M.RatsAss".

[zum Anfang der Seite]


Namenskonventionen

Makroviren erhalten in der Regel von den Antivirenfirmen Namen nach einer bestimmen Norm zugewiesen, die wie folgt aufgebaut ist:

"Platform und Typ/Name.Variante:Sprache"

Ein Beispiel wäre etwa:

"WM/Intended/Newir.A:De"

Aufgeschlüsselt bedeutet dies:

WM :WordMacro, Makrovirus für Microsoft Word 6.0/7.0
Intended :Der Virus ist nicht funktionsfähig und kann sich nicht vermehren
Newir : Der Name des Virus
.A :Es handelt sich um die .A-Variante
:De :Der Virus funktioniert nur mit der deutschen Version von Microsoft Word

Degeneriert ein Makrovirus, wie etwa "WM/Rapi.A" es macht, werden die nachfolgenden Varianten mit ".A1", ".A2" usw. bezeichnet.

[Makro-Index]


Autor: Stefan Kurtzhals, VHM