Login


 
Newsletter
Werbung

Di, 23. Februar 2016, 08:38

Software::Kernel

Linux 4.5 will UEFI-Variablen besser schützen

Das Löschen bestimmter UEFI-Variablen kann manche Rechner nicht mehr startbar machen. Das kommende Linux 4.5 ergreift Maßnahmen dagegen, die im Bedarfsfall umgangen werden können, aber gegen versehentliches Löschen schützen.

Larry Ewing

Die Qualität von UEFI ist, wenig überraschend, keinen Deut besser als die des PC-BIOS. Wenn man bestimmten Implementierungen bestimmte Variablen löscht, die im nichtflüchtigen Speicher abgelegt sind, kann es nicht mehr booten und das Gerät wird zum Reparaturfall.

Nachdem die Linux-Kernel-Entwickler mehrere entsprechende Fehlerberichte erhalten haben, wurde klar, dass hier massive Fehler im UEFI vorliegen. Bis die Hersteller diese allerdings beheben, kann noch viel Zeit vergehen. Daher entwickelte Peter Jones von Red Hat eine Änderung, die in Linux 4.5 in etwas einem Monat offiziell kommen wird.

Das Problem ist, dass der Linux-Kernel die UEFI-Variablen den Programmen zugänglich machen kann, auch wenn dazu in der Regel Root-Rechte benötigt werden. Dazu muss das Kernel-Modul efivarfs geladen werden, die Variablen erscheinen dann nach einem entsprechenden Mount-Befehl unter /sys/firmware/efi/efivars. Die Änderung dieser Variablen kann für Bootloader-Konfigurationsprogramme und möglicherweise noch einige andere Programme nötig sein. Ein versehentlich oder mutwillig ausgelöstes rm -rf * in diesem Verzeichnis oder oberhalb davon kann fatale Folgen haben, wie einige Benutzer jetzt bestätigen können.

Um das Ändern und Löschen der Variablen im Normalfall zu verhindern, greifen die Kernel-Entwickler zu einer Dateifunktionalität, die nicht allen Nutzern bekannten sein dürfte, den Dateiattributen. Diese sind in den Manpages zu lsattr und chattr dokumentiert. Die Änderung besteht darin, die UEFI-Variablen mit dem Attribut »immutable« zu versehen. Davon ausgenommen sind einige Variablen, die in einer Whitelist aufgezählt werden und als ungefährlich gelten. Das Attribut »immutable« macht eine Datei unveränderlich, selbst für Root. Sollte jedoch der Bedarf bestehen, eine so geschützte Datei doch zu ändern, kann der Root-Benutzer das Attribut entfernen. Da die UEFI-Variablen aber in einem Pseudodateisystem liegen und ihre Attribute nur im RAM existieren, wird das »immutable« beim nächsten Reboot wieder hergestellt.

Diese Änderung wird nach Ansicht der Entwickler die Variablen ausreichend schützen, ohne den lesenden Zugriff zu stören. Beim Schreiben kann es dagegen sein, dass man manuell eingreifen muss, oder die entsprechenden Werkzeuge müssen erweitert werden, um »immutable« automatisiert auszuschalten.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung