Spook.js, une nouvelle technique pour exploiter les vulnérabilités de Spectre dans Chrome

Un groupe de chercheurs des universités américaines, australiennes et israéliennes ont rapporté que décrit une nouvelle technique d'attaque qui permet d'exploiter les vulnérabilités Classe Spectre sur les navigateurs Chromium.

L'attaque, nom de code Spook.js, permet lors de l'exécution de code JavaScript de contourner le mécanisme d'isolation du site et lire le contenu de tout l'espace d'adressage du processus en cours, c'est-à-dire accéder aux données des pages qui sont exécutées dans d'autres onglets, mais qui sont traitées dans le même processus.

Étant donné que Chrome lance différents sites dans différents processus, les attaques pratiques se limitent aux services qui permettent à différents utilisateurs d'héberger leurs pages. La méthode d'attaque de Spook.js permet à partir d'une page dans laquelle un attaquant peut embarquer son code JavaScript, déterminer la présence d'autres pages ouvertes par l'utilisateur du même site et extraire des informations confidentielles d'entre eux, par exemple, les identifiants ou les coordonnées bancaires remplacés par le système de saisie semi-automatique dans les formulaires Web.

Une autre application de la méthode est une attaque contre des plugins de navigateur, qui permet, lorsqu'un plug-in contrôlé par un attaquant est installé, d'extraire des données d'autres plug-ins.

Spook.js est applicable à tout navigateur basé sur le moteur Chromium, y compris Google Chrome, Microsoft Edge et Brave. Les chercheurs pensent également que la méthode peut être adaptée pour fonctionner avec Firefox, mais comme le moteur Firefox est très différent de Chrome, le travail de création d'un tel exploit est laissé à l'avenir.

Pour se protéger contre les attaques liées à l'exécution spéculative d'instructions via le navigateur, la segmentation de l'espace d'adressage est implémentée dans Chrome : l'isolation sandbox permet à JavaScript de fonctionner uniquement avec des pointeurs 32 bits et partage la mémoire du contrôleur en piles de 4 Go sans chevauchement.

Pour organiser l'accès à tout l'espace d'adressage du processus et éviter la limitation 32 bits, les chercheurs ont utilisé la technique de confusion de type, qui permet au moteur JavaScript de traiter un objet avec le mauvais type, permettant de former un 64 bits code basé sur une combinaison de deux valeurs 32 bits.

L'essence de l'attaque est qu'en traitant un objet malveillant spécialement conçu dans le moteur JavaScript, des conditions sont créées qui conduisent à l'exécution spéculative d'instructions qui accèdent au tableau. L'objet est sélectionné de telle sorte que les champs contrôlés par les attaquants soient placés dans la zone où le pointeur 64 bits est utilisé.

Le type d'objet malveillant ne correspondant pas au type de tableau en cours de traitement, dans des conditions normales, de telles actions sont bloquées dans Chrome par le mécanisme de désoptimisation du code utilisé pour accéder aux tableaux. Pour résoudre ce problème, le code d'attaque Type Confusion est placé dans un bloc conditionnel "if", qui ne se déclenche pas dans des conditions normales, mais s'exécute en mode spéculatif, si le processeur prédit de manière incorrecte plus de branches.

En conséquence, le processeur accède de manière spéculative au pointeur 64 bits généré et rétablit l'état après avoir déterminé l'échec de la prédiction, mais les traces d'exécution sont définies dans le cache partagé et peuvent être restaurées à l'aide de méthodes permettant de déterminer le contenu du cache via des tiers. canaux de partie, en analysant le changement de temps d'accès aux données mises en cache et non mises en cache.

Pour analyser le contenu du cache dans les conditions de précision insuffisante du timer disponible en JavaScript, une méthode proposée par Google est utilisée qui trompe la stratégie d'éviction des données du cache Tree-PLRU utilisée dans les processeurs et permet, en augmentant le nombre de cycles, de augmenter considérablement la différence de temps de présence et d'absence d'une valeur dans le cache.

Les chercheurs ont publié un prototype d'exploit qui fonctionne dans Chrome 89 en systèmes avec Intel i7-6700K et i7-7600U. L'exploit a été créé à l'aide de prototypes de code JavaScript précédemment publiés par Google pour mener des attaques Spectre.

Enfin, les chercheurs mentionnent que réussi à préparer des exploits fonctionnels pour les systèmes basés sur les processeurs Intel et Apple M1, qui ont la possibilité d'organiser la lecture de la mémoire à une vitesse de 500 octets par seconde et une précision de 96%. La méthode est censée être applicable aux processeurs AMD, mais il n'a pas été possible de préparer un exploit pleinement fonctionnel.

source: https://www.spookjs.com


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.