Root-Rechte mittels Page Tables
Ein weiterer möglicher Angriff betrifft die Rechteverwaltung von Linux. Mit einigen Tricks gelingt es, als Nutzer Root-Rechte zu erlangen. Dafür versucht Seaborn, mit Hilfe von Bitflips die Kontrolle über einen Page Table des eigenen Prozesses zu erlangen. In den Page Tables ist die Zuordnung des physikalischen Speichers zum virtuellen Speicher eines Prozesses geregelt. Gelingt dem Angreifer die Kontrolle über einen Page Table, kann er nach Belieben den Speicher des Systems manipulieren.
Seaborn nutzt für seinen Angriff ein Suid-Programm. Suid-Programme sind vom Nutzer ausführbare Programme, die mit Root-Rechten laufen. Auf vielen Systemen ist das Ping-Tool ein Suid-Programm. Durch die Kontrolle des Arbeitsspeichers kann der Angreifer den Code des entsprechenden Programms überschreiben und somit die Kontrolle über das System erlangen.
Der konkrete Angriff wurde unter Linux umgesetzt. Seaborn betont aber, dass er davon ausgehe, dass sich der Angriff ähnlich auch auf anderen Betriebssystemen umsetzen ließe.
Betriebssystem kann Cache-Flush nicht verhindern
Einen ähnlichen Ausweg wie bei der NaCl-Sandbox gibt es für Betriebssysteme nicht: Es ist nicht vorgesehen, dass die Ausführung des Clflush-Befehls einem Nutzer verboten wird. Seaborn findet es überraschend, dass Clflush von Nutzern generell ausgeführt werden kann, denn eigentlich gibt es außerhalb des Kernel-Codes kaum Gründe, diesen Befehl aufzurufen. Er leert den gesamten Memory-Write-Cache und sorgt dafür, dass ein Schreibzugriff auf den Arbeitsspeicher vollendet wird. Auch in virtualisierten Systemen lässt sich der Aufruf von Clflush nicht verhindern.
Der GrSecurity-Patch für Linux verhindert den Zugriff auf die Pagemaps von Nutzerprozessen. Das dürfte zumindest die hier beschriebene Angriffsstrategie verhindern und führt auch dazu, dass ein zur Verfügung gestelltes Test-Tool nicht funktioniert. Eine wirkliche Sicherheitsgarantie ist das allerdings nicht.
Lösung ohne Hardwareaustausch kaum möglich
Seaborn diskutiert mehrere Möglichkeiten, wie sich das Rowhammer-Problem verhindern ließe. Der Hardwarebranche ist das Problem seit längerem bekannt. Der kürzlich veröffentlichte LPDDR4-Standard für DRAM-Speicher schlägt bereits Methoden vor, wie man das Problem im Controller des Arbeitsspeichers verhindern kann. Bei einem DRAM-Hersteller fand Seaborn im Datenblatt Hinweise auf Methoden, die Rowhammer-Probleme verhindern sollen.
Obwohl das Problem in der Vergangenheit schon öfters diskutiert wurde, ist es bislang praktisch nicht als Sicherheitsproblem wahrgenommen worden. Außer dem eingangs erwähnten Papier von der Carnegie Mellon University und von Intel erwähnt keine bisherige Veröffentlichung mögliche Angriffe. Derartige Bitflips wurden lediglich als Risiko für die Zuverlässigkeit von PCs wahrgenommen.
Bei einem Laptop fand Seaborn heraus, dass durch ein Bios-Update das Problem deutlich verzögert auftrat. Während ein Angriff mit dem alten Bios innerhalb von wenigen Minuten funktionierte, dauerte er nach dem Update 40 Minuten. Seaborn vermutete, dass das neue Bios die Refresh-Zyklen des Arbeitsspeichers erhöht hatte und somit den Angriff erschwerte. Eine wirkliche Lösung ist eine Verzögerung des Angriffs natürlich nicht.
Von 29 getesteten handelsüblichen Laptops waren 15 für das Rowhammer-Problem anfällig. Seaborn erwähnt allerdings, dass seine Tests keine Garantie liefern könnten, dass die Geräte nicht betroffen seien. Die Ergebnisse hat er nur anonymisiert veröffentlicht.
ECC-Speicher hilft vielleicht
Bei Tests auf verschiedenen Desktop-PCs mit ECC-Speicher ließ sich das Problem nicht reproduzieren. Die ECC-Funktion von DRAM-Chips garantiert die Korrektheit der Daten im Arbeitsspeicher anhand von Prüfbits. ECC-Speicher kommt vor allem in teureren PCs zum Einsatz. Wenn sich herausstellt, dass ECC-Speicher generell nicht betroffen ist, könnte das die Lösung für das Rowhammer-Problem sein. Eine einfache Methode, um zu prüfen, ob ECC wirklich aktiviert ist, gibt es allerdings nicht.
Ein Test-Tool wurde auf Github veröffentlicht. Das Tool führt keinen vollständigen Angriff durch. Es versucht lediglich, eine Speicherstelle zu manipulieren und testet, ob ein Bit gekippt wurde. Den Rowhammer-Test sollte man jedoch nur mit Bedacht einsetzen: Zufällige Veränderungen im Arbeitsspeicher könnten zu Abstürzen, undefiniertem Verhalten oder in ungünstigen Fällen auch zu korrupten Daten auf der Festplatte führen.
Spannend dürfte werden, wie die Hardwareindustrie mit dem Problem umgeht. Bislang scheint es keine zuverlässige Möglichkeit zu geben, das Problem durch Bios-Updates oder durch Änderungen am Betriebssystem zu beheben. Eigentlich müssten sämtliche betroffenen Arbeitsspeicherchips ersetzt werden.
Rowhammer: RAM-Chips geben Angreifern Root-Rechte |
- 1
- 2
Was, wenn man jedem Programm im Ram einen Puffer nach links und rechts von einem Byte...
Nebenbei bemerkt: Es gibt kaum Speicherrriegel die Timings erlauben die niedriger...
Wenn du ECC RAM mit DDR3 1600 CL9 kaufst bist du schon vorne mit dabei. Die meisten DDR3...
Lies den Artikel und dir wird ein Licht auf gehen. Ja es wird getestet, ja es war schon...