MYBIOS. Lässt sich das BIOS infizieren?

Einleitung

Die Möglichkeit, das BIOS eines Rechners zu infizieren, existiert schon relativ lange. Das Online-Magazin Phrack hat dazu einen der besten Artikel veröffentlicht und auf der Webseite Pinczakko gibt es ebenfalls viele nützliche Informationen. Beim Thema BIOS-Infizierung kristallisiert sich derzeit eine deutliche Tendenz heraus, die am als „zurück zu den Wurzeln“ bezeichnen könnte. Die Infizierung des Master Boot Record (MBR), das Abfangen der Pointer in verschiedenen Systemtabellen des Betriebssystems, die Infizierung von Systemkomponenten – das alles gibt es bereits, und zwar schon sehr lange.

Durch die Infizierung des MBR oder des BIOS kann sich Schadcode unmittelbar nach dem Einschalten des Computers initialisieren. Ab diesem Zeitpunkt kann der Schadcode alle Etappen des Bootvorgangs des Computers und des Betriebssystems kontrollieren. Natürlich ist diese Lade-Methode für Virenschreiber attraktiv, wobei andererseits auch die Schwierigkeiten, mit denen sie dabei zu kämpfen haben, auf der Hand liegen. In erster Linie ist damit das nicht einheitliche Format des BIOS gemeint: Die Autoren des Schadcodes müssen in jedem Fall das BIOS jedes Herstellers unterstützen und sich mit dem Algorithmus der Firmware im ROM auskennen.

Im vorliegenden Artikel wird ein tatsächlich existierendes Schadprogramm genauer untersucht, das sowohl das BIOS als auch den MBR infizieren kann. Außerdem schauen wir uns seine Installation und seinen Schutz vor Erkennung näher an. Nicht behandelt werden dagegen die Aspekte, die mit dem Eindringen des Schädlings ins System und dem kommerziellen Nutzen des Schadprogramms zu tun haben. Derzeit kann der Schädling nur Mainboards infizieren, die mit einem BIOS der Firma AWARD ausgestattet sind.

Installation

Kaspersky Lab führt den Trojaner, um den es in dieser Analyse geht, unter dem Namen Rootkit.Win32.Mybios.a. Dieser Schädling verbreitet sich als ausführbares Modul und bringt alles zum Funktionieren notwendige bereits mit.

Die Liste der Komponenten:

  • Treiber für die Arbeit mit dem BIOS – bios.sys (Gerät DeviceBios)
  • Treiber zum Verbergen der Infektion – my.sys (Gerät Devicehide)
  • Komponente BIOS – hook.rom
  • Bibliothek zur Steuerung des Treibers bios.sys – flash.dll
  • Tool vom Hersteller für die Arbeit mit dem BIOS-Abbild – cbrom.exe

Als erstes führt der Dropper eine simple Entschlüsselung durch und startet den Installationsprozess. Aus den Schädlingsressourcen wird der Treiber bios.sys auf die Festplatte kopiert und gestartet und empfängt anschließend alle notwendigen Informationen über das BIOS. Seine Funktionalität wird im Folgenden näher beschrieben.

Als nächstes wird der Treiber my.sys in das Stammverzeichnis der Festplatte kopiert.

Der BIOS-Typ entscheidet über die weitere Vorgehensweise.

Verwendet der Rechner ein AWARD-BIOS, werden folgende Schritte durchgeführt:

  • Lesen des BIOS aus dem Speicher, Suche nach SMI_PORT und Bestimmung der Größe des BIOS
  • Erstellung eines BIOS-Abbilds auf der Festplatte (c:bios.bin)
  • Fehlt das Modul hook.rom in dem auf der Festplatte gespeicherten BIOS-Abbild, wird es diesem Abbild hinzugefügt
  • Einfügen des infizierten Abbilds von der Festplatte ins ROM

Wird kein AWARD-BIOS verwendet, infiziert der Dropper den MBR. Damit funktioniert das Rootkit auf jedem beliebigen System, unabhängig vom Hersteller des BIOS.

BIOS.SYS und CBROM.EXE

Der Treiber bios.sys wird als Installer des Rootkits verwendet und verfügt insgesamt über drei Funktionen.


Abb. 1: Dispatch-Prozedur des Treibers bios.sys

Die erste Funktion, die wir FindSMIPORTAndBIOSSize nennen, wird vom Dropper unter anderem dazu verwendet, um den BIOS-Typ im System zu bestimmen. Zur Bestimmung des BIOS-Typs wird nach der „magischen“ Signatur im Speicher gesucht.


Abb. 2: „Magische“ Signatur im BIOS

Stimmen die Signaturen überein, setzt die Funktion ihre Arbeit fort und versucht SMI_PORT zu finden und die Größe des BIOS zu bestimmen. In allen anderen Fällen meldet die Funktion einen Fehler und der Dropper führt eine gewöhnliche Infizierung des MBR durch.

Ergibt die Untersuchung, dass es sich um ein BIOS von AWARD handelt und sind die Variablen SMI_PORT und BIOSSize vorhanden, wird die Funktion MakeBIOSBackup aufgerufen, die das BIOS-Abbild auf der Festplatte in der Datei c:bios.bin speichert.

Der Dropper schaut in dem auf der Festplatte gespeicherten Abbild nach, ob sein Modul vorhanden ist. Ist das nicht der Fall, fügt er dem BIOS-Abbild ISA ROM hinzu. Zu diesem Zweck wird das Tool cbrom.exe (mit dem Befehl cbrom c:bios.bin /isa hook.rom) verwendet. Das Tool ist ebenfalls in den Ressourcen des Installers gespeichert und wird auf die Festplatte kopiert.


Abb. 3: BIOS vor der Infizierung


Abb. 4: BIOS nach der Infizierung

Achten Sie auf das 11. Modul in der Liste. Dabei handelt es sich um das hinzugefügte ISA ROM mit der Bezeichnung hook.rom.

Mit dem nächsten Aufruf der Funktion FlashROM wird das infizierte Abbild in das ROM eingefügt und ab sofort bei jedem Einschalten des Computers aufgerufen.

MY.SYS

Um die Infektion zu verbergen, wird der relativ simple Rootkit-Treiber my.sys verwendet. Er fängt die Funktionen IRP_MJ_READ, IRP_MJ_WRITE und IRP_MJ_DEVICE_CONTROL des Gerätetreibers für das Laufwerk DeviceHarddisk0DR0 ab. Wann und wie dieser Treiber startet, zeigen wir etwas später.


Abb. 5: Abgefangene Funktion des Treibers disk.sys

Weil die Abfangroutine recht primitiv ist, beschäftigen wir uns hier nicht näher damit. Beim Lesen wird CompletionRoutine ausgetauscht und beim Versuch, geschützte Sektoren zu lesen, wird ein leerer Puffer ausgegeben.


Abb. 6: Erster Sektor der physischen Festplatte

Das Abfangen von IRP_MJ_WRITE ermöglicht nicht das Schreiben der Daten in die geschützten Sektoren.

Das Abfangen von IRP_MJ_DEVICE_CONTROL kontrolliert die Aufrufe IOCTL_DISK_GET_DRIVE_LAYOUT_EX, IOCTL_STORAGE_GET_MEDIA_TYPES_EX, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX und gibt eine Fehlermeldung aus.

BIOS und MBR

BIOS

Aus dem BIOS gestartet, ist das Schadprogramm in der Lage, jede Etappe der Initialisierung des Computers und des Betriebssystems zu kontrollieren. Schauen wir uns also einmal an, was die Virenschreiber hier umgesetzt haben.

Das Modul, das dem BIOS hinzugefügt wird, unterscheidet sich von dem infizierten MBR und den nachfolgenden Sektoren nur durch eine Funktion, die zusammen mit zusätzlichen Informationen in einem Sektor untergebracht ist (512 Byte). Das ISA ROM belegt 0x1E00 Byte, der MBR und zusätzliche Sektoren 0x1C00 Byte.


Abb. 7: Anfang des ISA ROM


Abb. 8: Aufruf der einzigen Funktion Main im ISA ROM

Die einzige Aufgabe dieser Funktion besteht darin, zu bestätigen, dass sich im MBR eine infizierte Kopie befindet beziehungsweise den MBR zu infizieren, wenn die Kopie nicht vorhanden ist. Da sich der infizierte MBR und die entsprechenden Sektoren im Modul ISA ROM befinden, ist es möglich, im Falle einer Nichtübereinstimmung den MBR direkt aus dem BIOS neu zu infizieren. So werden die Chancen deutlich verbessert, dass der Computer infiziert bleibt, selbst wenn der MBR desinfiziert wurde.


Abb. 9: Funktion Main, die den MBR überprüft und neu infiziert

Ob eine Infektion vorhanden ist, wird mittels einer Suche nach der „magischen“ Konstante nach der fixierten Verschiebung im MBR bestimmt. Die Konstante „int1“ sollte im infizierten Sektor vorhanden sein.



Abb. 10: „Magische“ Konstante im MBR

Findet die Funktion CheckMBRInfected im Master Boot Record keine Infektion, besteht der nächste Schritt darin, den MBR und die 13 darauf folgenden Sektoren zu infizieren.

Damit ist die Arbeit des dem BIOS hinzugefügten Moduls ISA ROM beendet. Die Hauptarbeit übernimmt der Code, der aus dem MBR ausgeführt wird.

MBR

In allen anderen Fällen von Infektionen des MBR, die wir betrachtet haben, ist der Algorithmus fast immer gleich: zählen der auf den MBR folgenden Sektoren und Übergabe der Steuerung an den errechneten Code, der auch die Hauptarbeit übernimmt.

Der Original-MBR wird von dem Trojaner bei der Infizierung im siebten Sektor der Festplatte gespeichert und zum Empfang der Partitionstabelle verwendet (und zur Übergabe der Steuerung an ihn, sobald die Hauptarbeit beendet ist).

Zu dem Code, der auf dieser Etappe ausgeführt wird, gehört auch ein einfacher Disassembler der Dateisystemformate NTFS und FAT32. Das Hauptziel ist eine Suche nach den Sektoren auf der Festplatte, die den Systemdateien winlogon.exe oder wininit.exe entsprechen – Systemkomponenten, die dafür verantwortlich sind, dass der Anwender ins System kommt.


Abb. 11: Suche nach winlogon.exe oder wininit.exe

Findet der Schädling diese Sektoren, wird die ausführbare Datei winlogon.exe oder wininit.exe infiziert – genauso würde es auch ein Dateivirus machen. Das geschieht durch einen direkten Eintrag in die Sektoren der Festplatte, auf denen sich die Dateien befinden. Die Schablone für die Infizierung befindet sich im achten Sektor der Festplatte.


Abb. 12: Eintrittspunkt von winlogon.exe vor der Infizierung


Abb. 13: Eintrittspunkt von winlogon.exe nach der Infizierung

Dieser Code ist recht klein, daher erfüllt er insgesamt nur zwei Aufgaben:

  • Download und Start einer bestimmten Datei aus dem Internet anhand eines Links
  • Start des Rootkit-Treibers my.sys, der sich auf der Festplatte C: befindet und der die infizierten Sektoren der Festplatte schützen wird

Aword statt AWARD

Im Schadcode stehen selten Debug-Kommentare, da sie für Virenanalysten hilfreich sein könnten. Doch es kommt vor, dass solche Kommentare im „Endprodukt“ landen. Im Fall von Rootkit.Win32.Mybios.a enthalten sie viele Schreibfehler.

Liste der Debug-Mitteilungen des Treibers bios.sys:

  • Flash Aword BIOS form diks c bios.bin success.
  • SMI_AutoErase Aword Bios Failed.
  • ExAllocatePool read file NonPagedPool failed.
  • Backup Aword BIOS to disk c bios.bin success.
  • MmMapIoSpace physics address:0x%x failed.
  • This is not a Aword BIOS!

Fazit

Malware setzt häufig verschiedene Methoden ein, um sich im Betriebssystem einzunisten und den Computer zu infizieren. Gleichzeitig suchen ihre Autoren nach neuen Möglichkeiten zum automatischen Laden der Schadprogramme. Heute verwenden die Virenschreiber in ihren Produkten zumeist Methoden, die schon lange bekannt und manchmal fast schon vergessen sind. Die Anleihen aus den heute nicht mehr existenten 16-Bit-Technologien sind ein extremes Beispiel dafür.

Vermutlich lassen ähnliche Rootkits für das BIOS anderer Hersteller nicht mehr lange auf sich warten.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.