Une attaque par canal latéral récemment découverte et démontrée sur des processeurs modernes peut être transformée en arme pour surmonter avec succès Protections d’isolement de site tissés dans les navigateurs Google Chrome et Chromium et divulguent des données sensibles dans une attaque d’exécution spéculative de style Spectre.
Surnommé « Spook.js » par des universitaires de l’Université du Michigan, de l’Université d’Adélaïde, du Georgia Institute of Technology et de l’Université de Tel Aviv, la technique est une Ligne d’attaque basée sur JavaScript qui vise spécifiquement à contourner les barrières mises en place par Google après Spectre, et les vulnérabilités Meltdown sont apparues en janvier 2018, empêchant ainsi potentiellement les fuites en veillant à ce que le contenu de différents domaines ne soit pas partagé dans le même espace d’adressage.
« Une page Web contrôlée par un attaquant peut savoir quelles autres pages des mêmes sites Web un utilisateur navigue actuellement, récupérer des informations sensibles à partir de ces pages et même récupérer les informations de connexion (par exemple, le nom d’utilisateur et le mot de passe) lorsqu’elles sont remplies automatiquement », ont déclaré les chercheurs. ajoutant « l’attaquant peut récupérer des données à partir d’extensions Chrome (telles que les gestionnaires d’informations d’identification) si un utilisateur installe une extension malveillante. »
Par conséquent, toutes les données stockées dans la mémoire d’un site Web en cours de rendu ou d’une extension Chrome peuvent être extraites, y compris les informations personnellement identifiables affichées sur le site Web et les noms d’utilisateur, mots de passe et numéros de carte de crédit remplis automatiquement.
Spectre, désigné comme CVE-2017-5753 et CVE-2017-5715, fait référence à une classe de vulnérabilités matérielles dans les processeurs qui brise l’isolement entre différentes applications et permet aux attaquants de tromper un programme pour qu’il accède à des emplacements arbitraires associés à son espace mémoire, en abusant pour lire le contenu de la mémoire accédée, et ainsi obtenir potentiellement des données sensibles.
« Ces attaques utilisent les fonctionnalités d’exécution spéculative de la plupart des processeurs pour accéder à des parties de la mémoire qui devraient être interdites à un morceau de code, puis utilisent des attaques de synchronisation pour découvrir les valeurs stockées dans cette mémoire », Google c’est noté. « En fait, cela signifie qu’un code non fiable peut être capable de lire n’importe quelle mémoire dans l’espace d’adressage de son processus. »
L’isolation de site, déployée en juillet 2018, est la contre-mesure logicielle de Google conçue pour rendre les attaques plus difficiles à exploiter, entre autres qui impliquent de réduire la granularité du minuteur. Avec la fonctionnalité activée, les versions 67 et supérieures du navigateur Chrome chargeront chaque site Web dans son propre processus et, par conséquent, contrecarreront les attaques entre les processus et donc entre les sites.
Cependant, les chercheurs de la dernière étude ont trouvé des scénarios dans lesquels les sauvegardes d’isolement du site ne séparent pas deux sites Web, sapant ainsi les protections de Spectre. Spook.js exploite cette bizarrerie de conception pour entraîner une fuite d’informations des navigateurs Chrome et Chromium fonctionnant sur des processeurs Intel, AMD et Apple M1.
« Ainsi, Chrome séparera ‘example.com’ et ‘example.net’ en raison de différences [top-level domains], ainsi que ‘example.com’ et ‘attacker.com' », ont expliqué les chercheurs. « Cependant, ‘attacker.example.com’ et ‘corporate.example.com’ sont autorisés à partager le même processus [and] cela permet aux pages hébergées sous ‘attacker.example.com’ d’extraire potentiellement des informations des pages sous « corporate.example.com.' »
« Spook.js montre que ces contre-mesures sont insuffisantes pour protéger les utilisateurs contre les attaques d’exécution spéculative basées sur le navigateur », ont ajouté les chercheurs. Cela dit, comme pour les autres variantes de Spectre, l’exploitation de Spook.js est difficile, nécessitant une expertise substantielle des canaux secondaires de la part de l’attaquant.
En réponse aux conclusions, l’équipe de sécurité Chrome, en juillet 2021, a étendu l’isolation du site pour garantir que « les extensions ne peuvent plus partager de processus entre elles », en plus de les appliquer aux « sites sur lesquels les utilisateurs se connectent via des fournisseurs tiers ». Le nouveau paramètre, appelé Strict Extension Isolation, est activé à partir des versions 92 et ultérieures de Chrome.
« Les développeurs Web peuvent immédiatement séparer le code JavaScript non fiable fourni par l’utilisateur de tout autre contenu de leur site Web, en hébergeant tout le code JavaScript fourni par l’utilisateur sur un domaine qui a un eTLD+1« , ont déclaré les chercheurs. De cette façon, l’isolation stricte du site ne consolidera pas le code fourni par l’attaquant avec des données potentiellement sensibles dans le même processus, mettant les données hors de portée même pour Spook.js car elles ne peuvent pas franchir les limites du processus. «