Abo
  • Services:

Rowhammer: Speicher-Bitflips mittels Javascript

Fehlerhaft arbeitende Speicherchips sind möglicherweise ein größeres Sicherheitsrisiko als bisher gedacht. Einem Forscherteam ist es nun gelungen, einen sogenannten Rowhammer-Angriff mittels Javascript durchzuführen. Gegenmaßnahmen sind schwierig.

Artikel veröffentlicht am , Hanno Böck
Fehler bei vielen Zugriffen im Arbeitsspeicher - der Rowhammer-Angriff könnte noch für viel Ärger sorgen.
Fehler bei vielen Zugriffen im Arbeitsspeicher - der Rowhammer-Angriff könnte noch für viel Ärger sorgen. (Bild: Laserlicht/Wikimedia Commons/CC by-sa 3.0)

Einem Team von IT-Sicherheitsforschern ist es gelungen, durch die Ausführung von Javascript-Code Bitflips in gängigem DRAM-Arbeitsspeicher zu erzeugen. Dass derartige Bitflips ein Sicherheitsrisiko darstellen können, war bereits durch die sogenannte Rowhammer-Lücke bekannt. Doch bisherige Angriffe mussten direkt Code auf der lokalen CPU ausführen. Das Risiko durch einen Angriff im Browser via Javascript ist um ein Vielfaches höher.

Zugriffe auf Speicherzelle manipulieren Speicher daneben

Stellenmarkt
  1. Bosch Gruppe, Stuttgart
  2. beauty alliance Deutschland GmbH & Co. KG, Bielefeld

Im März hatte ein Team um den IT-Sicherheitsforscher Mark Seaborn zum ersten Mal gezeigt, wie sich ein solcher Angriff praktisch durchführen lässt. Das Problem: Viele gängige DRAM-Chips arbeiten nicht ganz korrekt. Wenn man immer wieder auf eine bestimmte Speicherzelle zugreift, kann das dazu führen, dass die Speicherstelle in der Reihe daneben ihren Wert ändert. Daher wurde dieser Angriff Rowhammer genannt. Greift man eine Speicherzelle parallel auf beiden Seiten an, funktioniert der Angriff häufig noch besser.

Seaborn konnte zeigen, dass man mittels eines solchen Angriffs auf einem Linux-System administrative Rechte erlangen kann. Mit der sogenannten Native-Client-Erweiterung gelang es Seaborn auch, einen Angriff auf dem Chrome-Browser durchzuführen. Doch beide Angriffe konnten nur gelingen, weil Seaborn den Clflush-Befehl des Prozessors ausführen konnte. Andernfalls verhindert der CPU-Cache viele hintereinanderfolgende Speicherzugriffe. In Chrome wurde das Problem daher dadurch behoben, dass das Ausführen des Clflush-Befehls verhindert wurde. Somit schienen die Auswirkungen von Rowhammer zumindest begrenzt - zwar bestand weiterhin ein lokales Problem, aber über den Browser ließ sich der Angriff nicht mehr durchführen.

Remote-Angriff mittels Javascript

Jetzt zeigt sich: Die Auswirkungen dieses Problems sind wohl weit größer als gedacht. Daniel Gruß und Stefan Mangard von der Technischen Universität Graz sowie Clémentine Maurice von der Firma Technicolor beschreiben in einem wissenschaftlichen Paper, wie sich mit einigen Tricks auch mittels Javascript in Firefox ein Rowhammer-Angriff durchführen lässt. Den dazugehörigen Code haben sie auf Github veröffentlicht.

Sie tricksen dabei den Cache-Algorithmus der CPU aus, indem sie gezielt Zugriffe auf einen weiteren Speicherbereich durchführen. Dadurch ist der Cache die ganze Zeit gefüllt, die Zugriffe auf den Speicherbereich, der angegriffen wird, erfolgen somit direkt. Um dies zu ermöglichen, wird ein Timing-Angriff genutzt. Denn anhand der Zugriffszeiten auf den Speicher kann das Javascript-Programm prüfen, ob ein bestimmter Speicherbereich gecacht wird oder nicht.

Der gesamte Angriff ist sehr komplex, die Autoren mussten die Limitierungen von Javascript mit einigen Tricks aushebeln. Letztendlich gelang es ihnen aber, Bitflips im Arbeitsspeicher zu erzeugen. Der Angriff ist spezifisch auf die Javascript-Engine von Firefox zugeschnitten. Die Autoren gehen aber davon aus, dass andere Browser in ähnlicher Weise verwundbar sind. Auch andere Skriptsprachen wie Actionscript (Flash) sind vermutlich auf ähnliche Weise verwundbar. Auch haben die Autoren keinen vollständigen Angriff entwickelt, der etwa die direkte Ausführung von Code auf dem Zielsystem erlaubt. Es dürfte aber ebenfalls nur eine Frage des Aufwandes sein, einen solchen Angriff mittels der bereits von Seaborn vorgestellten Methoden zu entwickeln.

Kaum realistische Gegenmaßnahmen

Die Abhilfe gestaltet sich alles andere als einfach. Nachdem Seaborn den Rowhammer-Angriff im März vorgestellt hatte, hatten einige Mainboard-Hersteller im Bios die Refresh-Zyklen für den Speicher abgesenkt. Allerdings macht das die Angriffe nur unwahrscheinlicher und verhindert sie nicht vollständig. Um relativ sicher zu sein, dass ein Rowhammer-Angriff nicht mehr möglich ist, müsste man die Refresh-Zyklen so weit senken, dass mit deutlichen Performanceeinbußen zu rechnen wäre. Die Autoren des neuen Javascript-Angriffs empfehlen, dass Browser das System auf den Rowhammer-Angriff testen. Falls das System angreifbar ist, müssten die Javascript-Implementierungen dann eingeschränkt werden. Das erscheint allerdings praktisch kaum umsetzbar, denn ein zufälliger Bitflip, wie ihn Rowhammer verursacht, kann ein System zum Absturz bringen. Weiterhin wird empfohlen, die Ausführung von Javascript-Code generell nur noch nach manueller Zustimmung des Nutzers zu erlauben. Es ist kaum anzunehmen, dass Browserhersteller dies umsetzen.

Vermutlich nicht betroffen von Rowhammer-Angriffen sind Speicher mit der sogenannten ECC-Funktion, die automatisch kleinere Fehler im RAM korrigiert. ECC-Speicher wird allerdings heutzutage meistens nur in teuren Serversystemen eingesetzt.



Anzeige
Top-Angebote
  1. (Filme und Musik - über 80.000 Artikel)
  2. (u. a. Mainboards, CPUs, Speicher, Grafikkarten, Gehäuse)
  3. 111,00€
  4. mit Gutscheincode PLAYTOWIN (max. 50€ Rabatt) - z. B. ASUS ROG Strix GeForce RTX 2070 Advanced...

triplekiller 29. Jul 2015

hier nochmal: https://geizhals.de/?cat=mbp4_20113&xf=494_ECC-Unterst%FCtzung#xf_top

pica 29. Jul 2015

der würde massiv sinken, falls ECC zum Mainstream würde. Problem ist die mangelnde...

pica 29. Jul 2015

Bei DEDSEC (dual error detection, single error correction) Speichern kommt erschwerend...

jg (Golem.de) 28. Jul 2015

Danke für den Hinweis, ist korrigiert!


Folgen Sie uns
       


Cocktailmixer Hector 9000 ausprobiert

Wie funktioniert ein Cocktail-Mixer aus dem 3D-Drucker? Wir haben uns den Hector 9000 des Chaostreffs Recklinghausen mal vorführen lassen und ein bisschen nachgebaut.

Cocktailmixer Hector 9000 ausprobiert Video aufrufen
Asana-Gründer im Gespräch: Die Konkurrenz wird es schwer haben, zu uns aufzuschließen
Asana-Gründer im Gespräch
"Die Konkurrenz wird es schwer haben, zu uns aufzuschließen"

Asana ist aktuell recht erfolgreich im Bereich Business-Software - zahlreiche große Unternehmen arbeiten mit der Organisationssuite. Für Mitgründer Justin Rosenstein geht es aber nicht nur ums Geld, sondern auch um die Unternehmenskultur - nicht nur bei Asana selbst.
Ein Interview von Tobias Költzsch


    Mac Mini mit eGPU im Test: Externe Grafik macht den Mini zum Pro
    Mac Mini mit eGPU im Test
    Externe Grafik macht den Mini zum Pro

    Der Mac Mini mit Hexacore-CPU eignet sich zwar gut für Xcode. Wer eine GPU-Beschleunigung braucht, muss aber zum iMac (Pro) greifen - oder eine externe Grafikkarte anschließen. Per eGPU ausgerüstet wird der Mac Mini viel schneller und auch preislich kann sich das lohnen.
    Ein Test von Marc Sauter

    1. Apple Mac Mini (Late 2018) im Test Tolles teures Teil - aber für wen?
    2. Apple Mac Mini wird grau und schnell
    3. Neue Produkte Apple will Mac Mini und Macbook Air neu auflegen

    Begriffe, Architekturen, Produkte: Große Datenmengen in Echtzeit analysieren
    Begriffe, Architekturen, Produkte
    Große Datenmengen in Echtzeit analysieren

    Wer sich auch nur oberflächlich mit Big-Data und Echtzeit-Analyse beschäftigt, stößt schnell auf Begriffe und Lösungen, die sich nicht sofort erschließen. Warum brauche ich eine Nachrichten-Queue und was unterscheidet Apache Hadoop von Kafka? Welche Rolle spielt das in einer Kappa-Architektur?
    Von George Anadiotis


        •  /