Die Sicherheitsforscher Clémentine Maurice und Daniel Gruss haben auf dem 32. Chaos Communication Congress in ihrem Vortrag “Rowhammer.js – Root privileges for web apps?” ihre JavaScript-Umsetzung des Rowhammer-Angriffs vorgestellt.

Rowhammer?

Rowhammer ist eine Hardware-Sicherheitslücke, die es erlaubt, im Arbeitsspeicher eines Computers bestimmte Speicherstellen zu manipulieren. Die Lücke basiert darauf, dass Arbeitsspeicher, der auf physikalischer Ebene in Reihen (Rows) aufgebaut ist, bei einem Zugriff zunächst in einen Puffer kopiert wird. Wird hiernach auf eine andere Reihe im Speicher zugegriffen, wird die Reihe im Puffer wieder an ihre ursprüngliche Stelle zurückgeschrieben und die neue Reihe in den Puffer geladen. Eine schnelle Wiederholung dieses Vorganges (Hammering) sorgt dafür, dass dieselbe Speicherstelle häufig gelesen und zurückgeschrieben wird. Durch diese schnellen Schwankungen lassen sich elektrische Felder erzeugen, die andere Speicherstellen, die gar nicht angesprochen wurden, beeinflusst werden.

Konsequenzen

Im Normalfall führt dieses Verhalten zu unvorhersagbaren Ausfällen und allgemeinen Fehlfunktionen des Computers. Im März diesen Jahres ist es jedoch Forschern gelungen, ein Exploit zu programmieren, mit dem Arbeitsspeicher z.B. von Servern gezielt manipuliert werden können, um z.B. auf den Arbeitsspeicher von laufenden Prozessen zuzugreifen und auf Linuxsystem Root-Rechte zu erlangen.

Variante in JavaScript

Die Umsetzung dieser Attacke von Maurice und Gruss ist in JavaScript programmiert. JavaScript wird von den meisten Websiten für vielfältige Funktionen eingesetzt, weshalb jeder aktuelle Internetbrowser Javascript-Code ausführen kann. Dadurch lässt sich z.B. über eine häufig besuchte Website ein großer Benutzerkreis dieser Attacke aussetzen. Für den Browser Mozilla Firefox haben die Autoren die Funktionalität ihres Programms demonstriert. Zur Zeit lassen sich damit noch keine umfangreichen, gezielten Angriffe durchführen, aber den Browser oder den Computer zum Absturz zu bringen ist mit dem Programm durchaus möglich. Die Autoren haben den Code ihres Programms öffentlich auf Github publiziert und hoffen, dass in der Zukunft umfangreichere Programmfunktionen entwickelt werden. In der Veröffentlichung befindet sich auch ein Programm, mit dem die Anfälligkeit des eigenen Computers gegenüber Rowhammer.js überprüft werden kann.

Gegenmaßnahmen

Da es sich um eine hardwarebasierte Sicherheitslücke handelt, ist die wirksamste Gegenmaßnahme, keine verwundbare Hardware einzusetzen. So haben die Autoren ausgedrückt, dass bisher nur bestimmte Intel Prozessorarchitekturen (Haswell CPUs) verwundbar sind. Des Weiteren ist Arbeitsspeicher mit Fehlerkorrektur (“ECC”-Speicher) nicht verwundbar. Für Linux sind Kernel-Patches verfügbar. Gegen die Browserattacke hilft auf einem verwundbaren PC auch das Ausschalten von JavaScript im Browser, bei Firefox z.B. durch das NoScript Plugin.