Des chercheurs piratent le mécanisme de sécurité de la mémoire d’Arm et atteignent un taux de contournement de 95 %

Researchers crack Arm

En un mot: Arm a introduit une fonctionnalité de sécurité hardware appelée Memory Tagging Extensions (MTE) en 2018, visant à détecter les violations de sécurité de la mémoire et à renforcer les appareils contre les attaques exploitant les failles de mémoire. Il a été ajouté dans l’architecture Arm v8.5-A et les versions ultérieures. Cependant, des recherches récentes suggèrent que MTE pourrait ne pas tenir ses promesses en matière de sécurité.

MTE fonctionne en balisant des blocs de 16 octets de mémoire physique avec des clés de métadonnées de 4 bits. Lorsqu’un programme accède aux données d’un bloc balisé à l’aide d’un pointeur, le hardware vérifie si le pointeur contient la clé correspondante pour ce bloc de mémoire. Une incompatibilité génère une erreur, détectant potentiellement les exploits tentant d’accéder aux zones de mémoire interdites.

La technologie a été présentée comme une défense contre les bugs courants de corruption de la mémoire C/C++, tels que les débordements de tampon et les erreurs d’utilisation après libération, qui pourraient conduire à un piratage du système et des données. Arm espérait que MTE aiderait les développeurs à détecter ces bugs pendant les tests et à arrêter les attaques au moment de l’exécution.

Cependant, des chercheurs de l’Université nationale de Séoul, de Samsung et de Georgia Tech ont démontré que le MTE peut être contourné environ 95 % du temps en moins de quatre secondes grâce à des attaques d’exécution spéculative.

Leur article, « TikTag : Breaking Arm’s Memory Tagging Extension with Speculative Execution », décrit deux techniques, baptisées TIKTAG-v1 et TIKTAG-v2, qui peuvent extraire les balises MTE pour des adresses mémoire arbitraires en observant comment les opérations spéculatives influencent la prélecture des données.

Des chercheurs piratent le mecanisme de securite de la memoire

L’exécution spéculative est une technique d’optimisation dans laquelle les processeurs effectuent certaines opérations à l’avance et rejettent les résultats s’ils ne sont pas nécessaires. Cependant, l’accès spéculatif aux données peut laisser des canaux secondaires de synchronisation qui divulguent des informations.

Grâce à un code de validation de principe, les chercheurs ont réussi à extraire les balises MTE de Chrome sur Android et le Core Linux avec plus de 95 % de réussite en moins de quatre secondes.

Il est important de noter que les balises extraites ne permettent pas nécessairement une exploitation directe. Les données sensibles telles que les mots de passe et les clés de cryptage ne sont pas directement exposées. Cependant, ils permettent aux attaquants de saper les protections MTE, les rendant ainsi moins efficaces contre des attaques plus sophistiquées.

Dans l’article, les chercheurs ont proposé plusieurs solutions pour ces vulnérabilités, telles que la modification du hardware pour empêcher l’exécution spéculative de fuir les états du cache, l’insertion d’instructions de barrière de spéculation, l’ajout d’instructions de remplissage et l’amélioration du sandboxing pour restreindre l’accès spéculatif.

Ces conclusions ont été divulguées à Arm, qui a reconnu le problème mais ne l’a pas considéré comme un facteur décisif.

À peu près au même moment, l’équipe Chrome de Google a décidé de ne pas répondre aux mesures d’atténuation suggérées par les chercheurs, arguant que le moteur V8 de Chrome n’est pas destiné à garantir la confidentialité des balises MTE. Cependant, l’équipe de sécurité Android a accordé une prime aux bugs après avoir confirmé le problème et l’avoir résolu dans la série Pixel 8.

Détente, découvrez l’évolution du nombre de smartphones vendus par marque au fil du temps dans la vidéo ci-dessous :

Youtube video