Des chercheurs universitaires ont développé une nouvelle attaque par canal secondaire appelée SLAM qui exploite des fonctionnalités matérielles conçues pour améliorer la sécurité des prochains processeurs d'Intel, AMD et Arm afin d'obtenir le hachage du mot de passe racine de la mémoire du noyau.
SLAM est une attaque par exécution transitoire qui tire parti d'une fonctionnalité de mémoire permettant au logiciel d'utiliser des bits d'adresse non traduits dans des adresses linéaires de 64 bits pour stocker des métadonnées.
Les fournisseurs de processeurs implémentent cela de différentes manières et ont des termes distincts pour cela. Intel l'appelle masquage d'adresse linéaire (MAMA), AMD le nomme Upper Address Ignore (AUI), et Arm fait référence à la fonctionnalité comme Top Byte Ignore (TC).
Abréviation de Spectre basée sur LAM, l'attaque SLAM a été découverte par des chercheurs du Systems and Network Security Group (VUSec Group) de la Vrije Universiteit Amsterdam, qui ont démontré sa validité en émulant la prochaine fonctionnalité LAM d'Intel sur un système Ubuntu de dernière génération.
Selon VUSec, le SLAM impacte principalement les futures puces répondant à des critères précis. Les raisons en sont notamment le manque de contrôles de canonicité rigoureux dans les futures conceptions de puces.
De plus, même si les fonctionnalités matérielles avancées (par exemple LAM, UAI et TBI) améliorent la sécurité et la gestion de la mémoire, elles introduisent également des conditions de concurrence micro-architecturales exploitables.
Fuite du hachage du mot de passe root
L'attaque exploite une nouvelle technique d'exécution transitoire qui se concentre sur l'exploitation d'une classe jusqu'alors inexplorée de gadgets de divulgation Spectre, en particulier ceux impliquant la poursuite de pointeurs.
Les gadgets sont des instructions contenues dans le code logiciel que l'attaquant peut manipuler pour déclencher une exécution spéculative de manière à révéler des informations sensibles.
Bien que les résultats de l'exécution spéculative soient ignorés, le processus laisse des traces telles que des états de cache modifiés que les attaquants peuvent observer pour déduire des informations sensibles telles que des données provenant d'autres programmes ou même du système d'exploitation.
Le Attaque SLAM cible les gadgets « non masqués » qui utilisent des données secrètes comme pointeur, qui, selon les chercheurs, sont courantes dans les logiciels et peuvent être exploitées pour divulguer des données arbitraires du noyau ASCII.
Les chercheurs ont développé un scanner avec lequel ils ont trouvé des centaines de gadgets exploitables sur le noyau Linux. La vidéo suivante montre l'attaque qui fait fuir le hachage du mot de passe root du noyau.
Dans un scénario pratique, un attaquant devrait exécuter sur le système cible le code qui interagit avec les gadgets non masqués, puis mesurer soigneusement les effets secondaires à l'aide d'algorithmes sophistiqués pour extraire des informations sensibles telles que des mots de passe ou des clés de cryptage de la mémoire du noyau.
Le code et les données permettant de reproduire l'attaque SLAM sont disponibles sur Dépôt GitHub de VUSec. Les chercheurs ont également publié un document technique expliquant comment fonctionne l'attaque.
VUSec note que SLAM affecte les processeurs suivants :
- Processeurs AMD existants vulnérables à CVE-2020-12965
- Futurs processeurs Intel prenant en charge LAM (pagination à 4 et 5 niveaux)
- Futurs processeurs AMD prenant en charge l'UAI et la pagination à 5 niveaux
- Processeurs Future Arm prenant en charge TBI et la pagination à 5 niveaux
Réponse du fournisseur au SLAM
En réponse à la divulgation des chercheurs, Arm a publié un consultatif expliquant que ses systèmes atténuent déjà Spectre v2 et Spectre-BHB et ne prévoient aucune autre action en réponse au SLAM.
AMD a également souligné les atténuations actuelles de Spectre v2 pour répondre à l'attaque SLAM décrite par le groupe de recherche VUSec et n'a fourni aucune orientation ou mise à jour qui réduirait le risque.
Intel a annoncé son intention de fournir des conseils logiciels avant de lancer de futurs processeurs prenant en charge le LAM, comme le déploiement de la fonctionnalité avec l'extension de sécurité Linear Address Space Separation (LASS) pour empêcher les accès spéculatifs aux adresses en mode utilisateur/noyau.
En attendant que des instructions supplémentaires soient disponibles, les ingénieurs Linux ont créé des correctifs qui désactivent LAM.