ASLR Adress Space Layout Randomization
ASLR "Address Space Layout Randomization" ist eine grundlegende Sicherheitsfunktion von Betriebssystemen, die Speicherbeschädigungs-Angriffe (wie Buffer Overflows) erschwert.
- ASLR ordnet Speicherbereiche für Programmcode, Stack und Heap bei jedem Start zufällig an, sodass Angreifer die genauen Speicheradressen von Schadcode oder Systemfunktionen nicht zuverlässig vorhersagen können.
- Im Gegensatz zu traditionellen Systemen, bei denen Systembibliotheken und ausführbare Dateien immer an denselben festen Adressen im Arbeitsspeicher geladen werden, sorgt ASLR für Dynamik.
- Bei jedem Programmstart werden die kritischen Segmente (Stack, Heap, Bibliotheken) neu verteilt; so entstehen zufällige Speicheradressen für die Programmausführung.
- Wenn Angreifer versuchen, einen Pufferüberlauf auszunutzen, müssen sie die exakte Adresse von Code-Segmenten kennen, um ihre Befehle auszuführen.
- Dies ist nur schwerlich möglich, weil sich die Adressen ständig ändern und dadurch Angriffe ins Leere laufen oder das System sogar zum Absturz bringen.
- Moderne Betriebssysteme haben ASLR standardmäßig aktiviert. Seit Einführung von Windows Vista, wird ASLR auch systemseitig als mitigierende Sicherheitsmaßnahme genutzt.
- Absolute Sicherheit gibt es damit jedoch nicht. Mit Heap-Spraying existiert eine Angriffstechnik, die die Erfolgswahrscheinlichkeit des Angriffs trotz der Nutzung von ASLR erhöhen kann.