Risque

  • Atteinte à la confidentialité des données

Systèmes affectés

  • Processeurs Intel
    • La liste des processeurs vulnérables est fournie dans la section documentation.
  • Processeurs AMD
    • AMD est vulnérable à Spectre, mais pas à Meltdown.
  • Processeurs ARM :
    • ARM Cortex-R7
    • ARM Cortex-R8
    • ARM Cortex-A8
    • ARM Cortex-A9
    • ARM Cortex-A15
    • ARM Cortex-A17
    • ARM Cortex-A57
    • ARM Cortex-A72
    • ARM Cortex-A73
    • ARM Cortex-A75

 

Résumé

[Mise à jour du 25/05/2018 : ajout de bulletins Microsoft (cf. section Documentation)]

[Mise à jour du 22/05/2018 : publications de nouvelles variantes]

[Mise à jour du 23/02/2018 : annonce d'Intel sur la sortie des mises à jour des micrologiciels (cf. section Solution)]

[Mise à jour du 12/02/2018 : ajout des bulletins de sécurité VMware, RedHat et SUSE (cf. section Solution)]

[Mise à jour du 23/01/2018 : modification des recommandations suite au communiqué d'Intel (cf. section Solution)]

Le 4 janvier 2018, deux vulnérabilités affectant plusieurs familles de processeurs et pouvant conduire à des fuites d'informations ont été rendues publiques [1][2]. Intitulées Spectre et Meltdown, ces deux vulnérabilités ont reçu les identifiants CVE-2017-5715, CVE-2017-5753 pour Spectre et CVE-2017-5754 pour Meltdown. Le 21 mai 2018, deux nouvelles vulnérabilités identifiées CVE-2018-3639 et CVE-2018-3640, reposant sur des principes similaires, ont également été publiées [42].

Vulnérabilité Meltdown

Les processeurs modernes intègrent plusieurs fonctionnalités visant à améliorer leurs performances. Parmi celles-ci, l'exécution dite out-of-order permet d'exécuter les instructions d'un programme en fonction de la disponibilité des ressources de calculs et plus nécessairement de façon séquentielle. Une faiblesse de ce mécanisme peut cependant conduire à l'exécution d'une instruction sans que le niveau de privilèges requis par celle-ci ne soit correctement vérifié. Bien que le résultat de l'exécution d'une telle instruction ne soit pas validé par la suite, il peut être possible de récupérer l'information en utilisant une attaque par canaux cachés.

La vulnérabilité CVE-2017-5754 exploite l’exécution out-of-order sur des instructions requérant un haut niveau de privilège pour permettre l'accès en lecture à des zones mémoires propres au système d’exploitation depuis du code s’exécutant de façon non-privilégiée. En particulier, l'exploitation de cette vulnérabilité permet d'accéder depuis un programme utilisateur à la mémoire du système d'exploitation. Cela peut conduire à des fuites de données sensibles présentes en mémoire et peut inclure des informations d'autres programmes ou encore des clés de chiffrement. Cette fuite d'informations peut aussi être mise en œuvre pour faciliter la compromission d'un système.

La vulnérabilité CVE-2018-3640 exploite l’exécution out-of-order sur des instructions requérant un haut niveau de privilège pour permettre l'accès en lecture à des registres propres au système d’exploitation depuis du code s’exécutant de façon non-privilégiée. En particulier, l'exploitation de cette vulnérabilité permet d'accéder depuis un programme utilisateur à des paramètres de configuration du processeur. Cette fuite d'informations peut aussi être mise en œuvre pour faciliter la compromission d'un système.

Vulnérabilité Spectre

L'exécution spéculative est une seconde technique d'optimisation utilisée par les processeurs modernes. Les dépendances entre les instructions limitent les possibilités d'exécution out-of-order. Pour remédier à cette limitation, le processeur émet des hypothèses concernant les résultats non encore disponibles. Ceci lui permet de poursuivre l’exécution out-of-order en utilisant ces hypothèses en remplacement des résultats attendus. On parle alors d'exécution spéculative. Ces hypothèses sont vérifiées par le processeur dès que les résultats auxquels elles se rapportent deviennent disponibles. Si elles se révèlent correctes, le processeur valide l'exécution spéculative. Mais inversement, si elles se révèlent erronées, les effets de l'exécution spéculative doivent être annulés et l'exécution doit reprendre au point on les hypothèses erronées avaient été émises, c'est à dire là où l'exécution spéculative avait débutée.

Cependant les effets d'une exécution spéculative erronée sur le cache perdurent. Or, en mesurant des temps d'accès à des zones mémoires, il est possible de connaître l'état du cache. Par conséquent, un attaquant sera capable de déterminer les résultats intermédiaires d'une exécution spéculative erronée si ceux-ci influent sur l'état du cache. Cette utilisation du cache pour mener à bien l'exploitation est commune aux trois variantes de Spectre.

Variante 1 (CVE-2017-5753)

Le prédicteur de branches est un composant du processeur utilisé pour émettre des hypothèses concernant l'adresse de la prochaine instruction à exécuter. En particulier, il est utilisé pour prédire l'issue des sauts conditionnels. D'autre part, ce composant est partagé entre des codes s'exécutant dans des cloisonnements de sécurité différents (processus, niveaux de privilège).

Dans la variante 1 de Spectre, un attaquant influe sur les heuristiques du prédicteur de branches pour fausser la prédiction d'un saut conditionnel s’exécutant dans un autre cloisonnement de sécurité, ce qui a pour effet de déclencher une exécution spéculative erronée. Un code est vulnérable si cette exécution spéculative erronée modifie le cache de façon qui dépende d'une valeur secrète (c'est à dire non directement accessible depuis le cloisonnement dans lequel se situe l'attaquant).

Exemple de code vulnérable fourni dans l'article:

[pastacode lang="c" manual="if%20(x%20%3C%20array1_size)%0Ay%20%3D%20array2%5Barray1%5Bx%5D%20*%20256%5D%3B" message="" highlight="" provider="manual"/]

Un attaquant maîtrisant la valeur de x peut obtenir une lecture arbitraire dans l'espace d'adressage du processus exécutant le code ci-dessus. Pour cela, l'attaquant commence par soumettre un grand nombre de x valides (c'est à dire vérifiant la condition de la ligne 1) pour faire croire au prédicteur de branches que la condition ligne 1 est toujours vraie. Puis il soumet un x pointant à une adresse arbitraire. Le prédicteur de branches estime néanmoins que la condition est vraie, ce qui déclenche l'exécution spéculative de la ligne 2. La valeur secrète pointée par x est récupérée puis utilisée pour former l'adresse d'une seconde lecture mémoire. Cette seconde lecture aura un effet sur le cache décelable par l'attaquant qui sera alors en mesure de retrouver la valeur secrète.

Variante 2 (CVE-2017-5715)

Le prédicteur de branches est également utilisé pour prédire l'issue des sauts indirects. Dans la variante 2 de Spectre, un attaquant influe sur les heuristiques du prédicteur de branches pour fausser la prédiction d'un saut indirect s’exécutant dans un autre cloisonnement de sécurité, ce qui a pour effet de déclencher une exécution spéculative erronée à une adresse arbitraire maîtrisée par l'attaquant. En choisissant correctement le code exécuté spéculativement, l'attaquant est alors capable d'obtenir une lecture arbitraire dans l'espace d'adressage du processus victime.

Variante 3 (CVE-2018-3639)

Les processeurs émettent également des hypothèses concernant l'adresse de certains accès mémoire. Pour bénéficier de plus de libertés dans l'ordre d'exécution d'opérations de lecture mémoire, le processeur va devoir prédire si celles-ci chevauchent des opérations d'écriture en attente d'exécution. Si une opération de lecture ne chevauche aucune opération d'écriture en attente d'exécution, rien ne s'oppose à qu'elle puisse être exécutée de façon anticipée.

Dans la variante 3 de Spectre, un attaquant influe sur les heuristiques du processeur utilisées pour la prédiction d'adresses, ce qui a pour effet de déclencher une exécution spéculative erronée d'une opération de lecture mémoire et des instructions qui en dépendent. Un code est vulnérable si cette exécution spéculative erronée manipule une valeur secrète et la laisse fuir à travers un état observable du cache

Microsoft (une des parties ayant découvert la vulnérabilité) [43] affirme ne pas avoir identifié de code vulnérable dans leurs produits, ce qui laisse penser que les codes vulnérables sont peu fréquents.

Impact

Les vulnérabilités décrites dans cette alerte peuvent impacter tous les systèmes utilisant un processeur vulnérable et donc de façon indépendante du système d'exploitation. Selon les chercheurs à l'origine de la découverte de ces failles, il est ainsi possible d'accéder à l'intégralité de la mémoire physique sur des systèmes Linux et OSX et à une part importante de la mémoire sur un système Windows.

On notera que l'impact peut être plus particulièrement important dans des systèmes de ressources partagés de type conteneur (Docker, LXC) où il serait possible depuis un environnement restreint d'accéder à toutes les données présentes sur la machine physique dans lequel s'exécute le conteneur ou encore dans des environnements virtualisés utilisant la para-virtualisation de type Xen.

Preuve de concept

Le CERT-FR constate que des preuves de concept fonctionnelles pour Meltdown sont désormais publiques. Les règles Yara suivantes servent à détecter les binaires liés à la bibliothèque publiée par l'Institute of Applied Information Processing and Communications (IAIK) :

[pastacode lang="c" manual="rule%20meltdown_iaik_libkdump_meltdown_nonull%20%7B%0A%0Ameta%3A%0A%0Aauthor%20%3D%20%22ANSSI%22%0A%0ATLP_level%20%3D%20%22White%22%0A%0Adescription%20%3D%20%22Detects%20Meltdown%20PoC%20libkdump%20meltdown_nonull%20method%22%0A%0Aversion%20%3D%20%221.0%22%0A%0Alast_modified%20%3D%20%222018-01-09%22%0A%0Astrings%3A%0A%0A%2F*%0A%0A.text%3A00000000000018A6%2048%2031%20C0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xor%20%20%20%20%20%20rax%2C%20rax%20%20%20.text%3A00000000000018A9%0A%0A.text%3A00000000000018A9%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20loc_18A9%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3B%20CODE%20XREF%3A%20libkdump_read_tsx%2B48j%0A%0A.text%3A00000000000018A9%208A%2001%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20al%2C%20%5Brcx%5D%0A%0A.text%3A00000000000018AB%2048%20C1%20E0%200C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20shl%20%20%20%20%20%20rax%2C%200Ch%0A%0A.text%3A00000000000018AF%2074%20F8%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20jz%20%20%20%20%20%20%20%20short%20loc_18A9%0A%0A.text%3A00000000000018B1%2048%208B%201C%2003%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20rbx%2C%20%5Brbx%2Brax%5D%0A%0A*%2F%0A%0A%24asm%3D%7B%0A%0A48%2031%20C0%0A%0A8A%2001%0A%0A48%20C1%20E0%200C%0A%0A74%20F8%0A%0A48%208B%201C%2003%0A%0A%7D%0A%0Acondition%3A%20%24asm%0A%0A%7D%0A%0A%0Arule%20meltdown_iaik_libkdump_meltdown_fast%20%7B%0A%0Ameta%3A%0A%0Aauthor%20%3D%20%22ANSSI%22%0A%0ATLP_level%20%3D%20%22White%22%0A%0Adescription%20%3D%20%22Detects%20Meltdown%20PoC%20libkdump%20meltdown_fast%20method%22%0A%0Aversion%20%3D%20%221.0%22%0A%0Alast_modified%20%3D%20%222018-01-09%22%0A%0Astrings%3A%0A%0A%20%20%20%20%2F*%0A%0A.text%3A000000000000184F%2048%2031%20C0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xor%20%20%20%20%20%20%20rax%2C%20rax%0A%0A.text%3A0000000000001852%208A%2001%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20%20al%2C%20%5Brcx%5D%0A%0A.text%3A0000000000001854%2048%20C1%20E0%200C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20shl%20%20%20%20%20%20%20rax%2C%200Ch%0A%0A.text%3A0000000000001858%2048%208B%201C%2003%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20rbx%2C%20%5Brbx%2Brax%5D%0A%0A*%2F%0A%0A%24asm%20%3D%20%7B%0A%0A48%2031%20C0%0A%0A8A%2001%0A%0A48%20C1%20E0%200C%0A%0A48%208B%201C%2003%0A%0A%7D%0A%0Acondition%3A%0A%0A%24asm%0A%0A%7D%0A%0A%0Arule%20meltdown_iaik_libkdump_meltdown%20%7B%0A%0Ameta%3A%0A%0Aauthor%20%3D%20%22ANSSI%22%0A%0ATLP_level%20%3D%20%22White%22%0A%0Adescription%20%3D%20%22Detects%20Meltdown%20PoC%20libkdump%20meltdown%20method%22%0A%0Aversion%20%3D%20%221.0%22%0A%0Alast_modified%20%3D%20%222018-01-09%22%0A%0Astrings%3A%0A%0A%2F*%0A%0A.text%3A00000000000018A8%2048%2031%20C0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xor%20%20%20%20%20rax%2C%20rax%20%20%20.text%3A00000000000018AB%0A%0A.text%3A00000000000018AB%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20loc_18AB%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3B%20CODE%20XREF%3A%20libkdump_read_tsx%2B4Dj%0A%0A.text%3A00000000000018AB%2048%208B%2036%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20%20rsi%2C%20%5Brsi%5D%0A%0A.text%3A00000000000018AE%208A%2001%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20%20al%2C%20%5Brcx%5D%0A%0A.text%3A00000000000018B0%2048%20C1%20E0%200C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20shl%20%20%20%20%20%20%20rax%2C%200Ch%0A%0A.text%3A00000000000018B4%2074%20F5%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20jz%20%20%20%20%20%20%20%20short%20loc_18AB%0A%0A.text%3A00000000000018B6%2048%208B%201C%2003%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mov%20%20%20%20rbx%2C%20%5Brbx%2Brax%5D%0A%0A*%2F%0A%0A%24asm%3D%7B%0A%0A48%2031%20C0%0A%0A48%208B%2036%0A%0A8A%2001%0A%0A48%20C1%20E0%200C%0A%0A74%20F5%0A%0A48%208B%201C%2003%0A%0A%7D%0A%0Acondition%3A%0A%0A%24asm%0A%0A%7D" message="" highlight="" provider="manual"/]

Campagne de pourriels

Le CERT-FR constate qu'une campagne de pourriels visant à distribuer des logiciels malveillants a été lancée afin de profiter de la situation autour des vulnérabilité Spectre et Meltdown [32]. Des attaquants se faisant passer pour la Bundesamt für Sicherheit in der Informationstechnik (BSI), l'équivalent allemand de l'ANSSI, ont envoyé des courriers électroniques invitant leurs destinataires à se rendre sur une copie du site de la BSI. La différence avec le site officiel était une modification de l'alerte concernant les vulnérabilités: l'utilisateur était invité à installer un correctif qui se trouvait être un logiciel malveillant.

Le CERT-FR rappelle de faire preuve de la plus grande vigilance quand à l'ouverture des courriers électroniques ainsi que d'installer les correctifs de sécurité dans les plus brefs délais, et ce uniquement depuis les sources officielles des éditeurs.

Solution

Correctifs disponibles

Plusieurs éditeurs ont publiés des correctifs partiels pour les vulnérabilités Meltdown et Spectre. Le CERT-FR recommande l'application des correctifs disponibles dès que possible.

Apple

Apple indique dans une communication du 4 janvier 2017 que les systèmes iOS 11.2, macOS 10.13.2 et tvOS 11.2 profitent de correctifs contre la vulnérabilité Meltdown [9].

Le 8 janvier 2018, Apple a publié des correctifs pour ses produits iOS, Safari et macOS High Sierra [26].

Mozilla

Mozilla a publié une communication annonçant que la version 57.0.4 de Firefox intègre deux correctifs de sécurité liés aux vulnérabilités décrites dans cette alerte [25].

Microsoft

Microsoft a annoncé dans un communiqué [10] que ses navigateurs Internet Explorer et Edge avaient bénéficié d'un correctif contre la vulnérabilité Spectre sur les systèmes Windows 10 et Windows Server 2016 [11][12]. Les correctifs de sécurité fournis par Microsoft sont néanmoins dépendants des logiciels anti-virus installés sur le système. Pour tous détails sur l'application de ces correctifs le CERT-FR recommande de se reporter au site de l'éditeur. Pour les systèmes 32 bits des versions antérieures à Windows 10 et Windows Server 2016, un correctif sera déployé à l'occasion de la mise à jour mensuelle, le 9 janvier 2018. Pour Windows Server, une simple mise à jour ne suffit par pour se prémunir du problème. Microsoft a publié une série de mesures à mettre en oeuvre pour se protéger [22]. Dans tous les cas, Microsoft conseille de mettre à jour le micrologiciel de son processeur lorsque des correctifs seront disponibles.

SUSE

Des correctifs pour les vulnérabilités Spectre et Meltdown ont été distribués par SUSE [13].

Le 11 janvier 2018, SUSE a publié des correctifs pour le noyau Linux ainsi que pour le microgiciel Intel utilisés par ses produits [29][30].

Red Hat

Des correctifs pour les vulnérabilités Spectre et Meltdown ont été distribués par Red Hat [23].

Ubuntu

Le mardi 9 janvier 2018, Ubuntu a publié plusieurs bulletins de sécurité concernant des correctifs pour la vulnérabilité Meltdown [27]. Le 11 janvier 2018, Ubuntu a publié un bulletin de sécurité annonçant la mise à disposition d'un correctif pour le microgiciel Intel [31].

VMware

Des correctifs contre la vulnérabilité Spectre ont été apportés par VMware pour leurs produits ESXi, Workstation et Fusion sous OS X. Il est à noter que les plateformes ESXi en version 5.5 reçoivent un correctif seulement pour la variante CVE-2017-5715 de Spectre [14].

Android

Dans leur bulletin de sécurité pour les correctifs du mois de janvier 2018 [16], Android annonce ne pas détenir d'informations sur une reproduction des vulnérabilités Spectre et Meltdown sur leurs appareils. Cependant, les correctifs disponibles pour ce mois de janvier 2018 intègrent des mesures permettant de limiter le risque de tels attaques [15].

Google

Dans un communiqué sur l'état de ses produits face aux vulnérabilités Meltdown et Spectre, Google annonce que Chrome OS sous Intel profite de la fonctionnalité KPTI (correctif limitant les effets de la vulnérabilité Meltdown) pour les noyaux en versions 3.18 et 4.4 à partir de la version 63 du système d'exploitation [17].

Citrix

Dans un avis de sécurité daté du 4 janvier 2018 Citrix annonce apporter un correctif de sécurité pour les produits Citrix XenServer 7.1 LTSR CU1 [19].

Amazon AWS

Dans un communiqué du 4 janvier 2018 [20], Amazon indique que les instances disposant d'une configuration par défaut (Amazon Linux AMI)  vont bénéficier d'une mise à jour du noyau Linux pour adresser les effets de la vulnérabilité CVE-2017-5754 (Meltdown) [21].

Debian

Le 10 janvier 2018, un bulletin de sécurité publié par Debian propose un correctif pour la vulnérabilité Meltdown [28].

Pour la semaine du 15 au 21 janvier 2018, les éditeurs suivants ont publiés des correctifs pour Meldown et Spectre:

  • SUSE [33]
  • Oracle [34] [35]
  • Red Hat [36]
  • Moxa [37] (l'éditeur annonce que d'autres correctifs sont à venir)

Le 22 janvier 2018, Intel a publié un communiqué [38] pour annoncer qu'ils avaient trouvé la cause des dysfonctionnements liés à leur correctif. Dans certains cas, le correctif apporté à leur microgiciel provoquait des redémarrages intempestifs. La situation n'est toutefois pas encore résolue. Intel conseille donc de retarder l'installation du correctif pour le microprocesseur.

Le CERT-FR rappelle qu'il est important d'installer les correctifs de sécurité dans les plus brefs délais. Concernant Spectre et Meldown, il est nécessaire de mettre à jour en priorité les navigateurs puis les systèmes d'exploitation. Toutefois, il est également important de tester ces correctifs dans des environnements contrôlés avant de les pousser en production. Concernant les microgiciels d'Intel, le CERT-FR recommande une prudence accrue dans leurs déploiements voir d'attendre la version finale de ces mises à jour. En matière de risques, l'exploitation de la vulnérabilité Spectre est particulièrement complexe et est la seule à être couverte par la mise à jour du micrologiciel.

Les 8 et 9 février 2018, plusieurs éditeurs ont publiés des correctifs supplémentaires:

  • VMware [39]
  • Red Hat [40]
  • SUSE [41]

Le 20 février 2018, Intel a annoncé que les mises à jour de sécurité des micrologiciels pour certaines familles de processeurs étaient disponibles. Sont concernés les processeurs de type Kaby Lake, Coffee Lake ainsi que certains Skylake ( cf. https://newsroom.intel.com/news/latest-intel-security-news-updated-firmware-available/). Intel a également mis à jour son calendrier prévisionnel des sorties futures (cf. https://newsroom.intel.com/wp-content/uploads/sites/11/2018/02/microcode-update-guidance.pdf).

Les éditeurs suivants ont également publiés de nouveaux correctifs :

  • Ubuntu (cf. </avis/CERTFR-2018-AVI-094/>)
  • SUSE (cf. </avis/CERTFR-2018-AVI-080/>, </avis/CERTFR-2018-AVI-083/> et </avis/CERTFR-2018-AVI-091/>)
  • Siemens (cf. </avis/CERTFR-2018-AVI-095/>)

Contournement provisoire

Dans leur article sur la vulnérabilité Meltdown, les auteurs de la publication indiquent que la fonctionnalité de sécurité KAISER [5] permet de limiter les implications dues à l'exploitation de Meltdown. Ce mécanisme a été intégré dans les dernières versions du noyau Linux sous le nom de Kernel page-table isolation (KPTI) [6] et est en cours d'intégration dans les versions précédentes du noyau.

Cette fonctionnalité renforce la séparation entre les zones mémoires accessibles en mode utilisateur et celles accessibles en mode noyau. De ce fait il n'est donc plus possible de d'accéder lors de l'utilisation de la vulnérabilité Meltdown aux informations noyau.

Systèmes de virtualisation

Les systèmes virtualisés de type Xen sont vulnérables aux failles présentés dans cette alerte. Concernant Meltdown un contournement pouvant être mis en œuvre est d'utiliser une virtualisation matérielle. En effet, d'après un avis de sécurité de l'éditeur [18], la CVE-2017-5754 n'affecte que les systèmes Xen en architecture Intel 64 bits utilisant la para-virtualisation.

D'une façon globale, l'ANSSI a émis un guide relatif à la virtualisation précisant que « les systèmes invités présents sur une même machine physique [doivent manipuler] des données qui ont une sensibilité similaire » [7].

Vérifications des correctifs disponibles

Windows

Microsoft a mis à disposition un script PowerShell qui permet de vérifier si un correctif pour les vulnérabilités a été appliqué sur un système Windows [4].

Linux

Afin de s'assurer de la présence du mécanisme de sécurité KPTI sur un système utilisant un noyau Linux il est possible d'exécuter la commande suivante :

[pastacode lang="bash" manual="dmesg%20%7C%20grep%20'Kernel%2FUser%20page%20tables%20isolation'" message="" highlight="" provider="manual"/]

Dans le cas où KPTI est activé un message sera affiché en sortie.

Documentation