L'attaque GoFetch peut voler des clés de chiffrement sur Mac via une faille des puces Apple

Une faille matérielle, et donc non corrigible, a été découverte dans les puces Mx d'Apple. Selon un article de recherche universitaire récemment publié, cette vulnérabilité permet aux pirates d'extraire des clés de chiffrement secrètes des Mac dans certaines conditions. Quelque chose que l'on a déjà vu en 2022 avec la faille Augury.

Une attaque "GoFetch"

Baptisée "GoFetch", cette cyberattaque fait appel aux Data Memory-Dependent Prefetchers (DMP), qui tentent de prédire les données dont l'ordinateur aura ensuite besoin et de les récupérer à l'avance. Cette méthode de prédiction intelligente est censée accélérer le traitement, mais elle peut révéler involontairement des informations sur ce que fait l'ordinateur. Apple a notamment réussi à distancer ses concurrents comme Intel et Qualcomm grâce à cela.

GoFetch est une attaque microarchitecturale par canal latéral qui permet d'extraire des clés secrètes d'implémentations cryptographiques à temps constant via des préfabricants dépendant de la mémoire de données (DMP).

Nous montrons que les DMP sont présents dans de nombreux processeurs Apple et constituent une menace réelle pour de nombreuses implémentations cryptographiques, ce qui nous permet d'extraire des clés d'OpenSSL Diffie-Hellman, de Go RSA, ainsi que de CRYSTALS Kyber et Dilithium.

L'article, comme celui de 2022, constate que les DMP constituent une menace importante pour la sécurité offerte par les modèles de programmation en temps constant, qui sont utilisés pour écrire des programmes de manière à ce qu'ils prennent le même temps à s'exécuter, quelles que soient les données qu'ils traitent. Pourtant, le modèle de programmation en temps constant est censé protéger contre les attaques par canal latéral, c'est-à-dire les types d'attaques qui permettent à quelqu'un d'obtenir des informations sensibles d'un système informatique sans y accéder directement (en observant certains schémas, par exemple).

Toutefois, l'article révèle que les DMP, en particulier sur les puces d'Apple, peuvent laisser échapper des informations même si le programme est conçu pour ne pas révéler de modèles dans la manière dont il accède à la mémoire. La nouvelle recherche montre que les DMP peuvent parfois confondre le contenu de la mémoire, ce qui les amène à traiter les données comme une adresse.

En particulier, l'attaque GoFetch peut être utilisée en exploitant cette faille de la prédiction des processeurs pour extraire des clés de chiffrement de logiciels sécurisés. L'attaque fonctionne contre certains algorithmes de chiffrement populaires considérés comme résistants aux attaques par canal latéral, y compris les méthodes cryptographiques traditionnelles (par exemple, OpenSSL Diffie-Hellman Key Exchange, Go RSA decryption) et post-quantiques (par exemple, CRYSTALS-Kyber et CRYSTALS-Dilithium).

Dans un courriel adressé à ArsTechnica, les auteurs ont expliqué :

Les préempteurs examinent généralement les adresses des données consultées (en ignorant les valeurs des données consultées) et tentent de deviner les futures adresses qui pourraient être utiles. La DMP est différente en ce sens qu'en plus des adresses, elle utilise également les valeurs des données afin de faire des prédictions (prédire les adresses vers lesquelles se diriger et faire de la pré-récupération). En particulier, si une valeur de données "ressemble" à un pointeur, elle sera traitée comme une "adresse" (alors que ce n'est pas le cas !) et les données de cette "adresse" seront amenées dans la mémoire cache. L'arrivée de cette adresse dans le cache est visible, elle fuit sur les canaux latéraux du cache.


Notre attaque exploite ce fait. Nous ne pouvons pas faire fuir les clés de chiffrement directement, mais nous pouvons manipuler les données intermédiaires à l'intérieur de l'algorithme de chiffrement pour qu'elles ressemblent à un pointeur par le biais d'une attaque par entrée choisie. La DMP constate alors que la valeur des données "ressemble" à une adresse et introduit les données de cette "adresse" dans le cache, ce qui entraîne la fuite de l'"adresse". Nous ne nous soucions pas du fait que la valeur des données soit prérenseignée, mais le fait que les données intermédiaires ressemblent à une adresse est visible via un canal de cache et suffit à révéler la clé secrète au fil du temps.

En résumé, la fonction DMP des processeurs Apple pourrait être utilisée pour contourner les mesures de sécurité des logiciels de cryptographie censés protéger contre de telles fuites, ce qui permettrait aux attaquants d'accéder à des informations sensibles, telles qu'une clé RSA, dans certains cas en moins d'une heure.

Le gros problème, selon les auteurs, est que cette faille ne peut pas être corrigée directement. Le vecteur d'attaque ne peut être réduit qu'en intégrant des défenses dans les logiciels cryptographiques tiers, ce qui pourrait entraîner une dégradation extrême des performances lors de l'exécution des opérations cryptographiques, en particulier sur les anciennes puces M1 et M2.

La DMP sur la puce M3, vue sur les MacBook Pro 2023 et MacBook Air 2024, la dernière puce d'Apple, dispose d'un bit spécial que les développeurs peuvent invoquer pour la désactiver, mais les chercheurs ne sont pas encore sûrs du type de pénalité qui se produira lorsque cette optimisation des performances sera désactivée.

Pour mémoire, l'attaque Augury de 2022 avait été également trouvée sur la puce A14 des iPhone, mais elle n'a finalement jamais pu extraire de données sensibles.

Les chercheurs sont d'ailleurs plus inquiets après la découverte de GoFetch :

GoFetch montre que la DMP est beaucoup plus agressive qu'on ne le pensait et qu'elle pose donc un risque de sécurité beaucoup plus important. Plus précisément, nous constatons que toute valeur chargée depuis la mémoire est susceptible d'être déréférencée (littéralement !). Cela nous permet de contourner de nombreuses limitations d'Augury et de démontrer des attaques de bout en bout sur du code réel à temps constant.

Reste que les attaques de type DMP ne sont pas courantes et nécessitent généralement un accès physique à un Mac. Les chercheurs ont informé Apple de la vulnérabilité en décembre 2023, et il est conseillé aux utilisateurs concernés par la vulnérabilité de vérifier les mises à jour d'atténuation de GoFetch qui seront disponibles dans les futures versions de macOS pour tous les protocoles de chiffrement connus pour être vulnérables.

Vous aimerez peut-être

Nos derniers articles

Suivez-nous avec notre app iSoft
Articles populaires
Donner votre avis
Les réactions

1 Morzyloeuil - iPhone

22/03/2024 à 18h19 :

Le moyen le plus simple pour se prémunir de cette faille est de désactiver le DMP entrainant mécaniquement une baisse des performance du cpu, d’après les tests réalisés par l’auteur de l’article la désactivation du DMP entraine une baisse des performances supérieures à celles des cpu intel gen13 également touchés par cette faille de sécurité.
Le protocole d’accès n’est toutefois pas détaillé ou partiellement sur reddit.