UEFI-BIOS mit bekannt unsicherem Code gespickt
In einem BIOS-Update fanden Experten mehrere OpenSSL-Versionen, teils mit uralten SicherheitslĂĽcken. Das wirft ein Schlaglicht auf Risiken von PC-Firmware.
(Bild: c’t Magazin)
Die mehr als 20 Megabyte Binärcode eines modernen UEFI-BIOS enthalten mehrere Hundert ausführbare (EFI-)Programme. Viele davon haben Sicherheitslücken, von denen einige schon seit Jahren bekannt sind. Das belegen Experten der Firma Binarly am Beispiel eines aktuellen BIOS-Updates für ein Business-Notebook aus der Baureihe Lenovo ThinkPad.
Die Binarly-Gründer Alex Matrosov und Claudiu Teodorescu haben den BIOS-Binärcode gezielt nach Varianten des Open-Source-Tools OpenSSL durchforstet. OpenSSL dient im offengelegten EFI Design Kit II (EDK 2), welches die Quellcode-Basis vieler UEFI-BIOS-Implementierungen bildet, als Allzweck-Werkzeug für kryptrografische Sicherheitsfunktionen. Denn das UEFI-Codemodul Crypto Package (CryptoPkg) dient unter anderem als Wrapper für OpenSSL-Funktionen.
Videos by heise
OpenSSL-VersionsfĂĽlle
Ein real existierendes UEFI-BIOS enthält allerdings UEFI-Code und BLOBs von unterschiedlichen Firmen und Zulieferern. Und solche BLOBs sind teilweise schon älter oder basieren auf älterem Quellcode.
Der Online-Dienst Virustotal.com kann bestimmte BIOS-Images "zerlegen" und zeigte in einem kurzen Versuch mit einem Lenovo-BIOS-Image ĂĽber 600 einzelne Module an.
Die Binarly-Experten fanden jedenfalls in dem untersuchten BIOS-Image, das Lenovo auch ĂĽber den Linux Vendor Firmware Service (LVFS) bereitstellt, 27 Funktionen mit drei verschiedenen OpenSSL-Versionen. In den meisten steckte OpenSSL 1.0.2j aus dem Jahr 2018, aber es fanden sich auch OpenSSL 1.0.0a und 0.9.8zb aus dem Jahr 2014.
In OpenSSL 0.9.8zb stecken laut Binarly seit acht Jahren bekannte SicherheitslĂĽcken. Pikanterweise dient das Codemodul "InfineonTpmUpdateDxe" mit dieser OpenSSL-Version wohl dazu, Firmware-Updates fĂĽr das Trusted Platform Module (TPM) einzuspielen, also fĂĽr den Sicherheitschip, der als Hardware-Anker (Root of Trust) fĂĽr wichtige Sicherheitsfunktionen dient.
UEFI-Code-Module mit OpenSSL-Versionen laut Binarly
UEFI-Code-Module
OpenSSL-Version
DxeCore, Tcg2Dxe, TcgDxe, VariableSmm, SecurityStubDxe, IpSecDxe, IScsiDxe, Setup, PlatformMilestoneHookDxe, PlatformMilestoneHookSmm, LenovoTpmConfigDxe, PlatformInit, PeimBoardInit, Tcg2Pei, TcgPei, PlatformInitPreMem, LenovoPcdInit, LenovoVerifiedBootPei
OpenSSL 1.0.2j (2018)
FlashUtilitySmm, LenovoCryptService, LenovoCryptServiceSmm, LenovoSvpManagerSmm, LenovoSetupAutomationSmm, LenovoSetupUnderOsSmm, LenovoSecureKeySmm, LenovoDriveEraseSmm
OpenSSL 1.0.0a (2014)
InfineonTpmUpdateDxe
OpenSSL 0.9.8zb (2014)
DXE = Driver Execution Environment, SMM = System Management Mode
PEI = Pre-EFI Initialization, PEIM = Pre-EFI Initialization Module
| UEFI-Code-Module mit OpenSSL-Versionen laut Binarly | |
| UEFI-Code-Module | OpenSSL-Version |
| DxeCore, Tcg2Dxe, TcgDxe, VariableSmm, SecurityStubDxe, IpSecDxe, IScsiDxe, Setup, PlatformMilestoneHookDxe, PlatformMilestoneHookSmm, LenovoTpmConfigDxe, PlatformInit, PeimBoardInit, Tcg2Pei, TcgPei, PlatformInitPreMem, LenovoPcdInit, LenovoVerifiedBootPei | OpenSSL 1.0.2j (2018) |
| FlashUtilitySmm, LenovoCryptService, LenovoCryptServiceSmm, LenovoSvpManagerSmm, LenovoSetupAutomationSmm, LenovoSetupUnderOsSmm, LenovoSecureKeySmm, LenovoDriveEraseSmm | OpenSSL 1.0.0a (2014) |
| InfineonTpmUpdateDxe | OpenSSL 0.9.8zb (2014) |
| DXE = Driver Execution Environment, SMM = System Management Mode | |
| PEI = Pre-EFI Initialization, PEIM = Pre-EFI Initialization Module | |
Firmware-Wartungskonzept defekt
Laut Binarly ist das OpenSSL-Versionsgewirr in einem real existierenden BIOS-Update nur eines von zahlreichen Beispielen dafür, dass das gängige Konzept zur Pflege von (UEFI-)Firmware nicht funktioniert: "The Firmware Supply-Chain Security Is Broken". Dadurch werden bekannte Sicherheitslücken zum Teil jahrelang nicht geschlossen.
- Hören Sie dazu auch im Podcast Bit-Rauschen: Weshalb es Alternativen zum UEFI-BIOS so schwer haben
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier ein externer Podcast (Podigee GmbH) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Podigee GmbH) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
(ciw)