KASLR
Qu'est-ce que KASLR ?
KASLRLe KASLR randomise la base du noyau et l'adresse de chargement des modules a chaque demarrage afin d'empecher un attaquant d'utiliser des symboles fixes pour une elevation de privileges.
KASLR etend l'ASLR au noyau : l'image du noyau, les modules, la zone vmalloc, le physmap et les piles sont charges avec un offset aleatoire a chaque demarrage. Linux a introduit le KASLR de base en 2014, renforce par KAISER/KPTI contre Meltdown ; Windows l'a integre depuis Vista et raffine jusqu'a Windows 10. Comme le noyau partage un meme espace d'adressage, une seule fuite de pointeur peut casser le KASLR ; des canaux auxiliaires (cache, TLB, prefetch, execution speculative) permettent de recuperer l'offset. KASLR est plus efficace combine a SMEP/SMAP, KPTI, kCFI et a des restrictions strictes sur /proc et dmesg pour eviter les fuites.
● Exemples
- 01
Linux decale la base du noyau d'un offset aleatoire aligne sur 1 GiB a chaque boot.
- 02
Windows 10 randomise l'adresse de chargement de ntoskrnl.exe a chaque boot.
● Questions fréquentes
Qu'est-ce que KASLR ?
Le KASLR randomise la base du noyau et l'adresse de chargement des modules a chaque demarrage afin d'empecher un attaquant d'utiliser des symboles fixes pour une elevation de privileges. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.
Que signifie KASLR ?
Le KASLR randomise la base du noyau et l'adresse de chargement des modules a chaque demarrage afin d'empecher un attaquant d'utiliser des symboles fixes pour une elevation de privileges.
Comment fonctionne KASLR ?
KASLR etend l'ASLR au noyau : l'image du noyau, les modules, la zone vmalloc, le physmap et les piles sont charges avec un offset aleatoire a chaque demarrage. Linux a introduit le KASLR de base en 2014, renforce par KAISER/KPTI contre Meltdown ; Windows l'a integre depuis Vista et raffine jusqu'a Windows 10. Comme le noyau partage un meme espace d'adressage, une seule fuite de pointeur peut casser le KASLR ; des canaux auxiliaires (cache, TLB, prefetch, execution speculative) permettent de recuperer l'offset. KASLR est plus efficace combine a SMEP/SMAP, KPTI, kCFI et a des restrictions strictes sur /proc et dmesg pour eviter les fuites.
Comment se défendre contre KASLR ?
Les défenses contre KASLR combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de KASLR ?
Noms alternatifs courants : ASLR du noyau.
● Termes liés
- appsec№ 064
ASLR
La randomisation de l'espace d'adressage place aleatoirement le code, les piles, les tas et les bibliotheques en memoire afin qu'un attaquant ne puisse pas predire les adresses cibles.
- appsec№ 1058
SMEP / SMAP
SMEP et SMAP sont des fonctions du processeur qui empechent le noyau d'executer ou d'acceder aux pages utilisateur, bloquant les techniques courantes d'elevation de privileges locale.
- appsec№ 217
Integrite du flot de controle
L'integrite du flot de controle (CFI) restreint les appels indirects et les retours du programme a un ensemble precalcule de cibles legitimes, bloquant ROP et JOP.
- appsec№ 670
Securite memoire
La securite memoire est la propriete qu'un programme ne lise, n'ecrive ni n'execute jamais une memoire qu'il n'a pas legitimement allouee, ce qui supprime des classes entieres de vulnerabilites.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) est une fonctionnalite du processeur qui combine une shadow stack materielle et l'Indirect Branch Tracking (IBT) pour bloquer ROP, JOP et COP.
- appsec№ 671
Langages memory safe
Les langages memory safe comme Rust, Go, Swift, Java et C# empechent les erreurs memoire spatiales et temporelles qui causent la majorite des vulnerabilites exploitables en C et C++.