Une nouvelle attaque d’exécution spéculative nommée « TIKTAG » cible l’extension de marquage de mémoire (MTE) d’ARM pour divulguer des données avec plus de 95% de chances de succès, permettant aux pirates de contourner la fonction de sécurité.

L’article, cosigné par une équipe de chercheurs coréens de Samsung, de l’Université nationale de Séoul et du Georgia Institute of Technology, démontre l’attaque contre Google Chrome et le noyau Linux.

MTE est une fonctionnalité ajoutée dans l’architecture ARM v8.5-A (et versions ultérieures), conçue pour détecter et empêcher la corruption de la mémoire.

Le système utilise un balisage à faible surcharge, attribuant des balises de 4 bits à des blocs de mémoire de 16 octets, pour se protéger contre les attaques de corruption de la mémoire en s’assurant que la balise dans le pointeur correspond à la région de mémoire accédée.

MTE dispose de trois modes opérationnels: synchrone, asynchrone et asymétrique, équilibrant sécurité et performance.

Les chercheurs ont découvert qu’en utilisant deux gadgets (code), à savoir TIKTAG-v1 et TIKTAG-v2, ils pouvaient exploiter l’exécution spéculative pour divulguer des balises de mémoire MTE avec un taux de réussite élevé et en peu de temps.

Diagramme de fuite d’étiquette

La fuite de ces balises n’expose pas directement les données sensibles telles que les mots de passe, les clés de cryptage ou les informations personnelles. Cependant, cela peut théoriquement permettre aux attaquants de saper les protections fournies par MTE, rendant le système de sécurité inefficace contre les attaques furtives de corruption de la mémoire.

Attaques de TIKTAKS
TIKTAK-v1 exploite le rétrécissement de la spéculation dans les comportements de prédiction de branche et de préchargement des données du PROCESSEUR pour divulguer les balises MTE.

TIK TAK-le code v1

Les chercheurs ont découvert que ce gadget est efficace dans les attaques contre le noyau Linux, principalement des fonctions qui impliquent des accès spéculatifs à la mémoire, bien qu’une certaine manipulation des pointeurs du noyau soit nécessaire.

L’attaquant utilise des appels système pour invoquer le chemin d’exécution spéculatif et mesure les états du cache pour déduire les balises de mémoire.

TIKTAK-v2 exploite le comportement de transfert de stockage à chargement dans une exécution spéculative, une séquence où une valeur est stockée à une adresse mémoire et immédiatement chargée à partir de la même adresse.

Étiquette TIK-code v2

Si les balises correspondent, la valeur est transférée et le chargement réussit, influençant l’état du cache, tandis qu’en cas de non-correspondance, le transfert est bloqué et l’état du cache reste inchangé.

Ainsi, en sondant l’état du cache après une exécution spéculative, le résultat de la vérification des balises peut être déduit.

Les chercheurs ont démontré l’efficacité des gadgets TIKTAK-v2 contre le navigateur Google Chrome, en particulier le moteur JavaScript V8, ouvrant la voie à l’exploitation des vulnérabilités de corruption de la mémoire dans le processus de rendu.

Scénarios d’attaque rendus possibles grâce au contournement

Réponse de l’industrie et mesures d’atténuation
Les chercheurs ont communiqué leurs conclusions aux entités touchées entre novembre et décembre 2023 et ont reçu une réponse généralement positive, bien qu’aucune solution immédiate n’ait été mise en œuvre.

Le document technique publié le arxiv.org propose les atténuations suivantes contre les attaques TIKTAK:

  • Modifiez la conception matérielle pour empêcher l’exécution spéculative de modifier les états du cache en fonction des résultats de la vérification des balises.
  • Insérez des barrières de spéculation (par exemple, des instructions sb ou ib) pour empêcher l’exécution spéculative d’opérations de mémoire critiques.
  • Ajoutez des instructions de remplissage pour étendre la fenêtre d’exécution entre les instructions de branchement et les accès mémoire.
  • Améliorez les mécanismes de sandboxing pour restreindre les chemins d’accès spéculatifs à la mémoire strictement dans des régions de mémoire sûres.

Bien qu’ARM ait reconnu la gravité de la situation et publié un bulletin il y a quelques mois, il ne considère pas cela comme un compromis de la fonctionnalité.

« Comme les balises d’allocation ne sont pas censées être un secret pour le logiciel dans l’espace d’adressage, un mécanisme spéculatif qui révèle la valeur correcte de la balise n’est pas considéré comme un compromis des principes de l’architecture », lit-on dans le bulletin ARM.

L’équipe de sécurité de Chrome a reconnu les problèmes mais a décidé de ne pas corriger les vulnérabilités car le bac à sable V8 n’est pas destiné à garantir la confidentialité des données de mémoire et des balises MTE.

De plus, le navigateur Chrome n’active actuellement pas les défenses basées sur MTE par défaut, ce qui en fait une priorité inférieure pour les correctifs immédiats.

Les oracles MTE de l’appareil Pixel 8 ont été signalés à l’équipe de sécurité Android plus tard, en avril 2024,et ont été reconnus comme une faille matérielle éligible à une prime.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *