Address Space Layout Randomization: Unterschied zwischen den Versionen

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