Une nouvelle attaque par canal latéral appelée « GoFetch » affecte les processeurs Apple M1, M2 et M3 et peut être utilisée pour voler des clés cryptographiques secrètes à partir de données dans le cache du processeur.

L’attaque cible les implémentations cryptographiques à temps constant utilisant des préchargeurs dépendants de la mémoire de données (DMP) trouvés dans les processeurs Apple modernes. Cela lui permet de recréer les clés cryptographiques privées pour divers algorithmes, notamment OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber et Dilithium à partir du cache du processeur.

GoFetch a été développé par une équipe de sept chercheurs de diverses universités américaines, qui ont communiqué leurs conclusions à Apple le 5 décembre 2023.

Cependant, comme il s’agit d’une vulnérabilité matérielle, il n’y a aucun moyen de la corriger dans les PROCESSEURS affectés. Bien qu’il soit possible d’atténuer les failles à l’aide de correctifs logiciels, cela entraînerait une baisse des performances des fonctions cryptographiques de ces processeurs.

Détails de GoFetch
L’attaque GoFetch cible les pré-récupérateurs dépendants de la mémoire des données, une fonctionnalité du processeur conçue pour améliorer les performances de l’ordinateur lors de l’exécution de code.

Un préchargeur est entraîné par les accès précédents à la mémoire lors de la récupération des données, ce qui lui permet de prédire de quelles données l’ordinateur aura besoin ensuite. Ces données sont ensuite extraites à l’avance des parties les plus lentes de la mémoire vers des régions de mémoire plus rapides, comme le cache du processeur.

Si la prédiction est exacte, les données sont désormais rapidement disponibles, augmentant ainsi les performances de l’ordinateur. Si la supposition était fausse, le PROCESSEUR demande simplement les données correctes comme d’habitude.

L’attaque GoFetch se concentre sur un nouveau préchargeur appelé préchargeur dépendant de la mémoire de données (DMP). Ce préchargeur peut également être entraîné sur un accès mémoire précédent, mais peut également examiner les valeurs de données en mémoire pour déterminer ce qui doit être préchargé dans le cache.

DMP est disponible dans les puces Apple Silicon et les processeurs Intel Raptor Lake de 13e génération. Cependant, les chercheurs affirment que la mise en œuvre d’Intel est plus restrictive et empêche l’attaque.

L’attaque se concentre sur les implémentations cryptographiques qui prennent le même temps à s’exécuter quelle que soit l’entrée (temps constant), ce qui est une mesure de sécurité pour empêcher les fuites de données sensibles.

Plus précisément, les chercheurs ont découvert une faille dans la mise en œuvre par Apple du système DMP qui viole les bonnes pratiques en temps constant.

« Nous avons procédé à une ingénierie inverse des DMP sur les processeurs Apple de la série m et avons constaté que le DMP active (et tente de déréférencer) les données chargées à partir de la mémoire qui « ressemblent » à un pointeur », lit le résumé de l’attaque.

« Cela viole explicitement une exigence du paradigme de programmation à temps constant, qui interdit de mélanger des modèles d’accès aux données et à la mémoire. »

Les attaquants peuvent créer des entrées spéciales qui amènent le préchargeur à déréférencer les données, qui apparaîtront comme des pointeurs si certains bits de la clé secrète sont correctement devinés.

Ensuite, ils observent si DMP s’active ou non, déduisant progressivement des bits de la clé secrète. Avec suffisamment de répétitions du processus, l’intégralité de la clé cryptographique secrète peut être reconstruite.

Temps pour obtenir les clés complètes (en ligne – attaque en direct, hors ligne-post-traitement)

Les chercheurs ont confirmé que les processeurs M1 sont sensibles à ce schéma, et étant donné que M2 et M3 ont un comportement de prélecture similaire, ils sont probablement également vulnérables.

Plus de détails sur l’attaque GoFetch peuvent être trouvés dans le document technique publié par les chercheurs, avec un exploit de validation de principe publié à une date ultérieure.

Que devraient faire les propriétaires d’Apple?
Malheureusement, comme la faiblesse fait partie de l’implémentation du préchargeur dépendant de la mémoire des données intégré directement dans les processeurs Apple, il n’y a aucun moyen d’atténuer l’attaque avec un correctif matériel.

Les chercheurs disent qu’il est possible de désactiver DMP sur certains processeurs, comme le M3, en supprimant le comportement de prélecture sur lequel GoFetch s’appuie. Cependant, cela n’est pas possible sur M1 et M2.

D’autres mesures de défense pour les développeurs incluent l’aveuglement des entrées et le masquage d’activation DMP, qui masquent les résultats des entrées de l’attaquant au niveau DMP.

Alors qu’Apple pourrait introduire des atténuations dans macOS en tant que correctif logiciel, cela entraînerait des problèmes de performances, comme nous l’avons vu dans les correctifs logiciels précédents pour les attaques par canal latéral.

En tant qu’utilisateur Apple, vous ne pouvez pas faire grand-chose d’autre que de pratiquer des habitudes informatiques sûres. Cela signifie mettre à jour régulièrement votre système d’exploitation et vos logiciels et installer uniquement des logiciels provenant de canaux officiels et de sources réputées pour éviter les infections par des logiciels malveillants.

L’attaque GoFetch ne nécessite pas d’accès physique pour l’exploitation, donc si l’attaquant peut exécuter du code sur la machine cible, par exemple, via une infection par un logiciel malveillant, il peut être exécuté à distance.

Breachtrace a contacté Apple pour demander un commentaire sur le danger de GoFetch et s’il prévoyait de déployer des mises à jour de sécurité, mais un porte-parole s’est limité à partager une page de développeur décrivant une atténuation.

Laisser un commentaire

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