Bootsektor-Viren
Teil 2
Copyright (C) 05/1995 by Howard FuhsInhalt:
Booten mit einem Boot-Sektor-Virus und seine Auswirkungen
Das Entfernen eines Boot-Sektor-Virus
Der undokumentierte DOS-Befehl FDISK/MBR
Der SYS-Befehl zum Entfernen von Viren
Anti-Viren-Programme für Boot-Sektor-Viren
Doppelte Infektion des Boot-Sektors
Einleitung
Wie schon in vorangegangenen Abschnitten kurz erwähnt, gibt es Computerviren, die bereits beim Booten des Computers die Kontrolle über das Rechnersystem übernehmen.
Diese Computerviren werden Boot-Sektor-Viren
oder auch Boot-Sektor-Infektor genannt und machen sich eine Eigenart des
Bootvorgangs zunutze: den INT 13h Aufruf von Zylinder 0, Spur 0, Sektor 1 durch
das BIOS. An dieser Stelle einer Festplatte steht das Master-Boot-Record (MBR)
oder bei einer Diskette der Boot-Sektor. Dieser Virustyp kann, abhängig von
seiner Programmierung, den DOS-Boot-Sektor einer Diskette oder Festplatte oder
das MBR einer Festplatte infizieren.
Der Boot-Sektor-Virus macht nun bei einer
Infektion des MBR oder Boot-Sektors folgendes:
Er kopiert sich an die Stelle, wo sich normalerweise das MBR oder der Boot-Sektor befindet. Die dort normalerweise gespeicherten Daten werden von ihm aber nicht überschrieben und somit gelöscht. Wäre das der Fall, wäre eine Festplatte nach einer solchen Infektion nicht mehr bootfähig, und die Infizierung des Rechners würde damit sofort entdeckt. Das tatsächliche MBR wird vom Computervirus vorher an einen anderen Platz auf der Festplatte kopiert. Wo dieser Platz ist, hängt vom jeweiligen Boot-Sektor-Virustyp ab. Falls auf diesem Platz Daten gespeichert sind, werden sie vom kopierten MBR einfach überschrieben und gehen verloren. Die neue Stelle, an dem das MBR abgespeichert wurde, wird nun vom Computervirus gespeichert. Erst nachdem das MBR kopiert wurde, schreibt sich der Boot-Sektor-Virus an die Stelle des MBR. Wenn ein Boot-Sektor-Virus im Arbeitsspeicher des Rechners resident wird, geschieht dies in der Regel im Top of Memory Bereich. Dadurch wird der Arbeitsspeicher für DOS reduziert, und bei einigen Viren wird dann auf Computern mit 640kB Hauptspeicher nur ein verfügbarer Hauptspeicher von 639kB oder weniger angezeigt.
Abbildung 6: Funktionsweise eines Boot-Sektor-Virus
Booten mit einem Boot-Sektor-Virus und seine Auswirkungen
Der neue Bootvorgang eines Computers nach einer Infektion mit einem Boot-Sektor-Virus sieht nun wie folgt aus:
Nachdem man den Computer eingeschaltet hat,
geht der Bootvorgang seinen im Kapitel "Booten des Computers"
beschriebenen Gang. Bis zu der Stelle, an der das BIOS auf Zylinder 0, Spur 0,
Sektor 1 zugreifen will. Denn an dieser Stelle erwartet das
BIOS das MBR. Das BIOS lädt nun aber an dieser Stelle den
Boot-Sektor-Virus. Dieser Virus wird nun im Arbeitsspeicher aktiv und damit er
nicht auffällt, teilt der Virus nun dem BIOS mit, wo es das tatsächliche
MBR findet. Erst dann wird vom BIOS das tatsächliche MBR geladen. Und von
hier ab geht der Bootvorgang wieder seinen normalen Gang. Nur mit dem
Unterschied, daß sich nun ein Computervirus resident im Arbeitsspeicher
befindet.
Jedesmal wenn man nun eine neue Diskette in
ein Laufwerk einlegt, und auf dieses Laufwerk (bzw. auf die Diskette) zugreift,
wird der Boot-Sektor-Virus aktiv und infiziert die Diskette. Wird diese Diskette
nun zu einem anderen Computer gebracht und von dieser Diskette aus der Computer
gebootet, so wird auch die Festplatte von diesem Computer mit dem
Boot-Sektor-Virus infiziert. Viele werden jetzt sagen "wann boote ich schon
mal von Diskette". Meistens passieren solche Infektionen durch das
Vergessen einer Diskette in Laufwerk A:. Man schaltet den Rechner ein und
bekommt die Fehlermeldung, daß diese Diskette nicht bootfähig ist.
Man stellt fest, daß man diese Diskette im Laufwerk vergessen hat, darüber
hinaus kann sie gar nicht bootfähig sein, da sie lediglich ein paar Dateien
und kein Betriebssystem enthält. Und trotzdem hat man sich durch dieses
Vergessen einen Boot-Sektor-Virus eingefangen.
Interessanterweise gibt es zur Zeit nur relativ wenige Boot-Sektor-Viren, die auch eine Diskette in Laufwerk B: infizieren. Viele Boot-Sektor-Viren sind nur auf Laufwerke mit der Bezeichnung A: oder C: programmiert, da es sich hier um die zwei Bootlaufwerke eines PC´s handelt. Das kann aber nicht zur Regel gemacht werden, da zu befürchten ist, daß sich diese Eigenschaft mit der Zeit auch ändern wird.
Das Entfernen eines Boot-Sektor-Virus
Leider kann ich hier nur einige allgemeine Angaben zur Entfernung von solchen Boot-Sektor-Viren machen, da solche Angaben von Boot-Sektor-Virus zu Boot-Sektor-Virus unterschiedlich sein können. Zwar speichert sich ein Boot-Sektor-Virus immer an der gleichen Stelle eines Datenträgers ab (nämlich im Boot-Sektor, Zylinder 0, Spur 0, Sektor 1), aber es kopiert und speichert nicht jeder Boot- Sektor-Virus das MBR an der gleichen Stelle eines Datenträgers. Solche Dinge sind von den Programmierern der Viren abhängig. Generell kann man folgende Vorgehensweise anwenden:
Man bootet den Rechner mit einer sauberen, nicht infizierten, schreibgeschützten(!!!) Betriebssystemdiskette. Danach sucht man mit einem entsprechenden Hilfsprogramm (wie z.B. PC Tools oder Norton Advanced Utilities) nach dem MBR auf der Festplatte und kopiert es an seinen angestammten Platz (Zylinder 0, Spur 0, Sektor 1). Durch diese Aktion kann der Boot-Sektor-Virus überschrieben werden. Die Festplatte (bzw. der Datenträger) ist damit wieder virenfrei.
Eine weitere Möglichkeit ist der Einsatz des Mirror Befehls der mit MS-DOS 5.0 und PC Tools mitgeliefert wird. Mit diesem Mirror Befehl kann man eine Kopie des Boot-Sektors und der Partition- Table anfertigen, falls das System noch nicht infiziert ist. Sollte das System infiziert werden, so kann man mit dem Mirror Befehl den Boot-Sektor einfach durch eine nicht infizierte Kopie ersetzen.
Eine ähnliche Funktion wird auch von vielen guten Anti-Viren-Programmen angeboten.
Der undokumentierte DOS-Befehl FDISK/MBR
Eine weitere Möglichkeit besteht bei der MS-DOS Version 5.0 mit dem undokumentierten Befehl FDISK/MBR. Dieser Befehl schreibt ein neues Master-Boot-Record an den von ihm angestammten Platz. Es hat allerdings seine Gründe, warum dieser Befehl nicht in die offizielle Dokumentation übernommen wurde.
Der SYS-Befehl zum Entfernen von Viren
Sollte der DOS-Boot-Sektor eines Datenträgers infiziert sein, so kann man auch mit dem SYS-Befehl vom DOS den Virus überschreiben. Ohne genaue Identifizierung des Boot-Sektor-Virus oder ohne genaue Systemkenntnisse sollte man jedoch von einer Entfernung des Boot-Sektor-Virus Abstand nehmen. In diesem Fall sollte man unter allen Umständen einen Fachmann hinzuziehen. Nachdem man eine Computervirusinfektion von einem Rechner entfernt hat, sollte man auf gar keinen Fall vergessen, alle Disketten auf eine Infizierung hin zu untersuchen!
Anti-Viren-Programme für Boot-Sektor-Viren
Man kann auch Anti-Viren-Programme (digitales Penizillin) zum Entfernen des Boot-Sektor-Virus verwenden. Diese Programme arbeiten in der Regel sehr gut und sind relativ einfach zu bedienen. Diese Programme werden oftmals auch Desinfektor genannt. Diese Desinfektor-Programme wissen, an welcher Stelle des Datenträgers der Boot-Sektor-Virus das MBR abspeichert. Sie überschreiben einfach den Boot-Sektor-Virus mit dem MBR, das sie an dieser Stelle des Datenträgers finden.
Doppelte Infektion des Boot-Sektors
Hier handelt es sich um eine sehr
unwahrscheinlich klingende Möglichkeit, die in der Praxis jedoch häufiger
aufgetreten ist.
Ein gut programmierter Computervirus überprüft
immer, ob er den Wirt (MBR oder Datei) bereits infiziert hat. In der Praxis
passierte es aber sehr häufig, daß ein Datenträger
erst von einem Michelangelo-Virus infiziert wurde und etwas später
auch noch von einem Stoned-Virus (oder auch umgekehrt). Der Michelangelo-Virus
und der Stoned-Virus haben beide eines gemeinsam:
Sie speichern das MBR an der gleichen Stelle
des Datenträgers.
Bei einer doppelten Infektion hat dies zur
Folge, daß das MBR verlorengeht.
Der erste Boot-Sektor-Virus (z.B.
Michelangelo-Virus) kopiert sich an die Stelle, wo sich
normalerweise das MBR oder der Boot-Sektor befindet. Das tatsächliche MBR
wird vom Computervirus vorher an einen anderen Platz auf der Festplatte kopiert.
Die neue Stelle, an der das MBR abgespeichert wurde, wird nun vom
Computervirus gespeichert. Erst nachdem das MBR kopiert wurde, schreibt sich der
Boot-Sektor-Virus an die Stelle des MBR. Wird nun der zweite Boot-Sektor-Virus
aktiv (z.B. Stoned-Virus), kopiert auch er zuerst das (vermeintliche) MBR an
einen bestimmten Platz auf der Festplatte. Doch tatsächlich hat der
Stoned-Virus den Michelangelo-Virus an die Stelle kopiert, an
der Michelangelo-Virus das MBR abgespeichert hatte. Da bei diesem Vorgang das
MBR überschrieben wird, kann z.B. kein Desinfektor-Programm
mehr eingesetzt werden. Ein solchermaßen infiziertes Computersystem kann
auch nicht mehr von der Festplatte aus gebootet werden.
Abbildung 7: Funktionsweise einer doppelten Infektion durch einen Boot-Sektor-Virus
Das Booten des Computers
Bereits beim Booten des Computers kann ein Computervirus gestartet werden und die Kontrolle über das Computersystem übernehmen. Zwar kann das rechnerinterne ROM von einem Computervirus nicht verändert werden, aber ein Computervirus kann sich an eine Stelle kopieren, die von der Bootsequenz abgefragt wird.
Die Bootsequenz eines PC´s läuft wie folgt ab:
- Der Rechner wird eingeschaltet.
- Das CPU sucht die Adresse F000:FFF0h und beginnt die Befehle an dieser Adresse abzuarbeiten. Diese Adresse liegt im ROM des Rechners. Das ROM wird oftmals auch als Firmware bezeichnet.
- Der Inhalt des ROM wird von der CPU abgearbeitet und übernimmt die weitere Kontrolle über den PC.
- Es folgt der Power On Self Test (POST). Hier prüft der Rechner das Vorhandensein der im BIOS eingegebenen Hardware. Für die dabei notwendigen Arbeiten werden einige BIOS-Interrupts initialisiert.
- Nach dem Hardware Check durch den POST versucht das BIOS unter Zuhilfenahme des INT 13h, den ersten physikalischen Sektor eines Datenträgers (Diskette oder Festplatte) einzulesen (Zylinder 0, Spur 0, Sektor 1). Hierzu sucht es erst in Laufwerk A: und danach in Laufwerk C:
- An dieser Stelle einer Festplatte steht das Master-Boot-Record (MBR) oder bei einer Diskette der Bootsektor.
- Dieser erste Sektor enthält Informationen über den Aufbau des Datenträgers und ein Programm, welches die Partitionstabelle auswertet. Dieses kleine Programm lädt den Bootsektor der aktiven Partition.
- Dieser Bootsektor enthält den Boot Loader. Dieser Boot Loader stellt fest, ob sich auf der Partition ein Betriebssystem befindet und lädt es gegebenenfalls.
- Die erste Betriebssystemdatei, die geladen wird, ist IO.SYS (IBMBIO.COM). IO.SYS initialisiert nun die noch fehlenden BIOS-Interrupts und die Standard-Gerätetreiber CON, AUX, PRN, LPT1 bis 3, COM1 bis 4, und CLOCK$. Die Systemdatei CON wird sofort für Ein- und Ausgaben geöffnet.
- Nun wird MSDOS.SYS (IBMDOS.COM) von der Datei IO.SYS geladen.
- IO.SYS übergibt die Rechnerkontrolle an das Modul SYSINIT, das mit MSDOS.SYS geladen wurde.
- SYSINIT kopiert sich selbst an einen anderen Platz im Arbeitsspeicher. Danach kopiert es die Datei MSDOS.SYS an einen anderen Platz im Arbeitsspeicher.
- SYSINIT startet das Programm MSDOS.SYS und sucht die Datei CONFIG.SYS. Ist die Datei CONFIG.SYS vorhanden, wird die Datei MSDOS.SYS entsprechend den Befehlen in der CONFIG.SYS modifiziert.
- SYSINIT sucht im Hauptverzeichnis nach dem Befehlsinterpreter COMMAND.COM. Wird der Befehlsinterpreter COMMAND.COM gefunden, wird ihm die Kontrolle über das Rechnersystem übergeben.
- Nun sucht COMMAND.COM nach der Datei AUTOEXEC.BAT im Hauptverzeichnis. Wird die Datei AUTOEXEC.BAT gefunden, werden die dort vorgefundenen Befehle der Reihe nach abgearbeitet.
- COMMAND.COM schreibt den Prompt (Eingabeaufforderung) auf den Bildschirm und wartet auf die weiteren Eingaben des Anwenders.
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) 5/1995 by Howard Fuhs