Dynamische Analyse von Android Apps
Ralph Meier
So schützen Sie Ihr BIOS
Im Rahmen dieses Artikels werden wir nicht tiefer ins Detail des Startvorgangs eines Computers eingehen, sondern widmen uns dem BIOS, dem UEFI, deren Unterschiede und Härtungsmöglichkeiten.
Das BIOS war ursprünglich für 32Bit-Systeme ausgelegt. Aufgrund Anforderungen von neuer Hardware musste ein Nachfolger her, mit welchem das Zusammenspiel mit 64Bit-Systemen besser funktionierte. In den 1990er Jahre entwickelte Intel zusammen mit HP die Itanium-Architektur, welche als Erstes das von Intel entwickelte Extensible Firmware Interface (EFI) einsetzte. Mit dem EFI fielen die Speicher- und Verarbeitungsbeschränkungen des BIOS aufgrund 16Bit-Rechenmodus, begrenzter Systemspeicher und die mühevolle Programmierung in Assembler weg. Intel hat EFI-Version 1.10 ins UEFI-Forum – einem Industriekonsortium bestehend aus Herstellern von Chipsätzen, Hardware, Firmware und Betriebssystemen – hineingebracht. In diesem Industriekonsortium entstand das Unified Extensible Firmware Interface (UEFI) und bis heute wird die Entwicklung der UEFI-Standards davon verwaltet. Seit Mitte der 2010er Jahre gilt UEFI als Standard und wird teilweise auch als UEFI BIOS bezeichnet. Wie das BIOS wird auch UEFI vom Mainboard-Hersteller auf dem Mainboard installiert. Das Betriebssystem muss UEFI unterstützen, sonst ist das Zusammenspiel nicht möglich. Bei Windows erfolgte dies im Jahr 2008 mit Windows Vista Service Pack 1.
Bis die Unterstützung von UEFI im gewünschten Betriebssystem vorhanden war, konnte das Compatibility Support Module (CSM) des UEFI aktiviert werden, womit Betriebssysteme ohne Support von UEFI weiterhin auf Mainboards, welche bereits UEFI einsetzten, genutzt werden konnten. CSM emulierte das BIOS und war für die Abwärtskompatibilität für ältere Hardware, ältere Betriebssysteme und auch 32Bit-Systeme zuständig. Bei 64Bit-Systemen mit UEFI-Support sollte es nicht verwendet werden, da sonst gewisse UEFI-Funktionalitäten verloren gehen. Somit sollte CSM, sofern die Option im UEFI vorhanden ist, vor der Installation eines 64Bit-Betriebsystems deaktiviert werden. Im Jahr 2020 wurde CSM schliesslich aus UEFI entfernt.
Es folgt eine Übersicht einiger Unterschiede zwischen dem BIOS und dem UEFI:
Unterschiede | BIOS | UEFI |
---|---|---|
Entwickelt für | 32Bit-Systeme | 64Bit-Systeme |
Unterstützt Bootmedien | < 2 Terabyte | < 9.4 Zettabyte |
Benutzeroberfläche | DOS-Stil | Modernes GUI mit Maussteuerung |
Partitionstabelle | Master Boot Record | GUID-Partitionstabelle |
Zudem hat UEFI die Möglichkeit, Hardwaretreiber aus dem Internet zu laden. Es ist schneller als das BIOS und beinhaltet einige verbesserte Sicherheitsfunktionen, welche im Kapitel UEFI Hardening erwähnt werden. Seit Windows 8 wird der Productkey von Windows im UEFI gespeichert und muss bei einer Neuinstallation nicht mehr von einem Sticker auf dem Computer abgetippt werden.
Im UEFI gibt es diverse Konfigurationsmöglichkeiten wie das Aktivieren und Deaktivieren des Zugriffs auf die verschiedenen I/O Schnittstellen des Geräts. Damit können I/O Schnittstellen, welche zwar vorhanden sind, aber vom Benutzer nie benötigt werden, deaktiviert werden. Falls sie zu einem späteren Zeitpunkt benötigt werden, können sie auf einfache Weise im UEFI wieder aktiviert werden. Es gibt weitere Konfigurationsmöglichkeiten im Bereich Netzwerk, wie Wake On Lan (WOL) Einstellungen, UEFI IPv4/IPv6 Network Stack, MAC Address Pass Through und einige weitere. Diverse USB- und Thunderbolt-Einstellungen, Maus- und Tastatur-Einstellungen, Display-Einstellungen, Einstellungen zur Stromversorgung und Standby-Einstellungen. Ausserdem kann das Systemdatum und die Systemzeit angepasst werden, was im Fall einer alten, beziehungsweise beim Start häufig leeren CMOS-Batterie der Fall sein kann. Dann sollte diese durch eine neue CMOS-Batterie ersetzt werden. Es können diverse Passwörter gesetzt werden: Ein Supervisor-Passwort, welches eingegeben werden muss, um ins UEFI einsteigen zu können und Änderungen vorzunehmen, ein Power-On-Passwort oder Festplattenpasswörter. Zudem können noch eine Passwortmindestlänge und weitere Konfigurationen festgelegt werden. Im UEFI kann definiert werden, über welche Schnittstellen, beziehungsweise von welchen Speichermedien gebootet werden kann sowie deren Boot-Reihenfolge. Es beherbergt diverse Virtualisierungseinstellungen, welche sich je nach Hardware unterscheiden. Es sind noch weitere Security Konfigurationsmöglichkeiten als das Festlegen diverser Passwörter vorhanden, wie zum Beispiel Memory Protection. Mehr darüber folgt im untenstehenden Kapitel UEFI Hardening. Da das UEFI je nach Produkt- oder Mainboard-Hersteller anders aufgebaut ist, kann es weitere eigene Konfigurationsmöglichkeiten enthalten. Bei Mainboards, welche primär für den Gamingbereich gedacht sind, findet man oftmals Konfigurationsmöglichkeiten für RGB-Beleuchtung oder Overclocking.
Nebst dem legacy BIOS und UEFI gibt es noch weitere BIOS-Alternativen, die verschiedene Einsatzzwecke besitzen und für andere Hardware entwickelt worden sind.
The Universal Boot Loader (Das U-Boot) wird vor allem bei Mikrocontrollern im Embedded Systems Bereich eingesetzt. Er bietet flexible Konfigurationsmöglichkeiten während des Kompilierens und via Kommandozeile kann das Verhalten ebenfalls während der Laufzeit beeinflusst werden. U-Boot wurde in seinen Anfängen für den PowerPC entwickelt. Inzwischen gibt es verschiedene Projekte für unterschiedliche Prozessoren wie zum Beispiel für ARM das ARMboot.
Im Jahr 1999 hat die Entwicklung des freien und quelloffenen LinuxBIOS angefangen, was später zum heutigen Coreboot umbenannt wurde. Coreboot fokussiert sich auf die Initialisierung der notwendigen Komponenten für den Bootvorgang des Betriebssystems und gibt die Kontrolle so früh wie möglich an das Betriebssystem ab. Der Fokus von Coreboot liegt vorallem auf Linux Distributionen.
Google liefert seine Chromebooks mit Coreboot aus. Seit einigen Monaten wird das MSI Mainboard PRO Z690-A mit der Coreboot-Firmware Dasharo angeboten. Damit lässt sich ein PC ohne UEFI betreiben, und zwar auch mit Windows 11. Dasharo besteht neben Coreboot noch aus einem Open-Source-UEFI-Teil. Damit erreichen sie Kompatibilität mit zahlreichen Grafikkarten mit UEFI-Firmware, UEFI Secure Boot und die Initialisierung vom Trusted Platform Module (TPM).
Coreboot wird ebenfalls bei sensiblen Anwendungen im Industriebereich oder bei Serverboards des VPN-Dienstleisters Mullvad eingesetzt. Distributionen, welche vor allem auf hohe Sicherheit fokussiert sind, wie Qubes OS, achten bei der Hardware-Zertifizierung unter anderem auf den Support von quelloffenem BIOS wie Coreboot.
Ein Nachteil von Coreboot ist, dass es keine einheitlichen Coreboot-Images gibt. Dies bedeutet, dass für jedes Mainboard die Coreboot-Firmware angepasst werden muss, und dies benötigt technische Informationen, welche oft nicht öffentlich zugänglich sind. Deshalb werden Firmware-Blobs eingesetzt, damit Intel oder AMD CPUs zum Beispiel den Arbeitsspeicher ansteuern können. Durch das Hinzufügen von nicht quelloffenem Code nimmt die Trusted Code Base ab, was einer der Vorzüge von Coreboot mindert. Aus diesem Grund ist auch die Auswahl an kompatiblen Komponenten beschränkt. Oftmals gibt es beim Einsatz von Coreboot auch keine eingebaute Updatefunktion. Dies, weil die meisten Mainboard mit UEFI ausgeliefert werden und mit dem Umstieg von UEFI zu Coreboot keine Herstellerupdates mehr erhalten. Spezifische Mainboard-Funktionen beziehungsweise Einstellungen wie RGB-Beleuchtung und Übertaktungsfunktionen fehlen in Coreboot ebenfalls.
Wenn das UEFI nicht ordnungsgemäss geschützt ist, macht man es einem Angreifer mit physischem Zugriff einfach, ein fremdes Betriebssystem auf dem Zielcomputer zu installieren und damit eine nicht verschlüsselte interne Festplatte auszulesen.
Zuerst sollte ein starkes und komplexes Passwort für das UEFI gesetzt werden, damit keine Änderungen durch unbefugte Drittpersonen möglich sind. Es gibt UEFI mit einem Lesemodus, welcher ohne Passwort zugänglich ist. Dabei ist eine eingeschränkte Sicht auf die UEFI-Konfiguration möglich.
Die Options Secure Boot sollte im UEFI aktiviert werden, damit nur noch signierte Bootloader gebootet werden. Bei Windows wird dies seit der Einführung von Windows 8 unterstützt.
Das UEFI sollte regelmässig auf Updates geprüft und aktualisiert werden, somit können festgestellte Schwachstellen schnell behoben werden. Das Programm, um das UEFI zu aktualisieren, kann entweder beim Gerätehersteller oder dem Mainboard-Hersteller heruntergeladen werden, sofern das UEFI weiterhin vom Hersteller eingesetzt wird. Im Fall von Lenovo kann dazu das Programm Lenovo System Update verwendet werden.
Wenn die Option Botton Cover Tamper Detection aktiviert ist, wird das UEFI-Passwort für den Bootvorgang eines Laptops benötigt, sobald eine Geräteabdeckung fehlt oder geöffnet wurde. Hierbei gibt es Unterschiede zwischen Geräte und Hersteller. Teilweise wird zwischen Abdeckung hinter dem Laptopbildschirm, Abdeckung rund um den Laptopbildschirm, Tastaturabdeckung und Abdeckung an der Gerätunterseite unterschieden.
Input- und Output-Schnittstellen des Geräts, welche nicht verwendet oder benötigt werden, sollten deaktiviert werden. Somit wird der Angriffsvektor nicht unnötig erhöht.
In dieser Kategorie kann festgelegt werden, wer das UEFI flashen darf; alle Benutzer oder ausschliesslich Benutzer mit dem UEFI-Passwort. Zudem kann festgelegt werden, ob ein Rollback auf eine vorherige UEFI-Version, sowie die UEFI-Aktualisierung über Windows erlaubt ist.
Hierbei handelt es sich um Sicherheitsmassnahmen gegen Buffer Overflow-Angriffe. Die sich darunter befindenden Konfigurationsoptionen wie die Execution Prevention sollten aktiviert werden.
Dabei geht es um die Vermeidung von Direct-Memory-Access-Angriffe (DMA). Das sind Seitenkanalangriffe, welche über High-Speed-Schnittstellen mit direktem Systemspeicherzugriff, wie unter anderem Thunderbolt, USB4 oder PCI Express, durchgeführt werden. Weitere Details zu DMA-Angriffe sind im Artikel Angriffe über Peripheriegeräte zu finden.
Es gibt noch einige Härtungskonfigurationen, welche indirekt mit dem UEFI beziehungsweise dem Start des Computers zusammenhängen, die jedoch nicht komplett im UEFI konfiguriert werden können.
Es wird dringend empfohlen, eine Festplattenverschlüsselung einzusetzen, wie beispielsweise Windows mit seinem hauseigenen Bitlocker. Dieser funktioniert mit dem Trusted Platform Module (TPM), welches für einen erweiterten Schutz zusätzlich mit einem Startup-Pin geschützt werden kann.
Je nach UEFI gibt es abgesehen vom UEFI-Passwort noch die Möglichkeit, weitere Passwörter zu setzen, wie beispielsweise Passwörter für Festplatten oder zum Start des Computers.
Um nach einer Fehlkonfiguration des UEFI, einer leeren CMOS-Batterie oder sonstigem Ausfall des UEFI eine schnelle Wiederherstellung durchführen zu können, lohnt es sich, ein UEFI-Backup durchzuführen. Dies kann je nach eingesetztem UEFI direkt darin durchgeführt werden, oder alternativ mit dazugehörigen Hilfsprogrammen.
Das BIOS ist nicht nur der Anfangspunkt eines Computerstarts, sondern gleichzeitig ein einfaches Einfalltor für Angreifer mit physischem Zugriff auf das Zielgerät. Deshalb ist es wichtig, das eingesetzte BIOS auf dem aktuellen Stand zu halten und genügend Härtungseinstellungen vorzunehmen. Der UEFI-Passwortschutz, eine aktive Festplattenverschlüsselung und Secure Boot bilden dabei ein gutes Fundament, auf welchem mit zusätzlichen Sicherheitseinstellungen aufgebaut werden sollte. Am Schluss ist es jedoch auch eine Abwägung zwischen Sicherheit und Benutzbarkeit für den einzelnen Benutzer oder deren Gerätverwalter.
Unsere Spezialisten kontaktieren Sie gern!
Ralph Meier
Ralph Meier
Ralph Meier
Ralph Meier
Unsere Spezialisten kontaktieren Sie gern!