ASLR
Was ist ASLR?
ASLRAddress Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen.
ASLR ist eine defensive Massnahme, die bei jedem Start die Basisadressen wichtiger Prozessbereiche – Executable, geteilte Bibliotheken, Heap, Stack und mmap-Bereich – zufaellig setzt. Erstmals 2001 vom PaX-Projekt umgesetzt, ist die Technik heute in Linux, Windows, macOS, iOS und Android Standard. Durch unvorhersehbare Speicherlayouts muss ein Angreifer zuerst eine Adresse leaken, bevor er Code-Reuse-Angriffe wie ROP einsetzen kann. Wirksamkeit haengt von ausreichender Entropie, vollstaendiger Abdeckung (PIE) und Kombination mit DEP/NX, Stack Canaries und CFI ab, um partielle Ueberschreibungen und Info-Leaks abzuwehren.
● Beispiele
- 01
Linux randomisiert bei jedem exec Stack, Heap und PIE-Binary-Basis.
- 02
Windows verschiebt kernel32.dll und ntdll.dll bei jedem Boot.
● Häufige Fragen
Was ist ASLR?
Address Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet ASLR?
Address Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen.
Wie funktioniert ASLR?
ASLR ist eine defensive Massnahme, die bei jedem Start die Basisadressen wichtiger Prozessbereiche – Executable, geteilte Bibliotheken, Heap, Stack und mmap-Bereich – zufaellig setzt. Erstmals 2001 vom PaX-Projekt umgesetzt, ist die Technik heute in Linux, Windows, macOS, iOS und Android Standard. Durch unvorhersehbare Speicherlayouts muss ein Angreifer zuerst eine Adresse leaken, bevor er Code-Reuse-Angriffe wie ROP einsetzen kann. Wirksamkeit haengt von ausreichender Entropie, vollstaendiger Abdeckung (PIE) und Kombination mit DEP/NX, Stack Canaries und CFI ab, um partielle Ueberschreibungen und Info-Leaks abzuwehren.
Wie schützt man sich gegen ASLR?
Schutzmaßnahmen gegen ASLR kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für ASLR?
Übliche alternative Bezeichnungen: Speicheradressen-Randomisierung, PIE.
● Verwandte Begriffe
- appsec№ 581
KASLR
Kernel-ASLR (KASLR) randomisiert bei jedem Boot Kernel-Basis und Modul-Ladeadressen, sodass Angreifer keine festen Kernel-Adressen fuer lokale Rechteausweitungen verwenden koennen.
- appsec№ 303
DEP
Data Execution Prevention (auch NX oder W^X) markiert Speicherseiten als nicht ausfuehrbar, sodass Angreifer keinen in Stack oder Heap eingeschleusten Shellcode starten koennen.
- appsec№ 925
Return-Oriented Programming
Return-Oriented Programming (ROP) ist eine Exploit-Technik des Code-Reuse, die kurze, mit RET endende Instruktionsfolgen verkettet, um beliebige Berechnungen ohne neuen Code auszufuehren.
- appsec№ 1095
Stack Canary
Ein Stack Canary ist ein geheimer Wert zwischen lokalen Puffern und der gespeicherten Rueckkehradresse einer Funktion, um Stack-Overflows zu erkennen, bevor sie den Kontrollfluss kapern.
- appsec№ 217
Control-Flow Integrity
Control-Flow Integrity (CFI) beschraenkt indirekte Aufrufe und Returns auf einen vorab berechneten Satz legitimer Ziele und blockiert ROP- bzw. JOP-Angriffe.
- appsec№ 670
Speichersicherheit
Speichersicherheit (Memory Safety) ist die Eigenschaft, dass ein Programm niemals Speicher liest, schreibt oder ausfuehrt, den es nicht legitim allokiert hat, und schaltet damit ganze Schwachstellenklassen aus.
● Siehe auch
- № 471Heap Spraying
- № 469Heap Feng Shui
- № 569Jump-Oriented Programming (JOP)
- № 1028Shadow Stack
- № 545Intel CET
- № 671Memory-Safe Sprachen