The Linux Kernel Killswitch Changes Things Forever

La vidéo analyse le concept de « Kernel Kill Switch », un patch soumis par un ingénieur NVIDIA permettant à un administrateur de désactiver immédiatement une fonction noyau vulnérable en attendant un correctif officiel, tout en soulignant les risques potentiels de cett...

Voir la source

SYNTHÈSE STRUCTURÉE

Contexte : une période turbulente pour la sécurité du noyau Linux

L’intervenant ouvre sur une observation préoccupante : « We seem to be in a very turbulent, very vulnerable time for Linux. » Il cite les récentes vulnérabilités Copy Fail et Dirty Frag, et anticipe une multiplication des exploits, notamment via l’IA. Il met en garde : « Your enemies are going to be using it. They are going to be finding problems and you’re going to have to deal with the problem at the end of the day. » Ce contexte justifie l’émergence de solutions comme le Kill Switch.

Présentation du Kernel Kill Switch

Le patch, soumis par Sasha Levin (ingénieur NVIDIA), propose un mécanisme simple : un administrateur peut exécuter une commande pour qu’une fonction noyau retourne systématiquement une erreur (EPERM) sans exécuter son corps. L’intervenant précise : « After this, AF_ALG send message returns EPERM on every call without running its body. » La désactivation est immédiate et réinitialisée au prochain redémarrage.

Limitation volontaire : persistance jusqu’au reboot

Le fait que la modification soit perdue au reboot est un choix délibéré. L’intervenant explique : « The dropped on next reboot part is very, very important. » Cela évite qu’un administrateur ne bloque accidentellement une fonction critique de manière permanente, ce qui pourrait rendre le système inutilisable.

Ciblage des fonctions peu utilisées mais vulnérables

Le Kill Switch est conçu pour désactiver des fonctions rarement nécessaires sur la plupart des installations, comme AF_ALG, KSMBD, NF Tables, VSOC, ou AX25. L’intervenant justifie : « For most users, the cost of this socket family stops working for the day is much smaller than the cost of running a known vulnerable kernel until the fix lands. » L’idée est de privilégier la sécurité immédiate au détriment d’une fonctionnalité marginale.

Rôle de l’IA dans le développement du patch

L’intervenant note que le code a été partiellement généré par Claude (IA), mais insiste sur le fait que Sasha Levin est un développeur chevronné : « This is someone who is a good engineer, who is using this tool to sort of augment their work. » Il distingue ainsi l’usage professionnel de l’IA du « vibe coding » amateur.

Fonctionnement technique et restrictions

Le Kill Switch n’est pas une liste blanche, mais une liste noire : on interdit des fonctions, on n’en autorise pas. Plusieurs contraintes sont documentées :

  • Impossible d’engager le Kill Switch sur un symbole inconnu, dans une section non traçable, ou déjà engagé.
  • Si un module contenant une fonction désactivée est déchargé, le Kill Switch se désengage automatiquement avec un avertissement (kernel warning). Le rechargement du module ne réactive pas la protection.
  • L’intervenant insiste sur la règle d’or : « Pick the highest level entry point that contains the bug. That gives callers no chance to dereference half-initialized state from a function whose body was skipped. »

Comparaison avec les solutions existantes

L’intervenant répond à une objection fréquente : pourquoi ne pas simplement décharger un module vulnérable ? Il explique que tout le code noyau n’est pas dans un module, et que même pour du code modulaire, on peut vouloir conserver le module tout en désactivant une seule fonction. Le Kill Switch offre donc une granularité plus fine que le déchargement ou la recompilation du noyau.

Risque de contournement du « kernel lockdown »

Jonathan Corbett (LWN) soulève un problème : le Kill Switch pourrait être utilisé pour désactiver la fonction vérifiant le statut de verrouillage du noyau (lockdown). L’intervenant reconnaît l’oversight, mais le relativise : « Considering that you need to be root to go and disable this anyway, I wouldn’t call it a critical fault. » Il précise que ce sera corrigé.

Danger potentiel : désactiver une fonction critique

Joshua Peisach (Ubuntu) demande s’il est possible d’empêcher la désactivation de fonctions vitales comme malloc. L’intervenant confirme que oui, on peut planter le noyau en désactivant une fonction essentielle. Il justifie l’absence de liste blanche par la difficulté de maintenance : « Functions get added, removed, and refactored. If you have an out-of-date list and then that function is no longer crucial and there’s something vulnerable with it, you now have a situation where the kill switch just doesn’t work. »

Comparaison avec le live patching

Andrew Morton demande pourquoi ne pas utiliser le live patching. L’intervenant explique que le live patching nécessite un correctif signé et compilé pour chaque combinaison noyau/architecture, ce qui le rend inaccessible aux utilisateurs ordinaires. Le Kill Switch, en revanche, est une commande simple, sans dépendance externe : « For regular people, this is not happening. »

Risque d’exploitation par un attaquant

L’intervenant anticipe la question : « Couldn’t this also be used in an exploit ? » Il répond que oui, en théorie, si un attaquant obtient les privilèges root, il pourrait désactiver des fonctions de sécurité. Mais il estime que les avantages l’emportent sur les risques, surtout dans un contexte où les exploits sont publiés avant les correctifs.

CONCEPTS CLÉS

  • Kernel Kill Switch : Mécanisme permettant à un administrateur root de désactiver immédiatement une fonction noyau en la faisant échouer systématiquement, sans redémarrage.
  • Live patching : Technique de mise à jour à chaud du noyau sans redémarrage, mais nécessitant un correctif signé et compilé pour chaque configuration.
  • Kernel lockdown : Fonctionnalité de sécurité restreignant l’accès au noyau pour empêcher des modifications non autorisées.
  • Kprobe : Mécanisme de sondage dynamique du noyau utilisé ici pour vérifier la traçabilité d’un symbole avant de l’engager.

CONCLUSION

Le Kernel Kill Switch est une réponse pragmatique à l’augmentation des vulnérabilités zero-day : il offre aux administrateurs un moyen rapide et simple de désactiver une fonction dangereuse en attendant un correctif officiel. Son principal défaut est qu’il repose entièrement sur le jugement de l’opérateur, avec un risque réel de planter le système en désactivant une fonction critique. Mais comme le souligne l’intervenant, « the pros probably outweigh the cons, especially as we are seeing more of these exploits being published without there yet being a patch available. » Ce patch illustre bien l’évolution de la sécurité Linux vers des solutions plus agiles, au prix d’une responsabilité accrue pour l’administrateur.

Du même canal

Tout voir