Login


 
Newsletter
Werbung

Fr, 18. Dezember 2015, 15:02

Software::Security

GRUB-Passwortschutz ist Makulatur

Wer den Zugang zu seinem Rechner mit einem Passwort im Bootloader GRUB gesichert hat, sollte dringend ein Update vornehmen. Es erfordert lediglich 28-mal die Rückschritttaste und einmal die Eingabetaste, um die Passwortabfrage zu umgehen. Vorausgesetzt, man hat sich nicht verzählt.

Anordnung der Daten auf dem Stack von GRUB

Hector Marco, Ismael Ripoll

Anordnung der Daten auf dem Stack von GRUB

Die Sicherheitsforscher Hector Marco und Ismael Ripoll haben eine Sicherheitslücke im Bootloader GRUB entdeckt und in einem ausführlichen Artikel vorgestellt. Die Lücke, die die CVE-Nummer CVE-2015-8370 erhalten hat und inoffiziell »Back to 28« heißt, macht den Passwortschutz in GRUB nutzlos. Betroffen ist die vermutlich kleine Zahl von Anwendern, die ein Passwort in GRUB nutzt und deren Rechner anderen Personen zugänglich ist. Denn eine Ausnutzung der Lücke über das Netz ist ausgeschlossen, da GRUB keine Zugangsmöglichkeit anbietet. Betroffen sind alle Versionen seit GRUB 1.98, Updates stehen bereits zur Verfügung.

Ausgangspunkt der Lücke ist ein geradezu trivialer Zahlenunterlauf. Für die Passworteingabe stellt GRUB einen Puffer zur Verfügung, und die aktuelle Position im Puffer wird mit einer Variablen gezählt, die anfänglich auf 0 gesetzt wird. Drückt der Benutzer nun die Rückschritttaste, wird die Variable um 1 vermindert. Dabei haben die Entwickler aber vergessen, zu prüfen, ob sie bereits oder noch 0 ist. Der Benutzer kann die Variable somit auf einen beliebigen negativen Wert bringen, indem er einfach oft genug die Rückschritttaste drückt.

Wird anschließend die Eingabetaste gedrückt, überschreibt GRUB den »Rest« des Eingabepuffers mit Nullen. Wenn der Positionszähler jedoch einen negativen Wert hat, wird zusätzlich ein Speicherbereich vor dem Eingabepuffer überschrieben. Da wie bei C üblich lokale Variablen, hier einschließlich des Eingabepuffers, auf dem Stack liegen, wird also ein Teil des Stacks überschrieben. In den Bytes 17 bis 20 vor dem Eingabepuffer liegt die Rücksprungadresse der aktuell laufenden Funktion, die somit auf 0 gesetzt wird.

GRUB springt also nach dem Drücken von ENTER an die Adresse 0. Hier kommt nun die Eigenschaft der meisten modernen Prozessoren zum Tragen, dass Code als Daten und Daten als Code behandelt werden können. An Adresse 0 befinden sich Daten, und zwar die Interruptvektorrabelle (IVT) des Prozessors. Da GRUB keinen virtuellen Speicher und keinen Speicherschutz aktiviert, beginnt der Prozessor, die Daten ab Adresse 0 als Code zu interpretieren.

Die Forscher fanden nun heraus, dass nach der Ausführung einiger relativ bedeutungsloser Befehle der Prozessor auf eine Rücksprung-Anweisung stößt, deren Zieladresse von Register esi abhängt. In diesem Register allerdings steht die Zahl der Rückschritttastendrücke mit negativem Vorzeichen. Hat man die Rückschritttaste genau 28-mal gedrückt, führt der Sprung zurück in den GRUB-Code und zur Ausführung der GRUB Rescue-Shell. Damit ist der Rechner bereits in der Hand des Angreifers.

Zusätzlichen Komfort kann man sich schaffen, indem man in den vollständigen Edit-Modus von GRUB wechselt. An dieser Stelle würde GRUB erneut nach dem Passwort fragen, da zuvor ja kein gültiges Passwort eingegeben wurde. Die GRUB Rescue-Shell bietet jedoch ein Kommando, um beliebige Speicherstellen zu ändern (write_word). Da GRUB keinen Speicherschutz und auch keine Adressen-Randomisierung durchgeführt hat, gibt es eine feste Adresse, die man einfach ändern muss, um GRUB glauben zu machen, das Passwort eingegeben zu haben, und damit steht der vollständige Bootloader mit all seinen Befehlen zur Verfügung.

Wie die Autoren schreiben, muss der Weg zur Umgehung des Passwortschutzes je nach BIOS unterschiedlich gewählt werden. Bei ihren Tests unter Qemu waren genau 28 Drücke der Rückschritttaste notwendig. Auf anderen Rechnern könnte bereits eine Variation dieser Zahl zum Erfolg führen. Die offensichtliche Gegenmaßnahme, die Korrektur des Fehlers im GRUB-Code, wurde bereits vorgestellt. GRUB könnte jedoch darüber hinaus noch etliche weitere Maßnahmen ergreifen, um Angreifern das Leben schwerer zu machen. Alle diese Maßnahmen sind gut bekannt, sie wurden nur bisher vernachlässigt.

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