INFOTHEMA

Auteur Sujet: Bulletin d'alerte du CERT-FR / Vulnérabilités des processeurs INTEL - AMD - ARM  (Lu 2058 fois)

Animateur

  • Administrator
  • Hero Member
  • *****
  • Messages: 5893
    • Voir le profil


Bulletin d'alerte du CERT-FR
Objet: Multiples vulnérabilités de fuite d’informations dans des processeurs

Référence    CERTFR-2018-ALE-001
Titre    Multiples vulnérabilités de fuite d’informations dans des processeurs
Date de la première version : 04 janvier 2018
Date de la dernière version : 05 janvier 2018 à 17h00
Source(s)    Sites détaillant le principe de la vulnérabilité
Pièce(s) jointe(s)    Aucune(s)
Tableau 1: Gestion du document

Une gestion de version détaillée se trouve à la fin de ce document.

Source : https://www.cert.ssi.gouv.fr/alerte/CERTFR-2018-ALE-001

==================================================

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é

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.
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)  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 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 » .
Membre de l'APRIL (www.april.org) / Membre du bureau Association "Debian Facile"  (https://debian-facile.org)