Des chercheurs de l'Ăcole polytechnique fĂ©dĂ©rale de Zurich ont dĂ©veloppĂ© une mĂ©thode d'attaque appelĂ©e ZenHammer, qui est une variante des attaques de type RowHammer visant Ă modifier le contenu de bits individuels dans la mĂ©moire dynamique (DRAM), adaptĂ©e pour ĂȘtre utilisĂ©e sur des plateformes avec des processeurs AMD. Les mĂ©thodes prĂ©cĂ©dentes d'attaques de type RowHammer Ă©taient limitĂ©es aux systĂšmes basĂ©s sur des processeurs Intel, mais l'Ă©tude a montrĂ© que des distorsions des cellules de mĂ©moire pouvaient Ă©galement ĂȘtre obtenues sur des plateformes avec des contrĂŽleurs de mĂ©moire d'AMD.
Le fonctionnement de la mĂ©thode a Ă©tĂ© dĂ©montrĂ© sur des systĂšmes AMD Zen 2 et Zen 3 avec de la mĂ©moire DDR4 de trois grands fabricants (Samsung, Micron et SK Hynix). L'attaque permet de contourner le mĂ©canisme TRR (Target Row Refresh) implĂ©mentĂ© dans les puces mĂ©moire, destinĂ© Ă protĂ©ger contre la distorsion des cellules de mĂ©moire dans des lignes voisines. Les chercheurs estiment que les systĂšmes basĂ©s sur le CPU AMD Zen 3 sont plus vulnĂ©rables que ceux avec des processeurs Intel Coffee Lake, et qu'ils sont plus faciles et efficaces Ă attaquer. Sur les systĂšmes AMD Zen 2, des distorsions de cellules ont Ă©tĂ© obtenues pour 7 des 10 puces DDR4 testĂ©es, tandis que pour les systĂšmes Zen 3, c'Ă©tait pour 6 des 10. Les chercheurs ont Ă©galement analysĂ© la possibilitĂ© d'attaquer des systĂšmes AMD Zen 4 avec de la mĂ©moire DDR5, mais la mĂ©thode dĂ©veloppĂ©e pour DDR4 n'a pu ĂȘtre reproduite avec succĂšs que sur 1 des 10 puces mĂ©moire DDR5 testĂ©es ; cela n'exclut pas la possibilitĂ© d'attaque, mais nĂ©cessite le dĂ©veloppement de modĂšles de lecture plus efficaces, adaptĂ©s aux dispositifs DDR5.
Pour travailler avec les puces AMD, il a été possible d'adapter des exploits précédemment développés, modifiant le contenu des entrées de la table des pages mémoire (PTE, page table entry) pour obtenir des privilÚges de noyau, contournant la vérification de mot de passe/autorisation via la modification de la mémoire du processus sudo, et corrompant la clé publique RSA-2048 stockée en mémoire dans OpenSSH pour reconstruire la clé privée. L'attaque sur les pages mémoire a été reproduite sur 7 des 10 puces DDR4 testées, l'attaque sur la clé RSA sur 6 puces, et l'attaque sur sudo sur 4 puces, avec des temps d'attaque respectifs de 164, 267 et 209 secondes.

Cette mĂ©thode pourrait Ă©galement ĂȘtre applicable pour attaquer un systĂšme via des navigateurs, pour apporter des modifications Ă partir de machines virtuelles ou pour organiser une attaque par rĂ©seau. Le code source de l'outil DARE pour l'ingĂ©nierie inverse de l'agencement des adresses dans la mĂ©moire DRAM est disponible sur GitHub sous licence MIT, ainsi que deux ensembles d'utilitaires pour le fuzzing-test des dĂ©formations de bits dans la mĂ©moire â ddr4_zen2_zen3_pub pour les puces DDR4 (Zen 2 et Zen 3) et ddr5_zen4_pub pour les puces DDR5 (Zen 4), qui peuvent ĂȘtre utilisĂ©s pour vĂ©rifier la vulnĂ©rabilitĂ© de leurs systĂšmes Ă l'attaque.

La mĂ©thode de dĂ©formation des bits utilise le RowHammer, qui repose sur le fait que dans la mĂ©moire DRAM, qui consiste en un tableau bidimensionnel de cellules, comprenant un condensateur et un transistor, une lecture continue d'une mĂȘme zone de mĂ©moire entraĂźne des fluctuations de tension et des anomalies, provoquant une petite perte de charge des cellules voisines. Si l'intensitĂ© de la lecture est Ă©levĂ©e, une cellule adjacente peut perdre une quantitĂ© suffisante de charge, et le cycle de rĂ©gĂ©nĂ©ration suivant ne parvient pas Ă restaurer son Ă©tat initial, ce qui entraĂźne une modification de la valeur des donnĂ©es enregistrĂ©es dans la cellule. Au cours de l'Ă©tude, des caractĂ©ristiques des mĂ©canismes de mappage de la mĂ©moire physique et de synchronisation avec la mise Ă jour de la mĂ©moire utilisĂ©s dans les processeurs AMD ont Ă©tĂ© identifiĂ©es, permettant de recrĂ©er l'adressage bas niveau DRAM, de dĂ©terminer les adresses des cellules voisines, de dĂ©velopper des mĂ©thodes de contournement du cache, et de calculer les modĂšles et la frĂ©quence des opĂ©rations entraĂźnant une perte de charge.
Pour se protéger contre le RowHammer, les fabricants de puces appliquent le mécanisme TRR (Target Row Refresh), qui bloque la déformation des cellules dans certains cas, mais ne protÚge pas contre toutes les variantes possibles d'attaque. La méthode de protection la plus efficace reste l'utilisation de la mémoire avec des codes de correction d'erreurs (ECC), qui compliquent considérablement, mais n'excluent pas complÚtement la réalisation d'attaques de type RowHammer. Une augmentation de la fréquence de régénération de la mémoire permet également de réduire la probabilité de succÚs d'une attaque.
La sociĂ©tĂ© AMD a publiĂ© un rapport sur un problĂšme, dans lequel il est indiquĂ© que les processeurs AMD utilisent des contrĂŽleurs de mĂ©moire conformes aux spĂ©cifications DDR. Ătant donnĂ© que le succĂšs de l'attaque dĂ©pend principalement des rĂ©glages du systĂšme et de la mĂ©moire DRAM, les questions concernant la rĂ©solution de ce problĂšme doivent ĂȘtre adressĂ©es aux fabricants de mĂ©moire et de systĂšmes. Parmi les moyens existants pour compliquer la rĂ©alisation d'attaques de type Rowhammer, on mentionne l'utilisation de la mĂ©moire ECC, l'augmentation de la frĂ©quence de rafraĂźchissement de la mĂ©moire, la dĂ©sactivation du mode de rafraĂźchissement diffĂ©rĂ© et l'utilisation de processeurs dotĂ©s de contrĂŽleurs prenant en charge le mode MAC (Maximum Activate Count) pour DDR4 (1re, 2e et 3e gĂ©nĂ©rations AMD EPYC "Naple", "Rome" et "Milan") et RFM (Refresh Management) pour DDR5 (4e gĂ©nĂ©ration AMD EPYC).
Source : opennet.ru
