Sécurité : Fedora 45 devrait activer par défaut la Shadow Stack dans tout le système
SOS pile fantôme
Le 07 août à 08h02
La prochaine version de la distribution Linux devrait activer par défaut un important mécanisme de sécurité, la Shadow Stack. L’équipe effectue actuellement un gros travail préparatoire, qui pourrait largement débroussailler le terrain pour les autres systèmes Linux. Accrochez-vous un peu, on vous explique.
Sécurité : Fedora 45 devrait activer par défaut la Shadow Stack dans tout le système
SOS pile fantôme
La prochaine version de la distribution Linux devrait activer par défaut un important mécanisme de sécurité, la Shadow Stack. L’équipe effectue actuellement un gros travail préparatoire, qui pourrait largement débroussailler le terrain pour les autres systèmes Linux. Accrochez-vous un peu, on vous explique.
Sécurité
Sécurité
5 min
D’abord, qu’est-ce que la Shadow Stack ? Il s’agit d’une protection initialement créée par Intel en 2016 mais qui n’est réellement arrivée sur le marché qu’en 2020 avec la génération Tiger Lake. Elle fait partie d’une architecture nommée Intel CET (Control-Flow Enforcement Technology), qu’AMD a également reprise à partir de la génération Zen 3 de ses processeurs.
Le principe de la Shadow Stack (ou pile fantôme) est assez technique. Le processeur dispose en permanence d’une seconde pile d’exécution (call stack) en mémoire. Elle est cachée, isolée et protégée en écriture. Lorsqu’une instruction d’appel (CALL) survient, l’adresse de retour est ajoutée sur les deux piles. Quand l’instruction RET (RETURN) – qui sert à terminer l’exécution d’une fonction – survient, le processeur compare les deux piles : s’il y a correspondance des deux adresses de retour, l’opération se poursuit, dans le cas contraire le processeur déclenche une erreur (exception de protection de flux de contrôle). Cette erreur interrompt immédiatement le processus.
Il s’agit d’une fonction de sécurité, car en interrompant brutalement l’opération, le processeur empêche un pirate d’avancer dans son attaque. La Shadow Stack a été créée pour combattre les attaques de type ROP (return-oriented programming), qui peuvent mener à la prise de contrôle de la pile d’exécution. Elles peuvent également contourner des protections plus anciennes comme ASLR (Address Space Layout Randomization).
Une activation par défaut dans Fedora 45
Ce que propose l’équipe de Fedora, c’est d’activer cette protection sur l’ensemble du système sur les configurations x86_64. Car il s’agit bien pour l’instant encore d’une proposition, même si elle a de très fortes chances d’être acceptée au vu de son statut avancé. Si elle ne passait finalement pas la validation, elle serait programmée pour Fedora 46 au printemps prochain.
Dans la fiche dédiée, on peut lire que le gros avantage de la Shadow Stack est son impact quasi nul sur les performances, contrairement aux solutions logicielles de contrôle d’intégrité du flux d’exécution. Le surcoût d’exécution est jugé négligeable et imperceptible sur la grande majorité des charges de travail, permettant en échange une élévation générale du niveau de sécurité.
Une activation générale de cette pile fantôme suppose toutefois des adaptations profondes. Il faut notamment que les compilateurs GCC, Clang et rustc soient prêts, ce qui est a priori le cas désormais. Le reste dépend surtout d’un long travail préparatoire commencé il y a des années, la majorité des paquets du dépôt principal possédant déjà les annotations ELF requises, en plus de certaines options compilées à la compilation depuis 2018. Le support de la bibliothèque glibc est également marqué comme prêt.
Ça existait déjà… mais !
Sur un plan purement technique, Fedora n’est pas la première distribution à supporter la Shadow Stack. Sa prise en charge dans le noyau Linux remonte à la version 6.6 de 2023. Plusieurs distributions – dont Arch Linux, Ubuntu et Debian – compilent déjà une grande partie de leurs paquets avec l’option liée (-fcf-protection) de GCC/Clang.
Alors, en quoi la démarche de Fedora est-elle novatrice ? Parce qu’elle renverse la vapeur : on parle cette fois d’une activation générale et par défaut. Tout processus éligible bascule automatiquement sur la pile fantôme à son lancement, sans intervention de l’utilisateur. Ce changement a notamment nécessité un travail d’audit et de correction pour les binaires incompatibles, comme les routines en assembleur manuscrit, la chaine d’outils Rust ou encore les moteurs de compilation Just-in-time dans les navigateurs.
Pour ces derniers justement, l’équipe de Fedora note que Chrome et Firefox ne sont pas encore compatibles. Cependant, le mécanisme d’activation a été pensé avec cette limitation en tête et contient un processus de « dégradation élégante » (graceful fallback). En clair, si une application charge au démarrage un objet ELF ne disposant pas du marquage SHSTK (pour Shadow Stack), la glibc désactive silencieusement la pile fantôme pour ce processus unique, sans interrompre son exécution.
Précisons enfin que la Shadow Stack n’est que la première moitié de l’architecture Intel CET. L’autre partie se nomme IBT, pour Indirect Branch Tracking. Sa mission est de contrer un autre type d’exploitation, basé sur la programmation orientée saut ou appel indirect (JOP/COP) et qui peut mener, là encore, à une attaque de type ROP. Le travail réalisé sur la Shadow Stack préparera donc le terrain pour la prise en charge d’IBT dans une version « ultérieure » de Fedora, l’équipe ne donnant pas plus de précisions pour l’instant. Le support d’IBT signifierait alors celui d’Intel CET au grand complet, pour les processeurs Intel et AMD compatibles.
Il est très probable que ce travail de fond serve largement la communauté open source une fois Fedora 45 (ou 46 ?) disponible. On peut s’attendre à ce que la plupart des distributions emboitent le pas à Fedora, mais le système est habitué à être un précurseur.
Commentaires (0)
Abonnez-vous pour prendre part au débat
Déjà abonné ou lecteur ? Se connecter
Cet article est en accès libre, mais il est le produit d'une rédaction qui ne travaille que pour ses lecteurs, sur un média sans pub et sans tracker. Soutenez le journalisme tech de qualité en vous abonnant.
Accédez en illimité aux articles d'un média expert
Profitez d'au moins 1 To de stockage pour vos sauvegardes
Intégrez la communauté et prenez part aux débats
Partagez des articles premium à vos contacts
Abonnez-vousSignaler un commentaire
Voulez-vous vraiment signaler ce commentaire ?