KASLR
Was ist KASLR?
KASLRKernel-ASLR (KASLR) randomisiert bei jedem Boot Kernel-Basis und Modul-Ladeadressen, sodass Angreifer keine festen Kernel-Adressen fuer lokale Rechteausweitungen verwenden koennen.
KASLR uebertraegt ASLR auf den Kernel: Kernel-Image, Module, vmalloc-Bereich, Physmap und Stacks werden bei jedem Boot zufaellig versetzt geladen. Linux fuehrte 2014 basale KASLR ein, gehaertet durch KAISER/KPTI gegen Meltdown; Windows nutzt es seit Vista und verfeinerte es in Windows 10. Da der Kernel meist einen gemeinsamen Adressraum teilt, kann ein einziger geleakter Kernel-Pointer KASLR brechen; Forscher zeigten Seitenkanal-Angriffe ueber Cache, TLB, Prefetch und spekulative Ausfuehrung, die den Offset rekonstruieren. KASLR ist am wirksamsten in Kombination mit SMEP/SMAP, KPTI, kCFI und strenger /proc- und dmesg-Sperre gegen Address-Leaks.
● Beispiele
- 01
Linux verschiebt die Kernel-Basis bei jedem Boot um einen 1-GiB-gerichteten Zufallsoffset.
- 02
Windows 10 randomisiert die Ladeadresse von ntoskrnl.exe pro Boot.
● Häufige Fragen
Was ist KASLR?
Kernel-ASLR (KASLR) randomisiert bei jedem Boot Kernel-Basis und Modul-Ladeadressen, sodass Angreifer keine festen Kernel-Adressen fuer lokale Rechteausweitungen verwenden koennen. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet KASLR?
Kernel-ASLR (KASLR) randomisiert bei jedem Boot Kernel-Basis und Modul-Ladeadressen, sodass Angreifer keine festen Kernel-Adressen fuer lokale Rechteausweitungen verwenden koennen.
Wie funktioniert KASLR?
KASLR uebertraegt ASLR auf den Kernel: Kernel-Image, Module, vmalloc-Bereich, Physmap und Stacks werden bei jedem Boot zufaellig versetzt geladen. Linux fuehrte 2014 basale KASLR ein, gehaertet durch KAISER/KPTI gegen Meltdown; Windows nutzt es seit Vista und verfeinerte es in Windows 10. Da der Kernel meist einen gemeinsamen Adressraum teilt, kann ein einziger geleakter Kernel-Pointer KASLR brechen; Forscher zeigten Seitenkanal-Angriffe ueber Cache, TLB, Prefetch und spekulative Ausfuehrung, die den Offset rekonstruieren. KASLR ist am wirksamsten in Kombination mit SMEP/SMAP, KPTI, kCFI und strenger /proc- und dmesg-Sperre gegen Address-Leaks.
Wie schützt man sich gegen KASLR?
Schutzmaßnahmen gegen KASLR kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für KASLR?
Übliche alternative Bezeichnungen: Kernel-ASLR.
● Verwandte Begriffe
- appsec№ 064
ASLR
Address Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen.
- appsec№ 1058
SMEP / SMAP
SMEP und SMAP sind CPU-Features, die verhindern, dass der Kernel User-Space-Seiten ausfuehrt oder liest/schreibt, und damit haeufige lokale Privilege-Escalation-Techniken blockieren.
- 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.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) ist eine CPU-Funktion, die einen Hardware-Shadow-Stack mit Indirect Branch Tracking (IBT) kombiniert, um ROP-, JOP- und COP-Exploits zu stoppen.
- appsec№ 671
Memory-Safe Sprachen
Memory-safe Sprachen wie Rust, Go, Swift, Java und C# verhindern die raeumlichen und zeitlichen Speicherfehler, die die meisten ausnutzbaren Luecken in C und C++ ausmachen.