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. IT Administrator (m/w/d)
    SySS GmbH, Tübingen
  2. Software - Projektingenieur (m/w/d)
    Brückner Maschinenbau GmbH & Co. KG, Siegsdorf
Detailsuche

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.

Golem Akademie
  1. Webentwicklung mit React and Typescript
    6.-10. Dezember 2021, online
  2. IT-Sicherheit für Webentwickler
    2.-3. November 2021, online
  3. Kotlin für Java-Entwickler
    14.-15. Oktober 2021, online
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


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!



Aktuell auf der Startseite von Golem.de
Google
Neues Pixel 6 kostet 650 Euro

Das Pixel 6 Pro mit Telekamera und schnellerem Display kostet ab 900 Euro. Google verbaut erstmals einen eigenen Prozessor.

Google: Neues Pixel 6 kostet 650 Euro
Artikel
  1. M1 Pro/Max: Dieses Apple Silicon ist gigantisch
    M1 Pro/Max
    Dieses Apple Silicon ist gigantisch

    Egal ob AMD-, Intel- oder Nvidia-Hardware: Mit dem M1 Pro und dem M1 Max schickt sich Apple an, die versammelte Konkurrenz zu düpieren.
    Eine Analyse von Marc Sauter

  2. Klimaforscher: Das Konzept der Klimaneutralität ist eine gefährliche Falle
    Klimaforscher
    Das Konzept der Klimaneutralität ist eine gefährliche Falle

    Mit der Entnahme von CO2 in den nächsten Jahrzehnten netto auf null Emissionen zu kommen, klingt nach einer guten Idee. Ist es aber nicht, sagen Klimaforscher.
    Von James Dyke, Robert Watson und Wolfgang Knorr

  3. Kalter Krieg 2.0?: Die Aufregung um Chinas angebliche Hyperschallwaffe
    Kalter Krieg 2.0?
    Die Aufregung um Chinas angebliche Hyperschallwaffe

    Die Volksrepublik China soll eine Hyperschallwaffe getestet haben. China dementiert die Vorwürfe aber und sagt, es wäre ein Raumschiff gewesen.
    Eine Analyse von Patrick Klapetz

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Cyber Week: Bis zu 16% auf SSDs & RAM von Adata & bis zu 30% auf Alternate • 3 Spiele für 49€: PC, PS5 uvm. • Switch OLED 369,99€ • 6 Blu-rays für 40€ • MSI 27" Curved WQHD 165Hz HDR 479€ • Chromebooks zu Bestpreisen • Alternate (u. a. Team Group PCIe-4.0-SSD 1TB 152,90€) [Werbung]
    •  /