La protection mémoire des cartes Nvidia professionnelles vient de tomber. Tu es concerné ?
Vingt-et-une heures et cinquante-quatre minutes. C'est le temps qu'il fallait, l'an dernier, pour arriver à corrompre la mémoire d'une carte graphique Nvidia depuis un simple programme.
Une minute et six secondes. C'est le temps qu'il faut maintenant.
L'équipe de l'université de Toronto qui a publié ça le 25 août appelle son attaque GPUThor. Et ce n'est pas juste plus rapide : elle passe à travers la protection censée empêcher exactement ce genre de chose.
Je tape ici, ça bascule là. Toute l'attaque tient dans cette phrase.
Marteler une case pour faire changer la voisine
Il faut d'abord comprendre un truc bizarre, et un peu vexant, sur la mémoire des ordinateurs.
Une barrette de mémoire, c'est des milliards de cases minuscules, rangées en lignes, chacune contenant un zéro ou un un. Elles sont tellement serrées les unes contre les autres que les lire crée une petite perturbation électrique chez les voisines. Une lecture, aucun problème. Mais si tu lis la même ligne des centaines de milliers de fois d'affilée, très vite, la perturbation s'accumule, et une case de la ligne d'à côté finit par changer de valeur toute seule.
C'est ça, Rowhammer. Marteler une rangée de mémoire jusqu'à ce que la rangée voisine craque. Le nom date de 2014, ça marche sur la mémoire des PC depuis toujours, et personne n'a jamais vraiment su le réparer, parce que le problème n'est pas un bug de logiciel. C'est de la physique.
Le truc, c'est que tu n'as pas le droit de lire la mémoire du voisin. Mais tu as parfaitement le droit de lire la tienne autant de fois que tu veux. Et c'est en lisant la tienne que tu abîmes la sienne.
Le correcteur automatique qui répare, abandonne, ou se trompe
Contre ça, les cartes professionnelles embarquent une protection qui porte le nom d'ECC, pour code correcteur d'erreurs. C'est un correcteur automatique : la mémoire stocke quelques informations en plus, et si un bit a basculé, elle s'en aperçoit et le remet en place sans que personne ne s'en rende compte.
Sauf que ce correcteur a des limites très précises, et c'est là que GPUThor s'installe.
Un bit faux dans un mot, il le répare. Deux bits faux dans le même mot, il voit qu'il y a un problème mais il ne sait pas quoi remettre, alors il refuse de continuer et la machine s'arrête. Trois bits faux, et là c'est le pire : il croit reconnaître une seule erreur, il corrige avec assurance, et il écrit une valeur fausse en pensant avoir fait son travail.
Le cas du milieu plante la machine. Le cas de droite est celui qui devrait t'empêcher de dormir.
Dans les essais publiés, avec la protection activée, l'attaque a produit 387 erreurs à deux bits, celles qui arrêtent la machine, et 2 erreurs à trois bits, celles que le correcteur a réparées de travers. Deux, ça paraît ridicule. C'est deux de trop : il en suffit d'une seule au bon endroit.
Les chiffres, parce qu'ils sont violents
Le même travail, entre l'attaque de l'an dernier et celle-ci. Ce n'est pas un progrès, c'est un changement de catégorie.
L'attaque précédente sur ce type de carte, GPUHammer, mettait presque vingt-deux heures pour produire une bascule exploitable. Autant dire que ce n'était pas une menace pratique : personne ne te laisse tourner un programme suspect pendant une journée entière sur sa machine.
GPUThor y arrive en un peu plus d'une minute, et produit entre 72 000 et 377 000 bascules par gigaoctet de mémoire. Soit, selon les modèles testés, entre 4 548 et 23 597 fois plus que son prédécesseur. Passer d'une journée à une minute, ce n'est plus la même conversation.
Comment on passe d'un bit qui bascule à un accès complet
Un bit inversé au hasard, en soi, ça fait planter un calcul. Ce n'est pas un vol.
Le tour de force est ailleurs. Dans une carte graphique, il existe une table qui dit quel programme a le droit de lire quelle zone de mémoire. C'est le plan de la maison, avec les portes et les serrures. Les chercheurs ont visé cette table précise, ont fait basculer les bons bits dedans, et ont transformé leur programme ordinaire en programme qui peut lire et écrire n'importe où. De là, ils ouvrent un accès administrateur complet sur la machine hôte.
Autrement dit : ils n'ont pas crocheté la serrure, ils ont modifié le plan pour que leur clé ouvre toutes les portes.
Bon, et toi, tu risques quelque chose ?
Non. Et je le dis franchement avant que quelqu'un ne vende une solution miracle.
D'abord, l'attaquant doit pouvoir exécuter son propre programme sur ta machine, avec accès à ta carte graphique. S'il en est déjà là, tu as des soucis bien plus urgents que Rowhammer !
Ensuite, les cartes touchées sont des cartes de station de travail, les RTX A4000, A4500, A5000 et A6000, avec un type de mémoire précis, la GDDR6. Sur les autres mémoires testées, dont celle des cartes de jeu récentes, les chercheurs n'ont obtenu aucune bascule. Ta carte de joueur n'a d'ailleurs pas de correcteur automatique du tout, donc elle n'est même pas le sujet.
Le vrai public concerné, c'est celui qui loue de la puissance graphique à l'heure chez un hébergeur, ou qui partage une même machine entre plusieurs équipes. Là, quelqu'un d'autre exécute son code à côté du tien, sur le même matériel. C'est précisément le scénario que ces cartes sont censées rendre sûr.
La bonne nouvelle, parce qu'il y en a une
Nvidia n'a pas attendu la publication. La faille a été signalée le 29 avril, l'avis du constructeur est sorti le 21 août, quatre jours avant le papier. Il recommande quatre choses : activer la protection mémoire complète du système, activer l'isolation qui empêche un appareil d'aller lire la mémoire d'un autre, surveiller les compteurs d'erreurs de la carte, et ne pas laisser tourner n'importe quel code sur une machine qui compte.
Ce dernier point est le plus intéressant pour n'importe quel administrateur. Ces 387 erreurs à deux bits ne sont pas silencieuses : la carte les signale. Une machine qui se met soudain à cracher des erreurs mémoire en rafale, ce n'est pas forcément du matériel qui vieillit. Ça peut être quelqu'un en train de taper sur la porte d'à côté.
Et puis il y a le fond de l'affaire, qui est plutôt une bonne nouvelle : on parle d'un travail universitaire, publié en entier, avec la méthode, les chiffres et les limites. Ce sont des gens qui cherchent la faille pour qu'elle soit corrigée, quatre mois avant d'en parler en public. Le jour où ce genre de recherche s'arrête, ce n'est pas que le problème a disparu. C'est juste que quelqu'un d'autre l'a trouvé en premier, et qu'il ne publiera rien du tout.
Sources
- BleepingComputer : New GPUThor attack defeats NVIDIA ECC protection for root access, les modèles testés, les chiffres de bascules, le passage à l'accès administrateur et l'avis Nvidia du 21 août
- The Hacker News : GPUThor Rowhammer defeats ECC on NVIDIA RTX A6000, le détail des erreurs à deux et trois bits et la comparaison avec GPUHammer
- GPUThor, le site des chercheurs de l'université de Toronto, avec le papier complet



Rejoignez la conversation
Vous devez avoir un compte pour commenter cet article. La création est gratuite et prend moins d'une minute.
Aucun commentaire pour le moment.