Computervirus

Computerprogramm, das sich in andere Computerprogramme einschleust und damit reproduziert
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. Mai 2005 um 08:40 Uhr durch MsChaos (Diskussion | Beiträge) (Revert, Unsinn raus). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Computervirus ist eine nichtselbstständige Programmroutine, die sich selbst reproduziert, indem sie sich an andere Computerprogramme oder Bereiche des Betriebssystems anhängt. Einmal gestartet, nimmt sie vom Anwender nicht kontrollierbare Veränderungen an selbigen vor.

Umgangssprachlich wird der Begriff Computervirus auch für Computerwürmer und Trojanische Pferde benutzt.


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 Resourcen seines Wirtes und nimmt dabei keine allzugroß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 benötigt zur Infektion eines Rechners eine Netzwerkverbindung oder ein Speichermedium, durch das oder auf dem er auf diesen gelangt. Viele Viren sind sehr einfach aufgebaut, die meisten Viren benötigen eine explizite Interaktion des Benutzters, um einen Computer zu infizieren, ein Extremfall sind die aktuellen Handyviren, die sich nicht verbreiten könnten, wenn sie nicht von Benutzern eigens installiert würden. Diese Viren verlassen sich darauf, Sicherheitslücken beim Benutzer zu finden, wie es I Love You in großem Stil vorgeführt hat.

Prävention

Anwender sollten niemals unbekannte oder Programme aus unsicherer Quelle ausführen und generell beim Öffnen von Dateien Vorsicht walten lassen. Das gilt insbesondere für Dateien, die einem per E-Mail zugesandt wurden. Solche Dateien sollten, wenn überhaupt, erst nach Überprüfung mit einem aktuellen Antivirenprogramm geöffnet werden. Schadprogramme können durch Sicherheitslücken in den mit Dateien verknüpften Programmen auf verschiedene Weise aktiv werden.

Betriebssystem und Anwendungen sollten regelmäßig aktualisiert 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, der keine Software installieren darf. Das automatische Öffnen von Dateien aus dem Internet sowie das automatische Anzeigen von 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 doch wenigstens entsprechend zu konfigurieren. Diese bieten durch ihren extrem hohen Verbreitungsgrad eine große Angriffsfläche. Vor allem Internet Explorer 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, Linux und FreeBSD sind bisher keine wirklich verbreiteten Viren bekannt. Allgemein gilt, je seltener ein Betriebssystem und eine Software ist, desto besser.

Antivirenprogramme schützen nur vor bekannten Viren. Daher ist es bei der Benutzung eines solches Programms wichtig, regelmäßig die von den Herstellern bereitgestellten, neuen Virensignaturen einzuspielen. Unbekannte Viren können jedoch von manchen dieser Programme auch anhand ihres Verhaltens entdeckt werden. Diese Funktionen arbeiten jedoch extrem unzuverlässig. Aus diesen Gründen kann man diese Programme nur als Unterstützung ansehen und sich nicht allein auf ihr Urteil verlassen.

Personal Firewalls zeigen gegen Viren keine Wirkung, da ihre Arbeitsweise nichts mit der der Viren zu tun, sondern eher auf Würmer passt. Mehr dazu dort.


Klassifikation

Computerviren werden nach unterschiedlichen Kriterien klassifiziert:

  • Nach den Dateitypen bzw. Bereichen auf dem Datenträger, die sie infizieren (Viren, die unter mehr als nur eine Kategorie fallen, nennt man auch Hybridviren):
    • Bootviren nutzen die Option von Computern aus, von Datenträgern aus beim Einschalten automatisch Programme zu starten, wie es für das Laden von Betriebssystemen notwendig ist. Sie verbleiben im Arbeitsspeicher und kopieren sich bei Zugriffen auf einen Datenträger in dessen Bootsektor, bei Festplatten meist in den Master Boot Record.
    • Linkviren schleusen sich in Programmdateien ein, so dass dessen Code beim Ausführen jener mit ausgeführt wird. Sie verbleiben meist ebenfalls im Speicher und infizieren Programme, wenn sie gestartet werden. Dadurch können Programmdateien unbrauchbar gemacht werden.
    • 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 usprü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 das Virus enthält. Wenn unter DOS beim Aufruf eines Programms die Endung nicht angegeben wird, werden ".com"-Dateien ".exe"-Dateien vorgezogen. Das 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.
    • Makroviren verstecken sich in Dateien für Programme, die über eine so genannte Makrosprache verfügen. Diese Programmiersprache kann Prozesse innerhalb des Programms automatisieren, allerdings auch dazu ausgenutzt werden, ein Makroprogramm in jedes weitere geöffnete Dokument zu kopieren.
  • Nach dem Verbleib im Arbeitsspeicher:
    • Einige einfache Viren infizieren direkt, wenn ein infiziertes Programm ausgeführt wird, andere Dateien. Solche Viren verbreiten sich meist nicht sehr erfolgreich, weil oft nur Dateien im aktuellen Verzeichnis infiziert werden. Wenn das nicht der Fall ist, kann das Durchsuchen ganzer Laufwerke auffällig sein, außerdem werden dabei kaum Dateien auf Wechseldatenträgern infiziert.
    • 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.
  • Man bezeichnet Viren als
    • Slackviren, wenn sie sich am Ende einer Datei in den unbenutzen Teil eines Clusters schreiben
    • Overlayviren, wenn sie ebenfalls den freien Speicher des Clusters verwenden, dort aber Teile der Datei speichern, um sich selbst in der Dateimitte zu verstecken
    • Stealthviren, wenn sie besondere Maßnahmen ergreifen, um ihre Existenz zu verschleiern. So werden Systemaufrufe abgefangen, so dass z. B. 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, wenn sie einen Teil ihres Codes verschlüsseln. 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, wenn sie ihre Gestalt von Generation zu Generation vollkommen ändern. Das geschieht oft in Kombination mit Verschlüsselung, es wird eine variabler 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 dabei den Entschlüsselungscode immer neu erstellt, befindet sich dabei selbst im verschlüsselten Teil des Virus und kann z. B. voneinander unabhängige Befehle austauschen und Operationen mit verschiedenen Befehlssequenzen kodieren, so dass verschiedene Varianten entstehen.
    • metamorphe Viren, wenn sie ihren gesamten Code bei jeder Infektion umformulieren. Dies geschieht meist durch Übersetzung des Maschinencodes in symbolischen Code und variabler Rückübersetzung. Der größte Teil des Viruscodes dient dabei meist dieser Aufgabe.

Aufbau

Es gibt mehrere Varianten, ein Virus zu strukturieren:

Erklärung 1

  • Vermehrungsteil: Dieser Programmteil sorgt für die Vermehrung des Virus.
  • Erkennungsteil: Im Erkennungsteil wird geprüft, ob bereits die Infektion eines Programms oder Systembereichs erfolgte. Jedes Wirtsprogramm wird nur einmal infiziert.
  • Schadensteil: Einige Viren enthalten eine Schadensfunktion, meist das Überschreiben oder Verändern von Programmen oder Daten oder aber auch nur die Ausgabe von Meldungen und Tönen auf dem Rechner. Dieser Programmteil kann fehlen, aber auf jeden Fall entsteht Schaden durch Inanspruchnahme von Speicherplatz im Hauptspeicher und auf Datenträgern. Durch Programmierfehler, Veränderungen des Betriebssystems oder ähnliches können weitere Schäden als Nebeneffekte auch dann auftreten, wenn sie nicht absichtlich programmiert sind.
  • Bedingungsteil: Sowohl die Verbreitung als auch die Schadensfunktion können von Bedingungen abhängig programmiert sein, z. B. tritt bei einigen Viren der Schaden an einem bestimmten Datum oder bei einer bestimmten Anzahl von Aufrufen ein. Auch dieser Teil kann fehlen.
  • Tarnungsteil: Hierunter fallen Programmroutinen, die die Entdeckung des Virus im infizierten System erschweren sollen. Dieser Teil ist meist nur bei neueren Viren zu finden.

Erklärung 2

Ein Computervirus besteht aus drei Teilen:

  • Replikationseinheit
  • Trigger (Auslöser)
  • Payload (Schadroutine)

Die Replikationseinheit dient der (meist unbemerkten) Vervielfältigung des Virus, z. B. indem es sich an ein bestimmtes Programm anhängt, das sich auf der Festplatte befindet. Jedesmal, wenn das infizierte Programm gestartet wird, kopiert sich das Virus. Damit kann sich das Virus erst einmal verbreiten, ohne zunächst einen Schaden anzurichten.

Andere Verbreitungsmethoden sind die Infektion von Disketten oder anderen bootfähigen Datenträgern (Bootviren) oder Textdokumenten (falls das Textverarbeitungsprogramm eine genügend mächtige Makro-Sprache besitzt und die Makros zusammen mit dem normalen Text in einer Datei gespeichert werden).

Den Teil, der den eigentlichen Schaden verursacht, bezeichnet man als Schadroutine oder Payload (dt.: Nutzlast). Hier tritt das Virus zum ersten Mal in Erscheinung und richtet einen mehr oder weniger großen Schaden an. Eine Schadroutine ist optional (ein Virus ist auch ohne sie ein Virus) und in den meisten Viren gar nicht vorhanden. Mitunter richtet die Verbreitung aber einen Schaden an.

Einige Viren sind so programmiert, dass sie erst dann in Erscheinung treten und den Schaden verursachen, wenn ein bestimmtes Ereignis eingetreten oder eine bestimmte Zeit verstrichen ist. Andere schalten gewisse Funktionen zu einem bestimmten Zeitpunkt wieder ab. Hierfür ist der sog. Trigger (dt.: Auslöser) zuständig.

So kann es z.B. sein, dass ein Virus erst nach dem 100. Start des Rechners aktiv wird, oder dass es sich jeden Dienstag oder am 10. eines jeden Monats in Erscheinung tritt und dann z.B. bestimmte Dateien löscht.

Geschichte

  • 1980 - Jürgen Kraus verfasst eine Diplomarbeit mit dem Titel "Selbstreproduktion bei Programmen", in welcher der Vergleich angestellt wird, dass sich bestimmte Programme ähnlich wie biologische Viren verhalten können.
  • 1984 - Professor Leonard M. Adleman verwendet im Gespräch mit Fred Cohen zum ersten Mal den Begriff Computervirus. Fred Cohen liefert seine Doktorarbeit "Computer Viruses - Theory and Experiments" ab. Darin wurde ein funktionierendes Virus für das Betriebssystem UNIX vorgestellt.
  • 1985 - Über Mailboxen wird das Trojanische Pferd Gotcha über ein Programm verteilt, das die Grafik verbessern soll. Nach dem Start werden die Daten auf der Festplatte gelöscht und es erscheint auf dem Bildschirm der Schriftzug Arf, arf, Gotcha.
  • 1986 - Zwei Software-Händler aus Pakistan verbreiten das erste Virus für das Betriebssystem MS-DOS. Das Programm war relativ harmlos, da es nur das Inhaltsverzeichnis der befallenen Disketten in Brain umbenannte.
  • 1987 - Im Data-Becker Verlag erscheint das erste Buch zum Thema Computerviren "Das große Computervirenbuch" von Ralf Burger.
  • 1987 - Das so genannte Cascade-Virus lässt zum ersten Mal in Deutschland die Buchstaben einer Seite nach unten rutschen, wo sie sich zu einem kleinen Häufchen sammeln. Er vernichtete Dateien.
  • 1988 - Der erste Baukasten für Viren (Virus Construction Kit) wird veröffentlicht. Damit ist es auch Anfängern möglich, Viren nach Maß zu erstellen. Das Programm läuft auf dem Computer Atari ST.
  • 1989 - Mit V2Px erscheint das erste polymorphe Virus, das sich selbst wieder neu verschlüsseln kann und deshalb durch Antivirenprogramme nur schwer zu entdecken ist.
  • 1990 - Der Verband deutscher Virenliebhaber verbreitet das erste Virus Construction Kit für DOS.
  • 1993 - Erste Computerviren für Windows tauchen auf.
  • 1995 - Es erscheinen die ersten Makroviren.
  • 1997 - Das erste Virus für das Betriebssystem Linux tritt in Erscheinung.
  • 1998 - Strange Brew, das erste Virus für Java, erscheint.
  • 2000 - Loveletter infiziert mehr PCs als jedes bisherige Virus.
  • 2004 - Das erste Virus für PocketPCs (mit dem Betriebssystem Windows CE) tauchte auf.
  • 2004 - Das erste Virus für die Programmiersprache Ruby wurde geschrieben.
  • 2004 - Es wurde das erste Virus für das Betriebssystem MenuetOS entdeckt.
  • 2005 - Das erste Virus für Handys (mit dem Betriebssystem Symbian OS) tauchte auf.


Siehe auch: Malware, Hoax, Computersicherheit, Backdoor, Dropper, Monokultur