Une vulnrabilit rcemment dcouverte dans la srie de puces M dApple permet aux attaquants dextraire des cls secrtes des Mac lorsquils effectuent des oprations cryptographiques couramment utilises, ont rvl des chercheurs universitaires. Cette faille, prsente dans les puces Apple M1, M2 et M3, ne peut tre corrige par une mise jour logicielle car elle est prsente dans le silicium lui-mme. Il existe des techniques d’attnuation que les dveloppeurs cryptographiques peuvent crer pour rduire l’efficacit de l’exploit, mais comme l’crit Kim Zetter de Zero Day, le rsultat final pour les utilisateurs est qu’il n’y a rien que vous puissiez faire pour y remdier .
Les puces Apple et les autres processeurs modernes sont dots d’une technique d’optimisation appele « prefetching », conue pour acclrer le traitement en recherchant dans la mmoire de l’ordinateur des modles d’activit, c’est–dire des fonctions que vous excutez frquemment et des donnes auxquelles vous accdez souvent. Le prefetcher dtermine les donnes auxquelles vous avez dj accd et place dans la mmoire cache du systme un pointeur, ou localisateur d’adresse, indiquant l’emplacement de ces donnes ou de ce code de fonction dans la mmoire, afin que le systme puisse les trouver et les utiliser plus rapidement lorsque vous en avez besoin.
Le problme est que la mmoire cache peut fuiter les informations qui y sont stockes, ce qui permet aux pirates de s’en emparer dans le cadre d’attaques dites par canal latral . Pour cette raison, la norme interdit aux systmes de mlanger des donnes avec des adresses ou des pointeurs d’adresse ; si des donnes sont mlanges avec une adresse, lorsque l’utilisateur accde l’adresse, celle-ci peut tre place dans la mmoire cache o elle risque de fuiter.
Mais une quipe de sept chercheurs d’universits amricaines a publi un article et une vido montrant que les puces Apple de la srie M mlangent les donnes et les adresses, ce qui peut tre exploit pour obtenir des cls cryptographiques. Ils ont russi concevoir une application malveillante qui, lorsqu’elle est tlcharge sur l’ordinateur d’un utilisateur, trompe le prefetcher d’Apple – connu sous le nom de Data Memory-Dependent Prefetcher (DMP) – en lui faisant croire que le matriel secret li la cl est une adresse. La recherche a t partiellement finance par des subventions de l’Air Force Office of Scientific Research et de la Defense Advanced Research Projects Agency, selon le site web des chercheurs.
La cl cryptographique elle-mme n’est pas place dans la mmoire cache. Mais des lments drivs de la cl sont placs dans le cache, et un attaquant peut assembler ces lments de manire reconstruire la cl, aprs avoir amen le processeur le faire plusieurs fois. Les chercheurs ont pu driver la cl de quatre algorithmes cryptographiques diffrents : Go, OpenSSL, CRYSTALS-Kyber et CRYSTALS-Dilithium. Ces deux derniers sont considrs comme des algorithmes rsistants au quantum, c’est–dire des algorithmes censs tre si srs qu’ils ne pourraient pas tre dchiffrs l’aide d’un ordinateur quantique. Les chercheurs n’ont pas test leur attaque contre d’autres algorithmes, mais ils pensent qu’elle serait galement efficace contre d’autres algorithmes.
Moins d’une heure pour extraire suffisamment de donnes du cache afin de reconstruire une cl RSA de 2048 bits
Le premier mdia avoir rapport l’affaire note que l’attaque conue par les chercheurs prend moins d’une heure pour extraire suffisamment de donnes du cache pour reconstruire une cl RSA de 2048 bits et un peu plus de 2 heures pour extraire une cl Diffie-Hellman de 2048 bits. L’attaque prend 54 minutes pour extraire le matriel ncessaire l’assemblage d’une cl Kyber-512 et environ 10 heures pour une cl Dilithium-2 .
Matthew Green, cryptographe et professeur d’informatique l’universit Johns Hopkins, estime qu’il s’agit d’une attaque intelligente.
Le code Apple […] applique un certain nombre de critres [pour dterminer] ce qu’est une adresse , explique-t-il. Les chercheurs ont compris que si [leur logiciel malveillant fournit] un message dcrypter, l’algorithme de dcryptage combinera un moment donn la cl avec une partie de [ce] message…. Et cela ressemble suffisamment une adresse pour tromper ce petit prefetcher [en le plaant dans le cache] .
Il ajoute que la dtermination de ce qui est ou n’est pas une adresse est un problme difficile rsoudre pour les prefetcher.
Beaucoup de choses ressemblent une adresse, et [le prefetcher] doit deviner ce qui est rellement une adresse ou non, et [les chercheurs] parviennent ainsi se faufiler [ travers] cette supposition , explique-t-il.
Newly discovered vuln in Apple M-series chips lets attackers extract secret keys from Macs. « The flawa side channel allowing end-to-end key extractions when Apple chips run…widely used cryptographic protocolscant be patched » https://t.co/yjQTogcIzk
— Kim Zetter (@KimZetter) March 21, 2024
Le programme GoFetch
Les chercheurs ont cr un programme malveillant qu’ils ont appel GoFetch et qui permet de raliser ce tour de passe-passe, ainsi qu’une vido dmontrant l’attaque en action.
Les ingnieurs qui conoivent des applications excutant des fonctions cryptographiques mettent en uvre une technique appele programmation temps constant, qui empche efficacement les donnes d’tre mlanges des adresses, d’tre places dans le cache et de faire l’objet d’une fuite. Mais dans le cas des puces de la srie M, la programmation temps constant n’est pas efficace, explique Daniel Genkin, professeur de cyberscurit et de protection de la vie prive l’Institut de technologie de Gorgie et l’un des chercheurs qui ont dcouvert la faille.
Il explique que le problme du prefetcher des puces Apple de la srie M est d au fait que, contrairement aux prefetcher d’autres puces qui n’examinent que les adresses, le prefetcher des puces Apple est programm pour examiner galement les valeurs stockes l’intrieur des adresses, ce qui le met dans une position de vulnrabilit lui permettant de confondre une valeur avec une adresse et de la placer dans la mmoire cache.
Si une valeur ressemble une adresse, le prefetcher peut dcider de la traiter comme une adresse , explique-t-il.
La puce M3 dispose d’un bit spcial dans le processeur que les programmeurs peuvent activer pour dsactiver le prfiltre pour les fonctions cryptographiques et empcher les donnes cryptographiques d’tre places dans la mmoire cache ; mais les puces M1 et M2 ne permettent pas de dsactiver le prefetcher.
Vecteur d’attaque
Comment un attaquant peut-il tromper le processeur ? En glissant un code malveillant dans une application que l’utilisateur tlcharge sur son ordinateur. Le code d’attaque GoFetch qu’ils ont cr ne ncessite pas d’accs root sur une machine pour fonctionner ; il peut tromper le processeur avec le mme niveau d’accs que n’importe quelle application tierce sur une machine.
Il peut galement tre excut sur un serveur cloud hbergeant des machines virtuelles utilises par plusieurs parties.
Si je suis sur Amazon, sur un serveur cloud utilisant une machine virtuelle et qu’il y a une autre machine virtuelle utilisant des cls, c’est un autre exemple de cas o cela pourrait poser un problme , explique Green. Il prcise toutefois qu’il ne s’agit pas d’une attaque facile raliser.
En thorie, il est galement possible pour un pirate d’intgrer un code malveillant dans le Javascript d’un site web, de sorte que lorsqu’un ordinateur quip d’une puce de la srie M visite le site, le code malveillant du pirate peut mener l’attaque pour s’emparer des donnes de la mmoire cache. Les chercheurs n’ont pas test d’attaque sur un site web, mais Green estime que ce scnario est plausible. Il s’agirait galement d’une attaque plus inquitante, note-t-il, car les pirates pourraient l’tendre des milliers d’ordinateurs rapidement.
Selon Green, le risque d’une attaque de type application GoFetch est probablement faible pour la plupart des gens.
Nous parlons d’utilisateurs haut de gamme, comme quelqu’un qui possde un portefeuille de crypto-monnaies avec beaucoup d’argent , prcise-t-il. Mais il note qu’en thorie, cette attaque pourrait tre utilise pour casser la cryptographie TLS que le navigateur d’un ordinateur utilise pour chiffrer la communication entre l’ordinateur et les sites web, ce qui pourrait permettre aux attaquants de dchiffrer cette communication pour extraire le cookie de session d’un utilisateur pour son compte Gmail ou un autre compte de messagerie en ligne et l’utiliser pour se connecter au compte en tant que tel.
Je ne dis pas qu’il s’agit d’une attaque pratique, je dis simplement que c’est le type de menace qui peut vous inquiter , prcise-t-il. Vous pouvez obtenir [d’autres] cls trs prcieuses potentiellement , y compris leurs cls iCloud pour accder aux donnes sauvegardes.
Le correctif
Comme il ne s’agit pas d’une faille dans le systme d’exploitation d’Apple, mais d’un problme matriel dans la puce, Apple ne peut pas simplement publier un correctif comme elle le ferait pour des failles logicielles. Elle pourrait toutefois corriger le problme dans les conceptions ultrieures de la puce.
Interrog sur ce problme, un porte-parole d’Apple n’a pas rpondu directement aux questions de Kim Zetter de Zero Day, se contentant de dire : Nous tenons remercier les chercheurs pour leur collaboration, car cette recherche nous permet de mieux comprendre ce type de menaces . Il a galement envoy un lien vers un site Apple destin aux dveloppeurs d’applications.
Le site contient une instruction aux dveloppeurs d’applications cryptographiques d’inclure dans leur programme un code qui oblige le processeur implmenter un timing indpendant des donnes, ou DIT, qui dsactive effectivement le prefetcher lorsque l’ordinateur excute des fonctions cryptographiques pour leur application. On ne sait pas exactement depuis combien de temps cette instruction se trouve sur le site des dveloppeurs d’Apple ; il n’y a pas de date sur la page.
La page des dveloppeurs d’Apple, qui indique aux dveloppeurs qui crent des applications cryptographiques d’activer DIT pour viter le problme dcouvert par les chercheurs. Mais le correctif dcrit sur cette page ne fonctionne qu’avec les puces M3 d’Apple, et non avec les M1 et M2.
La solution DIT pose toutefois deux problmes :
- Selon les chercheurs, la dsactivation du prfiltre ralentira probablement le processeur pendant les fonctions cryptographiques. Ils ne savent pas dans quelle mesure.
- Le DIT ne fonctionne que pour les puces Apple M3 ; comme indiqu ci-dessus, les puces M1 et M2 n’ont pas la possibilit de dsactiver le prefetcher. Apple n’a lanc la puce M3 que rcemment – les premiers Macbooks quips de puces M3 ont t mis sur le march en octobre dernier. Cela suggre qu’Apple a peut-tre pris conscience du problme de son propre chef, quelque temps aprs la vente des produits quips des puces M1 et M2 (et avant que les chercheurs ne les informent du problme en dcembre), et qu’elle a donc ajout la possibilit de dsactiver le prfiltre dans la puce M3. Si c’est le cas, cela signifie qu’Apple a effectu ce changement sans informer les consommateurs du problme avec leurs puces M1 et M2. Mais il ne s’agit pour l’instant que de spculations.
Matthew Green dclare qu’il n’a jamais eu connaissance de cette instruction donne aux dveloppeurs pour qu’ils mettent en uvre la DIT.
J’implmente la cryptographie et c’est littralement la premire fois que j’en entends parler , dclare-t-il, prcisant que d’autres cryptographes n’en ont probablement pas eu connaissance non plus.
Sources : GoFetch, Zero Day, rapport
Et vous ?
Quelles mesures pensez-vous quApple devrait prendre pour rpondre cette vulnrabilit incolmatable ?
Comment cette rvlation affecte-t-elle votre confiance dans la scurit des produits Apple ?
Quel impact cette vulnrabilit pourrait-elle avoir sur lavenir de la cryptographie dans les appareils grand public ?
Comment les entreprises devraient-elles quilibrer linnovation en matire de performance avec la ncessit de maintenir la scurit des donnes ?
Quelles implications cette faille pourrait-elle avoir pour les utilisateurs qui dpendent fortement de la confidentialit et de la scurit pour leur travail ou leur vie personnelle ?