Blacksmith - une nouvelle attaque contre la mémoire DRAM et les puces DDR4

Une équipe de chercheurs de l'ETH Zurich, de la Vrije Universiteit Amsterdam et de Qualcomm ont publié une nouvelle méthode d'attaque RowHammer qui peut modifier le contenu de bits individuels de la mémoire vive dynamique (DRAM). L’attaque portait le nom de code Blacksmith et était identifiée comme CVE-2021-42114. De nombreuses puces DDR4 équipées d'une protection contre les méthodes de classe RowHammer connues sont sensibles à ce problème. Des outils pour tester la vulnérabilité de vos systèmes sont publiés sur GitHub.

Rappelez-vous que les attaques de classe RowHammer vous permettent de déformer le contenu de bits de mémoire individuels en lisant cycliquement les données des cellules mémoire voisines. Étant donné que la mémoire DRAM est un réseau bidimensionnel de cellules, chacune composée d'un condensateur et d'un transistor, la réalisation de lectures continues de la même région de mémoire entraîne des fluctuations de tension et des anomalies qui provoquent une petite perte de charge dans les cellules voisines. Si l'intensité de lecture est élevée, alors la cellule voisine risque de perdre une quantité de charge suffisamment importante et le prochain cycle de régénération n'aura pas le temps de restaurer son état d'origine, ce qui entraînera une modification de la valeur des données stockées dans la cellule. .

Pour se protéger contre RowHammer, les fabricants de puces ont proposé le mécanisme TRR (Target Row Refresh), qui protège contre la corruption des cellules dans les rangées adjacentes, mais comme la protection était basée sur le principe de « sécurité par obscurité », il n'a pas résolu le problème au niveau du problème. la racine, mais protégé uniquement des cas particuliers connus, ce qui permettait de trouver facilement des moyens de contourner la protection. Par exemple, en mai, Google a proposé la méthode Half-Double, qui n'était pas affectée par la protection TRR, puisque l'attaque touchait des cellules qui n'étaient pas directement adjacentes à la cible.

La nouvelle méthode de Blacksmith propose une manière différente de contourner la protection TRR, basée sur un accès non uniforme à deux ou plusieurs chaînes d'agresseurs à des fréquences différentes pour provoquer une fuite de charge. Pour déterminer le modèle d'accès à la mémoire qui conduit à une fuite de charge, un fuzzer spécial a été développé qui sélectionne automatiquement les paramètres d'attaque pour une puce spécifique, en faisant varier l'ordre, l'intensité et la systématique de l'accès aux cellules.

Une telle approche, qui n'est pas associée à l'influence sur les mêmes cellules, rend inefficaces les méthodes actuelles de protection TRR, qui se résument sous une forme ou une autre à compter le nombre d'appels répétés aux cellules et, lorsque certaines valeurs sont atteintes, à lancer la recharge. des cellules voisines. Dans Blacksmith, le modèle d'accès est réparti sur plusieurs cellules à la fois depuis différents côtés de la cible, ce qui permet d'obtenir une fuite de charge sans atteindre les valeurs seuils.

La méthode s'est avérée nettement plus efficace que les méthodes proposées précédemment pour contourner le TRR - les chercheurs ont réussi à obtenir une distorsion des bits dans l'ensemble des 40 puces de mémoire DDR4 différentes récemment achetées, fabriquées par Samsung, Micron, SK Hynix et un fabricant inconnu (le fabricant était non précisé sur 4 puces). A titre de comparaison, la méthode TRRespass proposée précédemment par les mêmes chercheurs n'était efficace que pour 13 des 42 puces testées à cette époque.

En général, la méthode Blacksmith devrait s'appliquer à 94 % de toutes les puces DRAM du marché, mais les chercheurs affirment que certaines puces sont plus vulnérables et plus faciles à attaquer que d'autres. L'utilisation de codes de correction d'erreurs (ECC) dans les puces et le doublement du taux de rafraîchissement de la mémoire n'offrent pas une protection complète, mais compliquent le fonctionnement. Il est à noter que le problème ne peut pas être bloqué dans les puces déjà publiées et nécessite la mise en œuvre d'une nouvelle protection au niveau matériel, de sorte que l'attaque restera d'actualité pendant de nombreuses années.

Des exemples pratiques incluent des méthodes permettant d'utiliser Blacksmith pour modifier le contenu des entrées dans la table des pages mémoire (PTE, entrée de la table des pages) afin d'obtenir les privilèges du noyau, corrompant ainsi la clé publique RSA-2048 stockée en mémoire dans OpenSSH (vous pouvez importer la clé publique dans la machine virtuelle de quelqu'un d'autre pour correspondre à la clé privée de l'attaquant pour se connecter à la machine virtuelle de la victime) et contourner la vérification des informations d'identification en modifiant la mémoire du processus sudo pour obtenir les privilèges root. Selon la puce, il faut entre 3 secondes et plusieurs heures de temps d'attaque pour modifier un bit cible.

De plus, on peut noter la publication du framework ouvert LiteX Row Hammer Tester pour tester les méthodes de protection de la mémoire contre les attaques de classe RowHammer, développé par Antmicro pour Google. Le framework est basé sur l'utilisation de FPGA pour contrôler entièrement les commandes transmises directement à la puce DRAM afin d'éliminer l'influence du contrôleur de mémoire. Une boîte à outils en Python est proposée pour l'interaction avec FPGA. La passerelle basée sur FPGA comprend un module de transfert de données par paquets (définit les modèles d'accès à la mémoire), un Payload Executor, un contrôleur basé sur LiteDRAM (traite toute la logique requise pour la DRAM, y compris l'activation des lignes et la mise à jour de la mémoire) et un processeur VexRiscv. Les développements du projet sont distribués sous licence Apache 2.0. Diverses plates-formes FPGA sont prises en charge, notamment Lattice ECP5, Xilinx Series 6, 7, UltraScale et UltraScale+.

Source: opennet.ru

Ajouter un commentaire