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

Bootsektor-Viren

Teil 1

Copyright (C) 05/1995 by Howard Fuhs


Inhalt:

   Einleitung

   Bootvorgang eines Computers

   Lücken im System

   Infizieren des Bootsektors

   Booten mit infiziertem Bootsektor

   Entfernen von Bootsektor-Viren

   Formatieren der Festplatte

   Notfalldiskette

   Desinfektionsfunktion von AV-Software

   FDISK/MBR

   Der Sys-Befehl

   Doppelte Infektion des Bootsektors

   BIOS-Bootsektorschutz

   Softwaremäßiger Bootsektorschutz

   Copyright-Hinweis
 


Einleitung

Eine sehr interessante Spezies der Computerviren stellt der Bootsektor-Virus dar. Von allen Virenarten macht der Bootsektor-Virus gerade einmal ca. 5% aus, ist aber an mindestens 25%-35% aller bekannten Infektionen beteiligt und ist damit sehr weit verbreitet. So dürften die am weitesten verbreiteten Bootsektor-Viren der Form.A und der Parity_Boot Virus sein und der bekannteste der Michelangelo-Virus.

Dateiviren hängen (wie der Name schon vermuten läßt) eine Kopie ihres Programmcodes an eine ausführbare Datei. Damit wird sichergestellt, daß mit dem Aufruf der ausführbaren Datei auch der parasitäre Virus mit aufgerufen und damit im Speicher aktiv wird.

Bootsektor-Viren hingegen machen sich eine Eigenart des Bootvorgangs zunutze, um sicherzustellen, daß sie ausgeführt werden. Sie brauchen also keine ausführbaren Dateien, um sich weiter verbreiten zu können, sondern nur Datenträger. Um die Funktionsweise eines Bootsektor-Virus verstehen zu können, muß man wissen wie ein Computer gebootet wird, d.h. welche internen Verfahrensabläufe von dem Moment an getätigt werden, an dem der Netzschalter betätigt wird bis zu dem Moment, an dem das DOS-Prompt auf dem Bildschirm erscheint und dem Anwender anzeigt, daß der Computer nun auf Kommandos und Eingaben wartet.


Bootvorgang eines Computers

Wenn der Computer eingeschaltet wird, sucht die CPU automatisch an der Speicheradresse F000:FFF0 nach Programmcode und führt diesen aus. An dieser Speicheradresse in der High Memory Area ist das BIOS ROM (Basic Input Output System Read Only Memory), welches auch manchmal als Firmware bezeichnet wird. Dieser Programmcode führt den POST (Power On Self Test) durch. Hier überprüft die CPU das Vorhandensein der im BIOS eingetragenen Hardware und deren fehlerfreie Funktion (z.B. der RAM-Test mit seinem nervtötenden Klicken bei 32MB Hauptspeicher). Weiterhin wird in den untersten 1024 Bytes des Speichers eine Interrupt-Tabelle angelegt. Diese Interrupt-Tabelle wird später benötigt, damit geladener Programmcode auf BIOS-Funktionen zugreifen kann.

Nach dem Hardware-Check versucht das BIOS unter Zuhilfenahme des INT 13h, den ersten physikalischen Sektor eines Datenträgers (egal ob Diskette oder Festplatte) einzulesen. Dies ist immer Zylinder 0, Spur 0, Sektor 1. Wenn im BIOS die entsprechende Einstellung nicht geändert wurde, sucht das BIOS zuerst auf Laufwerk A: und danach auf Laufwerk C:.

An dieser Stelle befindet sich bei einer Festplatte das Master-Boot-Record (MBR) und bei einer Diskette der Bootsektor. Dieser erste Sektor ist 512Bytes groß und enthält Informationen über den Aufbau des Datenträgers und ein Programm, welches die Partitionstabelle auswertet. Das BIOS liest nun den Inhalt des ersten physikalischen Sektors und lädt ihn bei 0000:7C00h in den Speicher. Ist der erste Sektor in den Speicher geladen, überprüft das BIOS die letzten zwei Byte auf den Wert 55h AAh. Wird dieser Byte-Wert vom BIOS gefunden, geht das BIOS davon aus, daß es einen gültigen Bootsektor in den Speicher geladen hat und überträgt ihm die weitere Kontrolle über den Computer. Es ist nun die Aufgabe des geladenen Bootsektors, das Betriebssystem zu laden.

Die erste Betriebssystemdatei, die geladen wird, ist IO.SYS (bei PC-DOS IBMBIO.COM). IO.SYS initialisiert die noch fehlenden BIOS-Interrupts und die Standard-Gerätetreiber.  IO.SYS lädt nun die Datei MSDOS.SYS (bei PC-DOS IBMDOS.COM) und übergibt die weitere Kontrolle an das Modul SYSINIT von IO.SYS. SYSINIT kopiert sich an eine andere Stelle im Arbeitsspeicher und im Anschluß daran verschiebt SYSINIT die Datei MSDOS.SYS im Arbeitsspeicher und startet sie. SYSINIT sucht die Datei CONFIG.SYS und modifiziert mit den dort vorgefundenen Einträgen MSDOS.SYS. Jetzt lädt SYSINIT den Kommandointerpreter COMMAND.COM und überträgt ihm die weitere Kontrolle des Computers. Ist eine AUTOEXEC.BAT vorhanden, arbeitet COMMAND.COM die darin enthaltenen Befehle ab und schreibt dann eine Eingabeaufforderung (Prompt) auf den Bildschirm. Damit ist der Computer dann für Eingaben durch den Anwender betriebsbereit.

Abb. 1 Virenfeie PC-Bootsequenz


Lücken im System

Das im vorigen Abschnitt beschriebene System des Bootens hat den Vorteil, daß die Hardware nichts über das benutzte Betriebssystem wissen muß, solange das Betriebssystem der Hardware einen Bootsektor an einer ganz bestimmten Stelle zur Verfügung stellt.

Da ein Computervirus immer versucht, die Kontrolle über den Computer und das Betriebssystem zu erlangen, liegt es wohl nahe den Bootsektor für Virenzwecke zu mißbrauchen. Der Bootsektor bietet einem Virus nicht nur die Möglichkeit, garantiert geladen zu werden, sondern auch noch vor dem Betriebssystem und damit auch vor allen Virenschutzmaßnahmen in den Speicher zu gelangen und damit die Kontrolle zu übernehmen. Ein solcher Bootsektor-Virus kann, abhängig von seiner Programmierung, den DOS-Bootsektor einer Diskette oder Festplatte oder das Master Boot Record einer Festplatte infizieren. Da der erste Sektor nur 512Bytes groß ist, muß der Bootsektor-Virus entsprechend klein und einfach programmiert sein oder Teile seines Programmcodes in anderen Sektoren abspeichern und bei Aufruf nachladen.


Infizieren des Bootsektors

Um einen Datenträger zu infizieren, kopiert sich der Bootsektor-Virus einfach an die Stelle, wo sich normalerweise das Master Boot Record oder der Bootsektor befinden.

Abb.2 Schematischer Aufbau einer virenfreien Festplatte
 

Abb.3 Schematischer Aufbau einer infizierten Festplatte

Die an dieser Stelle gespeicherten Daten werden von dem Bootsektorvirus nicht überschrieben und somit gelöscht, sondern an eine andere Stelle auf der Festplatte ausgelagert. Würden die Daten vom Bootsektor-Virus überschrieben, wäre eine Festplatte nach einer solchen Infektion nicht mehr bootfähig und die Infizierung des Rechners würde damit vom Anwender sofort entdeckt werden.

An welchen Platz der vom Virus ausgelagerte Bootsektor abgespeichert wird, hängt vom jeweiligen Bootsektor-Virus ab. Falls auf diesem Platz Daten gespeichert sind, werden sie mit dem kopierten Bootsektor einfach überschrieben und gehen verloren. Dadurch kann auch ein Bootsektor-Virus, der eigentlich über keine Schadensroutine verfügt (z.B. Form) Datenverlust hervorrufen. Erst nachdem der Virus sichergestellt hat, daß eine Kopie des Bootsektors gespeichert wurde, schreibt sich der Virus an die Stelle des Bootsektors.

Wenn ein Bootsektor-Virus im Arbeitsspeicher des Rechners resident wird, geschieht dies in der Regel im Top Of Memory Bereich (TOM). 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.


Booten mit infiziertem Bootsektor

Da ein Virus den Inhalt eines ROM (Read Only Memory) nicht verändern kann, ändert sich an dem hardwareabhängigen Bootvorgang nichts bis das BIOS ROM auf den Bootsektor eines Datenträgers zugreift. Hier versucht das BIOS den Bootsektor zu laden, lädt aber den Virus in den Speicher, welcher wiederum sich im Top Of Memory Speicherplatz reserviert und dann den eigentlichen Bootsektor nachlädt. Wird der eigentliche Bootsektor aktiv, geht der Bootvorgang wieder den beschriebenen Weg, mit der Ausnahme, daß nun ein Virus im Speicher vorhanden ist.

Abb.4 Schematischer Aufruf eines MBR-Infektors
 

Abb.5  PC-Bootsequenz mit Bootsektor-Infektion

Jedesmal, wenn nun eine neue Diskette in ein Laufwerk eingelegt und auf dieses Laufwerk (bzw. auf die Diskette) zugegriffen wird, wird der Bootsektor-Virus aktiv und infiziert die Diskette. Wird von dieser Diskette nun ein anderer Computer gebootet, so wird auch die Festplatte von diesem Computer mit dem Bootsektor-Virus infiziert.
Meistens passieren solche Infektionen durch das Vergessen einer Diskette in Laufwerk A:.

Bei vielen AV-Strategien spielen TSR-Programme eine Rolle. Ein solches TSR-Programm kann ein zufälliges Booten von Diskette zumindest bei einem Warmstart (Ctrl-Alt-Del) verhindern, indem es die Tastaturkombination abfängt und Laufwerk A: auf eine eingelegte Diskette hin untersucht. Wird keine Diskette gefunden, wird mit dem Warmstart fortgefahren. Wird eine Diskette gefunden, kann der Anwender durch eine Meldung aufgefordert werden, erst die Diskette zu entfernen.

Viele moderne BIOS-Versionen bieten die Möglichkeit einer Veränderung der Abfragereihenfolge der Laufwerke während des Bootvorgangs. Ist die normale Abfragereihenfolge LW A:, LW C:, so kann diese Reihenfolge umgedreht werden in LW C:, LW A:. Damit kann man recht wirksam das ungewollte Booten von Diskette verhindern.


Entfernen von Bootsektor-Viren

Um einen Bootsektor-Virus von einer Festplatte zu entfernen, ist es zwingend nötig, das System von einer virenfreien und schreibgeschützten DOS-Diskette zu booten. Durch diese Maßnahme wird sichergestellt, daß der Virus nicht mehr im Speicher aktiv ist und dadurch die Desinfektionsmaßnahmen verhindern oder durch eine Reinfektion unwirksam machen kann.

Wurde das System mit einer DOS-Diskette gebootet, stehen dem Anwender verschiedene Möglichkeiten der Desinfektion zur Auswahl.


Formatieren der Festplatte

Diese Maßnahme wird aus einer Panik heraus in der Praxis sehr oft durchgeführt, ist mehr eine "Holzhammermethode" und führt nicht zu dem gewünschten Ergebnis. Nur eine Low-Level-Formatierung ist in der Lage, einen Bootsektorvirus zu zerstören. Auf den modernen IDE und E-IDE Festplatten ist eine Low-Level-Formattierung nicht erlaubt und bereits der Versuch wird vom Laufwerkskontroller abgefangen und nicht gestattet. Es ist also nur eine normale Formatierung erlaubt. Abgesehen davon, daß eine Formatierung mit dem Befehl FORMAT alle Daten und Programme auf der Festplatte unnötigerweise löscht, legt eine Formatierung keinen neuen Master Boot Record an. Jeder Virus, der sich im Master Boot Record befindet, wird also die Formatierung schadlos überstehen. Damit ist das Formatieren des Systems nicht geeignet, um Bootsektor-Viren zuverlässig zu entfernen. Dieser Sachverhalt sollte bei firmeninternen Schulungen den Anwendern vermittelt werden, um unnötigen Datenverlust und ein falsches Gefühl der Sicherheit zu vermeiden.


Notfalldiskette

Zu jeder guten Virenpräventionsmaßnahme sollte eine Notfalldiskette gehören, auf der das Master Boot Record, Partition Table und Bootsektor gespeichert sind. Viele gute AV-Programme stellen heute dem Anwender eine Funktion zum Erstellen einer solchen Notfalldiskette zur Verfügung. Diese Funktion wird in der Praxis vom Anwender oftmals nicht beachtet.

Existiert eine solche Notfalldiskette, so kann man mit dem Programm, welches die Diskette angelegt hat alle Systemsektoren wieder auf die Festplatte kopieren. Dies stellt sicher, daß bei dem Kopiervorgang der Bootsektor-Virus überschrieben wird und das mit dem Originalinhalt der entsprechenden Sektoren weitergearbeitet wird.

Dies ist nicht nur die eleganteste, sondern auch die sicherste und zuverlässigste Maßnahme, die zur Desinfizierung eines Bootsektor-Virus auf alle Fälle zuerst verwendet werden sollte.


Desinfektionsfunktion von AV-Software

Sollte keine Notfall-Diskette vorhanden sein, kann man es auch mit der Desinfektionsfunktion von Antiviren-Software versuchen. Hier ist das Risiko, daß das System Schaden erleidet ungleich höher als bei einer Notfall-Diskette. So sind viele Fälle bekannt geworden, daß Hersteller zwar angaben, ihr Produkt könne einen bestimmten Bootsektor-Virus sicher entfernen, trotzdem wurde dabei das Partition Table soweit beschädigt, daß die Platte mit FDISK neu eingerichtet werden mußte. Dies ist zwar nicht die Regel, kann aber bei schlecht programmierter Software oder nur ungenau identifizierten Bootsektor-Viren passieren.

Die Desinfektionsfunktion von AV-Software weiß bei genauer Identifizierung des Virus, an welcher Stelle der Bootsektor-Virus das MBR abgespeichert hat. Sie überschreiben einfach den Bootsektor-Virus mit dem MBR, das sie an dieser Stelle vorgefunden hat.


FDISK/MBR

DOS liefert einen undokumentierten Befehl, mit dem ein neuer Master Boot Record erstellt werden kann. Der Befehl lautet FDISK/MBR. Dieser Befehl birgt einige Gefahren in sich und sollte nur von entsprechend ausgebildeten Leuten eingesetzt werden.

So darf FDISK/MBR nicht eingesetzt werden, wenn auf dem Rechner ein Bootmanager installiert ist (z.B. DOS / OS/2), da sich solche Bootmanager im Bootsektor einer Festplatte befinden. Auch auf Laufwerken, die mit Double Space oder Stacker gepackt sind kann der Einsatz von FDISK/MBR zu Datenverlust führen. Bei Viren wie Monkey oder Neuroquilla darf FDISK/MBR auch nicht eingesetzt werden. Diese Viren verschlüsseln die Partitionstabelle und legen sie irgendwo auf der Festplatte ab. Dadurch ist die Partitionstabelle nur lesbar, wenn sich der Virus aktiv im Speicher befindet. Wird der Virus durch FDISK/MBR entfernt, ist die Partitionstabelle nicht mehr lesbar und auf die Festplatte kann nicht mehr zugegriffen werden. Wenn von einer sauberen Diskette aus gebootet wird, muß vor dem Einsatz von FDISK/MBR geprüft werden, ob noch ein Zugriff auf die Festplatte erfolgen kann. Sollte dies nicht der Fall sein, darf FDISK/MBR nicht verwendet werden.

FDISK/MBR ist nur gegen Bootsektor-Viren wirksam, die sich an der gleichen Position befinden, wo normalerweise das Master Boot Record gespeichert ist.


Der Sys-Befehl

Mit dem Sys-Befehl werden die Systemdateien von der Bootdiskette in den Bootsektor der Festplatte geschrieben. Jeder Boostsektor-Virus, der sich an dieser Stelle aufhält wird dabei überschrieben. Für Viren, die sich in den Bootsektor einer Festplatte schreiben, ist der SYS-Befehl ein einfaches Mittel zur Desinfektion. Der SYS-Befehl ist nicht wirksam bei Bootsektor-Viren, die sich in den MBR schreiben.


Doppelte Infektion des Bootsektors

Eine äußerst interessante Variante ist die Infektion des Bootsektors durch zwei verschiedene Bootsektor-Viren. Dies geschieht in der Praxis häufiger als man denkt.
 
Ein gut programmierter Computervirus überprüft immer, ob er den Wirt, in diesem Falle den MBR oder Bootsektor bereits infiziert hat. Es kann in der Praxis allerdings passieren, daß der Bootsektor von zwei unterschiedlichen Bootsektor-Viren nacheinander infiziert wird. Passiert dies z.B. mit dem Michelangelo und dem Stoned Virus, so versuchen beide Viren das MBR an der gleichen Stelle der Festplatte abzuspeichern. Bei einer doppelten Infektion hat dies zur Folge, daß das MBR verloren geht.
 
Der erste Bootsektor-Virus kopiert sich bei der Erstinfektion an die Stelle, wo sich normalerweise das MBR oder der Bootsektor befindet. Das tatsächliche MBR wird vom Computervirus vorher an einen anderen Platz auf der Festplatte kopiert. Versucht nun der zweite Bootsektor-Virus die Festplatte zu infizieren, kopiert auch er zuerst das (vermeintliche) MBR an einen bestimmten Platz auf der Festplatte. Doch tatsächlich hat der zweite Virus den ersten Virus an die Stelle kopiert, an welcher der erste 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.


Abb.6 Schematische Bootsequenz mit zwei Bootsektor-Viren

Die einzig sichere Methode dieses System zu desinfizieren ist durch eine zuvor erstellte Notfalldiskette.


BIOS-Bootsektorschutz

In vielen modernen BIOS ROMs besteht die Möglichkeit, den Bootsektor vor Veränderungen zu schützen. Wird ein Schreibzugriff auf den Bootsektor durchgeführt meldet sich das BIOS mit einer Fehlermeldung. Der grundlegende Gedanke ist zwar nicht schlecht. Jedoch in der Praxis führt dieses System oftmals zu Problemen und ist nicht sonderlich sicher. Da Bootmanager ständig den Bootsektor der Festplatte verändern, je nachdem mit welchem Betriebssystem gerade gebootet wird, muß bei solchen Systemen der BIOS-Schutz ganz ausgeschaltet werden, um ständige Fehlermeldungen zu vermeiden. Weiterhin kann dieser BIOS-Schutz auch durch Software ausgeschaltet werden. Es ist somit möglich, einen Bootsektor-Virus zu programmieren, der erst die Schutzfunktion im BIOS ausschaltet und dann den Bootsektor infiziert.


Softwaremäßiger Bootsektorschutz

Es gibt seit einiger Zeit Software, die den Bootsektor vor Zugriff schützt sowie die Festplatte vor formatieren oder partitionieren. Diese Software kann nur auf Systemen ohne Bootmanager eingesetzt werden und verursachte in der Vergangenheit viele Probleme mit dem 32bit Festplattenzugiff von MS Windows. Nur ganz wenige Hersteller haben dieses Problem in ihrem Produkt wirklich beheben können.


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) 05/1995 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