produktivzone
4 Normseiten, geschätzte Lesezeit 3 Min.

UEFI (Unified Extensible Firmware Interface)

Was ist UEFI?

Damit ein Betriebssystem auf die Hardware eines Computers zugreifen kann, braucht es eine Firmware, welche die Kommunikation mit dem angeschlossenen Gerät sicherstellt. UEFI ist der Name von solch einer Firmware.

Bei der Firmware handelt es sich um eine Software, die in einem nichtflüchtigen Speicher auf der Hauptplatine des Computers gespeichert wird. Zu diesem Zweck ist in jedem PC eine Batterie verbaut, die dafür sorgt, dass der Speicher nach dem Abschalten nicht gelöscht wird.

Auf älteren X86-PC's war hierfür bisher das BIOS System (Basic Input/Output System) zuständig. Dieses gibt es nur in einer 32-Bit Version, was auf 64-Bit Systemen natürlich unbefriedigend ist. Daher plante man den Umstieg auf die EFI-Firmware von Intel, das sowohl in 32 Bit, als auch in 64 Bit ausgeführt werden kann.

Doch die Industrie wolle die Kontrolle nicht einer einzelnen Firma überlassen. Also gründete man das Unified EFI Forum, das von Intel, AMD, Microsoft, Hewlett-Packard und viele andere PC- und BIOS-Hersteller geleitet wird. EFI wurde anschließend in UEFI umbenannt, das nun auch in einer neueren Version vorliegt.

allgemeine Aufgaben der PC-Firmware

hält die Parameter und Konfigurationen für den Betrieb der angeschlossenen Hardware zur Verfügung (Treiber).

alle benötigten Systemparameter werden in einem nichtflüchtigen Speicher auf der Hauptplatine des Rechners gespeichert.

Fehlende Hardware-Treiber werden nach Bedarf nachgeladen.

startet und initialisiert den Rechner (Bootstrapping).

liest die Parameter für das Betriebssystem aus dem ersten Sector des Speichermediums.

Startet den Bootloader (Abkürzung für Bootstrap Loader), der wiederum das Betriebssystem (Kernel) in den Speicher lädt und ausführt.

Was ist neu?

64-Adressierung und damit die Verwaltung von goßen Speichermedien (theoretisch bis 8192 Exabyte), setzt dafür ein 64-Bit Betriebssystem voraus.

einfacherer Umgang, als bisherige BIOS-Implementationen

höhere Grafik-Auflösung (PC-BIOS hatte nur VGA)

grafische Oberfläche, bedienbar mit der Maus

der Nutzer soll selbst entscheiden, welche Komponenten geladen werden sollen

fehlerhafte Treiber können deaktiviert werden

Nutzung von grafische Prozessoren, sofern vorhanden

Bootloader kann digital signiert werden, um die Ausführung von Schadsoftware zu verhindern

Netzwerkanbindung, z.B. zum Nachladen von Treibern

auf Wunsch kann UEFI den Kernel eines Betriebssystem auch ohne Bootloader direkt laden (The EFI Boot Stub)

schnellerer Startvorgang, da bestimmte Treiber schon im Bios geladen werden

Bootloader

Mit Bootloader (Abkürzung für Bootstrap Loader) wird das Startprogramm bezeichnet, das auf einem PC als erstes ausgeführt wird. Es ist selbst nicht Teil der Firmware, sondern befindet sich auf einem startfähigen Medium im ersten Block der Bootpartition. Dieses Programm wird von der Firmware des Rechners geladen und ausgeführt.

Dabei greift das Programm als erstes auf den Master Boot Record zu, der alle relevanten Daten für die Partitionierung von beliebigen Speichermedien beinhaltet. Anschließend wird der Kernel des Betriebssystem in den Speicher geladen. Dieser Prozess wird Booten genannt.

Mit Hilfe von einem Bootmanager können verschieden Bootloader ausgewählt werden. So können auf dem System mehrere Betriebssysteme installiert werden. Sollte ein Bootloader nicht auf die Boot Partition Platz haben, kann er mehrstufig ausgeführt werden (Multistage Bootloader) oder es werden mehrere Bootloader über mehrere Partitionen hinweg hintereinander ausgeführt (Chain-Loader).

Die verschiedenen Betriebssysteme bringen jeweils einen eigenen Bootloader mit. Die bekanntesten sind:

Windows NT 3.1 bis XP/2003: NT-Loader (NTLDR)

Windows Vista, Server 2008, Windows 7, Windows 8: BOOTMGR

Windows 10: verwendet einen eigenen signierten UEFI-Bootloader

Linux: meistens LILO oder GRUB

Ubuntu 9.10: GRUB 2

Mac OS X: BootX

iPhone/iPod/iPad: iBoot

Android: verwendet einen eigenen Bootloader

Sicherheitslücken

Anders als das alte BIOS kann UEFI bestimmte Gerätetreiber direkt aus dem Internet nachladen. Damit das nicht missbraucht wird, ist in UEFI ein Secure-Boot-Mechanismus enthalten, der das Booten auf einen vorher signierten Bootloader beschränkt. Dies soll die Sicherheit des Systems sicherstellen. Das hat allerdings den Nachteil, dass das Betriebssystem die Kontrolle über den Bootloader übernehmen kann.

So kann der signierte Bootloader von Microsoft beispielsweise beliebige Binaries nachladen, wodurch der Sicherheitsgewinn natürlich wieder zunichte gemacht wird. Auf Wunsch kann Microsoft das Booten sogar ganz verhindern, was natürlich ein beängstigender Gedanke ist.

Das Nachladen von Treiber stellt ebenfalls eine große Sicherheitslücke dar. Denn mit Hilfe von diesem Feature können Rootkits installiert werden. Damit gemeint ist eine Schadsoftware, die sich direkt im Kernel des Betriebssystem installiert, so dass Angreifer unbemerkt die volle Kontrolle über das System erhalten.