VIRUS.GER-Con'98

Termin: 12.09.1998
Ort: Wiesbaden
Teilnehmer: rund 80 Personen
Veranstalter: Virus Help Munich

Vorträge:

Themengebiet Virenschutz
"Webbasierendes Antivirenmangement" von Raimund Genes
"Makro-und Windows-Viren: Aktuelle Entwicklungen" von Stefan Kurtzhals
"Die Zukunft der Virenbeseitigung" von Mark Boeijen

Themengebiet Malware / Hoaxes

"Viren & Malware" von Toralv Dirro
"Internet Hoaxes" von Howard Fuhs

Themengebiet Netzwerksicherheit

Sicherheit im Inter-/Intranet" von Volker Ludwig

Themengebiet Verschlüsselung
"Verschlüselung - Pretty Good Privacy" von Michael Rudrich

Sponsoren:

CA Computer Associates GmbH
Fuhs Security Consultants
Ikarus Software GesmbH
Network Associates
Norman Data Defense Systems GmbH
Sophos (Deutschland) GmbH
Symantec (Deutschland) GmbH
Trend Micro Deutschland GmbH


VG-Index
VHM-Startseite

HomeÜber die VHMMitglieder der VHMMakroviren-BeschreibungenFrequently Asked QuestionsKonferenz'96Konferenz'97Konferenz'98Antivirus-Links

DIE AKTUELLE SITUATION BEI VIREN FüR MICROSOFT APPLIKATIONEN UND WINDOWS

© 1998 Stefan Kurtzhals, VIRUS HELP MUNICH, Virus.GER CON 1998


Über den Autor

Stefan Kurtzhals, geboren 1972, Student (Fachrichtung Elektrotechnik), Wohnsitz Remscheid. Beschäftigt sich seit 1992 mit der Virenproblematik auf dem PC. Spezialisierung auf heuristische Virenerkennung und Analyse von Viren. Autor von SUSPICIOUS (DOS-Antivirenprogramm, heuristischer Scanner, Prüfsummenvergleich und residenten Virenblocker), F/WIN und F/WIN32 (heuristische Makrovirenerkennung und Reinigung). Momentan besonders spezialisiert auf Bekämpfung von VBA-basierende Makroviren und damit die Weiterentwicklung von F/WIN32.

Abstrakt

Der Vortrag soll einen Überblick über die aktuelle Entwicklungen bei Makroviren und Windows-Programmviren geben. Insbesondere werden Word97/Excel97-Makroviren behandelt, wie etwa „Shiver" oder „Walker", der (erfolglose) Versuch von Microsoft, Word97 durch das ServiceRelease-1 (SR1) gegen Makroviren zu schützen, Multi-Application Makroviren und Microsoft Access Makroviren. Des weiteren wird auf den „Durchbruch" bei den Win32-Programmviren eingegangen, der mit den Viren „Marburg" und „CIH" erfolgte.

Inhalt


Makroviren: Eine kurze Einführung und die aktuelle Entwicklung

Seit dem ersten Auftreten von "Concept.A" im Jahr 1995 haben sich die Makroviren schnell durchgesetzt und stellen heute im Vergleich zu DOS-Viren das weitaus größere Problem dar. Die Zahl der Makroviren stieg sehr schnell an und liegt bei knapp 3000 (Stand September 1998). Der schnelle Zuwachs erklärt sich einmal durch die fehlerhafte Systemdatei OLE32.DLL, die zusammen mit Microsoft Word Makros beim Speichern gelegentlich beschädigt und somit neue Varianten bekannter Viren erstellt. Trotz einiger Versuche von Microsoft ist Office97 nicht virensicher, dank der vergrößerten Flexibilität von VBA5 (Visual Basic for Applications) sind neue Programmiertechniken und Infektionswege möglich. So folgten dann auf die Word 6.0 und Word 95-Makroviren bald auch Viren für Excel, Word97, Excel97 und schließlich für Microsoft Access. Die technische Entwicklung verlief ähnlich wie bei den DOS-Viren. Verschiedene technische Konzepte wie etwa Verschlüsselung, Tarnkappenfunktion (Stealth), polymorphe Verschlüsselung oder Retro-Eigenschaften ließen sich recht leicht in WordBasic und VBA realisieren. Neu hinzugekommen ist die Fähigkeit, mehrere Anwenderprogramme zu infizieren, was z.B. der "O97M/Shiver"-Virus demonstriert. Die Möglichkeiten von DDE, OLE und VBA sind bei weitem noch nicht ausgeschöpft und Microsoft selbst sorgt mit einer ständigen Erweiterung der Produktpalette, Funktionsvielfalt und nicht zuletzt mit der Änderung der internen Dateiformate der betroffenen Programme für eine leider fast ideale Plattform für neue Virengenerationen. 32-Bit Dateiviren für Windows, die lange Zeit kein größeres Problem darstellten, erleben mit den Viren "Marburg" und "CIH" eine enorme Verbreitung, die Fähigkeiten und das Wissen der Virenprogrammierer in diesem Bereich haben offenbar zugenommen. Aber auch die Microsoft-Konkurrenz ist von dem Virenproblem betroffen, wie der kürzlich entdeckte JavaApplication-Virus "Strange Brew" zeigt. Dieser stellt in der jetzigen Form keine Bedrohung dar, die Java-Implementationen der häufig verwendeten Internet-Browser haben sich als sicher erwiesen. Aber Weg ist gezeigt, prinzipiell ist jedes Betriebssystem und jede Applikation mit einer umfangreichen Script- oder Makrosprache virengefährdet.

SR-1: Das Ende alle Makrovirenprobleme?

Der zuerst in Word 7.0a von Microsoft eingeführte Virenschutz meldet im Prinzip jede .DOC-Datei, die Makros oder Veränderungen wie etwa neue Menüeinträge enthält. Die hohe Anzahl von Fehlalarmen führte dazu, daß die meisten Anwender diesen "Schutz" schnell wieder deaktivierten was natürlich den Makroviren unter Word 7.0a und Office97 den Weg ebnete.
Das Service-Release 1 (SR1) für Office97 enthielt eine unangenehme Überraschung für die Makro-Virenprogrammierer. Alle Makroviren, welche die bisher üblichen Infektionswege über WordBasic.MacroCopy, WordBasic.Organizer und Application.OrganizerCopy benutzten funktionierten nicht mehr. Es ist nach der Installation des SR1 nicht mehr möglich mit diesen Befehlen Makros aus der globalen Vorlage in weitere Dokumente zu übertragen - was dem üblichen Verbreitungsweg eines Makrovirus entspricht. Zudem wird bei der Konvertierung von WordBasic-Makros nach VBA verstärkt auf virentypische Merkmale geachtet wobei allerdings nur die bekanntesten Viren wie "Concept", "Wazzu" oder "Npad" blockiert werden. Die Änderungen des SR1-Updates hatten zur Folge, das sich sogenannte "Upconversions", also WordBasic-Makroviren, die automatisch in VBA übersetzt wurden sich unter Word97 so gut wie nicht mehr verbreiten können. Bis auf wenige Ausnahmen sind keine konvertierte WordBasic-Viren unter Word97 bei Anwendern verstärkt aufgetreten. Die Virenprogrammierer fanden jedoch schnell Methoden, um den verstärkten Virenschutz zu umgehen. Der am häufigsten verwendete Ansatz ist das direkte Importieren und Exportieren des Makroquelltexts, wobei meistens der Quelltext in eine Datei auf der Festplatte extrahiert und dann in der Zieldatei wieder in ein Makro eingelesen wird. Diesen Ansatz hatte Microsoft offenbar völlig übersehen. Fast alle aktuellen Office97-Makroviren wie etwa "Groov", "Class" oder "Shiver" benutzen diese Methode mehr oder weniger elegant. Es ist fraglich, ob Microsoft in der anstehenden neuen Version des Office-Pakets diese Lücke geschlossen hat.

Construction Kits für Word97-Makroviren

Obwohl das Programmieren eines Makrovirus im Vergleich zu einen in Assembler programmierten Dateivirus wesentlich einfacher ist, existiert eine Anzahl von sogenannten Construction Kits, mit denen selbst unerfahrene Anwender sich schnell einen neuen Virus erstellen kann. Interessanterweise hatten sich die Kits unter Word 6.0/7.0 nie richtig durchgesetzt, es existiert nur eine kleine Anzahl von Makroviren die etwa mit NJ-WMDLK1 erstellt wurden. Im Gegensatz dazu existiert bereits eine vergleichsweise große Anzahl von Word97-Makroviren, welche mit den VMPCK-Kit erstellt wurden. Die mit diesem Kit erstellten Makroviren sehen auf den ersten Blick polymorph aus, die im Quelltext vorhandenen "überflüssigen" Befehle wurden jedoch vom Construction Kit selber eingefügt und ändern sich bei weiteren Infektionen nicht mehr. Trotzdem erschwert dies die Erkennung, da so leicht eine große Anzahl von Viren erzeugen läßt, bei denen sich der Programmcode stärker voneinander unterscheidet als es sonst bei Kit-Viren üblich ist. Selbst Experten erkennen gelegentlich nicht, daß es sich bei einen neuen Virus lediglich um einen Kit-Virus handelt, wie etwa "Kitty.A" oder "Alja.A" zeigen, die jeweils mit dem "DWMCK" bzw. "VMPCK"-Kit erzeugt wurden. In der Regel funktionieren die Word97-Kits so, daß der Quelltext des neuen Virus generiert wird und der Benutzer diesen selber in ein Modul importieren muß.

Shiver.A: Schüttelfrost im Doppelpack (Multi-Application Makroviren)

Da VBA5 in fast allen Anwenderprogrammen von Microsoft vorhanden ist, war es eigentlich nur eine Frage der Zeit bis die ersten Makroviren scheinen, die nicht nur Word97 oder Excel97 befallen, sondern Applikationsübergreifend vorgehen. Beispiele sind hier "Cross.A" (Access und Word), "Teocatl" oder der neue "Shiver". Während "Cross" und "Teocatl" noch sehr primitiv programmiert sind und versuchen mit Hilfe eines Debug-Scripts infizierten Dateien in das Startup-Verzeichnis der jeweiligen Applikation zu kopieren (XLSTART, AutoStrt) bzw. die NORMAL.DOT überschreiben ist "Shiver" schon wesentlich fortschrittlicher. Dieser Virus nutzt die Möglichkeit der bekannten SR1-"kompatiblen" Infektionsmethode und überträgt den Quelltext der Makros mit der Import/Export-Funktion. Um den Quelltext zwischen Word97 und Excel97 zu übertragen benutzt "Shiver" DDE-Funktionen und erzeugt zwei kleine Startmakros, die dann später den eigentlichen Virus in ein Makro übertragen. Hinzu kommt das der Virus unter Excel97 nicht nur ein Excel97-Makro erzeugt, sondern auch ein Excel4-Makro welches den Starter enthält und das die Reinigung von infizierten Dateien weiter erschwert. Es ist zu erwarten das weitere O97M-Makroviren auftauchen werden.

Access denied: Access-Makroviren

Nachdem die Antiviren-Firmen das VBA3 und VBA5-Dateiformat halbwegs erfolgreich gemeistert hatten, folgte recht bald das nächste Problem in Form des ersten Microsoft Access-Virus "Accessiv". Access97 unterstützt wie Word97 und Excel97 die Programmiersprache VBA5, allerdings sind die .MDB-Dateien von Access nicht in den sonst bei Microsoft üblichen OLE COM-Dateiformat gespeichert sondern noch zusätzlich in das sogenannte JET-Format eingebunden. Genau wie bei OLE und VBA gibt es von Microsoft keinerlei Informationen, dieses Dateiformat ohne Hilfe der JET-API korrekt auszuwerten wie es für ein Virenscanner notwendig ist. Bis heute können nur sehr wenige Antiviren-Programme das komplexe JET-Format korrekt verarbeiten, zum Glück haben sich Access-Makroviren bei den Anwendern auch nie weit verbreiten können. Den alle bisher bekannten Access-Viren sind programmiertechnisch sehr primitiv und arbeiten nach dem sogenannten "Direct Action"-Prinzip, d.h. sie durchsuchen die Festplatte direkt nach weiteren Dateien die infiziert werden können. Eine sehr uneffektive Methode, die sich schon bei den DOS-Dateiviren nie durchsetzen konnte. Es ist daher zu erwarten, daß Access-Makroviren nie ein ernsthaftes Problem für den Anwender darstellen werden zudem Microsoft Access auch nicht so stark verbreitet ist wie Word97 oder Excel97 und auch Access-Datenbanken nicht so oft zwischen den Anwendern ausgetauscht werden wie .DOC oder .XLS-Dateien.

Fehlerhafte Formel: ExcelFormula-Viren

XF oder ExcelFormula-Makroviren benutzen nicht wie bisher bei Excel-Makroviren üblich die Programmiersprache VBA, sondern das ältere ExcelBasic welche seit Excel 4.0 existiert. Auch hier mußten die Antiviren-Firmen wieder ein neues komplexes Dateiformat untersuchen, zum Glück existieren in diesem Fall von Microsoft brauchbare Unterlagen welche die Analyse des XF-Formats erheblich vereinfachten. Es ist nur ein XF-Virus bekannt, "XF/Paix" von dem zwei Varianten existieren. Der Virus stammt aus Frankreich und erreichte eine recht hohe Verbreitung. Obwohl "Paix" mittlerweile einige Zeit bekannt ist, existieren keine weiteren XF-Viren was offenbar daran liegt, das den Virenprogrammieren der Virus "Paix" bis heute noch nicht vorliegt und Online-Dokumentation von ExcelBasic weitaus schlechter ist als die für VBA. "O97M/Shiver" benutzt ebenfalls ein Excel4-Makro, welches allerdings kein eigenständiger Virus ist.

32-Bit Power: Der Durchbruch bei den Win32-Dateiviren

PE-EXE Viren wurde lange Zeit nicht beachtet, da sie wie etwa "Boza" sehr umständlich und fehlerhaft programmiert waren was auf mangelnde Informationen der internen Strukturen von Win95 zurückzuführen ist. Wirklich effektive Programmiertechniken die eine größere Verbreitung ermöglichen sind erst bei den neueren Win95- und Win32-Dateiviren zu sehen. Das Hauptproblem für 32-Bit Viren ist es, die Adressen der wichtigen Systemfunktionen im Speicher zu finden und ähnlich wie bei DOS-Viren, speicherresident zu werden und Dateioperationen des Betriebssystems zu überwachen. Viren wie "Win32.Cabanas" zeigen, das dies sehr "kompatibel" möglich ist, denn dieser Virus funktioniert problemlos unter Windows NT und benutzt dennoch sehr fortschrittliche Anti-Debugging Methoden um eine Analyse zu erschweren. Noch interessanter ist jedoch die Methode, die notwendigen Einsprünge für die Kernel-Funktionen zu lokalisieren. Während "Cabanas" als reiner Laborvirus gilt, konnte sich der taiwanesische Win95-Virus "CIH" sehr schnell und erfolgreich verbreiten, was zum größten Teil über infizierte Raubkopien stattfand. Während sich die Presse hauptsächlich auf die Schadensfunktion des Virus konzentrierte, ist der Virus selber sehr interessant und fortschrittlich programmiert. Sicherlich ist das mehr oder weniger erfolgreiche Löschen des Flash-BIOS (nicht des CMOS!) ein Problem, aber letztendlich haben zu der starken Verbreitung des Virus die verwendete Infektionsmethode und der recht fehlerfreie Programmcode gesorgt. Trotz der vergleichsweisen geringen Größe von nur ca. 1 KB besitzt der Virus eine aufwendige Infektionsmethode und ist in der Lage, seinen Programmcode quer durch die Sektionen einer PE-Datei zu verteilen und nicht, wie sonst üblich, nach der letzten bzw. an der letzten Sektion anzufügen. Diese Methode führte zu Problemen bei der zuverlässigen Erkennung und Reinigung des Virus und noch immer können vielen Antiviren-Programme "CIH" nicht korrekt aus infizierten Dateien entfernen. Weiter ist z.B. der Trick interessant, mit dem der Virus problemlos von der Schutzebene Ring3 (Windows-Applikationen) in die Ebene Ring 0 (Treiber, Kernel) springen kann, was eigentlich unmöglich sein sollte. Im Ring 0 angekommen stehen dem Virus alle Möglichkeiten zur Verfügung und er kann problemlos Speicher allokieren und Dateioperationen des Betriebssystems mit Hilfe des IFS_MGR überwachen. Alle danach geöffneten PE-Dateien werden vom Virus infiziert, was eine rasante Ausbreitung innerhalb eines Systems ermöglicht. Weitere neue Win32 bzw. Win95-Dateiviren wie etwa "Marburg" oder "Inca" zeigen, daß die Virenprogrammierer die Win32-Plattform mittlerweile beherrschen und in der Lage sind, effektive und auch komplexere Viren als bisher zu programmieren. Es ist daher anzunehmen, daß diese Art der Viren in nächster Zukunft wieder ein größeres Problem darstellen werden. Was die Situation noch erschwert ist die Existenz sogenannter Laufzeit-Komprimierer bzw. Verschlüsseler, die es problemlos ermöglichen, Dropper von bekannten Win32-Dateiviren (oder Programmen wie Back Orifice oder NetBus) zu erzeugen, die kein Antiviren-Programm erkennen kann. Keines der erhältlichen Antiviren-Programmen ist in der Lage, solche Komprimierungen und Verschlüsselungen zu durchdringen und es existieren leider auch keine Tools, die dieses vermögen. Und die entsprechenden Programme wie WWPACK32, Shrinker, Petite, PE-Shield oder etwa PE-Lock sind interessierten Personen schon lange bekannt. Hier besteht dringender Bedarf, die existierenden Antiviren-Programme zu verbessern.


HTML-Design by Rainer Link. Für den Inhalt ist der Autor selbst verantwortlich. Alle Rechte vorbehalten!