Nouvelle technique d'exploitation des vulnérabilités de type Spectre dans Chrome

Un groupe de chercheurs d'universités américaines, australiennes et israéliennes a proposé une nouvelle technique d'attaque par canaux latéraux pour exploiter les vulnérabilités de type Spectre dans les navigateurs basés sur le moteur Chromium. L'attaque, qui a reçu le nom de code Spook.js, permet, via l'exécution de code JavaScript, de contourner le mécanisme d'isolation des sites et de lire le contenu de tout l'espace d'adresses du processus actuel, c'est-à-dire d'accéder aux données des pages ouvertes dans d'autres onglets mais traitées dans un seul processus.

Comme Chrome lance diffĂ©rents sites dans diffĂ©rents processus, la possibilitĂ© de rĂ©aliser des attaques pratiques est limitĂ©e par les services permettant Ă  diffĂ©rents utilisateurs de publier leurs pages. La mĂ©thode permet, depuis la page oĂč l'attaquant peut intĂ©grer son code JavaScript, de dĂ©tecter la prĂ©sence d'autres pages ouvertes par l'utilisateur provenant du mĂȘme site et d'en extraire des informations confidentielles, par exemple les identifiants ou les coordonnĂ©es bancaires fournies par le systĂšme de saisie automatique des formulaires web. En guise de dĂ©monstration, il est montrĂ© comment attaquer un blog Ă©tranger sur le service Tumblr, si son propriĂ©taire ouvre dans un autre onglet le blog de l'attaquant hĂ©bergĂ© sur le mĂȘme service.

Lire la vidéo

Une autre possibilité d'application de cette méthode est l'attaque des extensions de navigateur, permettant, lors de l'installation d'une extension contrÎlée par l'attaquant, d'extraire des données d'autres extensions. Par exemple, il est montré qu'en installant une extension malveillante, il est possible d'extraire des informations confidentielles du gestionnaire de mots de passe LastPass.

Lire la vidéo

Les chercheurs ont publié un prototype d'exploit fonctionnant sur Chrome 89 sur des systÚmes équipés de processeurs Intel i7-6700K et i7-7600U. Lors de la création de l'exploit, des prototypes de code JavaScript publiés antérieurement par Google pour réaliser des attaques de type Spectre ont été utilisés. Il est à noter que les chercheurs ont réussi à préparer des exploits opérationnels pour des systÚmes basés sur des processeurs Intel et Apple M1, permettant une lecture de la mémoire à une vitesse de 500 octets par seconde avec une précision de 96 %. Il est supposé que la méthode est également applicable aux processeurs AMD, mais il n'a pas été possible de préparer un exploit entiÚrement fonctionnel.

L'attaque s'applique Ă  tous les navigateurs basĂ©s sur le moteur Chromium, y compris Google Chrome, Microsoft Edge et Brave. Les chercheurs estiment Ă©galement que la mĂ©thode pourrait ĂȘtre adaptĂ©e pour fonctionner avec Firefox, mais Ă©tant donnĂ© que le moteur Firefox diffĂšre considĂ©rablement de Chrome, le travail sur la crĂ©ation d'un tel exploit a Ă©tĂ© laissĂ© pour l'avenir.

Pour se protĂ©ger contre les attaques liĂ©es Ă  l'exĂ©cution spĂ©culative d'instructions via le navigateur, Chrome a mis en Ɠuvre un dĂ©coupage de l'espace d'adressage — l'isolation sandbox permet l'exĂ©cution de JavaScript uniquement avec des pointeurs de 32 bits et divise la mĂ©moire des gestionnaires en tas (heap) non chevauchants de 4 Go. Pour organiser l'accĂšs Ă  tout l'espace d'adressage du processus et contourner la limitation de 32 bits, les chercheurs ont utilisĂ© la technique Type Confusion, qui force le moteur JavaScript Ă  traiter un objet avec un type incorrect, permettant ainsi de former un pointeur de 64 bits basĂ© sur une combinaison de deux valeurs de 32 bits.

L'essence de l'attaque est que lors du traitement d'un objet malveillant spĂ©cialement conçu dans le moteur JavaScript, des conditions sont créées qui mĂšnent Ă  l'exĂ©cution spĂ©culative d'instructions accĂ©dant Ă  un tableau. L'objet est choisi de telle maniĂšre que les champs contrĂŽlĂ©s par les attaquants sont placĂ©s dans une zone oĂč un pointeur de 64 bits est utilisĂ©. Étant donnĂ© que le type de l'objet malveillant ne correspond pas au type du tableau traitĂ©, ces actions sont normalement bloquĂ©es par le mĂ©canisme de dĂ©soptimisation du code de Chrome, qui est utilisĂ© pour accĂ©der aux tableaux. Pour contourner ce problĂšme, le code de l'attaque Type Confusion est dĂ©placĂ© dans un bloc conditionnel "if" qui n'est pas activĂ© dans des conditions normales, mais qui s'exĂ©cute en mode spĂ©culatif, lors d'une prĂ©diction incorrecte du processeur pour le futur branchement.

En fin de compte, le processeur accĂšde de maniĂšre spĂ©culative Ă  un pointeur de 64 bits formĂ© et annule son Ă©tat aprĂšs avoir dĂ©terminĂ© la prĂ©vision infructueuse, mais les traces d'exĂ©cution se dĂ©posent dans le cache gĂ©nĂ©ral et peuvent ĂȘtre rĂ©cupĂ©rĂ©es Ă  l'aide de mĂ©thodes de dĂ©termination du contenu du cache par des canaux latĂ©raux, qui analysent les changements du temps d'accĂšs aux donnĂ©es mises en cache et non mises en cache. Pour analyser le contenu du cache dans des conditions de prĂ©cision insuffisante du minuteur disponible en JavaScript, la mĂ©thode proposĂ©e par Google est utilisĂ©e, qui trompe la stratĂ©gie de remplacement de donnĂ©es du cache Tree-PLRU appliquĂ©e dans les processeurs, permettant ainsi d'augmenter considĂ©rablement la diffĂ©rence de temps en prĂ©sence et en absence d'une valeur dans le cache grĂące Ă  l'augmentation du nombre de cycles.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster