Lockdown (verrouillage du noyau)
Lockdown (verrouillage du noyau, en anglais kernel lockdown) : module de sécurité du noyau Linux, intégré depuis la version 5.4, qui ferme les interfaces par lesquelles l'utilisateur root pourrait modifier le noyau en cours d'exécution. Il sépare ainsi « être root » et « contrôler le noyau », ce qui donne son sens à une chaîne de démarrage vérifiée.
Il a deux niveaux. En mode integrity, le noyau refuse les modules non signés, l'accès à /dev/mem et /dev/kmem, le chargement par kexec d'un noyau non signé, l'hibernation et d'autres moyens d'écrire dans sa mémoire. Le mode confidentiality interdit en plus de lire la mémoire du noyau (où peuvent se trouver des clés). On lit l'état dans /sys/kernel/security/lockdown (le mode actif entre crochets, par exemple none [integrity] confidentiality) et on peut l'imposer par le paramètre lockdown= de la ligne de commande du noyau. Le niveau ne peut que monter, jamais redescendre, sans redémarrage.
Les noyaux d'Ubuntu et de Debian passent d'eux-mêmes en mode integrity quand la machine a démarré avec Secure Boot. Conséquence pratique : un module compilé localement (pilote DKMS) est refusé avec Loading of unsigned module is rejected, tant que sa clé n'est pas enrôlée comme MOK. Sans lockdown, Secure Boot protégerait le démarrage mais un root compromis pourrait encore charger un module malveillant.
Dans les cours
- Linux : administration système, leçon 2 : Le démarrage, du firmware à systemd
- Linux : administration système, leçon 3 : Le noyau : modules et paramètres