Address Space Layout Randomization: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 7: | Zeile 7: | ||
* ''Adressverwürfelung'' | * ''Adressverwürfelung'' | ||
; Technik, die die Ausnutzung von [[Sicherheitslücke]]n in [[Computer]]systemen erschwert | ; 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 | * 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 | * 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 | * 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 [[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 | 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 == | ||
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 | 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. 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 | 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 | |||
Seit Kernelversion 3.14 gibt es eine vollständige Implementierung von ASLR | |||
Ab Version 4.8 kollidiert die {{lang|en|Kernel Address Space Layout Randomization}} (KASLR) nicht mehr mit der [[Ruhezustand|Hibernate]]-Funktion | |||
== Mobile Betriebssysteme == | == Mobile Betriebssysteme == | ||
Mit [[iOS (Betriebssystem)|iOS]] 4.3 fand die ASLR-Technik erstmals auch auf einem Betriebssystem für Mobilgeräte Anwendung | Mit [[iOS (Betriebssystem)|iOS]] 4.3 fand die ASLR-Technik erstmals auch auf einem Betriebssystem für Mobilgeräte Anwendung | ||
[[Android (Betriebssystem)|Android]] führte in der Version 4.0 ''(Ice Cream Sandwich)'' ebenfalls eine unvollständige ASLR-Implementierung ein | * 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 | |||
[[Android (Betriebssystem)|Android]] führte in der Version 4.0 ''(Ice Cream Sandwich)'' ebenfalls eine unvollständige ASLR-Implementierung ein | |||
Ab Version 4.1 ''(Jelly Bean)'' verfügt Android über eine vollständige Implementierung | |||
== Umgehung via ''Spraying'' == | == Umgehung via ''Spraying'' == | ||
ASLR lässt sich durch sogenanntes ''{{lang|en|Spraying}}'' für 32-Bit-Prozessor umgehen | ASLR lässt sich durch sogenanntes ''{{lang|en|Spraying}}'' für 32-Bit-Prozessor 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 | |||
<noinclude> | <noinclude> | ||
== Anhang == | == Anhang == | ||
Zeile 31: | Zeile 42: | ||
==== Links ==== | ==== Links ==== | ||
===== Weblinks ===== | ===== Weblinks ===== | ||
# https://de.wikipedia.org/wiki/Address_Space_Layout_Randomization | |||
[[Kategorie:Härtung]] | [[Kategorie:Härtung]] | ||
</noinclude> | </noinclude> |
Version vom 2. November 2024, 13:22 Uhr
Address Space Layout Randomization (ASLR) - Speicherverwürfelung
Beschreibung
- Address Space Layout Randomization (ASLR)
- Zufallsgestaltung des Adressraum-Aufbaus
- Speicherverwürfelung
- Adressverwürfelung
- 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. 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
Seit Kernelversion 3.14 gibt es eine vollständige Implementierung von ASLR Ab Version 4.8 kollidiert die Vorlage:Lang (KASLR) nicht mehr mit der Hibernate-Funktion
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
Android führte in der Version 4.0 (Ice Cream Sandwich) ebenfalls eine unvollständige ASLR-Implementierung ein Ab Version 4.1 (Jelly Bean) verfügt Android über eine vollständige Implementierung
Umgehung via Spraying
ASLR lässt sich durch sogenanntes Vorlage:Lang für 32-Bit-Prozessor 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
Anhang
Siehe auch
Links
Weblinks