Sécurité

Rowhammer : Une nouvelle attaque JavaScript qui cible la DRAM – High-teK.ca

Ce site peut gagner des commissions d’affiliation à partir des liens sur cette page. Conditions d’utilisation.

La plupart des failles et des problèmes de sécurité qui attirent l’attention de la communauté sont fondamentalement basés sur des logiciels. Il n’est pas impossible de trouver un bogue matériel ou un errata à cibler, mais de telles attaques sont généralement d’un ordre de grandeur plus difficile et dépendent du fait que votre cible a une marque ou un modèle de processeur spécifique. Une attaque matérielle contre Haswell échouera très probablement contre un processeur Ivy Bridge ou AMD, tandis qu’une attaque qui réussit contre la conception physique d’une puce ARM ne s’appliquera pas à AMD ou Intel. Il y a une nouvelle attaque matérielle qui fait le tour, surnommée Rowhammer, qui cible directement la DRAM – et elle a le potentiel d’être un casse-tête majeur à l’avenir.

Voici comment fonctionne Rowhammer : des recherches récentes ont montré que l’accès répété aux mêmes blocs de mémoire peut provoquer un léger basculement dans d’autres emplacements de DRAM. Cependant, ces premières attaques nécessitaient l’exécution de code natif et s’appuyaient sur des instructions spéciales. Un correctif récent de Chrome a éliminé la prise en charge de certaines de ces instructions, ce qui était considéré comme la cause du problème.

Ce que de nouvelles recherches ont démontré, cependant, c’est que le code n’a pas besoin d’être natif — il peut être écrit en JavaScript. Plus que cela, cependant, l’exécution de Rowhammer ne nécessite pas de privilèges d’exécution de programme local, ce qui était le cas auparavant. Au lieu de cela, le code peut théoriquement être exécuté via JavaScript, ce qui signifie qu’il peut être servi par des navigateurs Web plutôt que de compter sur un accès direct au système.

Psssssst :  Apple AirTags, maintenant jailbreaké, pourrait devenir un cauchemar encore plus grand pour la confidentialité

Comment fonctionne Rowhammer

À un niveau élevé, la DRAM est organisée en matrices de lignes et de colonnes. Conceptuellement, l’arrangement est similaire à une feuille de calcul, et la cellule exacte à lire ou à écrire est localisée par une adresse combinée de colonne et de ligne. Parce qu’il faut du courant électrique pour lire et écrire des données à partir de la mémoire, effectuer des opérations sur des cellules DRAM nécessite nécessairement un courant électrique. Ce courant peut avoir un impact sur les cellules adjacentes, et la probabilité qu’une DRAM ou une écriture ait un impact sur une cellule voisine n’a fait qu’augmenter à mesure que les cellules sont passées à des géométries plus petites et sont devenues plus compactes.

Marteau DRAM

Image reproduite avec l’aimable autorisation de Wikipédia

En activant rapidement une ligne agressive, un programme hostile peut amener les cellules DRAM adjacentes à inverser leurs valeurs (les lignes victimes). Dans le diagramme ci-dessus, la ligne de l’agresseur est la ligne violette, tandis que les deux lignes de la victime sont affichées en jaune. Si les puces ne sont pas rapidement rafraîchies par le système, un erreur de perturbation se produit, ce qui signifie que les valeurs de ces cellules DRAM particulières changent. Il existe également une attaque Rowhammer à double face, dans laquelle les deux rangées jaunes sont utilisées pour lancer une attaque contre la rangée violette – cette méthode a une chance de succès considérablement plus élevée.

L’une des méthodes standard de protection d’un système d’exploitation consiste à empêcher les processus d’accéder à la mémoire qui ne leur a pas été attribuée. Votre processus Chrome.exe ou Firefox.exe ne peut pas simplement fouiner dans un jeu auquel vous jouez, ou même dans les emplacements de mémoire les uns des autres. C’est le genre d’astuce qui conduit à des verrouillages matériels et à des erreurs de terminal en peu de temps, en particulier si un processus écrase des valeurs dans l’espace mémoire d’un autre processus.

Jusqu’à présent, toutes les démonstrations précédentes d’une attaque de style Rowhammer.js reposaient sur des exploits architecturaux spécifiques. Parce qu’il fonctionne en JavaScript, Rowhammer.js est différent. Alors que les chercheurs ont découvert que différents algorithmes d’expulsion fonctionnaient mieux sur Sandy Bridge, Ivy Bridge et Haswell, l’attaque peut être exploitée contre les trois puces.

Psssssst :  La police peut déverrouiller n'importe quel iPhone avec le nouvel outil de Cellebrite - High-teK.ca

Contre-mesures

À l’heure actuelle, personne n’a créé de rootkit ou d’autre exploit qui s’appuie sur Rowhammer.js ou une attaque équivalente pour faire son sale boulot. Un moyen simple d’éviter le problème consiste à augmenter le taux de rafraîchissement au point que la DRAM n’a plus suffisamment d’intervalle pour être affectée par Rowhammer en premier lieu. Le problème avec cette approche est qu’elle augmente à la fois la consommation d’énergie et qu’elle nécessite une énorme augmentation du rafraîchissement pour être efficace – jusqu’à huit fois la ligne de base pour la DDR3. Il est peu probable que cela se produise sans un changement fondamental dans la technologie de la mémoire, et bien que l’exploit Rowhammer.js ne soit pas actuellement fonctionnel dans la nature, nous serions surpris si les développeurs de logiciels malveillants n’essayaient pas d’en tirer parti à un moment donné.

Bouton retour en haut de la page