|
|
Inhaltsverzeichnis
-Arbeitsweise
-Unterschied zwischen Virus und Wurm
-Computervirentypen
-Bootviren
-Dateiviren/Linkviren
-Makroviren
-Skriptviren
-Mischformen
-Testviren
-nfektionsarten
-Companion-Viren
-Überschreibende
-Prepender
-Appender
-Entry Point Obscuring
-Techniken
-Arbeitsspeicher
-Selbstschutz der Viren
-Stealthviren
-Verschlüsselte Viren
-Polymorphe Viren
-Metamorphe Viren
-Retroviren
-Mögliche Schäden/Payload
-Wirtschaftliche Schäden
-Aufbau
-Achillesferse eines Virus
-Geschichte
-Theoretische Anfänge: Bis 1985
-Praktische Anfänge: 1985–1990
-Die Ära der DOS-Viren: 1990–1995
-Die Ära der Viren für 32-Bit-Windows-
-Betriebssysteme: 1995–2002
-Neue Nischen: Ab 2002
-Weblinks
|
|
|
|
Computervirus
Ein Computervirus (Singular; das, umgangssprachlich auch der
Computervirus; Plural: Computerviren) ist ein sich selbst vermehrendes
Computerprogramm, welches sich in andere Computerprogramme einschleust
und sich damit reproduziert. Die Klassifizierung als Virus bezieht sich
hierbei auf die Verbreitungs- und Infektionsfunktion.
Einmal gestartet, kann es vom Anwender nicht kontrollierbare
Veränderungen am Status der Hardware (z. B. Netzwerkverbindungen), am
Betriebssystem oder an der Software vornehmen (Schadfunktion).
Computerviren können durch vom Ersteller gewünschte oder nicht
gewünschte Funktionen die Computersicherheit beeinträchtigen und zählen
zur Malware.
Der Begriff Computervirus wird auch fälschlich für Computerwürmer und
Trojanische Pferde genutzt, da der Übergang inzwischen fließend und für
Anwender oft nicht zu erkennen ist. |
|
|
Arbeitsweise
Wie sein biologisches Vorbild benutzt ein Computervirus die Ressourcen
seines Wirtes und schadet ihm dabei häufig. Auch vermehrt es sich meist
unkontrolliert. Durch vom Virenautor eingebaute Schadfunktionen oder
auch durch Fehler im Virus kann das Virus das Wirtssystem bzw. dessen
Programme auf verschiedene Weisen beeinträchtigen, von harmloseren
Störungen bis hin zu Datenverlust.
Viren brauchen, im Gegensatz zu Computerwürmern, einen Wirt um ihren
Schadcode auszuführen. Viren haben keine eigenständigen
Verbreitungsroutinen, d.h. ein Computervirus kann nur durch ein
infiziertes Wirtsprogramm verbreitet werden. Wird dieses Wirtsprogramm
aufgerufen, wird - je nach Virentyp früher oder später - das Virus
ausgeführt, das sich dann selbst in noch nicht infizierte Programme
weiterverbreiten oder seine eventuell vorhandene Schadwirkung ausführen
kann.
Heutzutage sind Computerviren fast vollständig von Würmern verdrängt
worden, da fast jeder Rechner an Rechnernetze (lokale Netze und das
Internet) angeschlossen ist und die aktive Verbreitungsstrategie der
Würmer in kürzerer Zeit eine größere Verbreitung ermöglicht. Viren sind
nur noch in neuen Nischen von Bedeutung. |
|
|
Unterschied zwischen Virus und Wurm
Computerviren und -Würmer verbreiten sich beide auf Rechnersystemen,
doch basieren sie zum Teil auf vollkommen verschiedenen Konzepten und
Techniken.
Ein Virus verbreitet sich, indem es sich selbst in noch nicht infizierte
Dateien kopiert und diese ggf. so anpasst, dass das Virus mit ausgeführt
wird, wenn das Wirtsprogramm gestartet wird. Zu den infizierbaren
Dateien zählen normale Programmdateien, Programmbibliotheken, Skripte,
Dokumente mit Makros oder anderen ausführbaren Inhalten sowie
Bootsektoren (auch wenn Letztere normalerweise vom Betriebssystem nicht
als Datei repräsentiert werden).
Die Verbreitung auf neue Systeme erfolgt durch versehentliches
(gelegentlich auch absichtliches) Kopieren einer infizierten Wirtsdatei
auf das neue System durch einen Anwender. Dabei ist es unerheblich, auf
welchem Weg diese Wirtsdatei kopiert wird: Früher waren die
Hauptverbreitungswege Wechselmedien wie Disketten, heute sind es
Rechnernetze (z.B. via E-Mail zugesandt, von FTP-Servern, Web-Servern
oder aus Tauschbörsen heruntergeladen). Es existieren auch Viren, die
Dateien in freigegebenen Ordnern in LAN-Netzwerken infizieren, wenn sie
entsprechende Rechte besitzen.
Im Gegensatz zu Viren warten Würmer nicht passiv darauf, von einem
Anwender auf einem neuen System verbreitet zu werden, sondern versuchen
aktiv in neue Systeme einzudringen. Sie nutzen dazu Sicherheitsprobleme
auf dem Zielsystem aus, wie z.B.:
* Netzwerk-Dienste, die Standardpasswörter oder gar kein Passwort
benutzen
* Design- und Programmierfehler in Netzwerk-Diensten
* Design- und Programmierfehler in Anwenderprogrammen, die
Netzwerkdienste benutzen (z.B. E-Mail-Clients)
Ein Wurm kann sich dann wie ein Virus in eine andere Programmdatei
einfügen; meistens versucht er sich jedoch nur an einer unauffälligen
Stelle im System mit einem unauffälligen Namen zu verbergen und
verändert das Zielsystem so, dass beim Systemstart der Wurm aufgerufen
wird (wie etwa die Autostart-Funktion in Microsoft-Windows-Systemen).
In der Umgangssprache werden Computerwürmer wie „I Love You“ oft
fälschlicherweise als Viren bezeichnet, da der Unterschied für Anwender
oft nicht ersichtlich ist. |
|
|
Computervirentypen
Bootviren
Bootviren zählen zu den ältesten Computerviren. Diese Viren waren bis
1995 eine sehr verbreitete Form von Viren. Ein Bootsektorvirus infiziert
den Bootsektor von Disketten und Festplattenpartitionen und/oder den
Master Boot Record (MBR) einer Festplatte.
Der Bootsektor ist der erste physische Teil einer Diskette oder einer
Festplattenpartition. Festplatten haben außerdem einen sog. Master Boot
Record oder MBR. Dieser liegt wie der Bootsektor von Disketten ganz am
Anfang des Datenträgers. Bootsektoren und MBR enthalten mit den sog.
Boot-Loadern die Software, die von einem Rechner direkt nach dessen
Start ausgeführt wird, sobald die Firmware bzw. das BIOS den Rechner in
einen definierten Startzustand gebracht hat. Üblicherweise laden
Boot-Loader das installierte Betriebssystem und übergeben diesem die
Kontrolle über den Computer.
Wie beschrieben sind Boot-Loader Programme, die vor dem Betriebssystem
ausgeführt werden und deshalb für Viren sehr interessant: Bootviren
können in das Betriebssystem, das nach ihnen geladen wird, eingreifen
und dieses manipulieren oder dieses komplett umgehen. Dadurch können sie
sich z. B. auf Bootsektoren eingelegter Disketten verbreiten.
Lädt ein Rechner nicht den MBR der Festplatte sondern den infizierten
Bootsektor einer Diskette, versucht das enthaltene Bootvirus meist, sich
in den MBR der Festplatte zu verbreiten, um bei jedem Start des
Computers ohne Diskette aktiv werden zu können.
Bootviren haben jedoch mit den technischen Limitierungen, die mit dem
Speicherort „Bootsektor“ bzw. vor allem „MBR“ einhergehen, zu kämpfen:
sie können maximal 444 Bytes groß sein, sofern sie nicht noch weitere
Teile auf anderen Teilen der Festplatte verstecken. (Der MBR ist nach
Industrienorm einen Sektor, also 512 Byte groß, aber einige Bytes werden
für die Hardware- und BIOS-Kompatibilität verbraucht.) Außerdem müssen
sie die Aufgaben des Boot-Loaders übernehmen, damit das System
funktionsfähig bleibt, was von dem ohnehin schon sehr geringen Platz für
die Virenlogik noch weiteren Platz wegnimmt. Da sie vor einem
Betriebssystem aktiv werden, können sie außerdem nicht auf von einem
Betriebssystem bereitgestellte Funktionen wie das Finden und Öffnen
einer Datei zurückgreifen.
Seit 2005 gibt es auch Bootsektorviren für CD-ROMs. Diese infizieren
bootfähige CD-ROM-Image-Dateien (ISO-Images). Es ist technisch möglich,
ein Bootsektorvirus für einen USB-Stick oder für ein LAN-Netzwerk zu
erstellen, dies ist aber bis 2005 noch nicht geschehen.
Heutzutage gibt es beinahe keine Bootsektorviren mehr, da BIOS und
Betriebssysteme meistens einen gut funktionierenden Schutz vor ihnen
haben. Zwar gibt es Bootsektorviren, die diesen Schutz umgehen können,
doch ist ihre Verbreitung im Allgemeinen sehr langsam. Durch die
technischen Probleme, die mit diesem Virentyp einhergehen, fordern sie
vom Virenautor außerdem deutlich mehr Wissen und
Programmierfertigkeiten, während sie zugleich seine Möglichkeiten stark
einschränken.
Dateiviren/Linkviren
Linkviren oder Dateiviren sind der am häufigsten anzutreffende Virentyp.
Sie infizieren ausführbare Dateien oder Programmbibliotheken auf einem
Betriebssystem.
Um eine ausführbare Datei zu infizieren, muss das Virus sich in diese
Wirtsdatei einfügen (oft direkt am Ende, da dies am einfachsten ist).
Außerdem modifiziert das Virus die Wirtsdatei so, dass das Virus beim
Programmstart aufgerufen wird. Eine spezielle Form von Linkviren wählt
eine andere Strategie und fügt sich in eine bestehende Programmfunktion
ein.
Zu den verschiedenen Arten von Linkviren siehe Infektionsarten.
Makroviren
Makroviren benötigen Anwendungen, die Dokumente mit eingebetteten Makros
verarbeiten. Sie befallen Makros in nicht-infizierten Dokumenten oder
fügen entsprechende Makros ein, falls diese noch nicht vorhanden sind.
Makros werden von den meisten Office-Dokument-Typen verwendet, wie z. B.
in allen Microsoft-Office- sowie OpenOffice.org-Dokumenten. Aber auch
andere Dokument-Dateien können Makros enthalten. Sie dienen
normalerweise dazu, in den Dokumenten wiederkehrende Aufgaben zu
automatisieren oder zu vereinfachen.
Häufig unterstützen Anwendungen mit solchen Dokumenten ein spezielles
Makro, das automatisch nach dem Laden des Dokuments ausgeführt wird.
Dies ist ein von Makroviren bevorzugter Ort für die Infektion, da er die
höchste Aufruf-Wahrscheinlichkeit hat. Wie Linkviren versuchen auch
Makroviren, noch nicht infizierte Dateien zu befallen.
Da die meisten Anwender sich nicht bewusst sind, dass z. B. ein
Textdokument ausführbare Inhalte und damit ein Virus enthalten kann,
gehen sie meist relativ sorglos mit solchen Dokumenten um. Sie werden
sehr oft an andere Anwender verschickt oder sogar auf öffentlichen
Servern zum Herunterladen angeboten. Dadurch können sich Makroviren
recht gut verbreiten. Um das Jahr 2000 herum stellten sie die größte
Bedrohung dar, bis sie darin von den Computerwürmern abgelöst wurden.
Ein Schutz gegen Makroviren besteht darin, dafür zu sorgen, dass nur
zertifizierte Makros von der Anwendung ausgeführt werden. Dies ist
insbesondere für (größere) Unternehmen und Behörden von Interesse, wo
eine zentrale Zertifizierungsstelle Makros zum allgemeinen Gebrauch vor
deren Freigabe überprüft und akzeptierte Makros zertifiziert.
Es empfiehlt sich weiterhin, das automatische Ausführen von Makros in
der entsprechenden Anwendung auszuschalten.
Skriptviren
Ein Skript ist ein Programm, welches nicht durch einen Kompilierer in
Maschinensprache übersetzt wird, sondern durch einen Interpreter Schritt
für Schritt ausgeführt wird. Ein Skript wird häufig auf Webservern
verwendet (z. B. in Form der Skriptsprache Perl oder PHP) bzw. durch in
Webseiten eingebettet Skriptsprachen (z. B. JavaScript).
Ein Skript wird gerne in Webseiten zusätzlich zu normalem HTML oder XML
eingesetzt, um Funktionen zu realisieren, die sonst nur unter
Zuhilfenahme ausführbarer Programme auf dem Server (CGI-Programme)
realisierbar wären. Solche Funktionen sind zum Beispiel Gästebücher,
Foren, dynamisch geladene Seiten oder Webmailer. Skriptsprachen sind
meist vom Betriebssystem unabhängig. Um ein Skript auszuführen, wird ein
passender Interpreter – ein Programm, das das Skript von einer für den
Menschen lesbaren Programmiersprache in eine interne Repräsentation
umsetzt und dann ausführt – benötigt. Wie alle anderen Viren auch sucht
das Skriptvirus eine geeignete Wirtsdatei, die es infizieren kann.
Im Falle von HTML-Dateien fügt sich das Skriptvirus in einen speziellen
Bereich, dem Skriptbereich, einer HTML-Datei ein (oder erzeugt diesen).
Die meisten Browser laden diesen Skriptbereich des HTML-Dokuments um in
schließlich ausführen. Diese speziellen Skriptviren verhalten sich also
fast genauso wie die oben beschriebenen Makroviren.
Unix-, Mac-OS-X- und Linux-Systeme benutzen für die Automatisierung
vieler Aufgaben ein Skript, welches z. B. für eine Unix-Shell wie bash,
in Perl oder in Python geschrieben wurde. Auch für diese Skriptsprachen
gibt es Viren, die allerdings nur Laborcharakter haben und in der
„freien Wildbahn“ so gut wie nicht anzutreffen sind. Auch können sie
nicht wie in HTML eingebettete Skriptviren versehentlich eingefangen
werden, sondern man muss – wie bei einem Linkvirus – erst ein
verseuchtes Skript auf sein System kopieren und ausführen.
Mischformen
Nicht alle Computerviren fallen eindeutig in eine spezielle Kategorie.
Es gibt auch Mischformen wie zum Beispiel Viren, die sowohl Dateien als
auch Bootsektoren infizieren (Beispiel: Kernelviren) oder Makroviren,
die auch Programmdateien infizieren können. Bei der Zusammensetzung ist
beinahe jede Variation möglich.
Testviren
Die Eicar Testdatei ist eine Datei, die benutzt wird um Virenscanner zu
testen. Sie ist kein Virus und enthält auch keinen „viralen“ Inhalt,
sondern ist nur per Definition als Virus zu erkennen. Jeder Virenscanner
sollte diese Datei erkennen. Sie kann deswegen benutzt werden, um auf
einem System – das von keinem Virus infiziert wurde – zu testen, ob der
Virenscanner korrekt arbeitet. |
|
|
Infektionsarten
Companion-Viren
Companion-Viren infizieren nicht die ausführbaren Dateien selbst,
sondern benennen die ursprüngliche Datei um und erstellen eine Datei mit
dem ursprünglichen Namen, die nur das Virus enthält, oder sie erstellen
eine Datei mit ähnlichem Namen, die vor der ursprünglichen Datei
ausgeführt wird. Es handelt sich also nicht um ein Virus im eigentlichen
Sinne, da kein Wirtsprogramm manipuliert wird.
Unter MS-DOS gibt es beispielsweise Companion-Viren, die zu einer
ausführbaren EXE-Datei eine versteckte Datei gleichen Namens mit der
Endung „.com“ erstellen, die dann nur das Virus enthält. Wird in der
Kommandozeile von MS-DOS ein Programmname ohne Endung eingegeben, sucht
das Betriebssystem zuerst nach Programmen mit der Endung „.com“ und
danach erst nach Programmen mit der Endung „.exe“, so dass der Schädling
vor dem eigentlichen Programm in der Suchreihenfolge erscheint und
aufgerufen wird. Der Schädling führt, nachdem er sich meist im
Arbeitsspeicher festgesetzt hat, das ursprüngliche Programm aus, so dass
der Benutzer oft nichts von der Infektion bemerkt.
Überschreibende
Überschreibende Computerviren sind die einfachste Form von Viren, wegen
ihrer stark zerstörenden Wirkung allerdings auch am leichtesten zu
entdecken. Wenn ein infiziertes Programm ausgeführt wird, sucht das
Virus nach neuen infizierbaren Dateien und überschreibt entweder die
ganze Datei oder nur einen Teil derselben (meist den Anfang) mit einer
benötigten Länge. Die Wirtsdatei wird dabei irreparabel beschädigt und
funktioniert nicht mehr oder nicht mehr korrekt, wodurch eine Infektion
praktisch sofort auffällt.
Prepender
Diese Art von Computerviren fügt sich am Anfang der Wirtsdatei ein. Beim
Ausführen der Wirtsdatei wird zuerst das Virus aktiv, das sich
weiterverbreitet oder seine Schadwirkung entfaltet. Danach stellt das
Virus im Arbeitsspeicher den Originalzustand des Wirtsprogramms her und
führt dieses aus. Außer einem kleinen Zeitverlust merkt der Benutzer
nicht, dass ein Virus gerade aktiv wurde, da die Wirtsdatei vollkommen
arbeitsfähig ist.
Appender
Ein Appender-Virus fügt sich an das Ende einer zu infizierenden
Wirtsdatei an und manipuliert die Wirtsdatei derart, dass es vor dem
Wirtsprogramm zur Ausführung kommt. Nachdem das Virus aktiv geworden
ist, führt es das Wirtsprogramm aus, indem es an den ursprünglichen
Programmeinstiegspunkt springt. Diese Virusform ist leichter zu
schreiben als ein Prepender, da das Wirtsprogramm nur minimal verändert
wird und es deshalb im Arbeitsspeicher nicht wieder hergestellt werden
muss. Da Appender einfach zu implementieren sind, treten sie relativ
häufig auf.
Entry Point Obscuring
Der Fachbegriff „Entry Point Obscuring“ (kurz: EPO) heißt übersetzt
„Verschleierung des Einsprungspunkts“. Viren, die diese Technik
benutzen, suchen sich zur Infektion einen bestimmten Punkt in der
Wirtsdatei, der nicht am Anfang oder am Ende liegt. Da dieser Punkt von
Wirt zu Wirt variiert, sind Viren dieses Typs relativ schwierig zu
entwickeln, da u.a. eine Routine zum Suchen eines geeigneten
Infektionspunktes benötigt wird. Der Vorteil für diesen Virentyp besteht
darin, dass Virenscanner die gesamte Datei untersuchen müssten, um
EPO-Viren zu finden – im Gegensatz zum Erkennen von Prepender- und
Appender-Viren, bei denen der Virenscanner nur gezielt Dateianfang und
-ende untersuchen muss. Sucht ein Virenscanner also auch nach EPO-Viren,
benötigt er mehr Zeit – wird der Virenscanner so eingestellt, dass er
Zeit spart, bleiben EPO-Viren meist unentdeckt.
Für das Entry Point Obscuring sucht sich das Virus einen speziellen Ort,
wie etwa eine Programmfunktion, irgendwo in der Datei, um diese zu
infizieren. Besonders lohnend ist z. B. die Funktion zum Beenden des
Programms, da sie meist ein leicht zu identifizierendes Erkennungsmuster
hat und genau einmal aufgerufen wird. Würde das Virus eine zeitkritische
Funktion oder eine sehr häufig aufgerufenen Funktion infizieren, fiele
es leichter auf. Das Risiko für EPO-Viren besteht darin, dass sie sich
unter Umständen einen Punkt in einem Wirt aussuchen können, der nie oder
nicht bei jeder Ausführung des Wirtes aufgerufen wird. |
|
|
Techniken
Arbeitsspeicher
Speicherresidente Viren verbleiben auch nach Beendigung des
Wirtprogramms im Speicher. Unter MS-DOS wurde eine Technik namens TSR (Terminate
and Stay Resident) verwendet, in Betriebssystemen wie Windows, Unix oder
Unix-ähnlichen Systemen (Linux, Mac OS X) erzeugt das Virus einen neuen
Prozess. Das Virus versucht dem Prozess in diesem Fall einen
unverdächtig wirkenden Prozessnamen zu geben oder seinen Prozess
komplett zu verstecken. Gelegentlich versuchen diese Viren auch
Funktionen des Betriebssystems zu manipulieren oder auf sich umzuleiten,
sofern das Betriebssystem dieses ermöglicht bzw. nicht verhindert.
Selbstschutz der Viren
Stealthviren
Computerviren dieser Art ergreifen besondere Maßnahmen, um ihre Existenz
zu verschleiern. So werden Systemaufrufe abgefangen, so dass zum
Beispiel bei der Abfrage der Größe einer infizierten Datei die Größe vor
der Infektion angegeben wird (manche Viren verändern die ursprüngliche
Größe auch gar nicht, weil sie sich in unbenutzte Bereiche der Datei
kopieren) oder auch beim Lesen der Datei die Daten der ursprünglichen
Datei zurückgeben.
Teil eines polymorph verschlüsselten JavaScript-Virus.
vergrößern
Teil eines polymorph verschlüsselten JavaScript-Virus.
Verschlüsselte Viren
Dieser Typ von Viren verschlüsseln sich selbst. Der Schlüssel kann dabei
von Infektion zu Infektion variieren. Das soll Antivirenprogramme daran
hindern, einfach nach einer bestimmten Zeichenfolge in Dateien suchen zu
können. Die Routine zum Entschlüsseln muss aber naturgemäß in normaler
Form vorliegen und kann von Antivirenprogrammen erkannt werden.
Polymorphe Viren
Diese Art von Viren ändern ihre Gestalt von Generation zu Generation,
teilweise vollkommen. Das geschieht oft in Kombination mit
Verschlüsselung – hierbei wird eine variable Verschlüsselung benutzt.
Ein Teil des Virus muss jedoch in unverschlüsselter Form vorliegen, um
bei der Ausführung den Rest zu entschlüsseln. Um auch diesen Teil
variabel zu gestalten, wird die Entschlüsselungsroutine bei jeder
Infektion neu erstellt. Die Routine, die die Entschlüsselungsroutine
immer neu erstellt, befindet sich dabei selbst im verschlüsselten Teil
des Virus und kann zum Beispiel voneinander unabhängige Befehle
austauschen und Operationen mit verschiedenen Befehlssequenzen kodieren,
so dass verschiedene Varianten entstehen.
Metamorphe Viren
Dieser Computervirentyp verändert bei einer Ausführung den eigenen Code.
Im Gegensatz zu polymorphen Viren, die nur die Gestalt des Codes (durch
variable Verschlüsselung oder Permutation) ändern, wird bei dieser
Technik der Virus temporär in die Source-Code Form zurückgeschrieben
(Disassembler), welcher verändert wird, und danach wieder kompiliert
wird. Diese Technik ist möglich, da die Assemblersprache für einen
Befehl verschiede Möglichkeiten bietet, diesen auszuführen. Zum Beispiel
kann der Befehl mov eax, 0x0 in xor eax, eax oder sub eax, eax
umgewandelt werden. Der Vorteil dieser Viren ist, dass sie am schwersten
zu entdecken sind, da die Befehlsfolge des Virus sich vollkommen ändert.
Da diese Technik sehr viel Arbeit und Wissen benötigt, sind diese Viren
sehr selten. Beispiele sind Win32.ZMist, Win32.MetaPHOR, Win32.SK oder
DOS.ACG.
Retroviren
Sie zielen darauf ab, Virenschutzprogramme und Personal Firewalls zu
deaktivieren. Da sie sich dadurch nicht nur selbst vor Entdeckung
schützen, sondern auch anderen Schadprogrammen Tür und Tor öffnen,
gelten sie als sehr gefährlich, wenngleich sie 2005 noch nicht besonders
weit verbreitet sind.
Mögliche Schäden/Payload
Computerviren sind vor allem gefürchtet, weil sie den Ruf haben,
sämtliche Daten zu zerstören. Das ist aber nur in sehr wenigen Fällen
richtig. Die meisten Computerviren versuchen hauptsächlich sich selbst
möglichst weit zu verbreiten und deswegen nicht aufzufallen.
Harmlose Auswirkungen: Eine Eigenschaft, die jedes Virus hat, ist das
Stehlen von Rechnerzeit und -speicher. Da ein Virus sich selbst
verbreitet, benutzt es die Leistung des Prozessors und der Festplatten.
Viren sind aber im Normalfall so geschrieben, dass sie für das System
keine spürbare Beeinträchtigung darstellen, so dass sie der Benutzer
nicht erkennt. Bei der Größe aktueller Festplatten fällt auch der
zusätzlich benötigte Festplattenplatz nicht mehr auf.
Ungewollte Schäden – Programmierfehler: Viele Computerviren enthalten
Fehler, welche unter gewissen Umständen zu fatalen Folgen führen können.
Diese Fehler sind zwar meistens unbeabsichtigt, können trotzdem Dateien
durch eine falsche Infektion zerstören oder gar in Einzelfällen ganze
Datenbestände vernichten.
„Existenzbericht“ – Meldungen an den Benutzer:
Manche Viren geben dem Benutzer ihre Existenz bekannt. Beispiele für
Meldungen von Viren können z. B. sein:
* Piepsen/Musik
* Meldungsboxen oder plötzlich auftauchende Texte auf dem Bildschirm mit
oft (für den Virusautor) amüsanten Nachrichten oder gar politischem
Inhalt
* Manipulation des Bildschirminhaltes wie herunterfallende Buchstaben,
Verzerrungen oder über den Bildschirm wandernde Objekte
Die meisten dieser Existenzmeldungen sind harmlos und erfolgen oft nur
zu bestimmten Uhrzeiten oder nur an bestimmten Tagen, um nicht zu
schnell aufzufallen und so eine höhere Verbreitung zu erlangen.
Datenzerstörung: Durch das Infizieren von Dateien werden die darin
enthaltenen Daten manipuliert und möglicherweise zerstört. Da jedoch die
meisten Viren vor Entdeckung geschützt werden sollen, ist eine
Rekonstruktion der Daten in vielen Fällen möglich.
Einige wenige Viren wurden speziell zur Zerstörung von Daten
geschrieben. Das kann vom Löschen von einzelnen Dateien bis hin zum
Formatieren ganzer Festplatten führen. Diese Art von Payload wird von
den meisten Menschen unmittelbar in Verbindung mit allen Viren gebracht.
Da der Speicher der „Lebensraum“ von Viren ist, zerstören sie sich mit
diesen Aktionen oft selbst.
Hardwarezerstörung: Direkte Hardwarezerstörung durch Software und somit
durch Computerviren ist nur in Einzelfällen möglich. Dazu müsste dem
Virenautor bekannt sein, wie eine bestimmte Hardware so extrem oder
fehlerhaft angesteuert werden kann, dass es zu einer Zerstörung kommt.
Einige (z. T. eher theoretische) Beispiele für solche Möglichkeiten
sind:
* Das Senden extremer Bildsignale an Bildschirme. Heute nicht mehr
gebräuchliche Festfrequenzmonitore waren dafür anfällig, es gab Viren,
die diese Angriffe auf solche Monitore tatsächlich durchgeführt haben.
Heute ist eine Beschädigung durch fehlerhafte/extreme Bildsignale so gut
wie ausgeschlossen.
* Übertakten von Grafikkarten, die es erlauben, die Taktfrequenz der
Bausteine per Software einzustellen. Bei einer zu hohen Übertaktung und
nicht ausreichenden Kühlung können Bausteine überhitzen und beschädigt
oder zerstört werden.
* Übertakten von Bausteinen auf der Hauptplatine, die dadurch selbst
überhitzen oder andere Bauteile überlasten können (Widerstände,
Integrierte Bausteine).
* Unbenutzbarkeit von Festplatten durch bestimmte inoffizielle
ATA-Kommandos.
Da im heutigen PC-Bereich die Hardwarekomponentenauswahl sehr heterogen
ist, gilt bisher die Meinung, dass es sich für Virenautoren nicht lohnt,
solche Angriffe durchzuführen.
Ein als Hardwareschaden missinterpretierter Schaden ist das
Überschreiben des BIOS, das heute meist in Flash-Speichern gespeichert
ist. Wird dieser Flash-Speicher böswillig überschrieben, kann der
Rechner nicht mehr starten. Da der Rechner nicht mehr startet, wird oft
fälschlicherweise ein Hardwareschaden angenommen. Der Flash-Speicher
muss in diesem Fall ausgebaut und mit einem korrekten BIOS neu bespielt
werden. Ist der Flash-Speicher fest eingelötet, ist das Ausbauen
wirtschaftlich nicht rentabel und die gesamte Hauptplatine muss
ausgetauscht werden. |
|
|
Wirtschaftliche Schäden
Der wirtschaftliche Schaden durch Computerviren ist geringer als der
Schaden durch Computerwürmer. Grund dafür ist, dass sich Viren nur sehr
langsam verbreiten können und dadurch oft nur lokal verbreitet sind.
Ein weiterer Grund, warum der wirtschaftliche Schaden bei Computerviren
nicht so hoch ist, ist die Tatsache, dass sie den angegriffenen Computer
oder die angegriffene Datei im Allgemeinen für einen längeren Zeitraum
brauchen, um sich effektiv verbreiten zu können. Computerviren, die
Daten sofort zerstören, sind sehr ineffektiv, da sie mit dieser Aktion
auch ihren eigenen Lebensraum zerstören.
Im Zeitalter der DOS-Viren gab es trotzdem einige Viren, die erheblichen
Schaden angerichtet haben. Ein Beispiel ist das Virus DataCrime, das
gesamte Datenbestände vernichtet hat. Viele Regierungen reagierten auf
dieses Virus und verabschiedeten Gesetze, die das Verbreiten von
Computerviren zu einer Straftat machen.
Auch unter Windows gab es vereinzelt Fälle von Computer-Viren, die
gravierende finanzielle Schäden für einzelne Unternehmen bedeuteten. So
wurde Anfang 1998 der XM/Compat-Virus entdeckt, ein Makro-Virus, der
Microsoft-Excel-Dateien mit einer äußerst bösartigen Schadfunktion
befällt: Immer, wenn Excel beendet wird, durchforstet der Schädling ein
zufälliges Dokument aus der Bearbeitungs-History nach ungeschützen
Zellen mit numerischen Werten. In diesen Zellen ändert er die Werte mit
einer einprozentigen Wahrscheinlichkeit zufällig in einem Rahmen von +5
bis -5% ab. Aufgrund der zunächst nur unwesentlichen Veränderungen
fallen die so manipulierten Daten möglicherweise erst nach Wochen oder
gar Monaten auf. Wird der Schaden entdeckt, lässt er sich nur durch die
Einspielung eines Backups wieder beheben – dazu muss man natürlich aber
wissen, wann der Erstbefall genau stattgefunden hat. Zwar hat der
Schädling keine sonderlich hohe Verbreitung gefunden, aber es gab Fälle
von Unternehmen, deren Geschäftsbilanzen und Umsatzberichte durch einen
XM/Compat-Befall völlig unbrauchbar geworden sind.
Ein Virus mit hohem wirtschaftlichen Schaden war auch Win32.CIH, auch
„Tschernobyl-Virus“ genannt (nach dem Atomunfall von Tschernobyl vom 26.
April 1986), das sich großflächig verbreitete und am 26. April 2000 den
Dateninhalt von mehr als 2000 BIOS-Chips in Südkorea zerstörte. Laut des
Antivirenherstellers Kaspersky sollen im Jahr davor sogar 3000 PCs
betroffen gewesen sein.
Ein weiterer wirtschaftlicher Faktor war früher vor allem der
Image-Schaden der betroffenen Unternehmen, heute ist dieser immaterielle
Schaden nicht mehr so hoch, da ein Computervirus schon eher als normale
und übliche Gefahr akzeptiert wird. |
|
|
Aufbau
Computerviren haben viele unterschiedliche Formen, daher ist es nur
schwer möglich zu beschreiben, wie ein Virus grundsätzlich aufgebaut
ist. Dennoch kann man die Einzelbestandteile eines Virus in drei Gruppen
unterteilen:
* Vermehrungsroutine: Sie sorgt für die Selbsterkennung und die
automatisierte Vermehrung
* Schadensroutine: Sie ist der "Sinn" eines Virus und enthält den Code
für den zu verursachenden Schaden
* Trigger: Der Trigger bestimmt wann die Schadensroutine aktiv wird. Die
geschieht oftmals zu vordefinierten Zeitpunkten - niemals sofort um dem
Virus Zeit zur unentdeckten Vermehrung zu verschaffen.
Die folgende Erklärung ist keineswegs ein Standard für alle Viren.
Manche Viren können mehr Funktionen haben, andere wiederum weniger.
* Entschlüsselungsroutine: Dieser Teil sorgt bei verschlüsselten Viren
dafür, dass die verschlüsselten Daten wieder zur Ausführung gebracht
werden können. Nicht alle Viren besitzen diesen Teil, da nicht alle
verschlüsselt sind. Oft wird die Entschlüsslungsroutine der Viren von
Antiviren-Herstellern dazu benützt, das Virus zu identifizieren, da
dieser Teil oft klarer erkennbar ist als der Rest des Virus.
* Vermehrungsteil: Dieser Programmteil sorgt für die Vermehrung des
Virus. Es ist der einzige Teil, den jedes Virus hat (Definition).
* Erkennungsteil: Im Erkennungsteil wird geprüft, ob die Infektion eines
Programms oder Systembereichs bereits erfolgt ist. Jedes Wirtsprogramm
wird nur einmal infiziert. Dieser Teil ist in fast allen
nicht-überschreibenden Computerviren vorhanden.
* Schadensteil: Im Verhältnis zur Zahl der Computerviren haben nur sehr
wenige einen Schadensteil (Payload). Der Schadensteil ist der Grund für
die Angst vieler Menschen vor Computerviren.
* Bedingungsteil: Der Bedingungsteil ist dafür verantwortlich, dass der
Schadensteil ausgeführt wird. Er ist in den meisten Computerviren mit
einem Schadensteil enthalten. Viren ohne Bedingungsteil führen den
Schadensteil entweder bei jeder Aktivierung oder – in ganz seltenen
Fällen – niemals aus. Der Bedingungsteil (Trigger) kann zum Beispiel das
Payload an einem bestimmten Datum ausführen oder bei bestimmten
Systemvoraussetzungen (Anzahl der Dateien, Größe des freien
Speicherplatzes, etc.) oder einfach zufällig.
* Tarnungsteil: Ein Tarnungsteil ist nur in wenigen, komplexen Viren
vorhanden. Er kann das Virus zum Beispiel verschlüsseln oder ihm eine
andere Form geben (Polymorphismus, Metamorphismus). Dieser Teil dient
zum Schutz des Virus vor der Erkennung durch Anti-Viren-Software. Es
gibt aber nur eine sehr geringe Anzahl von Viren, die nicht vollständig
erkannt werden können (z. B.: Win32.ZMist, ACG, Win32.MetaPHOR oder
OneHalf).
Achillesferse eines Virus
Damit ein Virenscanner ein Virus identifizieren kann, benötigt er dessen
Signatur. Ein Virus versucht, ein System zu infizieren, und dies
geschieht z. B. bei einem Linkvirus durch das Anhängen an ein
bestehendes Programm. Dabei muss es (abgesehen von überschreibenden
Viren) zuerst prüfen, ob es dieses Programm bereits infiziert hat –
sprich, es muss in der Lage sein, sich selbst zu erkennen. Würde es dies
nicht machen, könnte es ein Programm theoretisch beliebig oft
infizieren, was aufgrund der Dateigröße und der CPU-Belastung sehr
schnell auffallen würde. Dieses Erkennungsmuster – die Signatur – kann
unter gewissen Umständen auch von Virenscannern genutzt werden, um das
Virus zu erkennen. Polymorphe Viren sind in der Lage, mit verschiedenen
Signaturen zu arbeiten, die sich verändern können, jedoch stets einer
Regel gehorchen. Daher ist es den Herstellern von Anti-Viren-Software
relativ einfach und schnell möglich, ein neues Virus nach dessen
Bekanntwerden zu identifizieren.
Viele Viren benutzen anstelle von polymorphen Signaturen sehr kleine
Kennzeichnungen wie zum Beispiel ein ungenutztes Byte im
Portable-Executable-Format. Ein Virenscanner kann dieses eine Byte nicht
als Erkennungsmuster nutzen, da es zu viele falsch positive Treffer
geben würde. Für ein Virus ist es jedoch kein Problem, wenn es unter
ungünstigen Verhältnissen einige Dateien nicht infiziert. |
|
|
Geschichte
Theoretische Anfänge: Bis 1985
John von Neumann veröffentlichte im Jahr 1949 seine Arbeit „Theory and
Organization of Complicated Automata“. Darin stellt er die These auf,
dass ein Computerprogramm sich selbst wiederherstellen kann. Das war die
erste Erwähnung von computervirenähnlicher Software. Erst als Victor
Vyssotsky, Robert Morris Sr. und Doug McIlroy, Programmierer bei Bell
Labs, ein Computerspiel mit dem Namen Darwin erstellten, wurde die
Theorie in die Praxis umgesetzt. Zwei Spieler ließen Software-Organismen
um die Kontrolle über das System kämpfen. Die Programme versuchten
dabei, einander zu überschreiben. Spätere Versionen des Spiels wurden
als Core Wars bekannt. Breite Bekanntheit erfuhr das Konzept Core Wars
durch einen Artikel von Alexander K. Dewdney in der Kolummne Computer
Recreations der Zeitschrift Scientific American.
1975 veröffentlichte der englische Autor John Brunner den Roman Der
Schockwellenreiter, in dem er die Gefahr von Internetviren vorausahnt.
Sein Kollege Thomas J. Ryan schilderte 1979 in The Adolescence of P-1,
wie sich eine Künstliche Intelligenz virenähnlich über das nationale
Computernetz ausbreitet.
Im Jahr 1980 verfasste Jürgen Kraus an der Universität Dortmund eine
Diplomarbeit mit dem Titel Selbstreproduktion bei Programmen, in welcher
der Vergleich angestellt wurde, dass sich bestimmte Programme ähnlich
wie biologische Viren verhalten können. Die Behörden wurden bei dieser
Diplomarbeit hellhörig und ließen die Verbreitung des Werkes stoppen.
Aus diesem Grund ist die Arbeit heute nicht mehr erhältlich.
1982 wurde von Rich Skrenta ein Computerprogramm geschrieben, das sich
selbst über Disketten auf Apple-II-Systemen verbreitete. Das Programm
hieß Elk Cloner und kann als das erste Bootsektorvirus bezeichnet
werden. Die Grenze von Theorie und Praxis bei Computerviren verschwimmt
jedoch, und selbst Experten streiten sich, was tatsächlich das erste
war.
Professor Leonard M. Adleman verwendete 1984 im Gespräch mit Fred Cohen
zum ersten Mal den Begriff „Computervirus“.
Praktische Anfänge: 1985–1990
Fred Cohen lieferte 1986 seine Doktorarbeit Computer Viruses – Theory
and Experiments ab. Darin wurde ein funktionierendes Virus für das
Betriebssystem UNIX vorgestellt. Dieses gilt heute als das erste
Computervirus.
Im Januar 1986 wurde schließlich auch die erste Vireninfektion auf einem
Großrechner an der FU Berlin entdeckt.
Zwei Software-Händler aus Pakistan verbreiteten im Jahr 1986 das erste
Virus für das Betriebssystem MS-DOS der Pakistani-, Ashar- oder auch
Brain-Virus genannt wird. Diese Händler verkauften billige Raubkopien
von Originalsoftware. Dies war möglich, da dort das Kopieren von
Software nicht strafbar war. Jeder Softwarekopie legten sie den Virus
bei, der den Zweck haben sollte, die Kunden an den Händler zu binden.
Überraschenderweise verbreitete sich dieser Virus aber sogar bis in die
USA. Das Programm war relativ harmlos, da es nur das Inhaltsverzeichnis
der befallenen Disketten in Brain umbenannte.
Schließlich wurde 1987 auch der erste Virus für Macintosh-Rechner
entdeckt. Apple lieferte daraufhin all seine System gleich komplett mit
einem Virensuchprogramm aus. Allerdings konnte es nur diese eine
Virenfamilie finden und war für andere Virustypen sozusagen blind. Somit
war das Programm also nur bedingt brauchbar.
1987 verbreitete sich der erste Wurm in einem IBM-System. Dieser
"Weihnachtsbaum" oder "Tannenbaum"-Wurm fand eine explosionsartige
Verbreitung (siehe "Würmer").
Im November des Jahres wurde schließlich auch der LeHigh-Virus gefunden,
der eine neue Technik beim Infizieren von Programmen verwendete (Slackbereich-Infektor).
Kurz darauf wird in Deutschland auch zum ersten Mal der Cascade-Virus
gefunden. Er war der erste Virus, der speicherresident wurde und in
Dateien auch verschlüsselt auftrat. Aufgrund dieser Eigenschaften wird
er auch zur 2. Generation der Viren gerechnet.
Zu einer der ersten Viren gehört auch der Jerusalem- oder PLO-Virus. Er
wurde auch unter dem Namen Freitag-der-13.-Virus bekannt, da er an einen
solchen Tag alle COM- und EXE-Dateien löscht. An allen anderen Tagen
verlangsamte er nach etwa 30 Minuten die Rechnergeschwindigkeit. Heute
gibt es etwa 500 Varianten dieses Viruses.
Für andere Systeme treten auch die ersten Viren auf, so für den Mac (nVir,
Peace), Amiga (SCA-Virus), Atari (PT, Aladdin) und für UNIX (IBM MVS
370).
Im selben Jahr, 1987, erschien im Data-Becker-Verlag das erste Buch zum
Thema Computerviren, Das große Computervirenbuch von Ralf Burger. Da
Burger den Quellcode einiger Viren im Buch veröffentlichte, erschienen
in den folgenden Monaten Dutzende Varianten des von ihm geschriebenen
Virus' in der Öffentlichkeit.
1988 erschien der erste Baukasten für Viren (Virus Construction Kit).
Damit ist es auch Anfängern möglich, Viren nach Maß zu erstellen. Das
Programm wurde für den Computer Atari ST geschrieben.
In diesen Jahren wurden auch die ersten Antivirenprogramme
herausgebracht, vor allem um große Firmen zu schützen. Im Jahr 1989
erschien mit V2Px dann auch das erste polymorphe Virus, das sich selbst
immer wieder neu verschlüsseln konnte und nur sehr schwer zu entdecken
war.
Die Ära der DOS-Viren: 1990–1995
In diesen Jahren wurden Viren immer komplexer, um sich weiter verbreiten
zu können und um sich besser gegen die Entdeckung durch
Antivirenprogramme zu schützen. Im Jahr 1992 veröffentlichte ein
Virenschreiber namens Dark Avenger den ersten polymorphen
Programmgenerator, MTE. Damit konnten sich auch einfachste Viren leicht
vor einer Erkennung schützen. Einige der damaligen Hersteller von
Antiviren-Software konnten dieses Problem nicht lösen und stoppten die
Entwicklung ihres Programms.
1992 löste auch das Michelangelo-Virus eine enorme Medienhysterie aus.
Mit ihm wurde die Existenz der Viren auch in der breiten Öffentlichkeit
bekannt.
In diesen Jahren wurden auch immer wieder neue Techniken in Viren
entdeckt, wie zum Beispiel die gleichzeitige Infektion von Dateien und
Bootsektor, OBJ-Dateien oder Quellcode-Dateien. Auch wurde 1992 mit
Win.Vir_1_4 das erste Computervirus für das Betriebssystem Microsoft
Windows 3.11 registriert. Dieses Proof-Of-Concept-Virus wurde nie in
„freier Wildbahn“ entdeckt.
Viren wie ACG und OneHalf markieren das Ende der MS-DOS-Viren. Bis heute
zählen sie zu den komplexesten Viren überhaupt. Sie sind stark polymorph
und enthalten auch Techniken wie Metamorphismus.
Die Ära der Viren für 32-Bit-Windows-Betriebssysteme: 1995–2002
Ab 1995, mit dem Erscheinen von Microsoft Windows 95 und dem ständigem
Zuwachs an Benutzern, wurden auch Viren für dieses Betriebssystem (und
dessen obligate Programme wie Microsoft Office) geschrieben. 1995
erschien das erste Makrovirus für Microsoft Word. Da Dokumente öfter als
Programme getauscht wurden, wurden Makroviren ein sehr großes Problem
für die Anwender. In den Jahren darauf erschienen dann auch die ersten
Makroviren für Excel (1997), Powerpoint und Access (beide 1998) und
Visio (2000). 1996 wurde auch das erste Virus Constructor Kit für
Makroviren geschrieben, das es auch Personen ohne Programmierkenntnissen
ermöglichte, Viren zu erstellen.
1996 erschien dann mit Boza auch das erste Virus für Microsoft Windows
95. Damit wurde gezeigt, dass das neueste Microsoft-Betriebssystem für
Viren doch nicht, wie behauptet, unantastbar war.
Da der Kampf zwischen Antivirenherstellern und Virenautoren zugunsten
der Antivirenhersteller gewonnen schien, wurden 1998 mit W32.HPS und
W32.Marburg die ersten polymorphen Windows-32-Bit-Viren geschrieben.
Kurze Zeit später entstand mit Regswap auch das erste metamorphe Virus
für diese Betriebssysteme.
1998 und 1999 erschienen die ersten VBS- und JavaScript-Viren und als
logische Konsequenz auch die ersten HTML-Viren. Diese Viren arbeiteten
mit dem umstrittenen Zusatzprogramm „Windows Scripting Host“. Nun
konnten auch Webseiten von Viren infiziert werden.
In dieser Zeit wurden auch einige andere, für den Benutzer
ungefährliche, Viren geschrieben, die dennoch historisch interessant
sind. Beispiele sind das OS2.AEP-Virus, das als erstes ausführbare
Dateien des Betriebssystems OS/2 infizierten konnte, oder die ersten
Viren für HLP-Dateien, für PHP-Dateien, für Java, für AutoCAD, für Bash,
für Palm OS und für Flash.
Mit dem W95/CIH-10xx verbreitete sich 1998 das erste Virus, das neben
dem Löschen der Festplatte auch das BIOS zerstören konnte. Somit war der
gesamte PC unbrauchbar, bis durch Fachleute mit geeigneter
Hardwareausstattung in den BIOS-Flash-EEPROM-Baustein ein neues BIOS
geschrieben wurde.
Am Ende dieser Ära tauchten wieder (wie in der DOS-Ära) die komplexesten
Viren auf, die es bis zu dieser Zeit gab. Beispiele sind Win32.MetaPHOR
oder Win32.ZMist, die sehr stark metamorph sind und nicht von allen
Antivirenprogrammherstellern vollständig entdeckt werden können.
Neue Nischen: Ab 2002
Ungefähr ab 2002 traten Viren mehr und mehr in den Hintergrund und
wurden durch Würmer ersetzt. Die Entwicklung von Viren geht trotzdem
weiter und bezieht sich vor allem auf neue Nischen.
Im Jahr 2002 wurde das erste Virus geschrieben, das sowohl
Win32-Anwendungen als auch ELF-Dateien (z. B. Linux-Anwendungen)
infizieren konnte. Dieses Virus kann als das Einläuten eines neuen
Zeitalters der Viren gesehen werden.
Im Jahr 2004 brach dann endgültig eine neue Ära für Viren an. Das erste
Virus für PocketPCs (mit dem Betriebssystem Windows CE) tauchte auf und
zeigte, dass auch diese viel verwendeten Kommunikationsgeräte nicht
verschont werden.
Einige Monate später wurde das Virus Win64.Rugrad entdeckt. Dieses Virus
konnte die Anwendungen des neu erschienenen Microsoft Windows XP 64-bit
Edition infizieren und hat eine Vorreiterrolle in der Entwicklung neuer
Viren.
Wieder einige Monate später, im Jahr 2005, wurde das erste Virus für
Handys (mit dem Betriebssystem Symbian OS) geschrieben. Es kann, nachdem
vorher schon Würmer für dieses Betriebssystem erschienen sind, auch
Dateien infizieren.
Mitte 2005, kurz nach der Veröffentlichung der ersten Beta-Version des
XP-Nachfolgers Microsoft Windows Vista, wurde das erste Virus für die
Microsoft Command Shell (Codename Monad) veröffentlicht. Zunächst wurde
propagiert, dass es ein erstes Virus für das neue Windows gebe. Jedoch
ließ Microsoft nach Bekanntwerden der Viren verlautbaren, dass Monad
doch nicht wie geplant in Vista enthalten sein werde. Somit wäre dies
ein Virus für eine Betaversion mit extrem geringen Chancen auf
Verbreitung.
Das erste wirkliche Computervirus für MS Windows Vista trat einige
Monate später, im Oktober 2005 auf. MSIL.Idoneus nutzt .NET Framework
2.0, um sich zu verbreiten.
In dieser Zeit wurden auch die ersten Viren für Ruby, MenuetOS und
Microsoft Office Infopath entdeckt, die aber weder jetzt noch in Zukunft
eine Gefahr für Anwender sein werden, da diese Plattformen kaum
verbreitet sind und sich die Viren daher kaum vermehren können. |
|
|
|