BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Les vulnérabilités Spectre 1.1 et 1.2 révélées

Les vulnérabilités Spectre 1.1 et 1.2 révélées

Les deux nouvelles vulnérabilités exploitant des failles dans l'exécution spéculative des CPU ont été récemment révélées. Surnommées Spectre 1.1 et 1.2, elles sont toutes les deux des variantes de la vulnérabilité Spectre (Spectre-v1) d'origine et exploitent les stores spéculatifs pour créer des débordements de mémoire spéculatifs qui peuvent échapper aux mitigations de Spectre-v1.

La possibilité d'effectuer des écritures spéculatives arbitraires présente de nouveaux risques significatifs, y compris l'exécution spéculative arbitraire. Malheureusement, cela permet à la fois des attaques locales et à distance, même lorsque les gadgets Spectre1.0 ne sont pas présents. Cela permet également aux attaquants de contourner les mitigations logicielles recommandées pour les attaques d'exécution spéculative précédentes.

Selon Vladimir Kiriansky et Carl Waldspurger, les chercheurs en sécurité qui ont divulgué les nouvelles vulnérabilités, le code suivant fournit une preuve de concept pour une attaque Spectre 1.1 :

if (y < lenc) c[y] = z;

Le problème avec le code ci-dessus réside dans le fait que lors de l'exécution spéculative de la branche, le CPU pourrait ignorer la vérification des limites, laissant ainsi la possibilité à un attaquant d'écraser arbitrairement la mémoire. Ce mécanisme permet d'écraser temporairement les données utilisées par une attaque subséquente de Spectre-v1.

Spectre 1.2 exploite à la place l'application paresseuse des contrôles de protection des utilisateurs/superutilisateurs pour les entrées de table de pages (PTEs). Ainsi, une attaque de données spéculative peut écraser des données en lecture seule, qui incluent des pointeurs de code, des vtables et des métadonnées de mitigation de flux de contrôle.

Les chercheurs ont décrit à la fois les mitigations logicielles et matérielles, qui incluent l'utilisation de barrières de spéculation, qui arrêtent complètement l'exécution spéculative; le masquage, qui consiste à masquer les valeurs d'index avant qu'elles ne soient utilisées pour tenter de les lier, de sorte qu'un accès ultérieur à cette position dans le tableau risque de ne pas accéder à la mémoire hors limites; et d'autres. Les chercheurs ont également souligné que les défenses logicielles contre les nouvelles attaques finissent par être les mêmes que les techniques pour empêcher les débordements de tampon classiques. Ainsi,

Une bonne première étape pour les prévenir serait de renforcer les contrôles existants contre les dépassements de pile, les débordements de tas, les débordements d'entiers, etc.

Bien que Kiriansky et Waldspurger aient rapporté les deux nouvelles variantes de Spectre à Intel, ARM, AMD, Google, IBM et Microsoft, aucun correctif n'est encore disponible.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT