Howard Fuhs
Howard Fuhs
Howard Fuhs
IT-Sicherheitsberater
IT-Sicherheitsberater
IT-Sicherheitsberater

Computerviren

und ihre Vermeidung

Kapitel 3

Copyright (C) 04/1993 by Howard Fuhs

3. Was ist ein Computervirus?

Ein Computervirus wird im wissenschaftlichen Sinne wie folgt definiert:

Ein Computervirus ist ein selbstvermehrendes Segment von ausführbarem Computercode, der in ein Wirtsprogramm eingebettet ist.

Das heißt, daß ein Computervirus ähnlich aufgebaut ist wie ein normales Anwenderprogramm. Der Virus wurde in einer Programmiersprache programmiert und dann in Maschinencode compiliert. Der Unterschied zu einem Anwenderprogramm ist, daß der Computervirus kein eigenständiges Programm ist, sondern nur eine gewisse Befehlsabfolge enthält. Der Computervirus benötigt einen Wirtskörper, der ihn ausführt. Diese Wirtskörper sind ausführbare Dateien von Anwenderprogrammen. Der Computervirus fügt sich in die ausführbare Datei des Anwenderprogramms ein d.h. er modifiziert diese Datei. Wenn der Anwender diese Datei aufruft, wird automatisch der Computervirus mit aufgerufen und mit ausgeführt.

Im allgemeinen steht die Bezeichnung "Computervirus" auch für jede Art von Programmcode, der seine wahren (möglicherweise böswilligen) Absichten vor dem Computeranwender versteckt und/oder vom Computeranwender nicht gewünschte Aktivitäten ausführt (wie z.B. das Selbstvermehren).

Ein Computervirus muß aber nicht unbedingt eine bösartige Absicht haben. So sind Computerviren bekannt, die nichts anderes machen  als sich solange zu vermehren, wie Wirtsprogramme zur Verfügung stehen, ohne irgendwelche zerstörerischen Angriffe auf Dateien oder Daten auszuführen. Trotzdem bleibt ein solcher "ungefährlicher" Computervirus ein vom Anwender ungewollter Eingriff in die Datenstruktur des Rechners. Da aber auf Anhieb nicht erkannt werden kann, ob dieser Computervirus gefährlich oder "ungefährlich" ist, kann der Anwender seinen vorhandenen Daten nicht mehr das nötige Vertrauen entgegenbringen. Sie könnten von dem Computervirus auch verändert worden sein. Und selbst wenn der Computervirus zu den "ungefährlichen" Computerviren zählen sollte, so benötigt er zum Vermehren Rechenkapazität der CPU, Platz auf der Festplatte und er belegt eventuell sogar Netzwerkverbindungen.

 

 

3.1 Aufbau eines Computervirus

Der interne Aufbau eines Computervirus besteht in der Regel aus vier Teilen.
 

Abbildung 1: Interner Aufbau eines Computervirus

Der Infektorteil ist das Kernteil des Computervirus und sorgt für ein korrektes Identifizieren und Infizieren des Wirtsprogramms, trägt die Triggerbedingung und die Schadensroutine (Payload), sucht die Wege für eine Infektion und versucht eine Entdeckung des Computervirus zu vermeiden, indem es alle verdächtigen Aktivitäten tarnt.

Der Wirtsteil ist ganz einfach das Wirtsprogramm in welches sich der Computervirus eingefügt hat. Er benötigt diese Wirtsdatei, um aufgerufen und ausgeführt zu werden.

Die Kopierroutine kopiert den Computervirus in andere Wirtsdateien. Diese Kopierroutine kann aber auch für die Speicherung von vom Computervirus verlagerten Daten zuständig sein (z.B. Boot-Sektor-Virus & MBR).

Die Statusroutine soll ein mehrfaches Infizieren einer Datei verhindern. Dieser Statusteil setzt in der Regel ein einziges Flag-Bit in der Wirtsdatei, an dem der Computervirus erkennt, ob die Datei bereits von ihm infiziert ist oder nicht.

 

 

3.2 Aufruf eines Computervirus

Der Aufruf eines Computervirus geht folgendermaßen vor sich:

Der Anwender ruft die ausführbare, infizierte Datei eines Anwenderprogramms auf. Die aufgerufene Datei wird vom Computer gestartet und gibt dann sofort die Kontrolle an den Computervirus weiter. Der Computervirus versucht nun unbemerkt weitere Wirtskörper, sprich ausführbare Dateien, zu finden und  durch Einfügen einer Kopie von sich selbst zu infizieren. Danach gibt er im Normalfall die Kontrolle an das Wirtsprogramm zurück, damit dieses ohne große Schwierigkeiten weiter ausgeführt werden kann. Dadurch scheint das Anwenderprogramm für den Anwender ganz normal zu laufen. Auf diese Art und Weise verbreitet sich ein Computervirus auf einem Computer. Zwischen den Computern verbreitet sich der Virus entweder über Datenträger wie z.B. Disketten, die infizierte Programme enthalten, oder über Computernetzwerke.

 

 

3.3 Wodurch unterscheiden sich Computerviren von anderen Sicherheitsproblemen?

Gerade im Bereich von Computern und der damit verbundenen Datenverarbeitung gibt es eine Vielzahl von Sicherheitsproblemen. Fehlerhafte Paßwortprogramme, unzufriedene Mitarbeiter oder auch schlecht geschützte Netzwerkeingänge. Jedes dieser Sicherheitsprobleme kann zurückverfolgt werden. Und genau da liegt auch der Unterschied zum Computervirus.

Er kann fast nie zurückverfolgt werden. Das bedeutet, daß ein Computervirusprogrammierer sich sehr sicher sein kann, nicht entdeckt zu werden, wenn er einen Computervirus programmiert oder in anderen Computern aussetzt. Man hat also in seinem Computersystem eine Sicherheitslücke, so groß, daß ein Rheindampfer bequem darin drehen kann, aber man ist nur sehr schwer in der Lage, diese Lücke zu verkleinern oder zu stopfen. Denn je kleiner man diese Sicherheitslücke macht, um so mehr muß man die Arbeit und den Zugriff auf das Computersystem überwachen, limitieren und einschränken. Ab einer gewissen Stufe der Sicherheit ist aber ein vernünftiges Arbeiten mit dem Computersystem nicht mehr möglich. Man muß in diesem Fall einen goldenen Mittelweg zwischen Sicherheit und Anwenderfreundlichkeit suchen. Und man sollte auch nicht außer acht lassen, daß ein hundertprozentiger Virenschutz in der Praxis nicht möglich ist. Man wird ihn nie erreichen können. In der Atomindustrie ist die Bezeichnung dafür das Restrisiko.

 

 

3.4 Unzulängliche Betriebssysteme

Computerviren machen sich eine Unzulänglichkeit des Betriebssystems DOS zunutze. Dieses Betriebssystem hat praktisch keinerlei Sicherheitslevel für Anwender und Dateien. Dadurch ist es so relativ einfach, für dieses System einen Computervirus zu programmieren, der irgendwelche Manipulationen ausführt.

Anders sieht es da bereits beim Betriebssystem UNIX aus. In diesem Betriebssystem können verschiedene Sicherheitsmaßnahmen getroffen werden, um den Mißbrauch durch Anwender einzudämmen. Auch dieses Betriebssystem ist natürlich nicht 100%ig sicher gegen Manipulationen, es ist aber wesentlich schwieriger, irgendwelche illegalen Maßnahmen unter dem Betriebssystem UNIX durchzuführen.

 

 

3.5 Architekturabhängige Computerviren

Diese Computerviren sind nur für ein bestimmtes Computersystem (Architektur) geschrieben. So wird die überwiegende Mehrheit der Computerviren für den IBM-kompatiblen PC mit dem Betriebssystem MS-DOS geschrieben. Das Betriebssystem stellt die Software- Architektur dar. Die Hardware-Architektur besteht in diesem Fall aus der INTEL CPU Serie 8086 bis 80486.

Aber auch innerhalb dieser Architektur kann es Abweichungen geben, die für das Funktionieren oder nicht Funktionieren eines Computervirus verantwortlich sind. So wurden die ersten Computerviren für den früher weit verbreiteten 8086 Prozessor geschrieben. Diese CPU ließ jedoch Befehle zu, die bei späteren weiter entwickelten CPU´s nicht mehr angewandt werden konnten.

So ließ die 8086 CPU den (undokumentierten) Befehl "MOV CS, AX" zu und führte ihn ohne Probleme aus. Der gleiche Befehl konnte auf CPU´s vom Typ 80286/80386 nicht ausgeführt werden. Dies bedeutete, daß ein Computervirus, der mit dieser Befehlsfolge arbeitet, auf einem Rechner mit 8086 CPU funktioniert, auf einem Computer mit 80286/386/486 CPU aber nicht mehr funktionieren konnte. Weiterhin kann man sagen, daß diese architekturabhängigen Computerviren keinen anderen Computer anderer Bauart infizieren können. So ist es z.B. nicht möglich, einen Commodore C64 mit einem Computervirus, der für INTEL 80x86 CPU´s und das Betriebssystem MS-DOS geschrieben ist, zu infizieren. Die gleichen Probleme dürfte man zwischen IBM kompatiblen Computern und einem Apple MacIntosh bekommen.

Es reicht aber auch schon ein Betriebssystemwechsel, um Computerviren Schwierigkeiten zu bereiten. So können Computerviren, die für das Betriebssystem MS-DOS programmiert wurden, nur in einer DOS-Box des Betriebssystems IBM OS/2 funktionieren. Unter OS/2 selbst sind diese Viren nicht funktionsfähig.

 

 

3.6 Architekturunabhängige Computerviren

Da es auch andere Computer gibt, die in der Lage sind, eine von MS-DOS formatierte Diskette zu lesen, kann die Möglichkeit von systemübergreifenden Computerviren in Zukunft nicht mehr ganz ausgeschlossen werden. Es wäre also durchaus denkbar, einen Computervirus zu programmieren, der sowohl einen IBM-kompatiblen Computer infizieren kann, als auch einen Atari ST mit einer 68000er CPU von Motorola. Wenn zwei verschiedene Computersysteme die gleichen Diskettenformate lesen können, wäre die einfachste Möglichkeit für einen Computervirus ein Boot-Sektor-Infektor, da beide Systeme auf den gleichen Boot-Sektor zugreifen und dessen Inhalt auch verstehen. Heute sind schon der Apple MacIntosh und der Atari ST in der Lage, DOS Disketten zu lesen. Im Zuge der Portierbarkeit von Daten auf andere Computerarchitekturen wird diese Anpassung der Hardware immer mehr Verbreitung finden.

Zwar sind heute noch keine solche Computerviren bekannt, aber man kann sich in den nächsten Jahren wahrscheinlich noch auf einiges gefaßt machen. Es kann jetzt schon befürchtet werden, daß solche architekturunabhängigen Computerviren in den kommenden Jahren immer mehr in Erscheinung treten werden. Bedingung hierfür ist allerdings nicht nur die Lesbarkeit von Diskettenformaten, sondern auch das Verstehen der Instruktionen, die im Computervirus einprogrammiert sind. Zwar müßte ein solcher Computervirus auf einem sehr hohen Level geschrieben sein, damit er die gemeinsamen Konzepte von zwei völlig verschiedenen Computertypen nutzen kann, aber er bleibt bei der sehr schnell fortschreitenden Hardwareentwicklung für die Zukunft durchaus denkbar.

 

 

3.7 Wie bindet sich ein Computervirus in ein Wirtsprogramm ein?

Auch bei dieser Frage gibt es verschiedene technische Möglichkeiten, die für die Entfernung des Computervirus sehr wichtig sind. Denn nur wenn man weiß, wo man den Computervirus suchen muß, hat man auch die Möglichkeit, den Computervirus zu finden und erfolgreich zu entfernen.

 

3.7.1 Anhängender Computervirus

Der Computervirus hängt sich an das Ende des Wirtsprogramms an.


Abbildung 2: Anhängender Computervirus

Hierbei wird erst das Wirtsprogramm aufgerufen, welches durch einen Sprungbefehl den anhängenden Virus aufruft und ihm die Kontrolle übergibt. Nachdem der Computervirus seine einprogrammierten Instruktionen abgearbeitet hat, gibt der Virus durch einen Rücksprungbefehl die Kontrolle wieder an das Wirtsprogramm zurück. Das Wirtsprogramm wird vom Computer ganz normal weiterverarbeitet.

 

3.7.2 Vorhängender Computervirus

Der Computervirus hängt sich vor das Wirtsprogramm


Abbildung 3: Vorhängender Computervirus

Hierbei verschiebt der Computervirus bei der Infektion Teile des Programmcodes vom Wirtsprogramm an eine andere Stelle auf dem Datenträger oder im Arbeitsspeicher.

In die dabei entstehende Lücke kopiert dann der Computervirus seinen eigenen Programmcode. Wird vom Anwender das infizierte Anwenderprogramm aufgerufen, so wird erst der Computervirus gestartet und dessen Programmcode abgearbeitet.

Nach der Abarbeitung des Viruscodes startet der Computervirus durch einen Sprungbefehl das Wirtsprogramm.

 

3.7.3 Einbindender Computervirus

Der Computervirus bindet das Wirtsprogramm in sich selbst als ein Unterprogramm ein.

Wird vom Anwender ein solchermaßen infiziertes Anwenderprogramm gestartet, so wird erst der Computervirus gestartet und dessen Programmcode abgearbeitet. Nach der Abarbeitung des Viruscodes startet der Computervirus durch einen Sprungbefehl das Wirtsprogramm. Wird die Arbeit mit dem Wirtsprogramm vom Anwender beendet, so gibt das Wirtsprogramm die Kontrolle an den Computervirus zurück. Nach Beendigung des Wirtsprogramms ist dann meistens der Computervirus im Hauptspeicher resident vorhanden.

 

3.7.4 Überschreibender Computervirus

Der Computervirus überschreibt einfach soviel Programmcode seines Wirtsprogramms, wie er benötigt um sich selbst dort einfügen zu können.


Abbildung 4: Überschreibender Computervirus

Wird vom Anwender ein solchermaßen infiziertes Anwenderprogramm gestartet, so wird erst der Computervirus gestartet und dessen Programmcode abgearbeitet.

Nach der Abarbeitung des Viruscodes startet der Computervirus durch einen Sprungbefehl das Wirtsprogramm. Da aber Teile des Wirtsprogramms durch den Computervirus überschrieben wurden, kann das Wirtsprogramm nicht mehr ausgeführt werden. Es kommt zu einer Fehlermeldung oder zu einem Systemabsturz. Durch das Überschreiben von Programmcode wird die Wirtsdatei ihre eigentliche Größe trotz Infizierung beibehalten. Durch diese einfache Vorgehensweise bei der Infizierung kann ein solcher Computervirus technisch relativ einfach und vor allen Dingen klein programmiert werden. Ein solcher überschreibender Virus kann gerade mal 30 Byte groß sein.

 

3.7.5 Einfügender Computervirus

Der Computervirus fügt sich einfach in der Mitte der Wirtsdatei ein.


Abbildung 5: Einfügender Computervirus

Damit versucht der Computervirus, einer Entdeckung durch verschiedene Anti-Viren-Scanner zu entgehen. Einige Anti-Viren-Scanner suchen nur am Anfang und am Ende einer Datei nach einer Virusinfizierung, weil sie nur von vorhängenden oder anhängenden Computerviren ausgehen. Gute Anti-Viren-Scanner durchsuchen jedoch die Datei auf ihrer ganzen Länge.

 

 

3.8 Allgemeine Anmerkungen zu Computerviren

Auch wenn ein Computervirus nach der Abarbeitung seines Programmcodes die Kontrolle an sein Wirtsprogramm zurückgibt, muß man davon ausgehen, daß der Computervirus im Arbeitsspeicher nach wie vor vorhanden ist und weitere ausführbare Dateien zu infizieren versucht.

Solche im Hauptspeicher vorhandenen Computerviren nennt man auch "speicherresidente Computerviren". Bei den ersten drei Möglichkeiten der Viruscodeeinbindung in ein Wirtsprogramm wird die Wirtsdatei um den Betrag des Viruscodes vergrößert. Deshalb waren die ersten Computerviren so klein wie möglich programmiert, damit sie nicht so schnell durch die Vergrößerung der Wirtsdatei entdeckt werden konnten. Heute tarnen die Computerviren die Vergrößerung der Wirtsdatei, indem sie die ursprüngliche Dateigröße abspeichern und bei einem Abruf durch den Anwender (z.B. durch den DIR Befehl) die ursprüngliche Dateigröße wieder ausgeben. Nur bei der vierten Infizierungsmethode verändert sich die Größe der Wirtsdatei nicht. Jedesmal wenn ein Computervirus eine Datei infiziert, muß diese Datei in ihrer neuen, infizierten Form auf das Speichermedium zurückgeschrieben werden. Dabei wird normalerweise nicht nur die neue Dateigröße auf dem Speichermedium vermerkt, sondern auch Datum und Uhrzeit des Abspeicherns. Moderne Computerviren speichern deshalb nicht nur die ursprüngliche Größe einer infizierten Datei, sondern auch das ursprüngliche Datum und die Uhrzeit. Folglich können diese Parameter bei etwas neueren und moderneren Computerviren nicht mehr zum Erkennen einer Infektion verwendet werden.

Viele speicherresidenten Computerviren können durch einen Warmstart (CTRL + ALT + DEL) nicht aus dem Arbeitsspeicher des Computers entfernt werden. Diese Computerviren fangen diese Tastenkombination ab und täuschen nur einen Warmstart vor. Um einen solchen Computervirus sicher aus dem Arbeitsspeicher zu entfernen, muß der RESET-Knopf gedrückt werden.

 

 

3.9 Allgemeine Funktionsweise eines Computervirus

Die allgemeine Funktionsweise eines Computervirus läßt sich in folgende Phasen unterteilen:

3.9.1 Aktivierung

Zum Beispiel durch den Aufruf und die Ausführung eines infizierten Anwenderprogramms oder durch Booten des Rechners mit einer infizierten Diskette oder Festplatte.

3.9.2 Weiterverbreitung

Der Computervirus sucht nach geeigneten ausführbaren Wirtsdateien und kopiert sich selbst in eine solche Datei.

3.9.3 Manipulation

Wenn eine bestimmte Bedingung erfüllt ist, wie z.B. das Erreichen eines bestimmtes Datums (z.B. 6. März Michelangelo-Virus), manipuliert oder zerstört der Virus Daten und Programme, spielt Lieder, läßt Buchstaben auf die unterste Bildschirmzeile fallen usw. Die Manipulation hängt von den Motiven des Virusprogrammierers ab.

 
zurückvorheriges Kapitel   |   Inhaltsverzeichnis   |   nächstes Kapitelzurück

 

Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Autors unzulässig und strafbar.

Copyright (C) 04/1993 - 08/1998 - 03/2003 by Howard Fuhs

Fuhs Security Consultants
 
Alle Rechte
vorbehalten!

 
 Realisation:
Frank Ziemann
Home Impressum


WebCam
24h WorldTimer PCI DSS Publikationen Digital Publishing EN English
Thema 00
Hier finden Sie Information über Dinge, von denen wir jetzt noch nichts verraten wollen.
Fallbeispiele
Fallbeispiele aus der alltäglichen Datenunsicherheitspraxis.
Neues
Aktuelle Neuigkeiten und Medieninformationen.
Service
Sichern Sie Ihr Unternehmen durch unsere Dienstleistungen und Serviceangebote ab.
Fallbeispiele
Die neue 24h WorldTimer Uhrenserie mit standardisierter astronomischer Zeitangabe nach ISO 8601 für 24-Stunden-Umgebungen
PCI DSS
Dienstleistungen und Serviceangebote rund um den Payment Card Industry Data Security Standard
Publikationen
Fachartikel und Buchmanuskripte von Howard Fuhs.
Digital Publishing
Publikationen von Howard Fuhs auf CD-ROM.
EN English pages
Please find here our English pages for international visitors.
      E-Mail
Sie erreichen uns
per E-Mail unter
  info@fuhs.de
    Realisation
EDV-Beratung
Frank Ziemann
www.fz-net.com
Themen  
Themen
Papers Satellite Hacking
Fachartikel deutsch
Präsentationen
Fachartikel englisch
Bücher von Howard Fuhs
Buchrezensionen
Medienberichte
Datensicherheitsinfos
Sicherheitsinfos
Computerviren und ihre Vermeidung
Information Security Bulletin
Bilder PCBRL
Bilder DCF77
Jokes
Fachartikel deutsch
Deutsche Fachartikel von Howard Fuhs.
Präsentationen
Präsentationen von Howard Fuhs.
Fachartikel englisch
Englische Fachartikel von Howard Fuhs.
Sicherheitsinformationen
Sicherheitsinformationen auch aus Quellen des Computeruntergrunds.
Computerviren und ihre ...
Buchmanuskript von Howard Fuhs über Computerviren, erstmals veröffentlicht 1993.
Jokes
Einfach nur Witze.
Bücher von Howard Fuhs
Buchveröffentlichungen von Howard Fuhs.
Howard Fuhs in den Medien
Medienbericherstattung über Howard Fuhs.
Datensicherheitsinformationen
Allgemeine Datensicherheitsinformationen von Howard Fuhs.
Bilder PCBRL
Technische Bilder von Howard Fuhs für das Printed Circuit Board Research Lab.
Information Security Bulletin
Deutsche Ausgaben des Information Security Bulletin von CHI-Publishing Ltd., UK.
Papers Satellite Hacking
Englische Texte zum Vortrag Satellite Monitoring, Satellite Hacking and Satellite Security
DCF77 Funkuhr
Vintage Gallery - Bilder einer DCF77 Funkuhr von 1972
Buchrezensionen
Howard Fuhs bespricht Fachbücher