archy13 - stock.adobe.com

L’attaque « GoFetch » menace les puces Apple de la série M

Des chercheurs universitaires ont découvert qu'une fonction d'optimisation matérielle appelée "data memory-dependent prefetcher" pouvait être utilisée de manière abusive pour extraire des clés de chiffrement secrètes de systèmes affectés.

Des chercheurs universitaires ont révélé une attaque par canal dérobé dans les puces de la série M d’Apple qui pourrait permettre à des acteurs malveillants d’obtenir des clés de chiffrement secrètes. Un problème qui pose d’importants problèmes d’atténuation.

Dans un article publié jeudi dernier, l’équipe de recherche explique que l’attaque, baptisée « GoFetch », est basée sur une vulnérabilité résidant au sein de la microarchitecture des puces Apple Silicon de la série M. Elle implique le précollecteur de données dépendant de la mémoire (DMP, Data Memory-dependent Prefetcher). Il s’agit d’un nouveau dispositif d’optimisation matérielle qui prédit les adresses mémoire auxquelles un utilisateur accédera dans un avenir proche et place les données dans la mémoire cache du processeur. En procédant à une rétro-ingénierie du DMP de la série M, l’équipe de recherche a découvert qu’il confondait parfois les valeurs des pointeurs avec les données en mémoire, y compris les clés cryptographiques.

« Cet article montre que la menace que représentent les DMP pour la sécurité est bien plus grave qu’on ne le pensait et démontre les premières attaques de bout en bout sur des logiciels critiques pour la sécurité à l’aide de la DMP de la série M d’Apple », indique l’article de recherche. « Nos attaques reposent sur une nouvelle compréhension du comportement des DMP qui montre, entre autres, que le DMP d’Apple s’activera au nom de n’importe quel programme victime et tentera de faire “fuir” toute donnée mise en cache qui ressemble à un pointeur ».

En 2022, un autre groupe de chercheurs universitaires a découvert pour la première fois que les puces Apple étaient dotées de DMP et a mis au point une attaque par canal latéral appelée « Augury », qui permettait de faire fuir certaines données au repos sur les systèmes utilisant les processeurs Apple M1 et A14. Cependant, les chercheurs ayant découvert GoFetch ont trouvé des DMP dans d’autres puces de la série M et ont constaté qu’ils pouvaient exploiter la fonctionnalité encore plus loin et extraire des clés de plusieurs implémentations cryptographiques, y compris OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber et Dilithium.

Selon le site web GoFetch de l’équipe de recherche, les puces Apple M1, M2 et M3 sont vulnérables à cette attaque par canal dérobé. Bien qu’elle n’ait pas testé d’autres puces de la série M, comme la M2 Pro, l’équipe dit s’attendre à ce qu’elles aient les mêmes DMP exploitables. En outre, les chercheurs ont découvert un DMP dans la microarchitecture Raptor Lake de 13e génération d’Intel. « Cependant, ses critères d’activation sont plus restrictifs, ce qui la rend robuste à nos attaques », ont écrit les chercheurs sur le site web.

Défis liés à l’application de correctifs

Selon les chercheurs, il n’y a pas de solution facile pour GoFetch car il s’agit d’une faille liée à la microarchitecture. L’équipe de recherche entrevoit une « solution radicale » qui consisterait à désactiver les DMP dans les puces Apple de la série M. Las, cette approche pose deux problèmes : premièrement, elle entraînerait de « lourdes pénalités de performance » sur les appareils vulnérables ; deuxièmement, la désactivation des DMP sur les processeurs M1 et M2 n’apparaît « probablement pas possible », selon les chercheurs.

Par conséquent, les développeurs de bibliothèques cryptographiques devront peut-être mettre à jour leurs logiciels afin de désactiver les DMP ou d’éviter leur activation en fonction de la clé, selon le site web.

Les solutions possibles consistent à exécuter tout le code cryptographique sur les cœurs d’efficacité ou « Icestorm » de la série M, qui n’ont pas de DMP. Toutefois, les chercheurs estiment qu’une telle démarche « entraînerait une baisse significative des performances » et ont averti que de futures mises à jour ou modifications d’Apple pourraient activer silencieusement les DMP sur ces cœurs d’efficacité également.

Une autre solution possible consiste à utiliser une technique d’aveuglement cryptographique pour protéger les clés secrètes contre les fuites de GoFetch. Mais les chercheurs voient également là des difficultés majeures : « l’inconvénient majeur de cette approche est qu’elle nécessite des modifications de code potentiellement propres au DMP pour chaque implémentation cryptographique, ainsi que de lourdes pénalités de performance pour certains schémas cryptographiques », écrivent-ils.

L’équipe de recherche GoFetch a signalé la vulnérabilité à Apple le 5 décembre et a également informé OpenSSL, GoCrypto et l’équipe de développement CRYSTALS. Selon le document de recherche, Apple étudie actuellement l’exploitation de la preuve de concept de l’équipe, qui n’a pas encore été publiée.

Un porte-parole d’Apple a fait part à la rédaction de TechTarget d’une solution d’atténuation potentielle, qui consiste à activer la fonction de synchronisation indépendante des données (DIT) dans les puces concernées. La documentation recommande d’utiliser la fonction DIT « dans des situations spécialisées, telles que les routines cryptographiques ».

Le porte-parole a remercié les chercheurs de GoFetch d’avoir fait progresser la compréhension de ce type de menace.

On ne sait pas si les développeurs de logiciels cryptographiques prendront des mesures pour atténuer davantage les effets de GoFetch. Selon les chercheurs, OpenSSL a déclaré que les attaques locales par canal dérobé ne relèvent pas de son modèle de menace, et l’équipe Go Crypto considère que l’attaque est de faible gravité. De son côté, « l’équipe CRYSTALS a convenu que l’épinglage sur les cœurs Icestorm sans DMP pourrait être la solution à court terme, et que des correctifs matériels sont nécessaires à long terme ».

L’équipe de recherche a finalement conclu que des changements significatifs sont nécessaires dans la conception des microarchitectures, pour mieux contrôler la manière dont les DMP sont appliqués et afin d’éviter toute fuite de données sensibles telles que les secrets cryptographiques : « à plus long terme, nous pensons que la bonne solution consiste à renforcer le lien matériel-logiciel pour tenir compte du DMP. Au minimum, le matériel devrait présenter au logiciel un moyen de désactiver sélectivement le DMP lors de l’exécution d’applications critiques pour la sécurité ».

L’équipe de recherche GoFetch comprend Boru Chen de l’université de l’Illinois Urbana-Champaign, Yingchen Wang de l’université du Texas à Austin, Pradyumna Shome du Georgia Institute of Technology, Christopher W. Fletcher de l’université de Californie à Berkeley, David Kohlbrenner de l’université de Washington, Riccardo Paccagnella de l’université de Carnegie Mellon et Daniel Genkin du Georgia Institute of Technology.

Pour approfondir sur Gestion des vulnérabilités et des correctifs (patchs)

Close