Address Space Layout Randomization: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
'''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.
; Address Space Layout Randomization (ASLR)
* ''Zufallsgestaltung des Adressraum-Aufbaus''
*''Speicherverwürfelung''
* ''Adressverwürfelung''


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.
; 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 [[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. 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.<ref>{{Webarchiv | url=http://www.laconicsecurity.com/aslr-leopard-versus-vista.html | wayback=20100222214224 | text=ASLR: Leopard versus Vista}}</ref> Mit der Einführung von [[Mac OS X Lion]] wurde ASLR komplett implementiert.
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.<ref>[https://forums.grsecurity.net/viewtopic.php?f=7&t=3367&sid=80ef962357a996facbbc75f6133c92ea KASLR: An Exercise in Cargo Cult Security], 20. März 2013</ref> Seit Kernelversion 3.14 gibt es eine vollständige Implementierung von ASLR.<ref>[https://kernelnewbies.org/Linux_3.14#head-192cae48200fccde67b36c75cdb6c6d8214cccb3 1.7. Kernel address space randomization]</ref> Ab Version 4.8 kollidiert die {{lang|en|Kernel Address Space Layout Randomization}} (KASLR) nicht mehr mit der [[Ruhezustand|Hibernate]]-Funktion.<ref>[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=65fe935dd2387a4faf15314c73f5e6d31ef0217e x86/KASLR, x86/power: Remove x86 hibernation restrictions]</ref>
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. 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.<ref>{{Webarchiv|url=http://www.macnews.de/iphone/ios-4-3-sicherheitslucke-erfordert-update-158144 |wayback=20110314010050 |text=iOS 4.3 Sicherheitslücke erfordert Update }}, 12. März 2011</ref>
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.<ref>{{Internetquelle | url=https://www.heise.de/security/artikel/Adressverwuerfelung-fuer-Android-4-1440459.html | titel=Adressverwürfelung für Android 4 | zugriff=2012-07-17}}</ref> Ab Version 4.1 ''(Jelly Bean)'' verfügt Android über eine vollständige Implementierung.<ref>{{Internetquelle | url=https://www.heise.de/newsticker/meldung/Richtige-Adressverwuerfelung-fuer-Android-1643804.html | titel=Richtige Adressverwürfelung für Android | zugriff=2012-07-17}}</ref>
* 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. 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.<ref>heise security: [https://www.heise.de/newsticker/meldung/Die-Rueckkehr-der-Pufferueberlaeufe-194416.html Die Rückkehr der Pufferüberläufe], 9. August 2008</ref>
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 23: Zeile 42:
==== Links ====
==== Links ====
===== Weblinks =====
===== Weblinks =====
# https://de.wikipedia.org/wiki/Address_Space_Layout_Randomization


[[Kategorie:Härtung]]
[[Kategorie:Härtung]]


</noinclude>
</noinclude>

Aktuelle 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
  1. https://de.wikipedia.org/wiki/Address_Space_Layout_Randomization