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].
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
- Article ARM détaillant les vulnérabilités ainsi que les contre-mesures envisagées https://developer.arm.com/support/security-update
- Article Intel détaillant les vulnérabilités ainsi que les contre-mesures envisagées https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf
- Article de blog publié par Microsoft au sujet de CVE-2018-3639 https://blogs.technet.microsoft.com/srd/2018/05/21/analysis-and-mitigation-of-speculative-store-bypass-cve-2018-3639/
- Article du 15 novembre 2017 sur le mécanisme de sécurité KAISER https://lwn.net/Articles/738975/
- Article du 30 décembre 2017 sur l'intégration du correctif KPTI dans le noyau Linux https://lwn.net/Articles/742404/
- Avis CERT-FR CERTFR-2018-AVI-002 Multiples vulnérabilités dans Google Android https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-002
- Avis CERT-FR CERTFR-2018-AVI-004 Multiples vulnérabilités dans le noyau Linux de RedHat https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-004
- Avis CERT-FR CERTFR-2018-AVI-005 Multiples vulnérabilités dans le noyau Linux de SUSE https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-005
- Avis CERT-FR CERTFR-2018-AVI-006 Multiples vulnérabilités dans les produits VMware https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-006
- Avis CERT-FR CERTFR-2018-AVI-008 Multiples vulnérabilités dans Mozilla Firefox https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-008
- Avis CERT-FR CERTFR-2018-AVI-013 Multiples vulnérabilités dans les produits Apple https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-013
- Avis CERT-FR CERTFR-2018-AVI-017 Multiples vulnérabilités dans le noyau Linux d'Ubuntu https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-017
- Avis CERT-FR CERTFR-2018-AVI-018 Multiples vulnérabilités dans le noyau Linux de Debian https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-018
- Avis CERT-FR CERTFR-2018-AVI-028 Vulnérabilité dans le microgiciel Intel pour SUSE https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-028
- Avis CERT-FR CERTFR-2018-AVI-029 Multiples vulnérabilités dans le noyau Linux de SUSE https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-029
- Avis CERT-FR CERTFR-2018-AVI-030 Vulnérabilité dans le microgiciel Intel pour Ubuntu https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-029
- Avis CERT-FR CERTFR-2018-AVI-030 Vulnérabilité dans le microgiciel Intel pour Ubuntu https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-030
- Avis CERT-FR CERTFR-2018-AVI-032 Multiples vulnérabilités dans le noyau Linux de SUSE https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-032/
- Avis CERT-FR CERTFR-2018-AVI-038 Multiples vulnérabilités dans Oracle Sun Systems Products Suite https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-038/
- Avis CERT-FR CERTFR-2018-AVI-039 Multiples vulnérabilités dans Oracle Virtualization https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-039/
- Avis CERT-FR CERTFR-2018-AVI-040 Vulnérabilité dans le micrologiciel processeur pour Red Hat https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-040/
- Avis CERT-FR CERTFR-2018-AVI-044 Multiples vulnérabilités dans les produits Moxa https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-044
- Avis CERT-FR CERTFR-2018-AVI-077 Multiples vulnérabilités dans les produits VMware https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-077
- Avis CERT-FR CERTFR-2018-AVI-079 Multiples vulnérabilités dans le noyau Linux de RedHat https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-079
- Avis CERT-FR CERTFR-2018-AVI-080 Multiples vulnérabilités dans le noyau Linux de SUSE https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-080
- Avis de sécurité ARM du 3 janvier 2017 https://developer.arm.com/support/security-update
- Avis de sécurité Amazon ALAS-2018-939 du 4 janvier 2018 https://alas.aws.amazon.com/ALAS-2018-939.html
- Avis de vulnérabilité d'Intel et liste des processeurs vulnérables https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr
- Billet de blogue Google Project Zero https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html
- Billet de blogue Mozilla https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
- Billet de blogue de Microsoft du 3 janvier 2018 sur un correctif pour Internet Explorer et Edge https://blogs.windows.com/msedgedev/2018/01/03/speculative-execution-mitigations-microsoft-edge-internet-explorer/
- Bulletin de sécurité Android du 2 janvier 2018 https://source.android.com/security/bulletin/2018-01-01
- Bulletin de sécurité Apple HT208394 du 4 janvier 2018 https://support.apple.com/en-us/HT208394
- Bulletin de sécurité Cisco https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20180104-cpusidechannel
- Bulletin de sécurité Citrix CTX231390 du 4 janvier 2018 https://support.citrix.com/article/CTX231390
- Bulletin de sécurité Fortinet FG-IR-18-002 https://fortiguard.com/psirt/FG-IR-18-002
- Bulletin de sécurité Juniper https://kb.juniper.net/InfoCenter/index?page=content&id=JSA10842&cat=SIRT_1&actp=LIST
- Bulletin de sécurité Microsoft ADV180002 https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002
- Bulletin de sécurité Microsoft ADV180012 du 21 mai 2018 https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/ADV180012
- Bulletin de sécurité Microsoft ADV180013 du 21 mai 2018 https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/ADV180013
- Bulletin de sécurité Microsoft concernant les vulnérabilités d'attaques par canaux auxiliaires d'exécution spéculative https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution-s
- Bulletin de sécurité Microsoft pour les professionnels concernant les vulnérabilités d'attaques par canaux auxiliaires d'exécution spéculative https://support.microsoft.com/en-us/help/4073119/windows-client-guidance-for-it-pros-to-protect-against-speculative-exe
- Bulletin de sécurité Schneider Electric https://download.schneider-electric.com/files?p_enDocType=Technical+leaflet&p_File_Id=8786151194&p_File_Name=SEVD-2018-005-01+-Spectre+and+Meltdown.pdf&p_Reference=SEVD-2018-005-01
- Bulletin de sécurité Xen https://xenbits.xen.org/xsa/advisory-254.html
- Bulletin de sécurité Xen XSA-254 du 3 janvier 2018 https://xenbits.xen.org/xsa/advisory-254.html
- Bulletin de sécurité de Microsoft KB4056890 du 3 janvier 2018 https://support.microsoft.com/en-us/help/4056890/windows-10-update-kb4056890
- Bulletin de sécurité de Microsoft KB4056892 du 3 janvier 2018 https://support.microsoft.com/en-us/help/4056892/windows-10-update-kb4056892
- CERT KB https://www.kb.cert.org/vuls/id/584653
- Commentaires d'AMD sur une éventuelle vulnérabilité de leurs processeurs https://www.amd.com/en/corporate/speculative-execution
- Communication de Microsoft sur les dépendances entre la mise à jour et les logiciels anti-virus https://support.microsoft.com/en-us/help/4072699/important-information-regarding-the-windows-security-updates-released
- Communiqué Intel https://newsroom.intel.com/news/root-cause-of-reboot-issue-identified-updated-guidance-for-customers-and-partners/
- Communiqué Ubuntu https://insights.ubuntu.com/2018/01/04/ubuntu-updates-for-the-meltdown-spectre-vulnerabilities/
- Communiqué d'Amazon AWS-2018-013 en lien avec les vulnérabilités d'exécution spéculative https://aws.amazon.com/fr/security/security-bulletins/AWS-2018-013/
- Communiqué de Google sur les attaques utilisant une méthode d'exécution spéculative https://support.google.com/faqs/answer/7622138
- Communiqué de la BSI https://www.bsi.bund.de/DE/Presse/Pressemitteilungen/Presse2018/Gefaelschte_BSI-Mails_12012018.html
- Guide relatif à la sécurité des systèmes de virtualisation https://www.ssi.gouv.fr/guide/problematiques-de-securite-associees-a-la-virtualisation-des-systemes-dinformation
- Mesures à mettre en oeuvre pour protéger son Windows Server https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution
- Mise à jour du microgiciel Intel pour Linux relatif à la CVE-2017-5715 https://downloadcenter.intel.com/download/27337/Linux-Processor-Microcode-Data-File
- Security Advisory 115 Intel https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00115.html
- Site détaillant le principe de la vulnérabilité https://spectreattack.com/
- Site détaillant le principe de la vulnérabilité https://meltdownattack.com/
- Référence CVE CVE-2017-5715 https://www.cve.org/CVERecord?id=CVE-2017-5715
- Référence CVE CVE-2017-5753 https://www.cve.org/CVERecord?id=CVE-2017-5753
- Référence CVE CVE-2017-5754 https://www.cve.org/CVERecord?id=CVE-2017-5754
- Référence CVE CVE-2018-3639 https://www.cve.org/CVERecord?id=CVE-2018-3639
- Référence CVE CVE-2018-3640 https://www.cve.org/CVERecord?id=CVE-2018-3640