Qu'est-ce que Meltdown ?

Vulnérabilité de certains CPU permettant de lire spéculativement la mémoire du noyau avant l'exception de contrôle des droits, puis d'en déduire la valeur via les traces laissées dans le cache. Corrigée notamment par KPTI.

Nom japonais: Meltdown

« Meltdown » apparaît dans 3 questions d'entraînement réparties sur 2 thèmes, dont Sécurité matérielle, CPU et architecture.

Domaine: Sécurité matérielle

S'entraîner : questions sur Meltdown

Quel est le principe de la vulnérabilité appelée Meltdown, qui a touché certains CPU ?

  1. ALe CPU fond sous l'effet de la chaleur et les données fuient
  2. BMême pour une instruction lisant la mémoire du noyau sans autorisation, la valeur est lue spéculativement avant que l'exception de contrôle des droits ne soit confirmée, et une trace dépendant de cette valeur subsiste dans le cache
  3. CUne erreur de configuration rendant la mémoire du noyau accessible à tous les processus
Afficher la réponse et l'explication

Réponse : B. Même pour une instruction lisant la mémoire du noyau sans autorisation, la valeur est lue spéculativement avant que l'exception de contrôle des droits ne soit confirmée, et une trace dépendant de cette valeur subsiste dans le cache

Lorsqu'un programme utilisateur tente de lire la mémoire du noyau, une exception de violation de droits survient normalement et la valeur n'est pas obtenue. Sur les CPU affectés, cependant, pendant le bref délai précédant la confirmation de l'exception, les instructions suivantes utilisant la valeur lue étaient exécutées spéculativement et un emplacement dépendant de cette valeur était chargé dans le cache. Même si l'exception faisait abandonner les résultats, les données du noyau pouvaient être déduites par canal auxiliaire de cache.

Quel est le principe du KPTI (isolation des tables de pages du noyau), introduit comme contre-mesure logicielle à Meltdown ?

  1. APendant l'exécution des programmes utilisateur, retirer l'essentiel de la mémoire du noyau des tables de pages afin qu'elle ne puisse pas être lue, même spéculativement
  2. BChiffrer tout le noyau et le placer sur disque
  3. CInterdire l'exécution des programmes utilisateur
Afficher la réponse et l'explication

Réponse : A. Pendant l'exécution des programmes utilisateur, retirer l'essentiel de la mémoire du noyau des tables de pages afin qu'elle ne puisse pas être lue, même spéculativement

Pour accélérer les changements de contexte, les systèmes d'exploitation plaçaient aussi la mémoire du noyau (marquée comme inaccessible) dans les tables de pages des processus utilisateur. Avec Meltdown, la lecture spéculative précédant la vérification de cette marque, le KPTI retire purement et simplement les pages du noyau de la correspondance pendant l'exécution des programmes utilisateur. Sans traduction d'adresse possible, aucune lecture spéculative n'est possible. Le changement de table de pages à chaque appel système réduit toutefois les performances.

« Meltdown » dans les explications

Questions mentionnant « Meltdown » (3)

  1. Quel est le principe de la vulnérabilité appelée Meltdown, qui a touché certains CPU ?
  2. Quel est le principe du KPTI (isolation des tables de pages du noyau), introduit comme contre-mesure logicielle à Meltdown ?
  3. Quel exemple de vulnérabilité a révélé des attaques exploitant les traces laissées dans le cache par l'exécution spéculative pour déduire des données normalement inaccessibles ?

Termes associés

KPTI Appel système Exécution spéculative Spectre Attaque par analyse de consommation Attaque par canal auxiliaire Attaque par démarrage à froid (cold boot) Attaque par injection de fautes Attaque temporelle (timing attack) Attestation à distance

Retour au glossaire