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 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.
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.
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.
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.
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.
Ä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.
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.
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.
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".
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.