Computervirus
Ein Computervirus ist eine nicht selbstständige Programmroutine (im Unterschied zum Computerwurm), die ihren Code in andere Computerprogramme oder Bereiche des Betriebssystems einschleust und sich damit selbst reproduziert. 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 die Computersicherheit beeinträchtigen und zählen zur Malware.
Der Begriff Computervirus wird auch für Computerwürmer und Trojanische Pferde genutzt, da der Übergang inzwischen fließend ist.
Im Unterschied zum biologischen Virus, welches sächlich ist (das Virus), ist ein Computervirus männlich (der Virus).
Arbeitsweise
Die Idee zu Computerviren leitete sich von dem biologischen Vorbild der Viren ab und gab ihnen ihren Namen. Wie sein biologisches Vorbild benutzt ein Computervirus die Ressourcen seines Wirtes und nimmt dabei keine all zu große Rücksicht auf dessen Wohlergehen. Auch er vermehrt sich unkontrolliert und exponentiell. Dadurch, und durch explizit vom Virenautor eingebaute Schadfunktionen, kommt es bei Infektion eines Computers häufig zur Veränderung oder Verlust von Daten und Programmen und zu Störungen des regulären Betriebs.
Ein Computervirus infiziert einen Rechner über eine Netzverbindung oder ein Wechselmedium. Die weitere Verbreitung auf andere Rechner geschieht immer passiv, da sich das Computervirus an zahlreiche Dateien anhängt, die wiederum durch Wechselmedien oder Netzwerke auf andere Rechner übertragen werden können.
In der Umgangssprache werden auch Computerwürmer wie „I Love You“ zu den Viren gezählt. Der Unterschied besteht jedoch darin, dass ein Wurm eine selbstständige Datei und ein Virus eine nichtselbstständige Programmfunktion ist. Der selbständige Wurm verfolgt aktive Strategien, um sich auf andere Rechner zu verbreiten, das Virus hingegen hängt sich nur an Dateien an und verbreitet sich über diese auf passive Art und Weise.
Heutzutage sind Computerviren fast vollständig von Würmern verdrängt worden. Sie sind nur noch in neuen Nischen von Bedeutung. In der Vergangenheit hatten Computerviren oft Vorreiterrollen, und sich schnell verbreitende Würmer kamen erst später.
Gefährdungsgrad unterschiedlicher Betriebssysteme
Das verwendete Betriebssystem hat großen Einfluss darauf, wie hoch die Wahrscheinlichkeit einer Vireninfektion ist. Während für Windowssysteme über 60.000 Viren existieren, gibt es für Linux und Mac OS jeweils etwa 50 Viren. Gründe dafür sind vor allem der hohe Marktanteil von Windows, Sorglosigkeit und fehlendes Wissen vor allem bei Privatanwendern sowie eine mangelhafte Rechteverwaltung, die über lange Zeit den Nutzern (und damit auch beliebiger Malware) im normalen Betrieb vollen Zugriff auf Hardware und Betriebssystemfunktionen erlaubte.
Unter Linux hat der Standardnutzer nur beschränkte Rechte und muss zur Installation von Programmen oder Veränderungen am System das Root- bzw. Administratorenpasswort angeben. Das hat zur Folge, dass sich kein Schädling unbemerkt einnisten kann, zumindest nicht ohne Passworteingabe.
Die meist kommerzielle Nutzung von Applecomputern führt dazu, dass der Sicherheitsstandard höher ist, weil professionell betreute Computersysteme oft gut geschützt werden. Außerdem macht die geringe Verbreitung von Macs die Virenentwicklung weniger lohnend.
Schutz durch Live-Systeme
Live-Systeme wie Knoppix, die unabhängig vom installierten Betriebssystem von einer CD gestartet werden, bieten nahezu vollständigen Schutz, wenn keine Schreibgenehmigung für die Festplatten erteilt wird. Weil keine Veränderungen an Festplatten vorgenommen werden können, kann sich kein schädliches Programm einschleichen.
Allgemeine Prävention
Anwender sollten niemals unbekannte Dateien oder Programme aus unsicherer Quelle ausführen und generell beim Öffnen von Dateien Vorsicht walten lassen. Das gilt insbesondere für Dateien, die per E-Mail empfangen wurden. Solche Dateien – auch eigentlich harmlose Dokumente wie Bilder oder PDFs – können durch Sicherheitslücken in den damit verknüpften Anwendungen auf verschiedene Weise Schadprogramme aktivieren. Daher ist deren Überprüfung mit einem aktuellen Antivirenprogramm Pflicht.
Betriebssystem und Anwendungen sollten regelmäßig aktualisiert werden. Ferner sollte dem Betriebssystem bereits im Grundzustand alle wichtigen Service Packs und Hotfixes durch sogenanntes Slipstreaming oder unbeaufsichtigte Installation integriert werden. Dazu gibt es auch die Möglichkeit, die Service Packs und Hotfixes für Windows 2000 und Windows XP via „Offlineupdate“ (siehe Weblinks) einzuspielen. Andernfalls könnte bereits beim ersten Verbinden mit dem Internet der PC infiziert werden.
Die eingebauten Schutzfunktionen des Betriebssystems sollten ausgenutzt werden. Dazu zählt insbesondere, nicht als Administrator mit allen Rechten, sondern als Nutzer mit eingeschränkten Rechten zu arbeiten, da dieser keine Software installieren darf. Das automatische Öffnen von Dateien aus dem Internet sowie das automatische Ausblenden von bekannten Dateianhängen sollte deaktiviert werden. Auch durch die Autostartfunktion für CD-ROMs und DVD-ROMs können Programme bereits beim Einlegen eines solchen Datenträgers ausgeführt und damit ein System infiziert werden.
Es empfiehlt sich, die auf den meisten Privatrechnern vorinstallierte Software von Microsoft zu meiden oder umzukonfigurieren. Diese bieten durch ihren extrem hohen Verbreitungsgrad eine große Angriffsfläche. Vor allem Internet Explorer (IE) und Outlook Express sind hier zu nennen. Die zur Zeit bedeutendste Alternative zu IE ist Firefox, der mehr Sicherheit verspricht. Für Betriebssysteme wie Mac OS X, GNU/Linux oder die aus der BSD-Reihe existieren keine Viren, die für den Benutzer eine Gefahr darstellen können. Es gibt zwar Viren für diese Betriebssysteme, jedoch können sie sich auf Grund von z.B. Rechtetrennung im Normalfall nicht stark verbreiten.
Personal Firewalls zeigen gegen Viren keine Wirkung, da ihre Arbeitsweise nichts mit der der Viren zu tun hat, sondern eher auf Würmer passt.
Antivirensoftware
Antivirenprogramme schützen nur vor bekannten Viren. Daher ist es bei der Benutzung eines solchen Programms wichtig, regelmäßig die von den Herstellern bereitgestellten aktualisierten Virensignaturen einzuspielen.
Mit Hilfe dieser Programme werden Festplatte und Arbeitsspeicher nach schädlichen Programmen durchsucht. Viele Antivirenprogramme führen automatisch einen Echtzeitscan („on access“) durch, sie prüfen alle auf die Festplatte kopierten Dateien wie Emailanhänge und sonstige Downloads. Es gibt Antivirenprogramme, die mehrere (für das Scannen nach Viren verantwortliche) „Engines“ nutzen. Wenn diese unabhängig voneinander suchen, steigt die Erkennungswahrscheinlichkeit.
Antivirusprogramme bieten nie vollständigen Schutz, da die Erkennungsrate auch bei bekannten Viren nicht bei 100% liegt. Unbekannte Viren können von den meisten dieser Programme anhand ihres Verhaltens entdeckt werden („Heuristik“), diese Funktionen arbeiten jedoch sehr unzuverlässig.
Besteht der berechtigte Verdacht einer Infektion, sollten nacheinander mehrere Programme eingesetzt werden. Dabei ist es sinnvoll, darauf zu achten, dass die Programme unterschiedliche „Engines“ nutzen, damit die Erkennungsrate steigt. Es gibt Antivirenprogramme verschiedener Hersteller, die die gleiche Scanmethode anwenden, also im Grunde eine ähnlich hohe Erkennungswahrscheinlichkeit haben und damit auch ein ähnliches Risiko, bestimmte Viren zu übersehen. Verschiedene Antivirenprogramme sollten nie gleichzeitig installiert werden, weil das zu Fehlfunktionen des PC führen kann. Da viele dieser Programme bereits beim Hochfahren des Rechners nach Bootsektorviren suchen, werden sie gleichzeitig gestartet. Außerdem sind falsche Virenfunde häufig, bei denen das eine Programm die Virensignaturen des anderen auf der Festplatte oder im Arbeitsspeicher als Virus erkennt.
Computervirentypen
Bootviren sind die ältesten Computerviren überhaupt. Diese Viren waren bis 1995 die meistverbreitete Form von Viren. Ein Bootsektorvirus infiziert den Bootsektor von Disketten und Festplatten sowie den Master Boot Record (MBR) einer Festplatte. Der Bootsektor ist der erste physische Teil einer Diskette und einen Sektor (512 Byte) groß. Der Bootsektor wird von Startdisketten verwendet, um von der Diskette booten zu können, jedoch hat jede Diskette und Festplatte einen Bootsektor oder einen MBR. Bootsektorviren nutzen die Tatsache aus, dass der Bootsektor nach einem (Neu-) Start das erste vom Rechner geladene Programm enthält, das in der Regel den weiteren Bootvorgang einleitet. Will ein Benutzer von einer infizieren Startdiskette booten oder vergisst er eine infizierte Diskette im Diskettenlaufwerk beim Start des Computers, greift das BIOS bei entsprechender BIOS-Boot-Einstellung auf diesen Sektor zu und führt ihn aus. Der Virus versucht danach, den MBR der Festplatte zu infizieren, um bei jedem Start des Computers ausgeführt zu werden. Wenn ein infizierter Computer startet, wird der MBR geladen, der normalerweise für das Erkennen der verschiedenen Partitionen der Festplatte zuständig ist. Der Virus, der nun geladen wird, bleibt im Speicher und überwacht die Zugriffe auf andere Disketten. Wenn eine Diskette in einen mit einem Bootsektorvirus infizierten Computer gelegt wird, wird der Virus im Speicher aktiv und infiziert den Bootsektor der Diskette. Seit 2005 gibt es auch Bootsektorviren für CD-ROMs. Diese infizieren bootfähige Imagedateien (ISO-Images). Es ist technisch möglich, einen 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 haben. Zwar gibt es Bootsektorviren, die diesen Schutz umgehen können, doch ist ihre Verbreitung zu langsam, um ein Problem darstellen zu können.
Dateiviren
Linkviren oder Dateiviren infizieren ausführbare Dateien auf einem Betriebssystem. Die Namenserweiterung und der Aufbau der Datei hängt vom Betriebssystem ab. Die befallenen Dateien wurden nach dem Programmieren kompiliert, das heißt, die Datei beinhaltet nur mehr vom Prozessor in Verbindung mit dem Betriebssystem lesbaren Binärcode. Die meisten dieser Viren sind in Assembler oder C programmiert, da diese die schnellsten bzw. kleinsten Programme liefern.
Makroviren verbreiten sich über infizierte Dokumente. Makros sind in ein Programm eingebaute Sonderfunktionen, die vom Benutzer selbst erstellt werden können, um Flexibilität zu garantieren. Makros gibt es in allen Microsoft-Office-Programmen, aber auch in Schreib-, Tabellenkalkulations-, Zeichen- und Datenbankprogrammen anderer Hersteller. Die meisten Programme, die Makros enthalten, haben ein globales Makro, das sämtliche benutzerdefinierte Funktionen und Einstellungen speichert. Dieses globale Makro wird bei jedem Start des Programmes ausgeführt. Ein Makrovirus sucht nach Makros in verschiedenen Dokumenten, um diese zu infizieren. Auch wird das globale Makro infiziert, um bei jedem Start ausgeführt zu werden. Wenn ein infiziertes Dokument geöffnet wird, nistet sich der Virus im Speicher ein und erstellt in jedem gespeicherten, geöffneten oder geschlossenen Dokument ein Makro mit dem Viruscode. Damit ist auch dieses Dokument infiziert. Makroviren verbreiten sich viel schneller als normale Dateiviren, da viel mehr Dokumente ausgetauscht werden als ausführbare Programme.
Scriptviren
Scripte sind Programme, die nicht wie normale Programme kompiliert sondern interpretiert werden. Sie werden häufig auf Webservern verwendet (z.B. Perl, PHP) bzw. in Webseiten eingebettet (z.B. JavaScript).
Auf Webservern und in Webseiten ermöglichen sie spezielle Funktionen, die mit normalem HTML oder XML nicht realisierbar sind. Solche Funktionen sind zum Beispiel Gästebücher, Foren, dynamisch geladene Seiten oder Webmailer. Scriptsprachen sind meist vom Betriebssystem unabhängig. Um ein Script auszuführen, wird ein passender Interpreter – ein Programm, das das Script von einer lesbaren Sprache in Maschinencode (Binärformat) umsetzt und dann ausführt – benötigt. Ein Scriptvirus sucht sich am Rechner meist HTML-Dateien und schreibt seinen Code in ein eigenes script-tag. Ein script-tag ist ein HTML-Teil, der Scripte enthält die der Browser ausführen soll. Wenn nun eine mit einem Scriptvirus infizierte HTML-Seite geladen wird, wird das Script ausgeführt, das wieder nach anderen Webseiten zum Infizieren sucht. Diese Viren werden oft in VBScript geschrieben, da man durch Microsofts Windows Scripting Host weitreichenden Zugriff auf das Windows-Betriebssystem hat. Meist schreibt ein solches Skript einen anderen Virus, Wurm oder Trojaner in das System. Windows Scripting Host wird nur von Microsofts Internet Explorer unterstützt. Aus diesem Grund sollte Windows Scripting Host im Internet Explorer immer ausgeschaltet sein, denn somit werden diese Skripte nicht ausgeführt. Um Windows Scripting Host zu deaktivieren, muss nur ein Eintrag in der Registry hinzugefügt werden. Unter Hkey_Local_Machine\Software\Microsoft\Windows Script Host\Settings den Schlüssel „Enable“ mit dem Wert „0“ anlegen.
Unix-, Mac OS X und Linux Systeme benutzen für sehr viele Aufgaben Scripte, z.B. in Unix-Shell, Perl oder Python geschrieben. Auch für diese Scriptsprachen 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 Scriptviren versehentlich eingefangen werden, man muss wie bei einem Linkvirus erst ein verseuchtes Script 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 Dateien und Bootsektoren infizieren (Beispiel: Kernelviren). Bei der Zusammensetzung ist beinahe jede Variation möglich. Das heißt, dass es zum Beispiel Makroviren gibt, die auch Dateien infizieren.
Testviren
Das Eicar test file richtet keinerlei Schaden an und wird freiwillig und offen von Benutzern verbreitet, um damit ihre Virenscanner zu testen. Technisch gesehen handelt es sich dabei allerdings nicht wirklich um einen Computervirus, da ihm der Code zur Vervielfältigung fehlt.
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 den Virus enthält, oder sie erstellen eine Datei mit ähnlichem Namen, die vor der ursprünglichen Datei ausgeführt wird. Unter 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 den Virus enthält. Wenn unter DOS beim Aufruf eines Programms die Endung nicht angegeben wird, werden “.com“-Dateien “.exe“-Dateien vorgezogen. Der Virus führt, nachdem es sich meist im Arbeitsspeicher festgesetzt hat, das ursprüngliche Programm aus, so dass der Benutzer meist nichts von der Infektion bemerkt.
Überschreibende
Überschreibende Computerviren sind die einfachste und kleinste Form von Viren. Wenn ein infiziertes Programm ausgeführt wird, sucht der Virus nach neuen infizierbaren Dateien und überschreibt entweder die ganze Datei oder nur einen Teil derselben mit einer benötigten Länge. Diese Viren sind sehr schädlich, da die infizierte Datei nicht mehr oder nur noch zum Teil funktioniert. Da die Wirtsprogramme aber nach der Infektion nicht mehr funktionieren sind sie auch die am leichtesten zu entdeckenden Viren.
Prepender
Diese Art von Computerviren schreibt den Viruscode vor den Code der infizierten Datei, und speichert den überschriebenen Teil am Anfang. Bei der Ausführung einer infizierten Datei wird zuerst wieder der Virencode ausgeführt, da er am Anfang der Datei liegt. Nach dem erneutem Versuch Dateien zu infizieren stellt der Virus die originale Datei im Speicher wieder her und führt sie aus. Außer einem kleinen Zeitverlust merkt der Benutzer nicht, dass ein Virus gerade aktiv wurde, da die Hostdatei vollkommen arbeitsfähig ist.
Appender
Ein Appender schreibt seinen Viruscode an das Ende einer infizierten Datei. In vielen Fällen manipuliert der Virus die Eintrittsadresse der Datei, so dass der Viruscode vor der Hostdatei ausgeführt wird. Beim Starten einer infizierten Datei wird, wenn die Eintrittsadresse der Datei nicht geändert wurde, zuerst die Hostdatei ohne Probleme ausgeführt, und erst beim Beenden des Hostprogrammes wird der Viruscode aktiv. Wenn die Eintrittsadresse manipuliert wurde, wird der Virus zuerst aktiv. Nachdem er seinen Code ausgeführt hat, gibt er die Kontrolle durch einen Sprung an den Anfang der Hostdatei an die infizierte Software zurück.
EPO
Der Fachbegriff Entry Point Obscuring [1] heißt übersetzt „Verschleierung des Einsprungspunkts“. Diese Art von Computerviren ist die am schwersten zu programmierende Form von Viren. Ein Computervirus, das diese Infektionsmethode benutzt, speichert seinen Code nicht am Anfang oder am Ende der Datei, sondern sucht sich einen speziellen Ort in der Datei, um diese zu infizieren. Ein solcher Ort könnte zum Beispiel der Aufruf einer speziellen Funktion – wie das Beenden des Programms – oder eine andere interne Funktion der Datei sein. Der Grund für diese ungewöhnliche Infektionsmethode ist, dass Antivirenprogramme, die die Durchsuchzeit einer Datei auf ein Minimum reduzieren wollen, nur auf statischen Adressen wie dem Anfang oder dem Ende prüfen. Um dieses Virus erkennen zu können muss eine Routine geschrieben werden, die den gesamten Inhalt einer Datei durchsucht. Wenn eine Datei, die mit dieser Art von Virus infiziert ist, gestartet wird, kann es sein, dass der Virus gar nicht ausgeführt wird, da die infizierte Funktion im Programm nicht ausgeführt wird. Um das Verbreiten zu beschleunigen, werden manchmal mehrere Funktionen infiziert.
Techniken
Arbeitsspeicher
- Speicherresidente Viren verbleiben auch nach Beendigung des Wirtprogramms im Speicher und fangen Aufrufe von Systemfunktionen wie das Ausführen einer Datei ab, um diese Datei dann zu infizieren.
Selbstschutz der Viren
- Stealthviren 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.
- Verschlüsselte Viren verschlüsseln einen Teil ihres Codes. 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.
- Polymorphe Viren ändern ihre Gestalt von Generation zu Generation vollkommen. Das geschieht oft in Kombination mit Verschlüsselung, hierbei wird eine variable Verschlüsselung benutzt. Ein Teil des Viruscodes muss jedoch in unverschlüsselter Form vorliegen, um bei der Ausführung den Rest zu entschlüsseln. Um auch diesen Teil variabel zu machen, wird der Entschlüsselungscode bei jeder Infektion neu erstellt. Der Programmcode, der den Entschlüsselungscode 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 formulieren ihren gesamten Code bei jeder Infektion um. Dies geschieht meist durch Übersetzung des Maschinencodes in symbolischen Code und variable Rückübersetzung. Der größte Teil des Viruscodes dient dabei meist dieser Aufgabe.
Möglicher Schaden: 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 sind fast ungefährlich bis harmlos.
Harmlose Auswirkungen: Eine Eigenschaft, die jeder Virus hat, ist das Stehlen von Rechnerzeit und -speicher. Da ein Virus seinen eigenen Code verbreitet, benutzt er die Leistung des Prozessors und der Festplatten. Viren sind aber im Normalfall so geschrieben, dass sie für das System keine Beeinträchtigung darstellen, sodass sie der Benutzer nicht erkennt.
Ungewollter Schaden - Programmierfehler: Viele Computerviren enthalten Fehler im Code, 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 ganze Datenbestände vernichten.
„Existenzbericht“ - Meldungen an den Benutzer:
Manche Viren geben dem Benutzer ihre Existenz bekannt. Das kann zum Beispiel durch Piepsen, Meldungsboxen oder plötzliche Texte in Dateien sein. Diese Auswirkungen sind aber in der Regel völlig ungefährlich.
Datenzerstörung: Einige wenige Viren wurden 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 jedoch der Lebensraum von Viren ist, zerstören sie sich mit diesen Aktionen oft selbst.
Hardwarezerstörung: Theoretisch ist es unmöglich, Hardware zerstörende Viren zu schreiben. Die Praxis zeigt aber etwas anderes: In den Zeiten von MS-DOS existierten einige wenige Viren, die zum Beispiel den Drucker oder das Diskettenlaufwerk zerstörten. Durch Fehler in der Treibersoftware gelang es, den Druckkopf immer wieder gegen die Wand des Druckers fahren zu lassen, bis er irgendwann nicht mehr funktionierte. Bei Disketten war es ähnlich: Die schwachen Diskettenmotoren wurden durch einen mutwilligen Dauerbetrieb so stark belastet, dass sie ausfielen. Diese Schäden wurden allerdings nie verbreitet festgestellt.
Ein anderer „Hardware zerstörender“ Virus wurde allerdings sehr stark verbreitet und verursachte gewaltige Schäden. Der W95/CIH Virus ist in der Lage, einen Teil des Flash-BIOS Chips so zu überschreiben, dass er betriebsuntauglich ist. Wenn durch ein BIOS-Flash (Zurückschreiben der originalen Daten) der Chip nicht wieder funktionsfähig wird, muss er ausgetauscht werden. Ist der Chip mit dem Motherboard verlötet, muss dieses komplett ausgewechselt werden.
Aufbau
Computerviren haben viele unterschiedliche Formen, darum ist es nur schwer möglich zu beschreiben, wie ein Virus grundsätzlich aufgebaut ist. Die folgende Erklärung ist keineswegs ein Standard für alle Viren. Andere Viren können mehrere 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, den Virus zu identifizieren, da dieser Teil oft klarer erkennbar ist.
- Vermehrungsteil: Dieser Programmteil sorgt für die Vermehrung des Virus. Es ist der einzige Teil, den jeder Virus hat (Definition).
- Erkennungsteil: Im Erkennungsteil wird geprüft, ob bereits die Infektion eines Programms oder Systembereichs erfolgte. Jedes Wirtsprogramm wird nur einmal infiziert. Dieser Teil wird von fast allen nicht-überschreibenden Computerviren benützt.
- 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. Die Ausnahmen lassen den Schaden bei jeder Aktivierung laufen, oder in ganz seltenen Fällen, gar nicht laufen. Der Bedingungsteil (Trigger) kann zum Beispiel das Payload an einem bestimmten Datum ausführen, oder bei bestimmten Systemvorraussetzung (Anzahl der Dateien, Größe des freien Speicherplatzes, ect.), oder einfach zufällig.
- Tarnungsteil: Ein Tarnungsteil ist nur in wenigen, komplexen Viren vorhanden. Er kann den Virus zum Beispiel verschlüsseln, oder ihm eine andere Form geben (Polymorphismus, Metamorphismus). Dieser Teil dient zum Schutz vor Erkennung durch Anti-Viren Herstellern. 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 einen 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 er (abgesehen von überschreibenden Viren) zuerst prüfen, ob er dieses Programm bereits infiziert hat - sprich er muss in der Lage sein, sich selbst zu erkennen. Würde er dies nicht machen, könnte er ein Programm theoretisch beliebig oft infizieren, was auf Grund 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 den Virus zu erkennen. Polymorphe Viren sind daher 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 Virensoftware relativ einfach und schnell möglich, einen neuen Virus nach dessen Bekanntwerden zu identifizieren.
Viele Viren benutzen anstatt von polymorphen Signaturen sehr kleine Kennzeichnungen, wie zum Beispiel ein ungenutzes Byte im PE-Format. Ein Virenscanner kann dieses eine Byte nicht als Erkennungsmuster nutzen, da es zu viele „false positives“ geben würde. Für einen Virus ist es jedoch kein Problem, wenn er unter ungünstigen Verhältnissen einige Dateien nicht infiziert.
Wirtschaftlicher Schaden
Der wirtschaftliche Schaden von Computerviren ist sehr gering im Gegensatz zum Schaden von Computerwürmern. 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 hohe wirtschaftliche Schaden bei Computerviren nicht gegeben ist, ist die Tatsache, dass sie den angegriffenen Computer oder die angegriffene Datei für einen langen 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 der Virus DataCrime, der gesamte Datenbestände vernichtet hat. Viele Regierungen reagierten auf diesen Virus und verabschiedeten Gesetze, die das Verbreiten von Computerviren zu einer Straftat machen.
Der Virus mit dem höchsten wirtschaftlichen Schaden war Win32.CIH, der sich großflächig verbreitete und am 26. April 2000 den Dateninhalt von mehr als 2000 BIOS-Chips in Süd-Korea zerstörte.
Ein weiterer wirtschaftlicher Schaden war früher der Image-Schaden der infizierten Firmen. Grund dafür war, dass der Begriff Computervirus in der breiten Öffentlichkeit nicht genau bekannt war und man wegen der Angst vor einer Infektion (man wusste nicht, was ein Virus machen kann) mit allen Mitteln Viren verhindern wollte. Heute weiß die Mehrheit der Computerbenutzer, was ein Computervirus machen kann und was nicht - darum ist auch die hysterische Angst gesunken.
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.
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 der erste Bootsektorvirus genannt werden. Die Grenze von Theorie und Praxis bei Computerviren verschwimmt jedoch und selbst Experten streiten sich, was tatsächlich der erste war – darum kann man nicht sicher sagen, ob Elk Cloner das erste Computervirus der Welt 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. Dieser gilt heute als der erste Computervirus.
Zwei Software-Händler aus Pakistan verbreiteten im Jahr 1986 den ersten Virus für das Betriebssystem MS-DOS. Das Programm war relativ harmlos, da es nur das Inhaltsverzeichnis der befallenen Disketten in Brain umbenannte.
Ein Jahr später, 1987, erschien im Data-Becker-Verlag das erste Buch zum Thema Computervirus, 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 erschienen auch die ersten Antivirenprogramme, vor allem um große Firmen zu schützen. Im Jahr 1989 erschien mit V2Px dann auch der erste polymorphe Virus, der 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 Antivirenhersteller konnten dieses Problem nicht lösen und stoppten die Entwicklung ihres Programms.
1992 löste auch der Michelangelo Virus eine enorme Medienhysterie aus – nun war 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 der erste Computervirus für das Betriebssystem Microsoft Windows 3.11 entdeckt. Diese wurden aber für den Anwender nie eine Gefahr.
Das Ende der MS-DOS-Viren wurde gezeichnet von den komplexesten Viren (wie ACG und OneHalf) bis zu dieser Zeit. Diese Viren waren stark polymorph und enthielten 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 obligaten Programmen wie Office) geschrieben. 1995 erschien der 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, die es auch Personen ohne Programmierkenntnissen ermöglichten, Viren zu erstellen.
1996 erschien dann mit Boza auch der erste Virus für Microsoft Windows 95 und Microsoft wurde gezeigt, dass ihr neuestes Betriebssystem für Viren doch nicht 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 der erste metamorphe Virus für diese Betriebssysteme.
1998 und 1999 erschienen die ersten VBS- und JS-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 der OS2.AEP Virus, der als erster ausführbare Dateien des Betriebssystem 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 PalmOS und für Flash.
Mit dem W95/CIH-10xx verbreitete sich 1998 der erste Virus, der 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 Antivirenherstellern vollständig entdeckt werden können.
Neue Nischen: Ab 2002
Ab ungefähr dem Jahr 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 der erste Virus geschrieben, der sowohl Win32-bit Anwendungen als auch ELF (Linux Anwendungen) infizieren konnte. Dieser Virus kann als Einläuten in ein neues Zeitalter der Viren gesehen werden.
Im Jahr 2004 brach dann endgültig eine neue Ära für Viren an. Der erste Virus für PocketPCs (mit dem Betriebssystem Windows CE) tauchte auf und zeigte, dass die viel verwendeten Kommunikationsgeräte nicht verschont werden.
Einige Monate später wurde der Virus Win64.Rugrad entdeckt. Dieser 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 der erste Virus für Handys (mit dem Betriebssystem Symbian OS) geschrieben. Er 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 der erste Virus für die Microsoft Command Shell (Codename Monad) veröffentlicht. Zunächst wurde propagiert, dass es einen ersten Virus für das neue Windows gäbe. Jedoch lässt Microsoft nach Bekanntwerden der Viren verlautbaren, dass Monad doch nicht wie geplant in Vista enthalten sein wird. Somit wäre dies ein Virus für eine Betaversion mit extrem geringen Chancen auf Verbreitung.
Der erste wirkliche Computervirus für 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 und MenuetOS 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 nicht weitervermehren können.
Literatur
Die meisten Bücher zum Thema sind inzwischen veraltet und/oder nicht mehr erhältlich (Auswahl).
- Das große Computer-Viren-Buch, Ralf Burger, 1989, ISBN 3890112005
- Computer-Viren-Report, Prof. Dr. Klaus Brunnstein, 1989, ISBN 3809205303
- Virus: Detection and Elimination, Rune Skardhamar, 1995, ISBN 012647690X
- The Giant Book of Computer Viruses, Mark A. Ludwig, 1998, ISBN 0929408233
- The Art Of Computer Virus Research And Defense, Peter Szor, 2005, ISBN 0321304543
Weblinks
- Informationen zu Computer-Viren vom Bundesamt für Sicherheit in der Informationstechnik
- Telepolis-Artikel zum 20-jährigen Bestehen von Computerviren
- Links zu Antivirenherstellern, Informationsseiten und Virus-Datenbanken
- Projektseite „Offlineupdate“ der Zeitschrift c't
- Infos zu den das CMOS und das Bios schädigenden Viren
- Erste Diplomarbeit über Viren Deckblatt der Diplomarbeit "Selbstreproduktion bei Programmen" von Jügen Kraus an der Universität Dortmund