Enter-Taste verschafft Angreifern Root-Rechte auf verschlüsselten Systemen

Hält man auf einem verschlüsselten Linux-System bei der Passwort-Eingabe für 70 Sekunden die Enter-Taste gedrückt, öffnet sich eine Shell, die Befehle mit Root-Rechten ausführt. Klingt komisch, ist aber so.

In Pocket speichern vorlesen Druckansicht 687 Kommentare lesen
Enter-Taste verschafft Angreifern root-Rechte auf verschlüsselten Systemen
Lesezeit: 3 Min.
Von
  • Ronald Eikenberg
Inhaltsverzeichnis

Durch eine Lücke in Cryptsetup erhält man auf verschlüsselten Linux-Systemen erschreckend einfach eine Root-Shell: Es genügt, bei der Passwort-Eingabe für rund 70 Sekunden die Enter-Taste gedrückt zu halten. Anschließend erscheint eine BusyBox-Shell, welche die Ausführung zahlreicher Linux-Befehle mit Root-Rechten erlaubt. Betroffen sind Debian, Ubuntu, Fedora und Derivate.

Ein Angreifer kann auf diese Weise zwar auf das System zugreifen, die verschlüsselten Partitionen kann er ohne Kenntnis der passenden Passphrase jedoch weiterhin nicht entschlüsseln. Eine solche Root-Shell kann sich ein Angreifer in vielen Fällen auch dann verschaffen, wenn er von einem mitgebrachten Medium bootet.

Größere Auswirkungen hat die Lücke auf Systeme, deren Boot-Vorgang abgesichert wurde, um das Booten von externen Medien zu unterbinden – etwa, weil die Systeme öffentlich zugänglich sind. Ist das Booten von extern im BIOS deaktiviert und sind zudem BIOS und Bootloader mit einem Passwort geschützt, kann ein Angreifer nicht ohne Weiteres von seinem Datenträger booten.

In einer solchen Situation wird die Lücke für den Angreifer interessant: Er zwingt das System zu einem Reboot (etwa durch eine Unterbrechung der Stromversorgung), wartet auf das Passworteingabefeld von Cryptsetup und hält einfach die Enter-Taste für 70-80 Sekunden gedrückt – schon hat er Root. Über die Shell könnte er zum Beispiel die verschlüsselten Partitionen kopieren und versuchen, später in Ruhe das Passwort zu knacken. Er könnte aber auch einen Trojaner hinterlassen, der das Passwort mitschneidet, oder die Partitionen (und damit auch das System) schlicht zerstören.

Entdeckt haben die Schwachstelle mit der CVE-Nummer CVE-2016-4484 die Sicherheitsforscher Hector Marco & Ismael Ripoll von der Cybersecurity Group der Polytechnischen Universität Valencia. Ihren Angaben zufolge kann sie ein legitimer Nutzer, der nur eingeschränkte Rechte auf dem System hat, auch für eine Rechteausweitung missbrauchen.

Die Entdecker der Lücke schlagen einen Patch vor, der das System nach der gescheiterten Passwort-Eingabe in eine Endlosschleife laufen lässt.

Es handelt sich offenbar um einen Logikfehler in den beim Booten ausgeführten Skripten der Initial Ramdisk (initrd.img). Demnach hat der Nutzer auf einem x86-System insgesamt 93 Versuche, das korrekte Passwort zur Entschlüsselung der Systempartition einzugeben. Anschließend übernimmt eine allgemeine Fehlerroutine, welche die Shell routinemäßig als mögliche Rettungsmaßnahme aufspannt.

Laut den Forschern sind Debian, Ubuntu und möglicherweise viele Derivate betroffen. Auch Systeme, die wie Fedora Dracut statt initramfs einsetzen, sind anfällig. Heise Security konnte das Problem mit dem aktuellen Ubuntu 16.10 nachvollziehen, auf dem die LUKS-Verschlüsselung bei der Installation aktiviert wurde.

Die Forscher schlagen einen einfachen Patch vor, der dafür sorgt, dass die Boot-Sequenz in eine Endlosschleife läuft, wenn bei der Passworteingabe die maximale Anzahl der möglichen Versuche ausgereizt wurde. Dieser Schleife kann man nur durch einen Neustart entkommen. Ferner lässt sich das Problem lösen, indem man den Kernel-Eintrag in der Grub-Konfiguration um den Parameter "panic=5" ergänzt.

Update vom 16. November 2016, 18 Uhr: Dracut-Entwickler Harald Hoyer empfiehlt folgende Schritte, um Systeme mit Fedora, SUSE oder RHEL, auf denen dracut zum Einsatz kommt, abzusichern: Betroffene sollen ein BIOS-Passwort und ein grub-Passwort setzen und zudem den Kernel-Eintrag in der grub-Konfiguration um "rd.shell=0" ergänzen. Er weist darauf hin, dass der Anaconda-Installer letzteres automatisch erledigt, wenn man den Bootloader mit einem Passwort einrichtet. (rei)