Il existe une nouvelle façon d’inverser les bits dans la DRAM, et elle fonctionne contre les dernières défenses

En 2015, des chercheurs ont rapporté une découverte surprenante qui a alimenté les préoccupations de sécurité à l’échelle de l’industrie : une attaque appelée RowHammer qui pouvait corrompre, modifier ou voler des données sensibles lorsqu’une simple application au niveau de l’utilisateur accédait à plusieurs reprises à certaines régions des puces de mémoire DDR. Au cours des années suivantes, les fabricants de puces mémoire se sont efforcés de développer des défenses empêchant les attaques, principalement en limitant le nombre de fois où les programmes pouvaient ouvrir et fermer les régions de puce ciblées dans un temps donné.

Récemment, des chercheurs ont mis au point une nouvelle méthode pour créer les mêmes types de bitflips induits par RowHammer, même sur une nouvelle génération de puces, connues sous le nom de DDR4, qui intègrent les atténuations RowHammer. Connue sous le nom de RowPress, la nouvelle attaque ne fonctionne pas en « martelant » à plusieurs reprises des régions soigneusement sélectionnées, mais plutôt en les laissant ouvertes pendant des périodes plus longues que la normale. Les Bitflips font référence au phénomène des bits représentés lorsque les uns se transforment en zéros et vice versa.

Amplifiant encore la vulnérabilité des puces DDR4 aux attaques par perturbation de lecture (terme générique désignant l’induction de bitflips via des accès anormaux (c’est-à-dire des activations) aux puces mémoire), les bitflips RowPress peuvent être améliorés en les combinant avec les accès RowHammer. Curieusement, augmenter la température de la puce intensifie également l’effet.

« Nous démontrons une preuve de concept du programme RowPress qui peut provoquer des bitflips dans un système réel qui utilise déjà des protections contre RowHammer », Onur Mutlu, professeur à l’ETH Zürich et co-auteur d’un article récemment publié intitulé RowPress: Amplifying Read Disturbance in Modern DRAM Chips, a écrit dans un e-mail. « Notez qu’il ne s’agit pas en soi d’une attaque. Cela montre simplement que les bitflips sont possibles et nombreux, ce qui peut facilement constituer la base d’une attaque. Comme l’ont montré de nombreux travaux antérieurs en matière de sécurité, une fois que vous pouvez provoquer un bitflip, vous pouvez l’utiliser pour diverses attaques.

DIMM, bits et rayons cosmiques

L’élément de base de la DRAM (mémoire vive dynamique) est une cellule de stockage. Chaque cellule comprend un condensateur et un transistor et stocke un seul bit de données. Lorsqu’un bit est placé dans une cellule mémoire, le transistor est utilisé pour charger ou décharger le condensateur. Un condensateur chargé est représenté par un 1, tandis qu’un condensateur déchargé est représenté par un 0. Le plus souvent, les cellules DRAM sont organisées en un réseau rectangulaire de lignes et de colonnes.

Schéma illustrant l'organisation hiérarchique d'une puce DRAM.
Agrandir / Schéma illustrant l’organisation hiérarchique d’une puce DRAM.

Ces lignes et colonnes sont disposées en rangs et en banques pour former ce que l’on appelle le module de mémoire double en ligne. Mieux connu sous le nom de DIMM, cette clé rectangulaire se branche sur la carte mère de l’ordinateur. Lorsqu’un ordinateur accède à une partie de la mémoire, il ouvre les lignes vers les cellules stockant les données souhaitées et les transfère au processeur.

Photo d'un module DIMM.
Agrandir / Photo d’un module DIMM.

Les Bitflips sont connus depuis longtemps comme un phénomène rare et naturel. Ils se produisent lorsqu’un flux inattendu d’électrons dans les grilles d’un transistor modifie la tension entre la source, ou la partie du circuit d’où provient le flux, et le puits, où le flux est reçu. Lors d’une élection en Belgique en 2003, les rayons cosmiques venus de l’espace auraient provoqué des bitflips qui ont donné à un candidat politique 4 096 voix supplémentaires avant d’être corrigés. (Le nombre 4 096, qui peut aussi être exprimé par 212suggère qu’il y a eu un bitflip dans le 12ème bit.)

Puis, en 2014, il a découvert un moyen jusqu’alors inconnu d’induire artificiellement des bitflips à volonté. Lorsqu’un ordinateur martelait à plusieurs reprises une ligne de DRAM, ils ont découvert qu’ils pouvaient induire des bitflips dans les lignes adjacentes. Dans le langage RowHammer, la rangée qui est martelée est connue sous le nom de rangée de l’agresseur. La ligne dans laquelle les bits sont inversés est appelée ligne victime.

Source-147