Risque(s)

  • 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 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 sites internet relatifs à des vulnérabilités dans plusieurs processeurs pouvant conduire à des fuites d'informations étaient rendus disponibles [1][2]. Intitulées Meltdown et Spectre ces failles regroupent trois vulnérabilités identifiées comme CVE-2017-5754 pour Meltdown et CVE-2017-5753 ainsi que CVE-2017-5715 pour Spectre.

Vulnérabilité Meltdown

Les processeurs modernes intègrent plusieurs fonctionnalités visant à améliorer leurs performances. Parmi celles-ci, l'exécution dites 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 ne soit correctement vérifié au préalable. 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 permet d'exploiter une fonctionnalité présente dans plusieurs architectures de processeurs modernes afin d'accéder en lecture à des zones mémoires d'un système autrement non accessibles sans des privilèges élevés. En particulier, l'exploitation de cette vulnérabilité permet d'accéder depuis un programme s'exécutant en mode utilisateur à la mémoire du système en mode noyau. 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.

Vulnérabilité Spectre

L'exécution spéculative est une seconde technique d'optimisation utilisée par les processeurs modernes.
Lorsqu'un processeur est en attente d'une information de la part de la mémoire centrale, il peut continuer à exécuter des instructions de manière probabiliste afin de ne pas gâcher des cycles. Quand cette information arrive, le processeur vérifie la cohérence de son résultat anticipé. Dans le meilleur cas, il a gagné du temps car il a correctement prédit l'information. Dans le pire cas, il n'en a pas perdu car il reprend l'exécution de ses instructions avec la bonne information. Si le contenu des registres sont remis à leurs valeurs initiales, ce n'est pas le cas du cache.
L'exemple donné dans l'article décrivant Spectre est le suivant:

if (x < array1_size)
y = array2[array1[x] * 256];

Selon les bonnes pratiques, on teste si l'index est bien dans les limites du tableau avant d'y accéder. Or, si l'on a déjà demandé plusieurs fois d'accéder au tableau avec des valeurs légitimes, le processeur partira du principe que les valeurs demandées seront légitimes dans le cadre de l'exécution spéculative. Un attaquant pourra alors fournir une donnée erronée afin de provoquer un débordement de tampon. Une fois que le processeur exécutera réellement l'instruction, il se rendra compte de l'erreur, cependant le résultat de la lecture interdite restera dans le cache. Il faut ensuite récupérer cette information, ce qui n'est pas trivial.

Une autre manière d'exploiter Spectre est de forcer l'exécution spéculative à partir d'un autre processus. Le cas de figure le plus probable étant un hôte tentant d'obtenir des informations de la part de l'hyperviseur. Cette technique est la plus difficile à exploiter, mais également la plus difficile à contourner.

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) :

rule meltdown_iaik_libkdump_meltdown_nonull {

meta:

author = "ANSSI"

TLP_level = "White"

description = "Detects Meltdown PoC libkdump meltdown_nonull method"

version = "1.0"

last_modified = "2018-01-09"

strings:

/*

.text:00000000000018A6 48 31 C0                                            xor      rax, rax   .text:00000000000018A9

.text:00000000000018A9                                     loc_18A9:                               ; CODE XREF: libkdump_read_tsx+48j

.text:00000000000018A9 8A 01                                                 mov    al, [rcx]

.text:00000000000018AB 48 C1 E0 0C                                      shl      rax, 0Ch

.text:00000000000018AF 74 F8                                                  jz        short loc_18A9

.text:00000000000018B1 48 8B 1C 03                                       mov    rbx, [rbx+rax]

*/

$asm={

48 31 C0

8A 01

48 C1 E0 0C

74 F8

48 8B 1C 03

}

condition: $asm

}


rule meltdown_iaik_libkdump_meltdown_fast {

meta:

author = "ANSSI"

TLP_level = "White"

description = "Detects Meltdown PoC libkdump meltdown_fast method"

version = "1.0"

last_modified = "2018-01-09"

strings:

    /*

.text:000000000000184F 48 31 C0                                      xor       rax, rax

.text:0000000000001852 8A 01                                           mov     al, [rcx]

.text:0000000000001854 48 C1 E0 0C                                shl       rax, 0Ch

.text:0000000000001858 48 8B 1C 03                                 mov    rbx, [rbx+rax]

*/

$asm = {

48 31 C0

8A 01

48 C1 E0 0C

48 8B 1C 03

}

condition:

$asm

}


rule meltdown_iaik_libkdump_meltdown {

meta:

author = "ANSSI"

TLP_level = "White"

description = "Detects Meltdown PoC libkdump meltdown method"

version = "1.0"

last_modified = "2018-01-09"

strings:

/*

.text:00000000000018A8 48 31 C0                                            xor     rax, rax   .text:00000000000018AB

.text:00000000000018AB                                     loc_18AB:                               ; CODE XREF: libkdump_read_tsx+4Dj

.text:00000000000018AB 48 8B 36                                           mov     rsi, [rsi]

.text:00000000000018AE 8A 01                                                mov     al, [rcx]

.text:00000000000018B0 48 C1 E0 0C                                      shl       rax, 0Ch

.text:00000000000018B4 74 F5                                                  jz        short loc_18AB

.text:00000000000018B6 48 8B 1C 03                                       mov    rbx, [rbx+rax]

*/

$asm={

48 31 C0

48 8B 36

8A 01

48 C1 E0 0C

74 F5

48 8B 1C 03

}

condition:

$asm

}

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.

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 :

dmesg | grep 'Kernel/User page tables isolation'

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

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]

 

 

Documentation

  1. Site détaillant le principe de la vulnérabilité
    https://meltdownattack.com/
  2. Site détaillant le principe de la vulnérabilité
    https://spectreattack.com/
  3. 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
  4. 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
  5. Article du 15 novembre 2017 sur le mécanisme de sécurité KAISER
    https://lwn.net/Articles/738975/
  6. Article du 30 décembre 2017 sur l'intégration du correctif KPTI dans le noyau Linux
    https://lwn.net/Articles/742404/
  7. Avis de sécurité ARM du 3 janvier 2017
    https://developer.arm.com/support/security-update
  8. 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
  9. Bulletin de sécurité Apple HT208394 du 4 janvier 2018
    https://support.apple.com/en-us/HT208394
  10. 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/
  11. Bulletin de sécurité de Microsoft KB4056890 du 3 janvier 2018
    https://support.microsoft.com/en-us/help/4056890/windows-10-update-kb4056890
  12. Bulletin de sécurité de Microsoft KB4056892 du 3 janvier 2018
    https://support.microsoft.com/en-us/help/4056892/windows-10-update-kb4056892
  13. 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
  14. 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
  15. 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
  16. Bulletin de sécurité Android du 2 janvier 2018
    https://source.android.com/security/bulletin/2018-01-01
  17. Communiqué de Google sur les attaques utilisant une méthode d'exécution spéculative
    https://support.google.com/faqs/answer/7622138
  18. Bulletin de sécurité Xen XSA-254 du 3 janvier 2018
    https://xenbits.xen.org/xsa/advisory-254.html
  19. Bulletin de sécurité Citrix CTX231390 du 4 janvier 2018
    https://support.citrix.com/article/CTX231390
  20. 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/
  21. Avis de sécurité Amazon ALAS-2018-939 du 4 janvier 2018
    https://alas.aws.amazon.com/ALAS-2018-939.html
  22. 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
  23. 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
  24. Communiqué Ubuntu
    https://insights.ubuntu.com/2018/01/04/ubuntu-updates-for-the-meltdown-spectre-vulnerabilities/
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. Communiqué de la BSI
    https://www.bsi.bund.de/DE/Presse/Pressemitteilungen/Presse2018/Gefaelschte_BSI-Mails_12012018.html
  33. 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/
  34. 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/
  35. 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/
  36. 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/
  37. 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
  38. Communiqué Intel
    https://newsroom.intel.com/news/root-cause-of-reboot-issue-identified-updated-guidance-for-customers-and-partners/
  39. 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
  40. 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
  41. 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