ASLR: Speicherrandomisierung mit Javascript umgehen
Mittels eines Cache-Timing-Angriffs gelingt es Forschern, ASLR zu umgehen, einen der wichtigsten Schutzmechanismen gegen Exploits. Das Problem steckt im Hardwaredesign moderner CPUs und lässt sich vermutlich nicht einfach aus der Welt schaffen.

Ein wichtiger Mechanismus zum Schutz vor Exploits auf modernen Systemen lässt sich mittels Javascript umgehen. Einem Forscherteam des Instituts VUSec an der Vrije Universiteit Amsterdam ist es gelungen, mittels einer Cache-Timing-Attacke Informationen über das Speicherlayout in Browsern auszulesen. Damit schützt die Speicherrandomisierung (ASLR, Address Space Layout Randomization) nicht mehr effektiv vor Exploits. Der Angriff wird ASLR⊕Cache oder kurz AnC genannt, das zugehörige wissenschaftliche Paper wird auf der NDSS-Konferenz Ende Februar offiziell vorgestellt.
Umgehung von ASLR erfordert oft mehrere Sicherheitslücken
Viele Memory-Corruption-Exploits basieren auf sogenannten Code-Reuse-Angriffen wie beispielsweise Return-Oriented-Programming. Dabei bringt ein Exploit keinen eigenen Code mit, sondern er nutzt Codeteile des Programms aus und springt zu diesen. Damit das funktioniert, muss der Exploit jedoch wissen, wo im Arbeitsspeicher sich die Codeteile befinden. ASLR soll genau das verhindern: Der Code wird an zufälligen Stellen im Arbeitsspeicher abgelegt.
Um ASLR zu umgehen, benötigen Exploits meist zusätzliche Sicherheitslücken, mit denen sich Informationen über das Speicherlayout extrahieren lassen. ASLR verhindert Angriffe also nicht vollständig, jedoch werden oft statt einer Sicherheitslücke mehrere Lücken miteinander verkettet. Der Aufwand für Exploits steigt deutlich.
Das Problem liegt im Hardwaredesign
Mit dem jetzt vorgestellten Cache-Timing-Angriff gibt es eine generische Möglichkeit, ASLR zu umgehen. Dass es Abhilfe geben wird, ist eher unwahrscheinlich, denn der Angriff basiert auf grundlegenden Eigenschaften moderner CPUs. Zwar könnte man das Cache-Design ändern, um den Angriff zu verhindern, aber das hätte wohl nicht unerhebliche Performanceeinbußen zur Folge.
Die Entdecker des Angriffs machen einige Vorschläge, wie sich das Ausnutzen zumindest erschweren lässt. So können Browserhersteller etwa verhindern, dass Javascript-Applikationen sehr genaue Zeitmessungen durchführen. Auch für die CPU-Hersteller haben sie einige Vorschläge, bei denen man jedoch testen müsste, welche Auswirkungen diese auf die Performance haben.
Völlig nutzlos wird ASLR wohl trotz dieses Angriffs nicht. Einen derartigen Cache-Timing-Angriff zuverlässig zu betreiben, dürfte nicht ganz einfach sein, da verschiedenste CPU-Architekturen und Browser berücksichtigt werden müssen. Auch funktioniert der gesamte Angriff nur, wenn ein Angreifer Code ausführen kann. Im Browser kann davon allgemein ausgegangen werden, da jede Webseite Javascript ausführen kann. In vielen anderen Fällen dürfte ASLR jedoch weiterhin ein sehr mächtiges Werkzeug zur Verhinderung von Exploits bleiben.
Der AnC-Angriff zeigt ähnlich wie der Rowhammer-Angriff einmal mehr, dass die Hardware bei Sicherheitsmechanismen mit berücksichtigt werden muss. Das bringt besondere Herausforderungen mit sich. Während bei Software die Probleme oft mit einem einfachen Update behoben sind, ist das bei Hardware nicht möglich.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Foto und Video geht doch auch ohne Browser ?:-(
Gut, für Browser und für Programme, die Skripte/Bytecode ausführen, kann ich verstehen...