Firmware-Schaden

UEFI-Funktionen schuld an Notebook-Defekten

Trends & News | News

Manche Samsung-Notebooks gehen kaputt, wenn der Linux-Kernel oder Windows-Programme Informationen bei der UEFI-Firmware hinterlegen.

Video: Anlegen von UEFI-Variablen ruiniert manche Samsung-Notebooks

Einige aktuelle Samsung-Notebooks starten aufgrund eines Firmware-Fehlers nicht mehr, wenn Betriebssysteme Informationen bei der UEFI-Firmware hinterlegen. Ein böswilliges Windows-Programm oder schon ein Absturz von Linux kann die Notebooks so zum Reparaturfall machen, wie wir bei einem Test selbst erfahren konnten – unter dem c’t-Link am Artikelende finden Sie ein Video, das den Prozess zeigt.

Bekannt geworden ist die Problematik Ende Januar durch einen Fehlerbericht in Ubuntus Bug-Tracker. Dort hatten sich Besitzer verschiedener Samsung-Notebooks zusammengefunden, die ihre Geräte durch den Start von Ubuntu 12.04 oder 12.10 ruiniert hatten [1]. Der anfangs als Verursacher geltende Linux-Treiber „samsung-laptop“ ist aber nur indirekt schuld. Seine etwas ungewöhnliche, aber auch von anderen Linux-Treibern genutzte Arbeitsweise führt auf betroffenen Samsung-Notebooks nämlich lediglich zu einem Absturz, wenn Linux per UEFI startet. Der Kernel erkennt das drohende Ende allerdings und nutzt UEFI-Mechanismen, um Informationen in einer UEFI-Variable zu hinterlegen; die Firmware speichert diese Informationen, damit sie Neustarts übersteht und so eine spätere Untersuchung der Absturzursache ermöglicht.

Diese UEFI-Variable mit dem typischerweise 10 KByte großen Crash Dump ist der eigentliche Grund, warum die betroffenen Notebooks fortan den Dienst verweigern. Teilweise ist aber eine größer Datenmenge nötig, um den Fehler auszulösen. Das zeigte ein Test, bei dem wir ein Samsung 300E5C-S04 durch ein als Administrator ausgeführtes Windows-Programm unbrauchbar machten, das 56 jeweils einen Kilobyte große UEFI-Variablen angelegt hat. Dessen Quellcode besteht aus lediglich 50 Zeilen C-Code; er nutzt Windows-Funktionen zum Setzen der Variablen und ist auch für Programmier-Laien verständlich.

Das Programm stammt aus dem Blog des Linux-Kernel-Entwicklers Matthew Garrett. Bei seinem Gerät reichten schon 48 solcher UEFI-Variablen, um ein Notebook in einen Briefbeschwerer zu verwandeln. Weder Garrett noch wir konnten die Geräte durch Entfernen der Puffer-Batterie des Mainboards wiederbeleben, da die Geräte die UEFI-Variablen in einem nichtflüchtigen Speicher ablegen.

Wir haben Garretts Programm testweise auf einer Reihe anderer PCs und Notebooks mit UEFI-Firmware ausführen können, ohne dass diese Schaden nahmen. Unter diesen Systemen war leider keines, das wie das Samsung-Notebook den von Phoenix zugekauften UEFI-Firmware-Kern „SecureCore Tiano (SCT)“ nutzt. Gut möglich, dass schon dieser die Fehlerursache enthält, denn zwei Leser berichteten, das Anlegen von Boot-Einträgen mit Linux hätte die Firmware so gestört, dass sich das Setup nicht mehr aufrufen ließ. Der eine Leser hat ein Samsung 300E5C-A05DE, der andere jedoch ein mit Phoenix-Firmware ausgestattetes Fujitsu Lifebook AH532/G52.

Verursacher

Phoenix Technologies hat auf Nachfragen zur Problematik nicht reagiert. Samsung hat sich erst gemeldet, nachdem wir betonten, der Drucktermin dieser c’t sei nur noch Stunden entfernt. Dem Statement zufolge ist das Unternehmen „dankbar für Hinweise aus der Community“ und prüft, inwieweit das durch den Samsung-Laptop-Treiber von Linux ausgelöste Verhalten auch unter Windows-Systemen auftritt; zu diesem Zeitpunkt war allerdings bereits seit mehr als einer Woche bekannt, wie sich die Geräte mit Garretts Programm auch unter Windows ruinieren lassen. Eine Liste potenziell betroffener Geräte konnte oder wollte Samsung Deutschland uns nicht geben – laut Berichten von Linux-Nutzern sind offenbar mindestens die Serien 300E5C, 530U3C, 700Z3C, 700Z5C, 700Z7C und 900X4C anfällig.

Die Linux-Community hat derweil in Ubuntu 12.04.2 und den Linux-Kernel 3.8 (siehe S. 48) Code eingebaut, durch den der die Abstürze verursachende Samsung-Laptop-Treiber nicht aktiv wird, wenn Linux per UEFI gestartet wurde. Es besteht also weiterhin Gefahr, denn andere Abstürze, die ein per UEFI gestartetes Linux zu einem Crash Dump veranlassen, dürften Notebooks weiterhin beschädigen; zudem könnten Autoren von Windows-Malware auf die Idee kommen, Schadfunktionen einzubauen, um die Notebooks zu beschädigen. Der einzig wirksame Schutz ist der Betrieb von Linux und Windows im BIOS-Modus; dazu muss man die Betriebssysteme über das CSM (Compatibility Support Module) der UEFI-Firmware starten.

Das ist leichter gesagt als getan, da im UEFI-Modus installierte Betriebssysteme nicht per CSM booten. Linux-Anwender, die sich mit Boot-Mechanismen, Partitionierung und Boot-Loadern sehr gut auskennen, könnten eine per UEFI installierte Linux-Distribution auf den Start per CSM umstellen. Windows lässt sich nicht umkonfigurieren, daher ist dort eine Neuinstallation nötig. Dabei muss man den Systemdatenträger neu partitionieren, da Microsofts Betriebssystem beim Boot per UEFI eine per GPT eingeteilte Platte erwartet; beim Start via CMS oder BIOS muss es ein MBR sein. Das ist ein immenser Aufwand, den Samsung Anwendern durch eine Firmware-Korrektur ersparen könnte. (thl)

Literatur
  1. [1] Thorsten Leemhuis, Ausgeknipst, UEFI-Start von Linux beschädigt Samsung-Notebooks, c’t 5/13, S. 30

Artikel kostenlos herunterladen

weiterführende Links

Infos zum Artikel

Kapitel
  1. Verursacher
0Kommentare
Kommentieren
Kommentar verfassen
Anzeige
Videos

Anzeige

weiterführende Links
  1. Zu diesem Artikel hat die Redaktion noch folgendes zusammengestellt:

    Links (2)

Anzeige