MENU

Un test Fuzz révèle la vulnérabilité de GhostWrite RISC-V

Un test Fuzz révèle la vulnérabilité de GhostWrite RISC-V

Technologies |
Par Nick Flaherty



Des chercheurs allemands ont identifié pour la première fois une vulnérabilité dans une puce utilisant l’architecture RISC-V en utilisant des tests fuzz différentiels.

Une équipe du Centre Helmholtz pour la sécurité de l’information a découvert la vulnérabilité, appelée GhostWrite, dans les processeurs RISC-V T-Head XuanTie C910 et C920 utilisés dans une série d’ordinateurs monocartes (voir la liste ci-dessous).

La vulnérabilité des extensions vectorielles RSIC-V permet à des attaquants non privilégiés, même s’ils disposent d’un accès limité, de lire et d’écrire n’importe quelle partie de la mémoire de l’ordinateur et de contrôler les périphériques tels que les cartes réseau. GhostWrite rend les fonctions de sécurité de l’unité centrale inefficaces et ne peut être corrigée sans désactiver environ la moitié des fonctionnalités de l’unité centrale.

Les cartes équipées des processeurs T-Head XuanTie C910 et C920 comprennent le Beagle V-Ahead et le Milk-V Pioneer 64bit cloud cluster.

Keysight, ETAS team on fuzz testing

Contrairement aux attaques par canal latéral ou par exécution transitoire, GhostWrite est un bogue direct du processeur qui utilise des instructions défectueuses dans son extension vectorielle. Ces instructions défectueuses fonctionnent directement avec la mémoire physique au lieu de la mémoire virtuelle, contournant ainsi l’isolation des processus normalement assurée par le système d’exploitation et le matériel. Ce bogue est intégré dans le hardware, ce qui signifie qu’il ne peut pas être corrigé par des mises à jour logicielles.

L’équipe a découvert la vulnérabilité GhostWrite en analysant les instructions documentées et non documentées à l’aide d’une méthode appelée  » differential fuzz-testing » pour les processeurs. Cette méthode utilise de petits programmes exécutés sur différents processeurs pour comparer les résultats. Étant donné que chaque unité centrale RISC-V doit respecter la spécification RISC-V, elle doit produire les mêmes résultats pour les mêmes données d’entrée. Lorsque les résultats diffèrent d’un processeur à l’autre, cela suggère que l’un des processeurs pourrait avoir un problème.

Le processeur T-Head XuanTie C910 a montré un comportement inhabituel avec une instruction vectorielle codée illégalement. Alors que d’autres CPU ont généré des exceptions de défaut de page ou ont refusé d’exécuter l’instruction, le C910 l’a exécutée.

Cette instruction codée illégalement permet à un processus d’écrire directement dans la mémoire physique au lieu de la mémoire virtuelle, révélant une grave faille de sécurité où un attaquant non privilégié, par exemple un utilisateur normal, peut utiliser les instructions pour écrire dans n’importe quel emplacement de la mémoire. Cela permet de contourner complètement les fonctions de sécurité et d’isolation, donnant à l’attaquant un accès complet et illimité au système.

L’attaque est fiable à 100 %, déterministe et ne prend que quelques microsecondes pour s’exécuter. Même les mesures de sécurité telles que la conteneurisation Docker ou le sandboxing ne peuvent pas arrêter l’attaque. En outre, l’attaquant peut détourner des dispositifs matériels qui utilisent des entrées/sorties mappées en mémoire (MMIO), ce qui lui permet d’envoyer n’importe quelle commande à ces dispositifs. La seule façon d’atténuer ce problème est de désactiver l’ensemble de la fonctionnalité du vecteur, ce qui désactive environ 50 % du jeu d’instructions.

Comment fonctionne la vulnérabilité GhostWrite RISC-V

En soi, GhostWrite ne peut qu’écrire en mémoire. Cependant, il peut être utilisé pour créer une fonction de lecture en modifiant les tables de pages en mémoire. Ces tables traduisent les adresses virtuelles de la mémoire en adresses physiques. Par conséquent, leur modification permet à un attaquant d’obtenir une adresse virtuelle accessible pour n’importe quelle adresse physique, permettant ainsi la lecture et l’écriture.

Un deuxième exploit montre comment la fonction de lecture basée sur GhostWrite peut faire fuir n’importe quel contenu de mémoire d’une machine. Cela commence par le remplissage de la mémoire physique avec des tables de pages. Étant donné que le système victime dispose de 8 Go de mémoire, ce processus prend quelques secondes. L’exploit tente ensuite de modifier l’une de ces tables de pages à l’aide de GhostWrite. Une fois qu’il a réussi, l’exploit peut lire un mot de passe secret directement à partir de la mémoire physique.

Les chercheurs pensent que seuls les processeurs T-Head XuanTie C910 du SoC TH1520 et T-Head XuanTie C920 du SOPHON SG2042 sont affectés par la vulnérabilité GhostWrite RISC-V. Cependant, cette vulnérabilité affecte encore un large éventail d’appareils, y compris les ordinateurs personnels, les ordinateurs portables, les conteneurs et les machines virtuelles dans les serveurs cloud.

Les appareils présentant la vulnérabilité RISC-V sont les suivants :

Le document de recherche se trouve à ghostwriteattack.com/riscvuzz.pdf

 

Si vous avez apprécié cet article, vous aimerez les suivants : ne les manquez pas en vous abonnant à :    ECI sur Google News

Partager:

Articles liés
10s