Randomisation de l'espace d'adressage (ASLR) au maximum
Garantit que le noyau fonctionne avec l'ASLR complète en imposant kernel.randomize_va_space = 2.
Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.
Pourquoi cette règle
La randomisation de l'espace d'adressage (ASLR) rend aléatoires les positions mémoire de la pile, du tas, des bibliothèques partagées et (avec la valeur 2) des segments de données et de la mémoire gérée par brk de chaque processus. Cela rend les exploits par corruption mémoire (débordements de tampon, return-to-libc, ROP) bien plus difficiles, car un attaquant ne peut plus s'appuyer sur des adresses prévisibles. La valeur 0 désactive entièrement l'ASLR et 1 ne randomise que partiellement ; seule la valeur 2 fournit la randomisation complète, donc tout réglage inférieur laisse le système nettement plus facile à exploiter.
Ce que vérifie Pavois
Pavois lit la valeur noyau effective et en cours d'exécution via sysctl -n kernel.randomize_va_space et vérifie qu'elle vaut 2. Interroger le sysctl vivant plutôt que /etc/sysctl.conf (ou un drop-in sous /etc/sysctl.d/) est ce qui capture l'état réel : un fichier de configuration peut indiquer 2 alors qu'un drop-in ultérieur, un paramètre de démarrage ou un sysctl -w à l'exécution l'a écrasé, seule la valeur résolue dit la vérité.
describe file('/proc/sys/kernel/randomize_va_space') do
its('content.strip') { should eq '2' }
endComment vérifier qu’elle est appliquée
Exécutez sysctl kernel.randomize_va_space. Sortie attendue : kernel.randomize_va_space = 2. La lecture de /proc/sys/kernel/randomize_va_space doit également afficher 2.
Inspecter et investiguer
- Valeur actuelle :
sysctl kernel.randomize_va_spaceoucat /proc/sys/kernel/randomize_va_space. - Où elle est définie de façon persistante :
grep -r randomize_va_space /etc/sysctl.conf /etc/sysctl.d/. - L'application des réglages sysctl au démarrage est visible dans
journalctl -u systemd-sysctl.
Remédiation
Le plan de durcissement de Pavois déclare une ressource sysctl fixant kernel.randomize_va_space = 2, donc pavois harden apply l'applique à la fois en direct (équivalent à sysctl -w kernel.randomize_va_space=2) et la rend persistante dans un drop-in pour qu'elle survive aux redémarrages. Aucun redémarrage n'est nécessaire pour que la nouvelle valeur prenne effet.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| key | kernel.randomize_va_space |
|---|---|
| resource | sysctl |
| value | 2 |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Si l'ASLR est désactivée ou partielle, les vulnérabilités par corruption mémoire deviennent bien plus faciles à exploiter de façon fiable. Activer l'ASLR complète présente un risque très faible : c'est la valeur par défaut de toutes les distributions modernes et c'est transparent pour les applications. Les seules réserves connues sont marginales, certaines charges anciennes de débogage ou JIT/à grande mémoire relâchent parfois volontairement l'ASLR ; si vous exécutez ce type de logiciel, validez qu'il fonctionne toujours. Il n'y a aucun impact de verrouillage ou réseau, et le changement est réversible en remettant l'ancienne valeur.