Une faille dans le processeur de sécurité de la plate-forme AMD affecte des millions d’ordinateurs

Un autre jour, une autre vulnérabilité. Cette fois, c’est au tour d’AMD, dont une large partie de ses gammes de processeurs modernes est victime d’une vulnérabilité dangereuse du pilote qui pourrait laisser les PC ouverts à toutes sortes d’attaques.

Tel que rapporté par TechSpot, la faille se trouve dans le pilote du processeur de sécurité de la plate-forme AMD (PSP) et pourrait rendre les systèmes vulnérables en permettant aux attaquants de voler des clés de chiffrement, des mots de passe ou d’autres données de la mémoire. Aujourd’hui, nous allons voir quel est le rôle de la PSP et comment cette vulnérabilité peut être utilisée contre les machines affectées.

Qu’est-ce qu’une PSP, de toute façon ?

Le processeur de sécurité de la plate-forme AMD est fonctionnellement l’équivalent de l’entreprise Intel Management Engine (ME), dont nous avons déjà parlé. AMD le qualifie de sous-système « responsable de la création, de la surveillance et de la maintenance de l’environnement de sécurité ». Il se compose d’un cœur de microcontrôleur ARM intégré dans la puce principale du processeur et s’interface avec la mémoire principale du système, les E/S et les registres du processeur.

En bref, c’est un coprocesseur qui a accès à à peu près toutes les parties des ordinateurs dans lesquels il se trouve. Cela en fait une cible de choix pour les attaques. Introduit vers 2013, il s’agit également d’une source entièrement fermée, existant comme une boîte noire inconnue dans les processeurs AMD modernes, ce qui rend les soucieux de la sécurité très méfiants. Fonctionnant à un niveau bas, entièrement en dehors de la portée du processeur principal et du système d’exploitation, la PSP, comme l’IME, est souvent considérée comme une porte dérobée potentielle dans une machine.

Les processeurs ajoutent des fonctionnalités de sécurité depuis des années, avec d’autres technologies, notamment le cryptage de mémoire sécurisé d’AMD et les extensions System Guard d’Intel. Ces sous-systèmes permettent de partitionner des sections de mémoire et de les sécuriser pour des utilisations spéciales. Cependant, ces fonctionnalités se sont également avérées sujettes à des vulnérabilités.

Comment fonctionne la vulnérabilité

Le désormais ancien Athlon X4 est répertorié comme l’une des premières puces affectées par la vulnérabilité.

La vulnérabilité se trouve dans une gamme de chipsets AMD. Cela affecte tout, des processeurs Ryzen modernes aux puces remontant au moins jusqu’à l’AMD Athlon X4 de 2013 selon la propre divulgation d’AMD. Le problème a été signalé pour la première fois à l’entreprise par [Kyriakos Economou] de ZeroPeril Ltd, qui a préparé un rapport utile sur la vulnérabilité.

La vulnérabilité donne aux utilisateurs peu privilégiés l’accès à la mémoire non initialisée. Cela peut sembler sans importance, mais la mémoire non initialisée regorge souvent de données laissées par des processus antérieurs, même si l’ordinateur a été redémarré ou éteint. Cela peut être un moyen facile d’accéder aux clés de chiffrement, aux hachages de mot de passe ou à toutes sortes d’autres données stockées dans la RAM non allouée.

La première partie du problème survient lorsqu’un utilisateur appelle le pilote AMD pour allouer de la mémoire non initialisée à l’aide de la PSP AMD. Lorsqu’une demande est faite pour initialiser une certaine quantité de mémoire, le pilote arrondit la demande à la taille de page mémoire par défaut, généralement de l’ordre de 4096 octets.

Les dernières plates-formes Ryzen d’AMD sont également concernées. Crédit image : Ilya Plekhanov

Si l’utilisateur demande d’initialiser 1 octet, le pilote arrondira cela à 4096 octets complets et allouera cette quantité de mémoire à l’utilisateur. Cependant, il n’initialisera que le premier octet, laissant le reste dans son état antérieur. L’utilisateur peut alors accéder aux 4095 octets restants qui n’ont pas été touchés, accédant ainsi au contenu de la mémoire non initialisée.

Le deuxième problème implique des appels au pilote pour libérer de l’espace mémoire contigu qui a été précédemment alloué. Lorsque certains appels de ce type sont effectués, le pilote ne libère pas correctement la mémoire allouée et la garde associée de manière privée au processus d’origine effectuant l’appel. Cela crée une fuite de mémoire et peut rapidement monopoliser de grandes quantités de mémoire, la rendant indisponible pour le reste du système.

Le groupe de recherche a pu accéder à des gigaoctets de mémoire non initialisée. Les données récupérées comprenaient tout, des hachages de mot de passe utilisateur aux adresses de pool qui pourraient aider un attaquant à contourner les fonctionnalités de sécurité telles que la randomisation de la disposition de l’espace d’adressage du noyau (KASLR) qui tentent de rendre plus difficile pour les pirates de savoir où trouver les zones système cruciales en mémoire.

Patch tôt, patch souvent

Heureusement, le téléchargement des derniers pilotes de chipset AMD devrait suffire à éviter toute attaque potentielle. Le conseil d’AMD est de passer au pilote ADM PSP 5.17.0.0 via Windows Update, ou de télécharger le pilote de chipset AMD 3.08.17.735. Vraisemblablement, cela résout le problème en mettant correctement à zéro la mémoire pendant l’allocation, ainsi qu’en libérant correctement la mémoire lorsqu’elle n’est plus nécessaire.

Dans l’ensemble, un correctif logiciel est suffisant pour résoudre le problème, et c’est une vulnérabilité qui manque de certains des facteurs effrayants des plus grandes découvertes comme Meltdown et Spectre des années passées. Cependant, cela montre simplement que la sécurité informatique est une cible en constante évolution. Il y a toujours une autre vulnérabilité qui se cache au coin de la rue.