Des chercheurs du MIT découvrent une nouvelle faille dans les processeurs Apple M1 qui ne peuvent pas être corrigés


Une nouvelle attaque matérielle baptisée PAC-MAN a été démontré contre les chipsets du processeur M1 d’Apple, armant potentiellement un acteur malveillant avec la capacité d’obtenir l’exécution de code arbitraire sur les systèmes macOS.

Il exploite “les attaques d’exécution spéculative pour contourner un important mécanisme de protection de la mémoire, l’authentification du pointeur ARM, une fonctionnalité de sécurité utilisée pour renforcer l’intégrité du pointeur”, ont déclaré les chercheurs du MIT Joseph Ravichandran, Weon Taek Na, Jay Lang et Mengjia Yan. a dit dans un nouveau journal.

Ce qui est plus préoccupant, c’est que “bien que les mécanismes matériels utilisés par PACMAN ne puissent pas être corrigés avec des fonctionnalités logicielles, des bogues de corruption de mémoire peuvent l’être”, ont ajouté les chercheurs.

La vulnérabilité est enracinée dans les codes d’authentification de pointeur (PAC), une ligne de défense introduite dans l’architecture arm64e qui vise à détecter et à protéger contre les modifications inattendues de pointeurs — objets qui stockent une adresse mémoire — en mémoire.

La cyber-sécurité

Les PAC visent à résoudre un problème courant en matière de sécurité logicielle, tels que les vulnérabilités de corruption de mémoire, qui sont souvent exploitées en écrasant les données de contrôle en mémoire (c’est-à-dire les pointeurs) pour rediriger l’exécution du code vers un emplacement arbitraire contrôlé par l’attaquant.

Alors que des stratégies telles que la randomisation de la disposition de l’espace d’adresse (ASLR) ont été conçus pour augmenter la difficulté d’effectuer des attaques par débordement de mémoire tampon, l’objectif des PAC est de vérifier la “validité des pointeurs avec un impact minimal sur la taille et les performances”, empêchant efficacement un adversaire de créer des pointeurs valides à utiliser dans un exploit.

Ceci est réalisé en protégeant un pointeur avec un hachage cryptographique – appelé code d’authentification de pointeur (PAC) – pour garantir son intégrité. Pomme explique PAC comme suit –

L’authentification par pointeur fonctionne en offrant une instruction CPU spéciale pour ajouter une signature cryptographique – ou PAC – aux bits de poids fort inutilisés d’un pointeur avant de stocker le pointeur. Une autre instruction supprime et authentifie la signature après avoir relu le pointeur de la mémoire. Toute modification de la valeur stockée entre l’écriture et la lecture invalide la signature. Le processeur interprète l’échec d’authentification comme une corruption de la mémoire et définit un bit de poids fort dans le pointeur, rendant le pointeur invalide et provoquant le blocage de l’application.

Processeurs Apple M1

Mais PACMAN “supprime le principal obstacle à la conduite d’attaques de détournement de flux de contrôle sur une plate-forme protégée à l’aide de l’authentification par pointeur”. Il combine la corruption de la mémoire et l’exécution spéculative pour contourner la fonction de sécurité, en divulguant “les résultats de la vérification PAC via des canaux secondaires microarchitecturaux sans provoquer de plantage”.

La méthode d’attaque, en un mot, permet de faire la distinction entre un PAC correct et un hachage incorrect, permettant à un mauvais acteur de “forcer brutalement la valeur PAC correcte tout en supprimant les plantages et de construire une attaque de détournement de flux de contrôle sur un PA activé programme victime ou système d’exploitation.”

La cyber-sécurité

La prévention des collisions, pour sa part, réussit car chaque valeur PAC est devinée de manière spéculative en exploitant un canal latéral basé sur la synchronisation via le tampon de recherche de traduction (TLB) en utilisant une attaque Prime+Probe.

Les vulnérabilités d’exécution spéculative, comme observées dans le cas de Spectre et Meltdown, militarisent exécution dans le désordreune technique utilisée pour améliorer les performances des microprocesseurs modernes en prédire le chemin le plus probable du flux d’exécution d’un programme.

Cependant, il convient de noter que le modèle de menace suppose qu’il existe déjà une vulnérabilité de corruption de mémoire exploitable dans un programme victime (noyau), qui, à son tour, permet à l’attaquant non privilégié (une application malveillante) d’injecter du code malveillant dans certains emplacements de mémoire dans le processus de la victime.

“Cette attaque a des implications importantes pour les concepteurs qui cherchent à implémenter de futurs processeurs avec authentification par pointeur, et a de larges implications pour la sécurité des futures primitives d’intégrité de flux de contrôle”, ont conclu les chercheurs.



ttn-fr-57