Schutz durch Speicherverwürfelung ASLR geknackt

Forscher demonstrieren, dass sich ein wichtiges Schutzkonzept moderner Systeme namens ASLR, austricksen lässt. Sie konnten etwa mit JavaScript-Code im Browser Speicheradressen bestimmen, was den Bau von Exploits für Sicherheitslücken deutlich erleichtert.

In Pocket speichern vorlesen Druckansicht 198 Kommentare lesen
Schutz durch Speicherverwürfelung ASLR geknackt

Visualisierung des AnC-Angriffs

(Bild: VUSec)

Lesezeit: 4 Min.

Alle modernen Systeme sorgen dafür, dass insbesondere ausführbarer Code bei jedem Start eines Programms an einer zufälligen Speicheradresse liegt. Diese sogenannte Address Space Layout Randomisation (ASLR) erschwert es, Sicherheitslücken auszunutzen und dann Systeme etwa mit Schad-Software zu infizieren.

Ein Forscherteam der Vrije Universiteit Amsterdam zeigt nun, dass sich ASLR wohl bei allen Hardware-Architekturen durch einen sogenannten Seitenkanal-Angriff umgehen lässt. Sie halten ASLR damit für "grundsätzlich unsicher".

Konkret konnten die Forscher mit einer Kombination aus einer Firefox-Lücke und ihrem ASLR⊕Cache beziehungsweise AnC getauften Angriff ein System schon beim Aufruf einer Web-Seite mit Schadcode infizieren. Das gelang, indem sie mit JavaScript-Code die Zugriffszeiten auf bestimmte Speicherbereiche maßen und so Speicheradressen von bestimmten Code-Teilen ermittelten. Durch das Zusammenspiel von Memory Management Unit (MMU) und den diversen Caches ergeben sich minimale aber messbare Unterschiede, je nachdem, ob sich sogenannte Page Tables bereits im Cache befinden oder nicht. Über die Page Tables lassen sich virtuelle Adressen ermitteln, die beim Bau eines konkreten Exploits helfen.

ASLR⊕Cache hängt zwar von den jeweilige Spezifika der Hardware-Plattform ab. Allerdings ließ sich der Angriff auf allen 22 Systemen umsetzen, die die Forscher getestet haben, darunter solche mit diversen Intel-, AMD- und ARM-CPUs der letzten sechs Jahre. Die Forscher der Systems and Network Security Group at VU Amsterdam (VUSec) folgern daraus, dass ASLR auf allen modernen, Cache-basierten Systemen "grundsätzlich unsicher" sei. Man könne nur entweder Caching oder (zuverlässiges) ASLR haben, bilanzieren Ben Gras, Keveh Razavi, Erik Bosman, Herbert Bos und Cristiano Giuffrida in ihrem Paper ASLR on the Line: Practical Cache Attacks on the MMU.

In Kombination mit dem No Execution Bit ist ASLR ein wichtiger Bestandteil moderner Sicherheitskonzepte. Doch AnC allein genügt nicht, um ein System zu infizieren. Dazu benötigt der Angreifer zunächst eine Sicherheitslücke etwa im Browser des Opfers. Die von den Forschern für ihre Demonstration genutzte Firefox-Lücke ist von 2013 und längst gestopft. Das Konzept ließe sich jedoch einfach auf andere, noch nicht gepatchte Lücken übertragen. Sie haben deshalb den Code für ihren JavaScript-Angriff nicht veröffentlicht; lediglich den Quellcode für eine native Umsetzung direkt auf dem System stellen sie auf Github bereit. Allerdings sei damit zu rechnen, dass ein ambitionierter Angreifer das mit den jetzt veröffentlichen Informationen innerhalb weniger Wochen nachbauen könne.

Hardware- und Betriebssystem-Hersteller können solche AnC-Angriffe zwar erschweren; allerdings erfordern solche Maßnahmen Änderungen an der Architektur, deren Umsetzung kaum kurzfristig erfolgen kann. Den effektivsten Hebel haben die Browser-Hersteller: AnC-Attacken erfordern exakte Zeitmessungen. Da bereits bekannt war, dass Timing-Angriffe zu Sicherheitsproblemen führen können, haben die Browser-Hersteller die internen Timing-Funktionen wie performance.now() bereits verstümmelt. Die Forscher haben deshalb eigene Timing-Funktionen gebastelt. Das VUSec-Team empfiehlt deshalb, exaktes Timing weiter zu erschweren. Apple hat das mit Hilfe der Amsterdamer anscheinend für Webkit auch schon umgesetzt.

Normale Anwender haben kaum eine Chance sich selbst vor AnC zu schützen. Einzig eine strikte Reglementierung, welche Web-Seiten JavaScript ausführen können, verhindert diesen und viele andere Angriffe im Browser. Allerdings bedeuten Tools wie NoScript, die das umsetzen, eben auch, dass immer wieder Web-Seiten nur schwer oder gar nicht mehr zu benutzen sind. Der Einsatz ist somit nur in streng reglementierten Firmenumgebungen oder für Privatnutzer mit erhöhtem Sicherheitsbedarf gepaart mit einer gewissen Leidensbereitschaft zu empfehlen. (ju)