Interdire le chargement d'un autre noyau en cours d'exécution
Ferme un moyen pour un attaquant disposant de droits d'administrateur de basculer vers un noyau qu'il a préparé.
Pourquoi il compte
kexec permet au noyau en cours d’exécution d’en charger un autre et d’y sauter sans passer par le micrologiciel. Une attaquante ayant déjà gagné les droits d’administration pourrait s’en servir pour démarrer un noyau préparé, qui ignore vos réglages de sécurité ou cache ses outils. Le couper supprime cette étape.
Comment il fonctionne
Met kernel.kexec_load_disabled à 1, ce qui désactive les appels système kexec_load et kexec_file_load. La documentation du noyau indique qu’une fois mis à 1, il ne revient pas à 0 avant le prochain démarrage.
À qui il s'adresse
Convient aux ordinateurs de bureau et serveurs qui n’utilisent pas kexec. Laissez désactivé si vous comptez sur la capture de plantage par kdump, les redémarrages rapides par kexec ou les outils de mise à jour du noyau à chaud.
Ce que vous pouvez remarquer
Des commandes comme kexec -l échouent avec une erreur de permission, et un service de noyau de plantage démarré après le changement peut ne pas se charger. Seul un redémarrage l’annule.
Le vérifier sur votre ordinateur
Lire la valeur actuelle :
sysctl kernel.kexec_load_disabled L'appliquer à la main
La définir maintenant (jusqu'au prochain redémarrage) :
sudo sysctl -w kernel.kexec_load_disabled=1 La conserver après les redémarrages, dans un fichier qui vous appartient :
sudo tee /etc/sysctl.d/90-kernel-kexec.conf <<'EOF'
kernel.kexec_load_disabled = 1
EOF
sudo sysctl --system L'annuler
Supprimez le fichier et redémarrez, ou remettez l'ancienne valeur avec sysctl -w.
Réglages liés
Sources
- Linux Hardening Guide (madaidans)
- 2.2.1
- Linux kernel documentation
- kernel.kexec_load_disabled