web-dev-qa-db-fra.com

Effondrement et attaques de spectre

Une question canonique concernant les attaques de Meltdown et Specter en janvier 2018. Les autres questions identiques ou sensiblement similaires doivent être fermées en double de celle-ci.

Préoccupations principales

  • Qu'est-ce que l'exécution spéculative et que fait-elle?
  • Quelle est la différence entre Meltdown et Spectre?
    • Comment Meltdown fonctionne-t-il?
    • Comment fonctionne Spectre?
  • Comment puis-je me protéger?
  • Le patch KPTI/KAISER est-il suffisant pour protéger mon ordinateur?
  • Le correctif est censé induire une perte de performances; est-ce vrai? Combien cela signifie-t-il?
  • Puis-je/dois-je désactiver le nouveau patch si je crains des pertes de performances? Quels sont les risques?
  • Quelles plateformes et processeurs sont vulnérables?
  • J'exécute une machine virtuelle/conteneurs; dans quelle mesure suis-je vulnérable?
  • Puis-je détecter une attaque Meltdown/Specter sur mon ordinateur?
  • Ces attaques sont-elles des vulnérabilités d'exécution de code à distance?
  • Dois-je patcher mon logiciel/site Web?
  • Puis-je être affecté lors de la visite d'un site Web?
  • Pouvez-vous expliquer cela avec une image?

Références:

165
M'vy

Cette réponse est une tentative de répondre simplement aux principales préoccupations. Les détails ici peuvent ne pas être exacts ou complets. Je vais essayer de créer un lien vers des explications plus détaillées lorsque cela est possible.

Qu'est-ce que l'exécution spéculative et que fait-elle?

L'exécution spéculative est une caractéristique des processeurs modernes qui se présente comme une optimisation. Pour permettre le traitement parallèle des instructions dans le pipeline de processeur, les instructions peuvent être traitées à l'avance en utilisant des techniques telles que la prédiction de branche, la prédiction de valeur ou la prélecture de mémoire. Les instructions peuvent alors être exécutées dans le désordre.

C'est un moyen de gagner du temps en prédisant correctement ce qui se passera ensuite, au lieu de laisser le processeur inactif. Lorsque la prédiction échoue, les instructions sont annulées.

Quelle est la différence entre Meltdown et Spectre?

Les exploits de fusion sont globalement plus faciles à mettre en œuvre que Spectre.

Meltdown tire parti des lectures de la mémoire dans des instructions désordonnées, Spectre agit sur le mécanisme de prédiction de branchement.

Spectre permet la divulgation de mémoire croisée/intra-processus, Meltdown permet la divulgation de la mémoire du noyau aux processus de l'espace utilisateur (normalement non accessible).

Meltdown a une atténuation logicielle connue.

Les deux s'appuient sur une attaque de cache côté canal, qui est une mesure des différences de synchronisation lors de l'accès à certains blocs de mémoire pour déduire les informations autrement inconnues.

Comment Meltdown fonctionne-t-il?

En bref, Meltdown fonctionne en demandant au processeur de charger la mémoire à laquelle le programme de l'espace utilisateur ne devrait pas avoir accès. La mémoire est lue de manière désordonnée et placée dans le cache. En utilisant une attaque latérale (mesure du temps d'exécution) sur le cache, il est possible de déduire la valeur de cet emplacement de mémoire.

Comment fonctionne Spectre?

Spectre fonctionne à un niveau différent et ne permet pas d'accéder aux données de l'espace noyau depuis l'espace utilisateur. Dans cette attaque, l'attaquant trompe l'exécution spéculative pour exécuter de manière prédictive des instructions par erreur. En bref, le prédicteur est contraint de prédire un résultat de branche spécifique (si -> vrai), ce qui entraîne la demande d'un accès à la mémoire hors limite que le processus victime n'aurait normalement pas demandé, ce qui entraîne une exécution spéculative incorrecte. Puis par le canal latéral, récupère la valeur de cette mémoire. De cette façon, la mémoire appartenant au processus victime est divulguée au processus malveillant.

Comment puis-je me protéger?

Mettez à jour votre système d'exploitation et/ou votre hyperviseur.

Les principaux distributeurs de systèmes d'exploitation publient déjà des correctifs pour implémenter le comportement KPTI/KAISER. C'est un moyen de réduire la surface d'attaque en supprimant le mappage de la mémoire utilisateur du noyau qui n'est pas strictement nécessaire au fonctionnement du processeur.

Les mises à jour du microcode (firmware) devraient être publiées à un moment donné.

Le patch KPTI/KAISER est-il suffisant pour protéger mon ordinateur?

Et cela ne couvre que Meltdown.

Le problème réside dans la conception de l'architecture des processeurs. Pour résoudre complètement les problèmes (ou même partiellement dans le cas de Spectre), au moins une mise à jour du firmware sera nécessaire. Il est également possible que les processeurs devront être remplacés par des modèles plus récents sans ce défaut de conception.

Le patch est censé induire une perte de performances, est-ce vrai? Combien cela signifie-t-il?

Oui, mais la perte subie dépend du workflow logiciel. Les réclamations pourraient aller de 5% à 30% de perte, selon la façon dont votre système dépend des appels système. Les références avec des transitions élevées de l'espace noyau à utilisateur, telles que les bases de données, seraient les plus affectées.

Celui-ci est toujours en cours d'investigation, des rapports préliminaires ont été réalisés (voir liens). Cependant, étant donné que les impacts varient selon l'application, vous devez tester l'impact sur les performances de votre environnement plutôt que de vous fier à des références génériques.

Résultats préliminaires (indépendants ??):

Annonces officielles:

Puis-je/dois-je désactiver le nouveau patch si je m'inquiète des pertes de performances? Quels sont les risques?

Non, vous pouvez, mais ce n'est certainement pas recommandé.

Tout d'abord, si vous gérez des données provenant d'autres personnes, vous rendriez vos clients vulnérables au vol de données.

Ensuite, les pertes de performances doivent encore être correctement évaluées et dépendent fortement de votre flux de travail spécifique. Ce n'est pas une baisse de 30% des performances.

Si vous désactivez KPTI, vous courez le risque de voir vos données confidentielles divulguées.

Quelles plateformes et quels CPU sont vulnérables?

La plupart des Intel CP sont vulnérables aux deux attaques. Le processeur AMD ne semble être affecté que par Spectre . Certains processeurs ARM Cortex sont affectés, tandis que tous les autres ARM ne le sont pas. processeurs PowerPC des familles POWER 7, POWER 8 et POWER 9 sont affectés, et d'autres peuvent l'être.

(voir les liens pour plus de détails).

J'exécute une machine virtuelle/conteneurs, dans quelle mesure suis-je vulnérable?

Selon réponse de Steffen Ullrich

  • Les attaques de fusion ne traversent pas les machines virtuelles, ne font que fuir la mémoire du noyau vers les processus locaux.
  • Spectre peut fonctionner sur plusieurs machines virtuelles.

De plus, à partir de Steffen encore , Meltdown et Specter fonctionne avec des conteneurs, car les conteneurs dépendent du noyau hôte.

Puis-je détecter une attaque Meltdown/Spectre sur mon ordinateur?

C'est très difficile, voire possible.

Meltdown et Spectre utilisent tous deux une propriété conçue du CPU qui est déclenchée par des programmes inoffensifs tout le temps, ce qui rend les programmes malveillants difficiles à distinguer des programmes bénins.

Ces attaques sont-elles une vulnérabilité d'exécution de code à distance?

Non, ils ne le sont pas.

Pour pouvoir appliquer cette attaque, l'attaquant doit être en mesure d'exécuter du code sur l'hôte cible. Notez cependant que si ceux-ci sont combinés avec d'autres vecteurs d'attaque, par exemple le téléchargement de fichiers ou des exploits de script intersite, il est possible de les exécuter à distance.

Dois-je patcher mon logiciel/site Web?

Dans un monde idéal, non.

En réalité, certains fournisseurs de navigateurs ont déjà mis en œuvre des mesures de diminution de la précision du temps pour atténuer les attaques par canal latéral. Le KPTI devrait déjà fournir un correctif assez juste pour les programmes utilisant des appels système natifs.

Puis-je être affecté lors de la visite d'un site Web?

Oui, il existe déjà une preuve de concept d'un exploit Javascript pour Spectre (uniquement).

Pouvez-vous expliquer cela avec une image?

Non, mais Randall Munroe peut:

XKCD #1938 - Meltdown and Spectre

[Source XKCD: https://xkcd.com/1938/ ]

119
M'vy

Astuces simples

En plus de excellente réponse de M'vy , je veux juste répondre à cette question:

Que puis-je faire pour être en sécurité?

  • Spectre, Meltdown et Rowhammer sont des bogues conceptuels du processeur, ils ne peuvent donc pas être correctement corrigés par une mise à jour logicielle. Cela signifie que les correctifs réels - logiciel diminuent principalement les performances globales de tout système (Windows, Linux de MacOS).
  • Ces bogues concernent également isolation. Sachant que:

    Toutes les fonctionnalités isolation (sandbox, containers, virtual Host et users privileges) sont maintenant sujets à caution!

    est la bonne façon de penser!

  • Les anciennes habitudes de sécurité sont désormais utiles, telles que:
    • avoir toutes les applications sensibles situées sur des hôtes physiquement dédiés,
    • avoir un hôte physique pour chaque client sensible (pour les fournisseurs),
    • stocker des données importantes telles que des sauvegardes et des données sensibles comme des mots de passe ou des secrets, sur des hôtes séparés (dédiés).
    • parcourir le réseau sur un hôte dédié et effectuer des opérations bancaires après un redémarrage complet du bureau ou mieux: sur un autre hôte (dédié)!

Si vous le faites isolation en utilisant différents hôtes matériels, vous pouvez utiliser en toute sécurité exécution spéculative et toutes les autres fonctionnalités de Nice (même avec d'autres bogues, pas encore connus) offerts par les processeurs modernes. Il n'est pas nécessaire de diminuer les performances de votre système!

(Si c'est le cas, la mise à niveau n'est peut-être pas la meilleure façon ... ;-)

Pourquoi je pense que séparation matérielle/dédié pourrait être utile?

Voyez ce voyage, publié le 17 avril 2013! (il y a près de cinq ans;)

Source: xkcd.com/12

XKCD 1200

7
F. Hauri

Cette réponse est spécifique aux attaques Spectre Next Generation et sera mise à jour dès que de nouvelles informations seront disponibles.

Mise à jour du 22 mai:

Les premiers correctifs arrivent et sont donc plus d'informations sur les nouvelles vulnérabilités:

Intel a publié this le 21 mai 2018, ce qui vous donnera un bon aperçu des variantes 3a et 4 de Spectre.
Les CVE respectifs sont:

  • CVE-2018-3639 - Contournement de magasin spéculatif (SSB) - également connu sous le nom de variante 4
  • CVE-2018-364 - Lecture du registre du système non fiable (RSRE) - également connue sous le nom de variante 3a

Presque tous les processeurs Intel fabriqués au cours des 10 dernières années sont affectés par ces deux vulnérabilités. Les mises à jour du microcode ont été mises à la disposition des fournisseurs de systèmes d'exploitation, elles devraient donc être bientôt disponibles pour les clients. Les utilisateurs Linux devraient être en sécurité s'ils ont récemment mis à jour leur noyau et si leur distribution utilise des retpolines.[citation requise]

Si vous voulez en savoir plus sur les détails techniques, Livre blanc d'Intel qui analyse les canaux latéraux d'exécution spéculative - qui a été publié après la révélation des attaques Spectre et Meltdown - a été étendu pour couvrir désormais les variantes 3a et 4. Cela est également vrai pour ce livre blanc qui couvre l'atténuation.

Lectures complémentaires:
Courriel de divulgation original de Jann Horn
AMD dit qu'aucun de ses produits n'est vulnérable à la SSB
article de blog ARM
traqueur de sécurité Debian
blog Intelanalyse Microsoft de SSB
Red Hat CVE DB
réponse de vulnérabilité Red Hat
Blog de sécurité SUSE
Avis de sécurité Ubunt
note de vulnérabilité US CERT
article de base de VMWare Knowdlege


Mise à jour, 7 mai:

La publication prévue des détails techniques a été retardée jusqu'au 21 mai au moins et peut-être même plus longtemps car Intel n'a pas pu terminer le développement des mises à jour nécessaires du microcode.
Mais de nouvelles informations ont été publiées aujourd'hui, une liste des processeurs susceptibles d'être affectés par au moins deux des huit nouvelles vulnérabilités:

  • tous les processeurs i-X et les dérivés Xeon respectifs depuis 2010 (ceux-ci sont également affectés par la vulnérabilité décrite sous '6')
  • Pentium, Celeron et Atom processeurs Atom depuis 2013

Ces premiers types de processeurs sont le généralement utilisés dans les ordinateurs de bureau, les ordinateurs portables et les serveurs. Les seconds sont utilisés dans les tablettes, les smartphones et les appareils intégrés.
Il n'y a pas encore de CVE ni de noms accrocheurs.


Le 3 mai, le magazine allemand c't - qui est spécialisé dans l'informatique - a rapporté que les chercheurs ont trouvé huit vulnérabilités supplémentaires dans les processeurs Intel qui permettent toutes des attaques de type Spectre. Toutes ces nouvelles vulnérabilités sont basées sur les mêmes défauts de conception que les vulnérabilités exploitées par Spectre V1 et V2.

Le premier rapport technique et approfondi qui couvrira l'une de ces vulnes sera probablement publié le 7 mai par le Google Project Zero. Il est possible cependant que d'autres chercheurs ou parties indépendantes publient des rapports plus tôt.

Ce que nous savons jusqu'à présent:

  1. Il existe huit nouvelles vulnérabilités.
  2. Chacun recevra son propre CVE.
  3. Chacun aura besoin de son propre patch. Jusqu'à présent, il y a peu de connaissances sur les progrès du développement des correctifs. Selon le c't, Intel prévoit deux vagues de patchs: une en mai et une en août.
  4. Il n'y a pas encore de liste de processeurs concernés. Les processeurs Intel sont probablement pour la plupart affectés. Certains processeurs ARM semblent également être affectés. On ne sait pas encore si les processeurs AMD sont affectés.
  5. Intel classe quatre des huit vulnérabilités comme "à haut risque", les quatre autres comme "à risque moyen".
  6. L'un des nouveaux vulns permettrait des attaques inter-systèmes très faciles. Un adversaire peut être en mesure d'attaquer un système hôte ou d'autres machines virtuelles à partir d'une machine virtuelle source. Cela est particulièrement dangereux pour les fournisseurs de cloud. Une attaque comme celle-ci était possible auparavant, mais elle était très complexe. La nouvelle vulnérabilité semble bien plus facile à exploiter. Tous les autres vecteurs d'attaque semblent très similaires aux Spectre V1 et V2.

Conclusion : Nous en savons très peu jusqu'à présent et ce que nous savons ne sont que des descriptions abstraites des nouvelles vulnérabilités. Spectre et Meltdown sont des attaques très complexes et les vulnérabilités sous-jacentes ne sont pas moins complexes. Tous les détails techniques entreront lentement dans le discours au cours des prochaines semaines. Mais les fournisseurs de CPU sont informés et il semble qu'ils et les développeurs du noyau travaillent déjà sur des solutions. Avoir de la patience.

Source: https://www.heise.de/ct/artikel/Super-GAU-fuer-Intel-Weitere-Spectre-Luecken-im-Anflug-4039134.html

5
Tom K.