Die verschiedenen Typen der Viren unterscheiden sich voneinander durch folgende Hauptmerkmale:
durch ihr Existenz-Medium,
durch die Infizierungs-Methoden.
Unter 'Existenz-Medium' versteht man die Bereiche im Computer-System oder im Dienstprogramm, in deren Komponenten (Dateien) sich der Viren-Code einnisten kann. Unter der 'Infizierungs-Methoden' versteht man die verschiedenen Methoden, mit deren Hilfe der Viren-Code in infizierbare Objekte eindringt.
Existenz-Medium
Entsprechend dem Existenz-Medium könne die Viren unterteilt werden in:
Dateiviren;
Bootfähige Viren;
Makroviren und
Skriptviren.
Die Dateiviren nutzen zu ihrer Verbreitung auf irgendeiner Art das Dateisystem der Betriebssysteme. Sie:
dringen auf unterschiedliche Art und Weise in die Ausführungsdateien (am meisten verbreitet)
erstellen Datei-Doppelgänger;
erstellen Kopien von sich in verschiedenen Verzeichnissen;
nutzen die Besonderheiten des Datei-Aufbaus (Link-Viren).
Die bootfähigen Viren speichern sich entweder direkt in den Bootsektor, oder in den Sektor, der den Master Boot Record enthält, oder lenkt sie auf einen aktiven Bootsektor um. Dieser Virentyp war besonders in den 90er Jahren verbreitet, verschwand aber fast vollständig mit dem Erscheinen der 32-bite Betriebssysteme und dem Rückgang der Disketten-Verwendung als wichtigstes Informations-Austauschs-Mittel. Theoretisch ist ein Auftauchen von herunter geladenen Viren, die CDs oder USB-Flashs infizieren, möglich. Zum jetzigen Zeitpunkt kommen solche Viren jedoch nicht vor.
Viele Tabellen- oder Grafik-Redakteure (Programme), Projektierungs-Systeme, Text-Prozessoren nutzen eigene Makro-Sprachen zur automatischen Ausführung sich wiederholender Tätigkeiten. Diese Makro-Sprachen haben häufig eine komplizierte Struktur und ein weit entwickeltes Befehlsangebot. Makro-Viren sind Programme in Makro-Sprachen, die in die Systeme zur Datenbearbeitung eingebaut sind. Zu ihrer Verbreitung benutzen diese Viren die Möglichkeiten der Makro-Sprachen. Mit ihrer Hilfe übertragen sie sich selbst von einer infizierten Datei (Dokument oder Tabelle) in andere.
Infizierungs-Methoden
Dateiviren
Entsprechend der Methoden zur Infizierung der Dateien werden die Viren eingeteilt in:
überschriebene-Viren (overwriting);
parasitäre Viren (parasitic);
Companion-Viren;
Link-Viren;
Viren, welche die Objektmodule befallen (OBJ);
Viren, welche die Compiler Bibliotheken befallen (LIB);
Viren, welche die Quelltexte der Programme befallen.
Overwriting
Diese Infizierungs-Methode ist die einfachste: der Virus schreibt seinen Code anstelle des Codes der zu infizierenden Datei, indem er den gesamten Inhalt löscht. Natürlich wird diese Datei dadurch funktionsunfähig und ist nicht wieder herstellbar. Diese Viren werden schnell aufgefunden, da das Betriebssystem und die Software ziemlich schnell nicht mehr funktionieren.
Parasitic
Zu den parasitären gehören alle Dateiviren, die, während sie ihre Kopien verbreiten, unbedingt den Inhalt der Dateien verändern, die dadurch teilweise oder vollständig arbeitsunfähig werden.
Zu ihren Hauptvertretern gehören Viren, die sich
an den Beginn einer Datei (prepending),
an das Ende einer Datei (appending) und
in die Mitte einer Datei (inserting)
einnisten. Die Einnistung in die Mitte einer Datei wiederum erfolgt mit unterschiedlichen Methoden: durch die Übertragung von Teilen der Datei an ihr Ende oder durch das Kopieren seines Codes in speziell nicht benutzte Daten der Datei (cavity-Viren).
Einnisten des Virus am Beginn einer Datei
Es gibt zwei Möglichkeiten wie der parasitäre Dateivirus an den Anfang einer Datei gelangt. Erstens: der Virus überträgt den Beginn der infizierten Datei an ihr Ende, selbst kopiert er sich auf den frei gewordenen Platz. Zweitens: der Virus hängt die infizierte Datei an seinen eigenen Körper.
Der Virus übernimmt dadurch beim Start der infizierten Datei die Steuerung. Um das Programm funktionsfähig zu lassen, repariert er entweder die infizierte Datei, startet sie erneut, wartet die Beendigung ihrer Ausführung ab und schreibt sich erneut an ihren Beginn (manchmal wird dafür eine zeitweilige Datei benutzt, in welche die reparierte Datei geschrieben wird), oder die Viren stellen den Programm-Code im Speicher des Computers und die erforderlichen Adressen im Dateikörper wieder her (dublieren also die Arbeit des Betriebssystems).
Einnisten des Virus am Ende einer Datei
Am häufigsten wird hierbei folgende Methode genutzt: die Datei wird durch den Virus an ihrem Ende fortgeschrieben. Dabei verändert der Virus den Beginn der Datei derart, dass die beiden ersten Programm-Befehle Virus-Befehle sind. Um die Steuerung beim Start der Datei zu erhalten, korrigiert der Virus die Start-Adresse des Programms (die Adresse des Eingangspunktes). Der Virus führt dafür notwendige Veränderungen in der Datei-Überschrift (header) durch.
Einnisten des Virus in der Mitte einer Datei
Es existieren einige Methoden zur Einnistung eines Virus in die Mitte einer Datei. Die einfachste Methode ist, wenn der Virus einen Teil der Datei an ihr Ende verlagert, oder die Datei 'auseinander schiebt' und seinen Code in die freigewordene Fläche schreibt. Diese Methode ist in vielem analog den Methoden, die bereits erwähnt wurden. Einige Viren komprimieren den zu übertragenden Datenblock derart, dass die Länge der Datei sich dabei nicht verändert.
Die zweite ist die 'cavity' Methode, bei der sich der Virus in speziell nicht benutzte Dateibereiche schreibt. Der Virus kann in unbenutzte Bereiche der EXE-header kopiert werden, in 'Lücken' zwischen den einzelnen Sektionen der EXE-Dateien oder in Bereiche der Textmitteilungen der verbreiteten Compiler. Es gibt Viren, die nur die Dateien infizieren, die Datenblöcke mit irgendwelchen konstanten bites enthalten. Der Virus schreibt seinen Code anstelle dieses Blocks.
Außerdem kann das Kopieren des Virus in die Mitte einer Datei auch fehlerhaft passieren - in diesem Fall wird die Datei unumkehrbar zerstört.
Entry point obscuring viruses - EPOs (Viren ohne Eintrittspunkt)
Eine unbedeutende Gruppe von Viren, die keinen 'Eintrittspunkt' (Entry Point Obscuring viruses) haben, sollte extra erwähnt werden. Dazu gehören Viren, die die Adresse des Startpunktes in der Überschrift der EXE-Dateien nicht verändern. Diese Viren schreiben den Befehl zum Code-Wechsel irgendwo in die Mitte der Datei und erhalten somit nicht unmittelbar beim Start der infizierten Datei die Steuerung, sondern beim Aufruf der Prozedur, die den Code zum Übertragen der Steuerung auf den Virenkörper enthält. Diese Prozedur wird äußerst selten ausgeführt (z.B. beim Abrufen einer Nachricht über irgendeinen speziellen Fehler). Resümee: der Virus kann mitunter lange Jahre in der Datei schlummern und nur unter sehr eingeschränkten Bedingungen in die Freiheit gelangen.
Bevor er in die Mitte einer Datei seinen Code schreibt, muss der Virus die 'richtige' Adresse in der Datei auswählen, da ansonsten die infizierte Datei zerstört werden kann. Es sind einige Methoden bekannt, mit deren Hilfe die Viren diese Adressen in der Datei herausfinden, z.B. die Suche bestimmter Abläufe des Standard-Codes der header von Programmiersprachen (C/Pascal), die Disassemblierung des Datei-Codes oder die Änderung der Adressen importierter Funktionen.
Companion
Zur 'Companion'-Kategorie gehören Viren, welche die infizierten Dateien nicht verändern. Der Algorithmus dieser Viren besteht darin, dass ein Doppel der Datei erstellt wird. Beim Start der infizierten Datei übernimmt genau dieses Doppel, also der Virus, die Steuerung.
Zu Viren dieses Typs gehören diejenigen, die bei der Infizierung die Datei beliebig umbenennen, sich den Namen (für nachfolgende Starts dieser Datei) einprägen und ihren Code auf die Festplatte unter dem Namen der infizierten Datei schreiben. Z.B. wird die Datei NOTEPAD.EXE umbenannt in NOTEPAD.EXD, und der Virus schreibt sich ein unter dem Namen NOTEPAD.EXE. Beim Start erhält der Virencode die Steuerung, der im Anschluss daran die Original-Datei NOTEPAD startet.
Die Existenz weiterer Typen der Companion-Viren ist möglich, die andere originelle Ideen anwenden oder die Besonderheiten anderer Betriebssysteme benutzen. Die PATH-Companions, beispielsweise, nisten ihre Kopien in die Hauptverzeichnisse von Windows ein. Dabei nutzen sie die Tatsache, dass dieses Verzeichnis das erste in der PATH-Liste ist, und Dateien zum Start von Windows werden hauptsächlich darin gesucht. Diese Methode des Selbststarts nutzen ebenfalls viele Computer-Würmer und Trojaner.
Weitere Infizierungs-Methoden
Es gibt Viren, die ihr Dasein in keiner Weise mit irgendeiner Dateiausführung verbinden. Zu ihrer Vermehrung kopieren sie lediglich ihren Code in irgendwelche Festplatten-Verzeichnisse in der Hoffnung, dass diese neuen Kopien irgendwann vom Anwender gestartet werden. Manchmal vergeben diese Viren spezielle Namen an ihre Kopien, um das Interesse des Anwenders zu wecken, der dadurch wiederum die Kopie öffnet - z.B. INSTALL.EXE oder WINSTART.BAT.
Einige Viren schreiben ihre Kopien in Archive (ARJ, ZIP, RAR). Andere schreiben den Befehl zum Start der infizierten Datei in BAT-Dateien.
Link-Viren ändern ebenfalls nicht den physikalischen Inhalt der Dateien, jedoch beim Start der infizierten Datei lassen sie durch das Betriebssystem ihren Code ausführen. Dieses Ziel erreichen sie durch die Modifikation der erforderlichen Bereiche des Datei-Systems.
Bootfähige Viren
Die zum gegenwärtigen Zeitpunkt bekannten bootfähigen Viren infizieren den Bootsektor des Floppy-Disk und den Bootsektor oder den Master Boot Record (MBR) der Festplatte. Das Ladeprinzip der bootfähigen Viren basiert auf den Start-Algorithmen des Betriebssystems beim Einschalten (Start) oder Neustart des Computers. Nach dem notwendigen Test der installierten Hardware (Speicher, Festplatten usw.) tastet das Programm für den Systemstart den ersten physikalischen Sektor des Bootsektors ab (a:, c: oder CD-ROM je nach den im BIOS Setup installierten Parametern) und überträgt ihm die Verwaltung.
Bei der Infizierung der Festplatten setzen die bootfähigen Viren ihren Code anstelle irgendeines Programms, welches die Verwaltung beim Start des Systems erhält. In allen oben beschriebenen Methoden wirkt dasselbe Infizierungs-Prinzip: beim Neustart lässt der Virus das System den Speicher einlesen und übergibt dabei die Verwaltung nicht dem Original-Code für das Ladeprogramm, sondern dem Code des Virus.
Die Infizierung von Floppy-Disks erfolgt mit Hilfe einer bekannten Methode - der Virus schreibt seinen Code anstelle des Original-Codes des Disketten-Bootsektors. Die Festplatten können über drei verschiedene mögliche Methoden infiziert werden - entweder schreibt der Virus seinen Code anstelle des MBR-Codes, oder anstelle des Bootsektor-Codes der Festplatte (meistens auf 'c'), oder aber er modifiziert die Adresse des aktiven Bootsektors in der Tabelle zur Aufteilung der Festplatte (Disk Partition Table), die sich im MBR-Bereich der Festplatte befindet.
In den meisten Fällen verschiebt der Virus bei Infizierung der Festplatte den Original-Bootsektor (oder MBR) in irgendeinen anderen Sektor der Festplatte (z.B. in den ersten freien Sektor). Wenn die Länge des Virus größer ist als die Länge des Sektors, so wird in den infizierten Sektor der erste Teil des Virus platziert, und die anderen Teile in andere Sektoren (z.B. in die ersten freien Sektoren).
Makro-Viren
Am meisten verbreitet sind Makro-Viren für Microsoft Office (Word, Excel und PowerPoint), welche die Information im Format OLE2 (Object Linking und Embedding) aufbewahren. In den übrigen Dienstprogrammen kommen Viren nur selten vor.
Die aktuelle Ausbreitung des Virus im MS Office hängt von seinem Format ab, das bei Microsoft Produkten außerordentlich kompliziert ist - jedes Datei-Dokument Word, Office 97 oder Excel Tabelle stellt eine Abfolge von Daten-Blöcken dar (wobei jeder wieder ein bestimmtes Format hat), und die miteinander durch eine große Zahl von Dienstdaten vereint sind. Aufgrund dessen kann man sich die Lage der Makro-Viren in einer Datei nur schematisch vorstellen:
Nicht infiziertes Datei-Dokument oder Tabelle
Infiziertes Datei-Dokument oder Tabelle
Datei-Überschrift
Dienst-Daten (Verzeichnisse, FAT)
Text
Schriften
Makros (wenn vorhanden)
Andere Daten
Datei-Überschrift
Dienst-Daten (Verzeichnisse, FAT)
Text
Schriften
Makros (wenn vorhanden)
Makros der Viren
Andere Daten
Bei der Arbeit mit Dokumenten und Tabellen führt MS Office verschiedene Tätigkeiten aus: öffnet das Dokument, speichert es, druckt es, schließt es usw. Dabei sucht MS Word die entsprechenden 'eingebauten Makros' und führt sie aus - beim Speichern der Datei auf den Befehl 'Datei/Speichern' wird Makro 'DateiSpeichern' aufgerufen , beim Speichern auf den Befehl 'Datei/Speichern unter' - Makro 'DateiSpeichernunter', beim Drucken von Dokumenten - 'DateiDrucken' usw., natürlich nur, wenn derartige Makros vorhanden sind.
Es gibt auch einige 'Auto-Makros', die automatisch unter bestimmten Voraussetzungen hervorgerufen werden. Beim Öffnen eines Dokuments, beispielsweise, überprüft MS Word das Vorhandensein von Makros AutoOpen. Wenn ein solcher Markros vorhanden ist, so führt Word ihn aus. Beim Schließen eines Dokuments führt Word Markro AutoClose aus, beim Start von Word wird Makro AutoExec, beim Schließen - AutoExit aufgerufen, beim Erstellen eines neuen Dokuments - AutoNew. Automatisch, also ohne Zutun des Anwenders, werden Makros/Funktionen ausgeführt, die mit irgendeiner Taste oder einem Zeitpunkt, oder Datum assoziiert werden, d.h. MS Word/Excel rufen Makros/Funktionen beim Druck auf irgendeine konkrete Taste (oder Tastenkombination) auf oder beim Erreichen irgendeines Zeitpunktes.
Makro-Viren, welche MS Office Dateien befallen, nutzen i.d.R. einen der oben genannten Kunstgriffe:in dem Virus ist entweder ein Auto-Makro (Auto-Funktion) anwesend, oder einer der Standard System-Makros ist umfunktioniert, oder der Makro-Virus wird automatisch beim Druck auf eine Taste oder Tastenkombination aufgerufen. Sobald der Makro-Virus die Steuerung übernimmt, überträgt er seinen Code in andere Dateien, gewöhnlich in Dateien, die gerade bearbeitet werden. Seltener suchen die Makro-Viren selbstständig nach anderen Dateien auf der Festplatte.
Skript-Viren
Wir müssen natürlich auch die Skript-Viren erwähnen, die eine Untergruppe der Datei-Viren darstellen. Diese Viren sind auf verschiedenen Skript-Sprachen (VBS, JS, BAT, PHP usw.) geschrieben. Sie infizieren entweder andere Skript-Programme (Steuer- oder Dienstdateien von MS Windows oder Linux), oder sind Teile von Viren, bestehend aus mehreren Komponenten. Diese Viren können Dateien anderer Formate (beispielsweise html) befallen, wenn in diesen die Ausführung der Skripte möglich ist.