Les chercheurs du Centre Helmholtz de sécurité informatique (CISPA) ont publié les résultats d'une étude sur la sécurité des processeurs basés sur l'architecture RISC-V et ont révélé des informations sur une vulnérabilité codée sous le nom de GhostWrite. Cette vulnérabilité affecte les processeurs RISC-V XuanTie C910, fabriqués par la société chinoise T-Head (une filiale d'Alibaba) et développés sous forme de projets ouverts. Elle permet à un attaquant ayant un accès limité et non privilégié au système de lire et d’écrire dans n'importe quelle zone de la mémoire physique, ainsi que d'accéder à la gestion des périphériques tels que les cartes réseau utilisant MMIO (Input/Output mappé en mémoire).
La vulnérabilité est causée par des lacunes dans l'architecture du processeur, liées à l'isolation des instructions processeur ajoutées par le fabricant, qui étendent l'architecture de l'ensemble des instructions RISC-V et permettent un accès direct à la DRAM, contournant ainsi les mécanismes de mémoire virtuelle. L'utilisation de certaines instructions étendues travaillant directement avec la mémoire physique au lieu de la mémoire virtuelle permet de contourner l'isolation de la mémoire entre les processus.
La technique d'attaque préparée est 100 % reproductible et nécessite l'exécution de son code en seulement quelques microsecondes. Les méthodes d'isolement logiciel, telles que les conteneurs et les environnements sandbox, n'entravent pas l'exploitation de la vulnérabilité. Pour bloquer la vulnérabilité, seule la désactivation complète du support des extensions vectorielles est efficace, ce qui entraîne une diminution des performances de 33 % lors des tests rvv-bench (l'annotation du rapport mentionne 77 %, tandis que la page récapitulative indique 33 %, avec des détails précisant une diminution de 33 % pour memcpy et de 8 % pour memset), et réduit également d'environ deux fois le jeu d'instructions processeur disponible pour les applications.
Les CPU XuanTie C910 sont parmi les puces RISC-V les plus performantes disponibles sur le marché, et elles sont déjà largement utilisées dans serveurs des systèmes cloud et des ordinateurs portables. Par exemple, le problème se manifeste dans les serveurs Scaleway Elastic Metal RV1, les clusters Lichee Cluster 4A, l’ordinateur portable Lichee Book 4A, la console de jeux Lichee Console 4A, le mini-ordinateur Lichee Pocket 4A, les cartes mère Sipeed Lichee Pi 4A, Milk-V Meles et BeagleV-Ahead.
À titre d'exemple, des chercheurs ont préparé un exploit permettant à un utilisateur non privilégié d'obtenir des droits root sur Linux. L'exploit modifie le contenu de la table des pages en mémoire, utilisée pour traduire les adresses virtuelles en adresses physiques, afin d'obtenir des adresses virtuelles liées à n'importe quelle adresse physique. Un exemple d'exploit a également été préparé pour lire le contenu de la mémoire du noyau et d'autres processus, ce qui permet d'extraire les clés de chiffrement et les mots de passe stockés en mémoire.
De plus, les chercheurs ont identifié deux autres vulnérabilités architecturales moins graves : l'une concerne les processeurs T-Head XuanTie C906, l'autre le T-Head XuanTie C908. Les deux vulnérabilités se limitent à un appel à un déni de service en raison d'un arrêt du CPU. Ces vulnérabilités peuvent poser des risques pour les plateformes cloud basées sur des puces T-Head XuanTie, car en cas d'accès à l'exécution de code dans l'environnement cloud, il est possible d'arrêter le fonctionnement d'autres utilisateurs hébergés sur le même. le serveur.
Des problèmes ont été identifiés à l'aide du framework RISCVuzz, conçu pour le test de fuzzing des CPU. Ce framework met en évidence les différences dans l'implémentation d'instructions étendues identiques sur différents CPU, conformément à l'hypothèse selon laquelle, en l'absence d'un registre unique pour les extensions du jeu d'instructions RISC-V, des instructions codées de manière identique sur des puces de différents fabricants peuvent entraîner des actions différentes. La vérification consistait à comparer le comportement lors du traitement des instructions processeur sur différents CPU RISC-V et à analyser les vulnérabilités potentielles dans les situations observées où des comportements divergents étaient notés.
Source : opennet.ru
