Une nouvelle vulnérabilité GoFetch dans les puces M d'Apple permet une fuite de clés secrètes sur des ordinateurs compromis

La vulnérabilité GoFetch récemment exposée affectant les puces M1, M2 et M3 d'Apple permet à un attaquant d'exfiltrer les clés secrètes des applications cryptographiques sur un système ciblé. L'exploit fonctionne en exécutant un processus frauduleux sur le même cluster de processeurs que le processus ciblé sur la machine ciblée. Il n'existe actuellement aucune atténuation simple pour cette vulnérabilité, car elle réside dans le matériel.

Quelle est la vulnérabilité GoFetch ?

GoFetch est une vulnérabilité de canal côté cache. Ce type de vulnérabilité cible un cache particulier du système en analysant les données secondaires.

Les puces de silicium Apple M1, M2 et M3 possèdent un préfetcher dépendant de la mémoire de données, qui est un élément matériel de la puce chargé de prédire les adresses mémoire des données auxquelles le code exécuté sur l'ordinateur est susceptible d'accéder dans un avenir proche et de les stocker dans un cache. Pourtant, les DMP — contrairement aux prélecture classiques qui stockent uniquement le modèle d'accès à la mémoire — « prennent également en compte directement le contenu de la mémoire des données pour déterminer ce qu'il faut préextraire », comme l'écrit dans la publication de Boru Chen, Yingchen Wang, Pradyumna Shome, Christopher W. Fletcher, David Kohlbrenner, Riccardo Paccagnella et Daniel Genkin qui révèle tous les détails sur la vulnérabilité GoFetch.

Le DMP a un comportement qui rend possible la vulnérabilité GoFetch : il confond parfois le contenu de la mémoire avec la valeur du pointeur utilisée pour charger d'autres données. Comme l'expliquent les chercheurs, la vulnérabilité GoFetch peut être exploitée en créant « des entrées choisies pour les opérations cryptographiques, de manière à ce que les valeurs de type pointeur n'apparaissent que si nous avons correctement deviné certains bits de la clé secrète ». Ainsi, en répétant ces opérations sur différents bits, il devient possible de deviner tous les bits d’une clé secrète.

Les tests effectués par les chercheurs ont montré qu'il était possible d'extraire des clés de produits de chiffrement populaires (OpenSSL Diffie-Hellman Key Exchange, décryptage Go RSA) mais aussi de cryptographie post-quantique comme CRYSTALS-Kyber et CRYSTALS-Dilithium. Pourtant, les chercheurs ont écrit que « même si nous démontrons des attaques de bout en bout sur quatre implémentations cryptographiques différentes, davantage de programmes sont probablement menacés compte tenu de stratégies d’attaque similaires ».

Qu'est-ce qu'une vulnérabilité de canal côté cache ?

Imaginez que vous ayez un coffre-fort verrouillé dont vous ne connaissez pas le code, mais que vous savez que le son que fait le cadran lorsque vous le tournez change en fonction du numéro sur lequel vous vous trouvez. Ainsi, vous écoutez attentivement le son que fait le cadran lorsque vous le tournez, et vous êtes capable de comprendre la combinaison de cette façon, même si vous ne connaissez pas les chiffres réels.

Une attaque par canal secondaire fonctionne de la même manière. Au lieu d’essayer de briser le cryptage directement, un attaquant recherche d’autres indices susceptibles de révéler les informations secrètes. Par exemple, ils peuvent utiliser un appareil pour mesurer la quantité d’énergie utilisée par un ordinateur lors de ses opérations de cryptage. En analysant les modèles de consommation d'énergie, ils peuvent déterminer la clé utilisée pour chiffrer les données, même s'ils ne connaissent pas l'algorithme. Cela peut être un moyen très efficace de contourner les mesures de sécurité et d’accéder à des informations sensibles.

Quelles sont les conditions obligatoires pour une exploitation réussie de la vulnérabilité GoFetch ?

Pour réussir à exploiter la vulnérabilité GoFetch, un attaquant doit d'abord être capable d'exécuter du code avec les privilèges de l'utilisateur connecté, ce qui signifie que l'ordinateur ciblé a déjà été compromis. Ensuite, le code d'exploitation utilisé par l'attaquant doit être exécuté en tant que processus s'exécutant sur le même cluster de processeurs que la machine ciblée.

« Ces conditions ne sont pas si impossibles, les malwares le prouvent malheureusement tous les jours. Aucun privilège particulier n'est nécessaire », a déclaré Fred Raynal, PDG de Quarkslab, une société française de sécurité offensive et défensive, dans une interview écrite accordée à Testeur Joe.

Raynal a ajouté : « Sous OS X, un processus ne peut pas accéder (déboguer) la mémoire d'un autre processus pour le même utilisateur. C’est possible, mais une fenêtre contextuelle apparaît. Avec cette attaque, pas de pop-up. Il est totalement invisible sans aucun privilège supplémentaire nécessaire pour accéder aux données entre 2 processus.

Quels systèmes sont vulnérables à GoFetch ?

Les ordinateurs Apple possédant la puce M1, M2 ou M3 sont vulnérables à GoFetch. Il y a une différence sur le M3 car la désactivation du bit Data Independent Timing désactive le DMP, ce qui n'est pas possible sur le M1 et le M2.

Les chercheurs ont noté qu'un DMP similaire existe sur la dernière architecture Intel de 13e génération (Raptor Lake), mais avec des critères d'activation plus restrictifs, ce qui la rend robuste à la vulnérabilité GoFetch. De plus, à l’instar de la puce M3, les processeurs Raptor Lake peuvent désactiver DMP en utilisant le bit Data Operand Independent Timing.

Atténuation des menaces GoFetch

La désactivation du DMP entraînerait de lourdes pénalités de performances et n'est probablement pas possible sur les processeurs M1 et M2, selon les chercheurs.

Des techniques cryptographiques de type masquage pourraient être appliquées. « Par exemple, en instrumentant le code pour ajouter/supprimer des masques aux valeurs sensibles avant/après avoir été stockées/chargées depuis la mémoire », expliquent les chercheurs. Cependant, l’un des inconvénients majeurs de cette approche est qu’elle nécessite potentiellement des modifications de code sur mesure pour chaque implémentation cryptographique, ainsi que de lourdes pénalités de performances pour certains schémas cryptographiques.

Il est également possible d'exécuter uniquement tout le code cryptographique sur les cœurs Icestorm, car le DMP ne s'active pas sur ceux-ci. Cette solution réduirait cependant considérablement les performances et il existe un risque qu'à l'avenir, le DMP soit également activé silencieusement sur ces cœurs.

TÉLÉCHARGER : Glossaire rapide des contre-mesures de cybersécurité de Testeur Joe Premium

Le support matériel semble donc être la solution à long terme, comme l'écrivent les chercheurs :

« À plus long terme, nous pensons que la bonne solution consiste à élargir le contrat matériel-logiciel pour tenir compte du DMP. Au minimum, le matériel doit offrir au logiciel un moyen de désactiver sélectivement le DMP lors de l'exécution d'applications critiques pour la sécurité. Cela constitue déjà un précédent dans l’industrie. Par exemple, les extensions DOIT d'Intel mentionnent spécifiquement la désactivation de leur DMP via une extension ISA. À plus long terme, on souhaiterait idéalement un contrôle plus fin, par exemple pour contraindre le DMP à effectuer une prélecture uniquement à partir de tampons spécifiques ou de régions de mémoire non sensibles désignées.

La meilleure protection pour l'instant reste d'interdire toute exécution de code à distance sur l'ordinateur vulnérable afin qu'un attaquant ne puisse pas exploiter GoFetch, comme tout autre type de code malveillant. Par conséquent, il est fortement conseillé de toujours garder le matériel, les systèmes et les logiciels à jour et corrigés afin d'éviter d'être compromis par un logiciel malveillant ou un attaquant qui pourrait ensuite exécuter un exploit GoFetch.

De plus, les utilisateurs ne devraient pas être autorisés à installer des logiciels provenant de tiers non fiables ; ils doivent également se méfier des e-mails de phishing susceptibles de contenir du code malveillant ou des liens vers du code malveillant.

Divulgation: Je travaille pour Trend Micro, mais les opinions exprimées dans cet article sont les miennes.

rewrite this content and keep HTML tags

La vulnérabilité GoFetch récemment exposée affectant les puces M1, M2 et M3 d'Apple permet à un attaquant d'exfiltrer les clés secrètes des applications cryptographiques sur un système ciblé. L'exploit fonctionne en exécutant un processus frauduleux sur le même cluster de processeurs que le processus ciblé sur la machine ciblée. Il n'existe actuellement aucune atténuation simple pour cette vulnérabilité, car elle réside dans le matériel.

Quelle est la vulnérabilité GoFetch ?

GoFetch est une vulnérabilité de canal côté cache. Ce type de vulnérabilité cible un cache particulier du système en analysant les données secondaires.

Les puces de silicium Apple M1, M2 et M3 possèdent un préfetcher dépendant de la mémoire de données, qui est un élément matériel de la puce chargé de prédire les adresses mémoire des données auxquelles le code exécuté sur l'ordinateur est susceptible d'accéder dans un avenir proche et de les stocker dans un cache. Pourtant, les DMP — contrairement aux prélecture classiques qui stockent uniquement le modèle d'accès à la mémoire — « prennent également en compte directement le contenu de la mémoire des données pour déterminer ce qu'il faut préextraire », comme l'écrit dans la publication de Boru Chen, Yingchen Wang, Pradyumna Shome, Christopher W. Fletcher, David Kohlbrenner, Riccardo Paccagnella et Daniel Genkin qui révèle tous les détails sur la vulnérabilité GoFetch.

Le DMP a un comportement qui rend possible la vulnérabilité GoFetch : il confond parfois le contenu de la mémoire avec la valeur du pointeur utilisée pour charger d'autres données. Comme l'expliquent les chercheurs, la vulnérabilité GoFetch peut être exploitée en créant « des entrées choisies pour les opérations cryptographiques, de manière à ce que les valeurs de type pointeur n'apparaissent que si nous avons correctement deviné certains bits de la clé secrète ». Ainsi, en répétant ces opérations sur différents bits, il devient possible de deviner tous les bits d’une clé secrète.

Les tests effectués par les chercheurs ont montré qu'il était possible d'extraire des clés de produits de chiffrement populaires (OpenSSL Diffie-Hellman Key Exchange, décryptage Go RSA) mais aussi de cryptographie post-quantique comme CRYSTALS-Kyber et CRYSTALS-Dilithium. Pourtant, les chercheurs ont écrit que « même si nous démontrons des attaques de bout en bout sur quatre implémentations cryptographiques différentes, davantage de programmes sont probablement menacés compte tenu de stratégies d’attaque similaires ».

Qu'est-ce qu'une vulnérabilité de canal côté cache ?

Imaginez que vous ayez un coffre-fort verrouillé dont vous ne connaissez pas le code, mais que vous savez que le son que fait le cadran lorsque vous le tournez change en fonction du numéro sur lequel vous vous trouvez. Ainsi, vous écoutez attentivement le son que fait le cadran lorsque vous le tournez, et vous êtes capable de comprendre la combinaison de cette façon, même si vous ne connaissez pas les chiffres réels.

Une attaque par canal secondaire fonctionne de la même manière. Au lieu d’essayer de briser le cryptage directement, un attaquant recherche d’autres indices susceptibles de révéler les informations secrètes. Par exemple, ils peuvent utiliser un appareil pour mesurer la quantité d’énergie utilisée par un ordinateur lors de ses opérations de cryptage. En analysant les modèles de consommation d'énergie, ils peuvent déterminer la clé utilisée pour chiffrer les données, même s'ils ne connaissent pas l'algorithme. Cela peut être un moyen très efficace de contourner les mesures de sécurité et d’accéder à des informations sensibles.

Quelles sont les conditions obligatoires pour une exploitation réussie de la vulnérabilité GoFetch ?

Pour réussir à exploiter la vulnérabilité GoFetch, un attaquant doit d'abord être capable d'exécuter du code avec les privilèges de l'utilisateur connecté, ce qui signifie que l'ordinateur ciblé a déjà été compromis. Ensuite, le code d'exploitation utilisé par l'attaquant doit être exécuté en tant que processus s'exécutant sur le même cluster de processeurs que la machine ciblée.

« Ces conditions ne sont pas si impossibles, les malwares le prouvent malheureusement tous les jours. Aucun privilège particulier n'est nécessaire », a déclaré Fred Raynal, PDG de Quarkslab, une société française de sécurité offensive et défensive, dans une interview écrite accordée à Testeur Joe.

Raynal a ajouté : « Sous OS X, un processus ne peut pas accéder (déboguer) la mémoire d'un autre processus pour le même utilisateur. C’est possible, mais une fenêtre contextuelle apparaît. Avec cette attaque, pas de pop-up. Il est totalement invisible sans aucun privilège supplémentaire nécessaire pour accéder aux données entre 2 processus.

Quels systèmes sont vulnérables à GoFetch ?

Les ordinateurs Apple possédant la puce M1, M2 ou M3 sont vulnérables à GoFetch. Il y a une différence sur le M3 car la désactivation du bit Data Independent Timing désactive le DMP, ce qui n'est pas possible sur le M1 et le M2.

Les chercheurs ont noté qu'un DMP similaire existe sur la dernière architecture Intel de 13e génération (Raptor Lake), mais avec des critères d'activation plus restrictifs, ce qui la rend robuste à la vulnérabilité GoFetch. De plus, à l’instar de la puce M3, les processeurs Raptor Lake peuvent désactiver DMP en utilisant le bit Data Operand Independent Timing.

Atténuation des menaces GoFetch

La désactivation du DMP entraînerait de lourdes pénalités de performances et n'est probablement pas possible sur les processeurs M1 et M2, selon les chercheurs.

Des techniques cryptographiques de type masquage pourraient être appliquées. « Par exemple, en instrumentant le code pour ajouter/supprimer des masques aux valeurs sensibles avant/après avoir été stockées/chargées depuis la mémoire », expliquent les chercheurs. Cependant, l’un des inconvénients majeurs de cette approche est qu’elle nécessite potentiellement des modifications de code sur mesure pour chaque implémentation cryptographique, ainsi que de lourdes pénalités de performances pour certains schémas cryptographiques.

Il est également possible d'exécuter uniquement tout le code cryptographique sur les cœurs Icestorm, car le DMP ne s'active pas sur ceux-ci. Cette solution réduirait cependant considérablement les performances et il existe un risque qu'à l'avenir, le DMP soit également activé silencieusement sur ces cœurs.

TÉLÉCHARGER : Glossaire rapide des contre-mesures de cybersécurité de Testeur Joe Premium

Le support matériel semble donc être la solution à long terme, comme l'écrivent les chercheurs :

« À plus long terme, nous pensons que la bonne solution consiste à élargir le contrat matériel-logiciel pour tenir compte du DMP. Au minimum, le matériel doit offrir au logiciel un moyen de désactiver sélectivement le DMP lors de l'exécution d'applications critiques pour la sécurité. Cela constitue déjà un précédent dans l’industrie. Par exemple, les extensions DOIT d'Intel mentionnent spécifiquement la désactivation de leur DMP via une extension ISA. À plus long terme, on souhaiterait idéalement un contrôle plus fin, par exemple pour contraindre le DMP à effectuer une prélecture uniquement à partir de tampons spécifiques ou de régions de mémoire non sensibles désignées.

La meilleure protection pour l'instant reste d'interdire toute exécution de code à distance sur l'ordinateur vulnérable afin qu'un attaquant ne puisse pas exploiter GoFetch, comme tout autre type de code malveillant. Par conséquent, il est fortement conseillé de toujours garder le matériel, les systèmes et les logiciels à jour et corrigés afin d'éviter d'être compromis par un logiciel malveillant ou un attaquant qui pourrait ensuite exécuter un exploit GoFetch.

De plus, les utilisateurs ne devraient pas être autorisés à installer des logiciels provenant de tiers non fiables ; ils doivent également se méfier des e-mails de phishing susceptibles de contenir du code malveillant ou des liens vers du code malveillant.

Divulgation: Je travaille pour Trend Micro, mais les opinions exprimées dans cet article sont les miennes.

Laisser un commentaire