„Address Space Layout Randomization“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
ROP ermöglicht nicht Umgehung von ASLR, da die Addressen der ROP Gadgets im Textsegment i.A. auch von ASLR betroffen sind |
Dexxor (Diskussion | Beiträge) K falscher Wikilink |
||
Zeile 1: | Zeile 1: | ||
'''{{lang|en|Address Space Layout Randomization}}''' ('''ASLR'''; {{deS}} etwa ''Zufallsgestaltung des Adressraum-Aufbaus'', kurz ''Speicherverwürfelung'' oder ''Adressverwürfelung'' genannt) ist eine Technik, die die Ausnutzung von [[Sicherheitslücke]]n in [[Computer]]systemen erschwert. Durch ASLR werden [[Adressbereich (Elektronik)|Adressbereiche]] den Programmen auf zufälliger Basis zugewiesen, wodurch die Zuweisung der Adressbereiche eines Programms praktisch nicht mehr vorhersagbar ist. Dies soll Angriffe durch [[Pufferüberlauf]] erschweren. Mit Heap-Spraying existiert eine Angriffstechnik, die die Erfolgswahrscheinlichkeit des Angriffs trotz der Nutzung von ASLR erhöhen kann. |
'''{{lang|en|Address Space Layout Randomization}}''' ('''ASLR'''; {{deS}} etwa ''Zufallsgestaltung des Adressraum-Aufbaus'', kurz ''Speicherverwürfelung'' oder ''Adressverwürfelung'' genannt) ist eine Technik, die die Ausnutzung von [[Sicherheitslücke]]n in [[Computer]]systemen erschwert. Durch ASLR werden [[Adressbereich (Elektronik)|Adressbereiche]] den Programmen auf zufälliger Basis zugewiesen, wodurch die Zuweisung der Adressbereiche eines Programms praktisch nicht mehr vorhersagbar ist. Dies soll Angriffe durch [[Pufferüberlauf]] erschweren. Mit Heap-Spraying existiert eine Angriffstechnik, die die Erfolgswahrscheinlichkeit des Angriffs trotz der Nutzung von ASLR erhöhen kann. |
||
ASLR bezieht sich auf den [[X86-Prozessor#Übersicht der x86er-Generationen|EBP]] und [[Programmbibliothek|Libraries]] sowie das [[ |
ASLR bezieht sich auf den [[X86-Prozessor#Übersicht der x86er-Generationen|EBP]] und [[Programmbibliothek|Libraries]] sowie das [[Dynamischer Speicher|Heap-]], das Text-, das Data- und das [[Datensegment#BSS|BSS-Segment]], wobei letztere nicht bei allen ASLR-Lösungen [[Randomisierter Algorithmus|randomisiert]] werden. |
||
== Desktop-Betriebssysteme == |
== Desktop-Betriebssysteme == |
Version vom 21. Juli 2023, 19:00 Uhr
Address Space Layout Randomization (ASLR; deutsch etwa Zufallsgestaltung des Adressraum-Aufbaus, kurz Speicherverwürfelung oder Adressverwürfelung genannt) ist eine Technik, die die Ausnutzung von Sicherheitslücken in Computersystemen erschwert. Durch ASLR werden Adressbereiche den Programmen auf zufälliger Basis zugewiesen, wodurch die Zuweisung der Adressbereiche eines Programms praktisch nicht mehr vorhersagbar ist. Dies soll Angriffe durch Pufferüberlauf erschweren. Mit Heap-Spraying existiert eine Angriffstechnik, die die Erfolgswahrscheinlichkeit des Angriffs trotz der Nutzung von ASLR erhöhen kann.
ASLR bezieht sich auf den EBP und Libraries sowie das Heap-, das Text-, das Data- und das BSS-Segment, wobei letztere nicht bei allen ASLR-Lösungen randomisiert werden.
Desktop-Betriebssysteme
Die ASLR-Technik fand erstmals in dem Betriebssystem OpenBSD Verwendung und wurde mit Erscheinen von Windows Vista auch von Microsoft eingeführt, außerdem wurde sie von Apple in Mac OS X Leopard eingeführt. Allerdings unterscheidet sich die Implementierung in Vista und Mac OS X Leopard voneinander. Während in Vista ASLR im gesamten System implementiert ist, wird bei Mac OS X Leopard nur die Bibliothek geschützt.[1] Mit der Einführung von Mac OS X Lion wurde ASLR komplett implementiert.
Der offizielle Linux-Kernel bietet ab der Version 2.6.12 (Juni 2005) eine unvollständige ASLR-Implementierung. Mit PaX konnte jedoch schon seit 2001 eine weiterreichende Unterstützung verwendet werden.[2] Seit Kernelversion 3.14 gibt es eine vollständige Implementierung von ASLR.[3] Ab Version 4.8 kollidiert die Kernel Address Space Layout Randomization (KASLR) nicht mehr mit der Hibernate-Funktion.[4]
Mobile Betriebssysteme
Mit iOS 4.3 fand die ASLR-Technik erstmals auch auf einem Betriebssystem für Mobilgeräte Anwendung. Die Implementierung in dem mobilen Webbrowser Apple Safari sollte Anwendern Sicherheitsvorteile bringen, führte aber zunächst zu einer Sicherheitslücke. Dem Hacker Charlie Miller gelang es nur drei Tage nach Erscheinen der Firmware, diese über das ASLR-Einfallstor zu hacken.[5] Android führte in der Version 4.0 (Ice Cream Sandwich) ebenfalls eine unvollständige ASLR-Implementierung ein.[6] Ab Version 4.1 (Jelly Bean) verfügt Android über eine vollständige Implementierung.[7]
Umgehung via Spraying
ASLR lässt sich durch sogenanntes Spraying umgehen. Dabei wird der Schadcode über hunderte Megabyte im Speicher dupliziert (großflächiges „Sprayen“). Dadurch steigt die Wahrscheinlichkeit, dass trotzdem (irgendwann) Schadcode im Speicher getroffen und ausgeführt wird.[8]
Einzelnachweise
- ↑ ASLR: Leopard versus Vista ( vom 22. Februar 2010 im Internet Archive)
- ↑ KASLR: An Exercise in Cargo Cult Security, 20. März 2013
- ↑ 1.7. Kernel address space randomization
- ↑ x86/KASLR, x86/power: Remove x86 hibernation restrictions
- ↑ iOS 4.3 Sicherheitslücke erfordert Update ( vom 14. März 2011 im Internet Archive), 12. März 2011
- ↑ Adressverwürfelung für Android 4. Abgerufen am 17. Juli 2012.
- ↑ Richtige Adressverwürfelung für Android. Abgerufen am 17. Juli 2012.
- ↑ heise security: Die Rückkehr der Pufferüberläufe, 9. August 2008