Vulnérabilités Meltdown et Spectre : état des lieux des navigateurs
Chrome, Mozilla et Edge face au vecteur d'exploitation JavaScript

Le , par Patrick Ruiz, Chroniqueur Actualités
2018 démarre sur des chapeaux de roue avec la panoplie de publications relatives aux vulnérabilités baptisées Meltdown et Spectre. Après les déclarations hâtives de certains fondeurs, il est désormais établi que tous sont concernés par ces développements.

En substance, Google a publié une PoC de Meltdown pour une plateforme Intel. D’après des publications de recherche mises à disposition par la firme de Mountain View cependant, il est possible de faire pareil sur les architectures ARM et AMD moyennant quelques réglages. Dans le cas de Spectre par contre, des preuves de concept ont été mises sur pied pour les trois architectures. De plus, d’après ce qui ressort de la documentation relative à cette dernière, il suffit à un attaquant de disposer d’un navigateur pour lancer une attaque au travers de JavaScript.

Luke Wagner, un ingénieur de Mozilla le confirme via un billet de blog. « Plusieurs articles récemment publiés ont amené des vulnérabilités (Meltdown et Spectre) qui affectent les processeurs modernes à la lumière du jour. D’après des tests menés en interne, il est possible d’utiliser des techniques similaires sur du contenu Web pour accéder à des informations sensibles », a-t-il déclaré.

Un rapport du Microsoft Vulnerability Research vient éclairer le propos de Wagner. D’après ce dernier, l’exploitation desdites failles ouvre la voie à une violation plus aisée de la protection Same-Origin Policy dont les navigateurs sont équipés. En d’autres termes un script JavaScript malicieux chargé sur une page sait extirper des cookies d’authentification ou autres mots de passe d’une autre plus facilement. Pire, les données privées du navigateur lui-même sont à la merci du code malicieux, d’après ce que rapporte l’équipe sécurité de la firme de Redmond.

Microsoft a, par le biais de Windows Update, déployé la mise à jour KB4056890 pour les utilisateurs du navigateur Edge au sein de la Fall Creators Update en date du 3 janvier. Pour ce qui est de Mozilla, une version mise à jour de Firefox Quantum (la 57.0.4) est désormais disponible. Navigateurs différents, mais mesures communes adoptées dans les méandres par les deux entreprises. C’est désormais connu, les vulnérabilités dont il est question reposent sur la capacité du logiciel malveillant à abuser de la temporisation du cache des données des processeurs. Elles reposent sur l’aptitude à effectuer des mesures précises du temps. Pour ces raisons, Firefox et Edge seront sevrés du tampon de données binaires SharedArrayBuffer. Parallèlement la méthode JavaScript performance.now() voit sa résolution passer de 5 à 20 microsecondes. D’après les firmes, il s’agit de solutions de contournement temporaires. Elles poursuivent les investigations qui déboucheront sur des solutions additionnelles en temps opportun.

Quant à Google Chrome, la version 63 intègre le mécanisme de protection Strict Site Isolation. D’après la firme, son activation permet d’assigner à chaque site Web un espace d’adressage distinct. Google recommande d’en faire usage jusqu’à ce que Chrome 64, attendu le 23 janvier, sorte. Il est prévu que l’entreprise s’aligne avec les mesures actuellement adoptées par ses concurrents dans le cadre de cette release.

Sources

Microsoft

Mozilla

Google

Votre opinion

Quels stratagèmes additionnels proposez-vous pour se prémunir de la vulnérabilité Spectre ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de arond arond - Membre éprouvé https://www.developpez.com
le 05/01/2018 à 8:41
Citation Envoyé par joublie Voir le message
Il a bien fait de revendre ses actions, le big boss d'Intel, même si - bien sûr - cela n'a rien à voir. Il pourrait même postuler pour devenir ministre du travail en France...
Blague à part, je me pose des questions sur les brevets et les passages de salariés d'une entreprise à une autre (Intel, AMD, ARM). Comment cette faille se retrouve-t-elle dans trois entreprises : point de brevet déposé dans cette affaire ?

Correction : et IBM aussi ?
Il semblerait que la faille repose sur la façon de fonctionner des processeurs pas sur le moyen de le faire.

Un peu comme si le paradigme objet avait une faille zéro day. Java/Php/C++ serait affecté pourtant ils ne se sont pas copiés

Si j'ai bien compris cet exploit repose sur la prédiction de résultat du CPU mais on peu pas désactivé cette feature ?
Avatar de chrtophe chrtophe - Responsable Systèmes https://www.developpez.com
le 05/01/2018 à 9:46
Sous Windows, certains anti-virus sont incompatibles avec le correctif, provoquant un BSOD. Il semblerait que la mise à jour ne vous soit fournie que si votre antivirus est compatible (vérification d'une clé dans le registre)

Vérifiez que votre antivirus soit bien à jour (pas uniquement les définitions virales).
Avatar de chrtophe chrtophe - Responsable Systèmes https://www.developpez.com
le 05/01/2018 à 10:21
Je pense que les failles reposent sur le dispositif de prédiction de branchement.

Le cpu fait de l'exécution spéculative avec un gain de performance en cas de succès et une perte en cas d’échec, mais globalement cela donne un gain de perfs. C'est pour cela que le code et les données doivent être alignés dans des pages.

Corrompre les caches du CPU donnera un résultat aléatoire, je pense que c’est le principe de fonctionnement des exploits de ces failles. Ces caches sont importants pour l'utilisation de la MMU, qui gère les droits d'accès aux pages mémoires.

Je pense que les patchs invalident les caches à des moments bien précis, ce qui fait perdre en perf.
Avatar de marsupial marsupial - Membre expérimenté https://www.developpez.com
le 05/01/2018 à 14:22
Je ne sais pas si vous imaginez bien un WannaCry sauce meltdown-specter. Ce que je veux dire est que certains vont prendre de la dette ne pouvant patcher, ni même changer de proc. Et en face il se trouve déjà des scripts d'exploit et tutoriels accompagnés des outils et malware des agences américaines tombés entre les mains de pirates.
Pire que tout puisqu on y verra que du feu.

Ça pourrait faire très mal. Et je n'évoque que les pirates donc sans parler des agences gouvernementales et autres APT Lazarus.
Avatar de jlliagre jlliagre - Modérateur https://www.developpez.com
le 05/01/2018 à 19:35
Citation Envoyé par chrtophe Voir le message
Je pense que les failles reposent sur le dispositif de prédiction de branchement.
Les trois failles reposent sur l'exécution spéculative, ce qui est un peu différent de la prédiction de branchement.

Avec la prédiction de branchement, lorsqu'il va y avoir un test (du style if/then/else) le processeur va charger l'instruction qu'il pense avoir le plus de chances d'être la suivante.

Avec l'exécution spéculative, le CPU charge une instruction qu'il estime avoir bonne chance d'être exécutée mais en plus, il l'exécute vraiment.

Dans les deux cas, si l'hypothèse est infirmée, l'exécution reprend vers la bonne instruction à exécuter. En théorie, on revient dans le même état que celui ou l'on aurait été sans ces optimisations, mais en pratique, l'exécution spéculative a des effets de bord: la perte de données qui étaient auparavant en cache et la présence dans le cache de données qui n'y seraient pas allées autrement.

Il n'y a pas d'instructions qui permettent de lire directement les données placées en cache par les techniques précédentes mais il existe des moyens détournés sophistiqués pour le deviner. Celui qui est le plus souvent décrit consiste à mesurer le temps mis à charger le contenu d'une adresse mémoire. Si ce temps est "long", c'est que le processeur est bien allé chercher la donnée en RAM. Si ce temps est court, c'est que cette adresse viens déjà d'être lue. On a donc réussi à lire le contenu du cache alors qu'il n'existe pas de moyen direct de le faire.

Avec Meltdown, on peut lire la totalité de la mémoire du noyau. On ne peut pas directement écrire dans cette mémoire, mais ce qu'on y lit, par exemple des mots de passe en clair ou des clefs privées pourra être exploité pour facilement devenir root.

Le cpu fait de l'exécution spéculative avec un gain de performance en cas de succès et une perte en cas d’échec, mais globalement cela donne un gain de perfs.
Il n'y a pas vraiment de perte de performance en cas d'échec (la durée du rollback doit être infime). Le temps passé par le CPU à faire de l'exécution spéculative aurait sinon été perdu à ne rien faire.

Corrompre les caches du CPU donnera un résultat aléatoire, je pense que c’est le principe de fonctionnement des exploits de ces failles.
Il n'y a pas de corruption des caches, mais au contraire chargement de données valides mais "interdites" dans les caches. Invalider complètement les caches supprimerait le risque mais serait inacceptable en terme de performance. Il faut cent à deux cents fois plus de temps pour charger des données de la RAM par rapport au cache niveau 1, vingt fois plus que le cache niveau 2.

Ces caches sont importants pour l'utilisation de la MMU, qui gère les droits d'accès aux pages mémoires.

Je pense que les patchs invalident les caches à des moments bien précis, ce qui fait perdre en perf.
Les patches qui sont disponibles pour Windows, Linux et OS X mettent en place une séparation franche entre espace mémoire utilisateur et espace mémoire noyau, ce qui n'était pas le cas jusqu'ici. L'objectif est de contrer Meltdown (spécifique aux processeurs Intel) mais avec un impact sur les performances qui est sujet à controverse (entre non mesurable et 30% suivant l'utilisation du processeur).

Il existe aussi des patches pour les compilateurs qui modifient le code assembleur généré pour contrer certains types d'attaques en replaçant les appels par un "retpoline" (return trampoline) et des patches pour le microcode des CPUs
Avatar de AndMax AndMax - Membre averti https://www.developpez.com
le 05/01/2018 à 23:59
Citation Envoyé par Patrick Ruiz Voir le message
Quels stratagèmes additionnels proposez-vous pour se prémunir de la vulnérabilité Spectre ?
Sur Meltdown / Spectre, et comme avec toutes les questions de sécurité, un usage responsable et le suivi des recommandations en vigueur.
Avatar de Patrick Ruiz Patrick Ruiz - Chroniqueur Actualités https://www.developpez.com
le 06/01/2018 à 10:57
Vulnérabilité Spectre : Google publie une nouvelle technique de mitigation
Elle introduirait un impact négligeable sur les performances des machines

Meltdown et Spectre… Seulement trois jours et l’on compte déjà une panoplie d’articles au sujet de ces vulnérabilités. Comment s’en prémunit-on ? Quel est l’impact des correctifs sur les performances des ordinateurs ? Voilà autant de questions que la communauté s’est posées jusqu’ici et auxquelles ces derniers ont apporté des réponses en fonction des éléments à leur disposition. À la manière des changements qui ont cours avec les puces, les nouvelles informations fusent. À ce propos, Google a apporté une nouvelle contribution à ces développements avec la publication d’une technique de mitigation baptisée Retpoline.

Référence faite aux publications de recherche dévoilées par la firme de Mountain View, la vulnérabilité Spectre est dotée de deux variantes. Retpoline apporte une réponse additionnelle à la seconde. Une bonne nouvelle pour l’industrie qui, à côté de la modification du microcode des processeurs comme solution à cette vulnérabilité, dispose désormais d’une alternative. D’après Paul Turner son auteur, il s’agit d’une technique de modification des binaires qui protège contre les attaques de type « branch target injection. » « Il existe une séquence de code appelée Retpoline qui permet d’effectuer des appels indirects sans spéculation », explique à son tour Andy Kleen, développeur chez Intel.

À tout seigneur tout honneur ; Google a procédé à son déploiement sur son infrastructure privée de serveurs Linux. La firme rapporte avoir observé un impact négligeable sur les performances des systèmes passés au test. Google rassure ainsi les utilisateurs de sa plateforme de cloud (GCP) en principe au courant des résultats de benchmark initiaux. Des pertes de performance de l’ordre de 15 à 30 % avaient en effet été annoncées. D’après des relevés effectués par Paul Turner sur un Intel Xeon cependant, les pertes oscillaient entre 0 et 1,5 %, mais il s’agit de données à titre indicatif puisqu’on sait que les pertes sont liées à la charge d’appels indirects émis en direction du noyau.

Cette publication de Google vient une fois de plus donner raison à Intel qui avait annoncé que l’application des correctifs ne devrait pas introduire des pertes de performance criardes. Google a mis la technique à disposition de la communauté et, avec de tels niveaux de performance, elle devrait suivre. Des implémentations LLVM et GCC sont d’ailleurs en train d’être peaufinées.

Sources

Google Security Blog

Descriptif Retpoline

Liste de diffusion LKML

Votre opinion

Google a des réactions saillantes depuis le début de cette campagne. Quelle appréciation faites-vous de cette contribution ?
Avatar de marsupial marsupial - Membre expérimenté https://www.developpez.com
le 06/01/2018 à 14:20
Google a trouvé les failles donc sont à même de mieux comprendre le problème et donc de le résoudre au mieux. Ce qui a décidé Intel à sortir des correctifs serait plus à mon sens la saillie de Linus Torvalds vis à vis d'intel.

Maintenant, 3 class action sont en cours vis à vis d'intel mais que dire d'arm entièrement exposé aux 3 failles également. 1 milliard de PC contre 7 milliards de smartphones, arrivé à un tel niveau, je crois qu'on arrête de compter et on patche tous en coeur si j'ose dire.

A tout hasard, j'ajoute no script lite dans votre firefox.
Avatar de RyzenOC RyzenOC - Membre confirmé https://www.developpez.com
le 06/01/2018 à 18:01
C'est une aubaine pour AMD.
Cette faille pourrais réellement augmenter ces PDM dans le monde pro.

Je soupçonne le CEO d'intel d'avoir revendu ces actions pour justement acheter des actions AMD
Avatar de marsupial marsupial - Membre expérimenté https://www.developpez.com
le 07/01/2018 à 5:47
J'ai une bète question : comment vont faire les HPC ?
Contacter le responsable de la rubrique Accueil