Des chercheurs de plusieurs universitĂ©s aux Ătats-Unis et en Australie ont dĂ©veloppĂ© deux attaques de type Rowhammer â GDDRHammer et GeForge, permettant de modifier des bits individuels dans les puces de mĂ©moire vidĂ©o GDDR tout en exĂ©cutant un noyau CUDA non privilĂ©giĂ© sur un GPU NVIDIA. Contrairement Ă la mĂ©thode GPUHammer prĂ©sentĂ©e l'annĂ©e derniĂšre, les nouvelles attaques ne se limitent pas aux donnĂ©es traitĂ©es dans la mĂ©moire GPU, mais permettent d'accĂ©der Ă l'ensemble de la mĂ©moire principale associĂ©e Ă l'espace d'adressage du CPU. Les chercheurs ont dĂ©montrĂ© des exploits fournissant un accĂšs root au systĂšme principal lors de l'exĂ©cution d'un noyau CUDA non privilĂ©giĂ© sur le GPU.
Les deux attaques entraßnent une déperdition prématurée de charge dans certaines cellules de la mémoire vidéo auxquelles les attaquants n'ont pas accÚs directement, entraßnant une modification des bits stockés dans ces cellules. La possibilité de lire et d'écrire dans la mémoire associée à l'espace d'adressage du CPU est réalisée par l'interférence avec le fonctionnement de l'allocateur de mémoire GPU (cudaMalloc) pour violer l'isolation de la mémoire GPU et mapper des adresses virtuelles GPU sur des adresses physiques arbitraires de la mémoire GPU ou du CPU.
L'interfĂ©rence s'effectue par la modification des valeurs des bits dans la mĂ©moire vidĂ©o, oĂč sont stockĂ©es les tables de pages de la mĂ©moire GPU, responsables de la traduction des adresses virtuelles en adresses physiques. Les diffĂ©rences entre les attaques GDDRHammer et GeForge se rĂ©sument au fait que la mĂ©thode GDDRHammer modifie la table de pages de dernier niveau (PT â Last Level Page Table), tandis que la mĂ©thode GeForge modifie le rĂ©pertoire de pages de dernier niveau (PD0 â Last Level Page Directory).
Parmi d'autres choses, les tables de traduction des adresses mentionnées sont utilisées pour organiser l'accÚs direct du GPU à la mémoire du CPU, c'est pourquoi la modification d'une adresse dans la table des pages GPU vers une adresse physique dans la mémoire principale et l'activation du drapeau APERTURE, qui active le mode de mappage de la mémoire CPU, permettent de lire et d'écrire des données en accédant à la mémoire principale via le bus PCIe avec l'IOMMU désactivé (par défaut désactivé).


Des attaques rĂ©ussies ont Ă©tĂ© dĂ©montrĂ©es pour les cartes graphiques professionnelles hautes performances NVIDIA RTX A6000 basĂ©es sur l'architecture micro-architecturale Ampere (le coĂ»t des nouvelles cartes commence Ă 6850 $, tandis que les modĂšles d'occasion se chiffrent Ă 4000 $) et les modĂšles grand public NVIDIA RTX 3060 (250-300 $). La technique de contournement de la protection contre le Rowhammer combinĂ©e Ă l'utilisation des ressources de parallĂ©lisation fournies par le GPU a permis d'augmenter de 64 fois la frĂ©quence d'occurrence des distorsions des cellules par rapport aux attaques prĂ©cĂ©dentes. En tant que mesure temporaire pour bloquer les attaques, le mode de correction d'erreurs ECC (Error Correcting Codes) peut ĂȘtre activĂ© par la commande « nvidia-smi -e 1 », mais cela entraĂźne des frais supplĂ©mentaires et peut potentiellement ĂȘtre contournĂ© en utilisant des mĂ©thodes d'attaque telles que ECCploit et ECC.fail.
L'attaque RowHammer permet de distordre le contenu de bits individuels de la mĂ©moire DRAM par la lecture cyclique de donnĂ©es Ă partir de cellules de mĂ©moire adjacentes. Ătant donnĂ© que la mĂ©moire DRAM se prĂ©sente sous la forme d'un tableau bidimensionnel de cellules, chacune composĂ©e d'un condensateur et d'un transistor, le fait d'effectuer des lectures continues d'une mĂȘme zone de mĂ©moire entraĂźne des fluctuations de tension et des anomalies, provoquant une lĂ©gĂšre perte de charge des cellules voisines. Si l'intensitĂ© de lecture est Ă©levĂ©e, la cellule adjacente peut perdre une quantitĂ© suffisamment importante de charge et le cycle de rĂ©gĂ©nĂ©ration suivant ne parviendra pas Ă restaurer son Ă©tat d'origine, ce qui entraĂźnera un changement de la valeur des donnĂ©es enregistrĂ©es dans la cellule.
La mĂ©thode d'attaque Rowhammer a Ă©tĂ© proposĂ©e en 2014, aprĂšs quoi un jeu du « chat et de la souris » a commencĂ© entre les chercheurs en sĂ©curitĂ© et les fabricants de matĂ©riel â les fabricants de puces mĂ©moire ont tentĂ© de bloquer la vulnĂ©rabilitĂ©, tandis que les chercheurs trouvaient de nouveaux moyens de la contourner. Par exemple, pour protĂ©ger contre le RowHammer, les fabricants de puces ont ajoutĂ© un mĂ©canisme TRR (Target Row Refresh), mais il s'est avĂ©rĂ© qu'il ne bloque la distorsion des cellules que dans des cas particuliers, sans protĂ©ger contre toutes les variantes d'attaque possibles. Des mĂ©thodes d'attaque ont Ă©tĂ© dĂ©veloppĂ©es pour les puces DDR3, DDR4 et DDR5 sur des systĂšmes avec des processeurs Intel, AMD et ARM, ainsi que pour la mĂ©moire GDDR des GPU NVIDIA. De plus, des moyens ont Ă©tĂ© trouvĂ©s pour contourner la correction d'erreurs ECC et des options pour rĂ©aliser des attaques via le rĂ©seau et l'exĂ©cution de code JavaScript dans le navigateur ont Ă©tĂ© proposĂ©es.
Source : opennet.ru
