Ils ont développé une série d'attaques de récupération de cache CPU dans les navigateurs Web sans avoir besoin de JavaScript.

Une équipe de chercheurs de diverses universités Américains, Israéliens et Australiens a développé trois attaques ciblant les navigateurs Web qui permettent l'extraction d'informations sur le contenu du cache du processeur. Une méthode fonctionne dans les navigateurs sans JavaScript et les deux autres contournent les méthodes de protection existantes contre les attaques via des canaux tiers, y compris celles utilisées dans le navigateur Tor et DeterFox.

Pour analyser le contenu du cache dans toutes les attaques utilisent la méthode "Prime + Probe", qui implique de remplir le cache avec un ensemble de valeurs de référence et de déterminer les changements en mesurant le temps d'accès à eux une fois rechargés. Afin de contourner les mécanismes de sécurité présents dans les navigateurs, qui empêchent une mesure précise du temps, on fait appel en deux versions à un serveur DNS ou WebSocket attaquant contrôlé, qui garde une trace de l'heure de réception des demandes. Dans un mode de réalisation, le temps de réponse DNS fixe est utilisé comme référence temporelle.

Les mesures effectuées à l'aide de serveurs DNS externes ou WebSocket, grâce à l'utilisation d'un système de classification basé sur l'apprentissage automatique, ont suffi à prédire des valeurs avec une précision de 98% dans le scénario le plus optimal (en moyenne 80-90%). Les méthodes d'attaque ont été testées sur différentes plates-formes matérielles (Intel, AMD Ryzen, Apple M1, Samsung Exynos) et se sont avérées polyvalentes.

La première variante de l'attaque DNS Racing utilise une implémentation classique de la méthode Prime + Probe en utilisant des tableaux JavaScript. Les différences se résument à l'utilisation d'un minuteur DNS externe et d'un gestionnaire d'erreurs qui se déclenche lorsque vous essayez de charger une image à partir d'un domaine inexistant. Le minuteur externe autorise les attaques Prime + Probe dans les navigateurs qui restreignent ou désactivent complètement l'accès au minuteur JavaScript.

Pour un serveur DNS hébergé sur le même réseau Ethernet, la précision du timer est estimée à environ 2 ms, ce qui est suffisant pour effectuer une attaque par canal latéral (à titre de comparaison: la précision du timer JavaScript standard dans le navigateur Tor a été réduit à 100 ms). Pour l'attaque, aucun contrôle sur le serveur DNS n'est requislorsque le temps d'exécution de l'opération est sélectionné de sorte que le temps de réponse DNS serve de signal de fin précoce de la vérification (selon que le gestionnaire d'erreurs a été déclenché plus tôt ou plus tard). , on conclut que l'opération de vérification avec le cache est terminée) ...

La deuxième attaque "String and Sock" est conçue pour contourner les techniques de sécurité qui restreignent l'utilisation de tableaux JavaScript de bas niveau. Au lieu de tableaux, String et Sock utilisent des opérations de chaîne très volumineuses, dont la taille est choisie de sorte que la variable couvre tout le cache LLC (cache de niveau supérieur).

Ensuite, à l'aide de la fonction indexOf (), une petite sous-chaîne est recherchée dans la chaîne, qui est initialement absente de la chaîne d'origine, c'est-à-dire que l'opération de recherche entraîne une itération sur toute la chaîne. Puisque la taille de la ligne correspond à la taille du cache LLC, l'analyse permet d'effectuer une opération de vérification de cache sans manipuler les tableaux. Pour mesurer les délais, au lieu du DNS, il s'agit d'un appel à un serveur WebSocket attaquant contrôlé par l'attaquant: avant le début et après la fin de l'opération de recherche, les requêtes sont envoyées dans la chaîne,

La troisième version de l'attaque "CSS PP0" via HTML et CSS, et peut fonctionner dans les navigateurs avec JavaScript désactivé. Cette méthode ressemble à "String and Sock" mais n'est pas liée à JavaScript. L'attaque génère un ensemble de sélecteurs CSS qui recherchent par masque. La grande ligne originale qui remplit le cache est défini en créant une balise div avec un nom de classe très large, etn qui à l'intérieur il y a un ensemble d'autres div avec leurs propres identifiants.

Chacun de ces div imbriqués sont stylisés avec un sélecteur qui recherche une sous-chaîne. Lors du rendu de la page, le navigateur essaie d'abord de traiter les div internes, ce qui entraîne une recherche sur une grande chaîne. La recherche est effectuée à l'aide d'un masque manifestement manquant et conduit à une itération de la chaîne entière, après quoi la condition «non» est déclenchée et une tentative est faite pour charger l'image d'arrière-plan.


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.