Der folgende Vortrag wurde anläßlich des VHM/VIRUS.GER-Treffens am 31.08.1996 gehalten.


Makro-Viren (Microsoft Word und Excel)

von Stefan Kurtzhals


Hintergründe

Ende 1994 kursierten in vielen Newsgroups des Internet und anderen Foren Gerüchte über einen E-Mail-Virus mit dem Namen "Good Times". Dieser angebliche Virus sollte in E-Mails enthalten sein und sich bereits beim Lesen der Mail aktivieren. Zu erkennen sein sollte der Virus am Betreff der Nachricht, die "Good Times" lautet. Im Glauben, andere Anwender warnen zu müssen, wurde dieser Hinweis von vielen Lesern immer weiter verbreitet. Obwohl es sich bei "Good Times" nur um einen schlechten Scherz handelt, wurde doch hier wieder das Thema von Viren aufgegriffen, die nicht nur Programme, sondern auch Daten infizieren.

Offenbar inspirierten diese Gerüchte um "Good Times" einen amerikanischen Sicherheitstechniker (Joel McNamara) dazu, weitere Forschungen zum Thema Makro-Viren anzustellen. Er kam zu dem Schluß, daß alle Anwenderprogramme mit komplexen Makro-Sprachen gefährdet sind und aufgrund ihrer starken Verbreitung insbesondere Microsoft Word und Excel. Joel McNamara schrieb im Dezember 1994 zwei Vorführ-Makro-Viren (Document Makro Viruses=DMV) für Word und Excel. Und obwohl diese beiden Viren den Antiviren-Firmen relativ schnell vorlagen, wurden keine präventiven Maßnahmen gegen diese neue Art von Viren ergriffen.

Mitte 1995 schlug daher der Word-Makro-Virus "Concept" wie eine Bombe ein, denn bis dahin galt im allgemeinen, daß Viren nur ausführbare Programme infizieren. Dokumente galten als sicher und wurden erst gar nicht auf Virenbefall untersucht. Daher konnte sich "Concept" über einen relativ langen Zeitraum ungestört ausbreiten. Zu der enormen weltweiten Verbreitung trug unter anderem Microsoft selber bei, indem unbeabsichtigt mehrere tausend CD's mit infizierten Dokumenten verschickt wurden. War "Concept" noch sehr einfach programmiert und an sich harmlos, so war der zweite bekannte Makro-Virus "Nuclear" bereits verschlüsselt, benutzte Tricks, um seine Erkennung zu verbergen und war zudem noch destruktiv. Es folgten "Colors" und "Hot", heute liegt die Zahl der bekannten Makro-Viren für Word bereits über 50 und wächst ständig. Makro-Viren wie Concept haben sich rasend schnell verbreitet, was wohl hauptsächlich darin begründet ist, daß viele Anwender und Firmen E-Mailsysteme auf Word-Dokument-Basis verwenden.

Es werden deutlich mehr Dokumente zwischen den Anwendern ausgetauscht, als EXE-Programme, da auch viele Anwenderprogramme heute nur noch auf speziellen Installationdisketten oder CD's ausgeliefert werden. Einige Antiviren-Experten gehen mittlerweile sogar davon aus, daß Makro-Viren wie "Concept" eine höhere Verbreitung, als die bis dahin am weitesten verbreiteten Bootviren, wie etwa Monkey.B, haben.

Obwohl sich die Makro-Viren weltweit schnell sehr stark ausbreiteten, blieb Deutschland lange verschont von der großen Makrovirenflut. Denn obwohl Word intern die englischen Makro-Befehle automatisch übersetzt, bleiben Strings wie etwa Makro-Kopieren "FileSaveAs", "Global:FileSave- As",1 in dieser Form vorhanden.

Beispiel:

CopyMacro „Global:FileSaveAs", target$,1

wird anhand der Tokens von der deutschen Version übersetzt in:

KopiereMakro „Global:FileSaveAs", target$,1

und nicht in:

KopiereMakro „Global:DateiSpeichernUnter", target$, 1

Die Strings in Anführungszeichen bleiben unverändert, daher funktionieren englische Makro-Viren nicht mit der deutschen Version von Word. Der Virus versucht Makros zu manipulieren, die nicht existieren.

Aufgrund dieser Eigenart von Word können englische Makro-Viren zwar NORMAL.DOT infizieren, weitere Dateien werden jedoch nicht angegriffen - der Virus wird nicht voll aktiviert. Lediglich Anwender und Firmen, welche die englischsprachige Version von Word einsetzten und Kontakte zum Ausland hatten, waren anfangs gefährdet. Allerdings kann immer noch die Schadensfunktion des Virus ausgelöst werden, wenn diese entsprechend in allgemein gültigen Makros enthalten ist.



Aufbau und Funktion eines Word Makro-Virus

Viren für Microsoft Word werden nicht, wie sonst üblich, in Assembler programmiert, sondern verwenden die Makro-Sprache WordBasic. Word-Viren konnten deshalb programmiert werden, weil Word automatisch bestimmte Makros beim Öffnen von Dokumenten ausführt, das Umdefinieren von bestehenden Word-Systemmakros erlaubt und das Kopieren von Makros in Dokumente ermöglicht. Word Makro-Viren bestehen aus einem oder mehreren Word-Makros, und beinhalten meistens ein Auto-Makro wie etwa AutoOpen oder AutoClose, um beim Lesen eines infizierten Dokuments aktiviert zu werden. Führt Word eines der Auto-Makros des Virus beim Bearbeiten eines infizierten Dokuments aus, kopiert sich der Virus zuerst in die globale Makro-Vorlage "NORMAL.DOT", in der alle vom Anwender definierten Makros und Vorlagen enthalten sind. Weitere Dokumente werden beim Öffnen oder Schließen infiziert, wobei der Virus infizierte Dokumente in Vorlagen umwandeln muß, um die Makros übertragen zu können. Dabei muß der Dateiname nicht angepaßt werden und kann weiterhin auf ".DOC" enden - infizierte Dokumente können somit nicht ohne weiteres als Vorlagen erkannt werden. Einen aktiven Makro-Virus kann man aber meistens daran erkennen, daß beim Speichern eines infizierten "Dokuments" der Formattyp nicht mehr verändert werden kann (Ausnahme bilden hier die Companion-Makro-Viren). Word Makro-Viren können genauso wie DOS-Viren verschlüsselt werden (Execute-Only Makros) und sind nach Verschlüsselung nur noch ausführbar und lassen sich umbenennen oder löschen. Ein Bearbeiten von Execute-Only-Makros ist nicht möglich.

Über den Word-Befehl "Extras/Makros" kann die aktuelle Makroliste betrachtet und eine evtl. vorliegende Infektion erkannt werden. Allerdings können Makro-Viren eine Art Tarnkappenfunktion realisieren und die Anzeige dieser Makroliste entweder ganz verhindern oder eine korrigierte Liste ohne verdächtige Virenmakros anzeigen. Neben der herkömmlichen Methode, Dokumente zu infizieren, indem sie in Vorlagen konvertiert werden, kann ein Makro-Virus auch eine Art Companion-Infektion einsetzen. Dabei erzeugt der Makro-Virus eine gleichnamige Datei mit der Endung ".DOT" zu einer bereits bestehenden .DOC-Datei. Die neu erzeugte Vorlage enthält den Virus, das Dokument bleibt unmodifiziert. Öffnet der Anwender die .DOC-Datei, werden automatisch auch die Makros in der dazugehörigen .DOT-Datei aktiviert. Der Vorteil für den Virenprogrammierer ist hier, daß das Format des Dokuments geändert werden kann (was sonst ein deutlicher Hinweis auf ein Makro-Virus wäre). Allerdings dürften solche Makro-Viren keine hohe Ausbreitungsrate haben, da der Anwender beide Dateien (.DOT und .DOC) kopieren muß, wenn der Virus übertragen werden soll.

Die Möglichkeiten, Schaden anzurichten, sind für die Word Makro-Viren fast unbegrenzt, da nicht nur WordBasic zur Verfügung steht. Sie können auch DOS-Befehle, wie etwa FORMAT oder DELTREE aufrufen oder sogar die Windows-Systemfunktionen (Win-API) in Makros einbinden. Einige der bisher bekannten Makro-Viren sind destruktiv und löschen Dateien oder rufen FORMAT auf. Anderen manipulieren Texte in Dokumenten, fügen Texte beim Drucken oder Faxen hinzu, verändern die Bildschirmfarben von Windows oder verlangen Eingaben vom Anwender. Die meisten der bekannten Makro-Viren fragen die Systemuhrzeit und das Datum ab und aktivieren sich an bestimmten Terminen oder Uhrzeiten. Möglich ist aber auch die Führung eines Zählers in der WIN.INI oder WINWORD.INI., um beim Erreichen eines bestimmten Wertes die Schadensfunktion auszulösen.

Makro-Viren sind "Fast Infektoren", da sie jedes Dokument bereits beim Zugriff durch den Anwender infizieren. Sie sind allerdings nur solange aktiv, solange Word selber aktiv bleibt. Ein Makro-Virus hat also ohne Word keinerlei Möglichkeiten, sich zu aktivieren oder Schaden anzurichten. Allerdings ist es möglich (und wird bereits von einigen Makro-Viren angewendet), DOS-Viren in ein ASCII-Skript umzuwandeln und in den Virus einzubinden. Dieser DOS-Virus wird dann später mittels DEBUG wieder in Binärform umgewandelt und kann ausgeführt werden. Auf diese Art und Weise wären somit Viren mit "Dropper"-Funktionen entstanden.

Word Makro-Viren sind die ersten wirklich plattformübergreifenden Viren, da sie nicht von der CPU abhängig sind. Word wurde für mehrere Betriebssysteme portiert, und die meisten Makro-Viren funktionieren auch unter Windows NT oder auf dem Macintosh.


Aufbau und Funktion eines Excel Makro-Virus

Obwohl Excel bei den Anwendern und Firmen fast genauso verbreitet wie Word ist, hat es relativ lange gedauert, bis der erste Excel-Virus entdeckt wurde.

"Laroux" wurde in einer südafrikanischen Firma gefunden und gilt nicht als verbreitet. Es ist jedoch anzunehmen, daß weitere Excel-Viren bald folgen werden. Excel-Viren funktionieren ähnlich wie Makro-Viren für Microsoft Word, sie werden allerdings in VBA (Visual Basic for Applications) geschrieben. VBA ist zwar umfangreicher als WordBasic, aber zum Glück enthält es nicht so viele Komponenten wie WordBasic, die von Virenprogrammierern ausgenutzt werden können. Unter Excel gibt es nur zwei Makros (Auto_Open und Auto_Close), die beim Zugriff auf eine Excel-Datei automatisch ausgeführt werden. Genau wie Word Makro-Viren werden Excel-Viren beim Öffnen eines Dokuments aktiviert. Dabei wird zuerst im Startup-Verzeichnis (meistens EXCEL\XLSTART) eine Datei mit dem Virus angelegt, wobei der Dateiname beliebig sein kann. Excel lädt und aktiviert beim Start alle Vorlagen und Makros, die sich in diesem Verzeichnis befinden. Weitere Excel-Dateien können z.B. beim Öffnen oder Aktivieren der Tabellen infiziert werden, wobei der einzige bisher bekannte und verbreitete Excel-Virus "Laroux" eine Arbeitsmappe (WorkBook) in die Datei einfügt und dann die Virenmakros überträgt. Da während des Übertragens der Makros die Zieldatei aktiviert und damit auf dem Bildschirm sichtbar gemacht werden muß, schalten "Excel.DMV" und "Laroux" während des Infektionsvorgangs die Bildschirmaktualisierung ab.

Da VBA nicht nur von Excel sondern auch von Access und anderen Microsoft Anwendungen unterstützt wird, ist anzunehmen, daß weitere Makro-Viren für andere Anwendungen erscheinen werden.



Schutzmaßnahmen gegen Makro-Viren

Viele Antiviren-Firmen waren am Anfang mit der Erkennung und der Reinigung von Makro-Viren überfordert. Als Notlösung wurden sogenannte Antiviren-Makros angeboten, die sich genau wie die Viren in die globale Makrovorlage NORMAL.DOT kopieren und alle Dokumente vor dem Öffnen auf Virenbefall überprüfen. Diese Schutzmakros sind allerdings nur eine unzureichende Lösung und neben dem nicht hundertprozentigen Schutz sind sie genauso wie die Makro-Viren selber zum Teil unkompatibel und stören die normale Arbeit mit Word.

Mittlerweile haben die meisten der großen Antiviren-Firmen auch ohne Unterstützung von Microsoft das Dateiformat von Word Dokumenten analysiert und bieten zuverlässige Erkennung und Reinigung von Makro-Viren an. Einige der Antiviren-Firmen bieten bereits sogar Virenscanner mit Makroviren-Heuristiken an, die in der Lage sind, auch unbekannte Makro-Viren zu erkennen. Die oft publizierte Schutzmethode, Word mit dem Parameter /M zu starten oder beim Öffnen von Dokumenten die SHIFT-Taste gedrückt zu halten, ist unwirksam. Mit dieser Methode werden nur die Auto-Makros wie AutoOpen, AutoNew usw. ausgeschaltet. Viele der Makro-Viren verwenden mittlerweile aber auch andere Makros und können sich trotzdem problemlos aktivieren. Oft werden aktive Makro-Viren dadurch erkannt, daß beim Speichern der Datei sich der Formattyp nicht mehr von "Formatvorlage" verändern läßt. Damit lassen sich so gut wie alle Makro-Viren für Word erkennen. Es ist zwar für die Virenprogrammierer möglich, eine andere Infektionsmethode zu verwenden (Companion-Infektion), diese sorgt aber gleichzeitig dafür, daß sich der Virus nicht sehr weit verbreiten kann.


Die aktuelle Situation

"Concept" war der erste Makro-Virus für Word, der sich stark verbreiten konnte. Er ist heute immer noch der am häufigsten Auftretende und dient oft als Vorlage, weitere Makro-Viren zu schreiben. Es sind bereits über sechs Varianten von "Concept" bekannt und da der Virus nicht "Execute-Only" ist, sind weitere Varianten zu erwarten.

Waren anfangs die Makro-Viren kein Problem für die deutschen Anwender, so gibt es mittlerweile fast 10 Makro-Viren, die speziell für die deutsche Version von Word geschrieben wurden und weitere, wie etwa "Wazzu", die aufgrund ihrer Programmierung mit jeder nationalen Version von Word funktionieren.

Im Februar 1996 erschienen die ersten deutschsprachigen Makroviren wie "Xenixos", "Boom" oder "Friendly", wobei diese nur eine sehr geringe Verbreitung fanden (obwohl Xenixos im Internet über die Newsgroup ALT.COMP.VIRUS veröffentlicht wurde).

Im Januar 1996 wurde ein einer großen PC-Zeitung ein sehr ausführlicher Bericht über die Funktionsweise von Makro-Viren veröffentlicht, der leider schon fast als Bauanleitung für Makro-Viren herhalten kann. Anhand dieser Vorlage wurden offenbar die Makro-Viren "NOP", "NF", „Dietzel" und "PCW" programmiert, die sich innerhalb kürzester Zeit verbreiteten. Vor allem "NOP" ist, obwohl sehr einfach aufgebaut, in Deutschland extrem stark verbreitet. Auch einige größere Infektionen mit dem bereits im englischsprachigen Raum stark verbreiteten "Wazzu" sind mittlerweile in Deutschland bekannt geworden.

Vor allem in Firmen mit Zweigstellen im Ausland oder ausländischen Kunden, die ihre E-Mail im Word-Dateiformat verschicken, sind sehr stark gefährdet. In letzter Zeit sind mehrfach Fälle gemeldet worden, in denen Makro-Viren auf "natürliche" Art mutierten. Dabei wurde in einem bereits infizierten System ein weiterer Makro-Virus aktiviert, der zum Teil die Makros (wie etwa AutoOpen) des bereits vorhandenen Virus überschreibt. Je nachdem, welche Makros der zweite Virus überträgt, verschmelzen die beiden Viren und es werden Teile beider Viren bei den nachfolgenden Infektionen übertragen. Es wurde sogar schon ein mutierter Makro-Virus gefunden, der Teile des Antiviren-Makros von Microsoft, SCANPROT, enthält.

Ebenfalls neu aufgetreten sind die Makroviren-Kits, mit denen sich beliebig neue Makro-Viren generieren lassen. Es sind bis jetzt zwei dieser Kits bekannt, wobei das deutsche Kit vom offenbar sehr aktiven Programmierer der Viren "Boom", "Friendly", "LBYNJ" und "Satanic" stammt. Ein weiteres Kit für die englische Version von Word stammt vom russischen Virenprogrammierer "Wild Worker". Die mit diesen Kits erzeugten Viren dürften allerdings kein Problem für die Antiviren-Firmen darstellen und es ist damit zu rechnen, daß die Antiviren-Programme in der Lage sind, diese Viren problemlos zu erkennen und aus den befallenen Dokumenten zu entfernen.


Die weitere Entwicklungen bei den Makro-Viren

Viele Virenprogrammierer unterschätzen zum Glück das Potential von Makro-Viren. Denn technisch haben die bisher bekannten Viren noch lange nicht alle Möglichkeiten ausgereizt. Es ist zu erwarten, daß bald die ersten Makro-Viren mit polymorpher oder selbstmodifizierender Struktur oder effektiven Tarnkappen auftauchen werden. Neben der bisher üblichen Akti-vierung durch spezielle Systemmakros können sich Makro-Viren aber auch durch Umdefinierung der Word-Menüstruktur, durch Einfügen von Shortcuts (Tastaturbelegungen) oder durch Formularfelder mit OnEntry und OnExit-Makros aktivieren.

Die Zahl der Makro-Viren für Word wird drastisch zunehmen, solange wie Microsoft Word eine ideale Plattform für diese Viren bietet. Nach dem Erscheinen des ersten Excel-Virus ist es nur eine Frage der Zeit, bis auch hier weitere Viren erscheinen werden, wobei der Ausbreitungsgrad ähnlich hoch wie bei den Makro-Viren für Word liegen dürfte, da auch Excel sehr verbreitet ist.

Dagegen sind Makro-Viren für weniger verbreitete Anwendungen wie AmiPro, StarWriter oder WordPerfect unwahrscheinlich, da diese Textverarbeitungen das Programmieren von Viren nicht so vereinfachen wie Microsoft Word und ihr geringerer Verbreitungsgrad sie für potentielle Virenprogrammierer eher uninteressant erscheinen läßt.

Möglich sind allerdings Viren für Access und andere Microsoft-Produkte, die Visual Basic for Applications anbieten, wobei hier der Ausbreitungsgrad nicht so hoch wie bei den Viren für Word oder Excel liegen dürfte. Aufgrund ihrer CPU- und Betriebssystemunabhängigkeit wird die Zahl und der Verbreitungsgrad von Makro-Viren in Zukunft wahrscheinlich weiter stark zunehmen, da es die Hersteller trotz langjähriger Erfahrung mit den DOS-Viren versäumt haben, hier vorbeugende Maßnahmen zu ergreifen.


© 1996 Stefan Kurtzhals - VIRUS HELP MUNICH. Alle Rechte vorgehalten!



Dieser Vortrag darf ohne vorherige ausdrückliche Genehmigung durch den Verfasser Stefan Kurtzhals weder in seiner Gesamtheit noch in Teilen weiterverbreitet, abgedruckt oder kommerziell genutzt werden!


Konferenz-Übersicht

VHM-Startseite




HTML-© by Rainer Link - VHM, 04.10.1996. Alle Rechte vorbehalten.