GNU/Linux >> Tutoriels Linux >  >> Linux

Test de vulnérabilité du processeur Spectre et Meltdown et mise à jour du microcode sous Linux



Introduction aux vulnérabilités des processeurs Spectre et Meltdown

Une façon de bloquer ces attaques consiste à vider les caches mémoire à certains moments, en éliminant les informations exfiltrées avant que l'attaquant ne puisse y accéder. Le téléchargement du cache après chaque appel système bloquerait probablement un large éventail d'attaques spéculatives, mais cela ralentirait également le système au point que les utilisateurs chercheraient des moyens de désactiver le mécanisme. La sécurité de l'information est très importante, mais les coûts sont trop élevés alors que vider les mémoires caches réduit un temps de production précieux.

Les attaques qui utilisent l'exécution spéculative impliquent de convaincre le processeur de spéculer sur une route que l'exécution non spéculative ne suivra pas. Par exemple, une fonction du noyau peut contenir un contrôle de limite qui empêchera le code d'accéder au-delà de la fin d'un tableau, ce qui entraînera le renvoi d'une erreur. Une attaque qui utilise la vulnérabilité Spectre ignorera cette vérification de manière spéculative, accédant à des données auxquelles le code a été écrit spécifiquement pour ne pas accéder. Le retour d'erreur est un indice qu'il se passe peut-être quelque chose d'inapproprié, mais d'ici là, le mal sera fait.

Comment vérifier si votre serveur Linux est vulnérable aux bogues du processeur Spectre

Vérificateur de spectre et de fusion est un script shell qui recherche les bugs des processeurs Intel/AMD/ARM et autres suivants :

  • CVE-2017-5753 :contournement de la vérification des limites (Spectre Variant 1). Vous devez recompiler le logiciel et le noyau avec un compilateur modifié qui introduit l'opcode LFENCE aux positions appropriées dans le code résultant. L'impact de l'atténuation sur les performances est négligeable.
  • CVE-2017-5715 :injection de cible de branche (Spectre Variant 2). L'impact de l'atténuation sur les performances dépend de votre processeur.
  • CVE-2017-5754 :chargement de cache de données malveillant (Meltdown). Vous devez installer la version mise à jour du noyau avec les correctifs PTI/KPTI. La mise à jour du noyau suffit. L'impact de l'atténuation sur les performances est faible à moyen.

spectre-meltdown-checker.sh est un simple script shell pour savoir si votre noyau Linux (installation) est vulnérable contre les 3 CVE "à exécution spéculative".

Installation

Le script doit être exécuté en tant que root utilisateur. Vous pouvez voir le code source ci-dessous. Utilisez la commande wget ou curl pour récupérer le code source sur votre machine Linux :

$ cd /tmp/
$ wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh

OU

$ git clone https://github.com/speed47/spectre-meltdown-checker.git

Exemples de résultats :

Clonage dans 'spectre-meltdown-checker'...

remote :Comptage d'objets :155, terminé.

remote :Compression d'objets :100 % (20/20), terminé.

distant :Total 155 (delta 18), réutilisé 21 (delta 10), pack réutilisé 125

Réception d'objets :100 % (155/155), 49,78 Kio | 145,00 Kio/s, terminé.

Résolution des deltas :100 % (88/88), terminé.

Comment vérifier Linux pour la vulnérabilité Spectre et Meltdown

Exécutez le script en tant qu'utilisateur root à l'aide de la commande sudo ou su :

$ sudo sh spectre-meltdown-checker.sh

Exemples de sorties du bureau Ubuntu Linux :

Une autre sortie de mon serveur CentOS 7.x où Meltdown/Spectre v1 a été corrigé avec Kernel :

$ sudo sh spectre-meltdown-checker.sh

Comment installer/mettre à jour le firmware du microcode Intel sous Linux ?

Un microcode n'est rien d'autre qu'un firmware CPU fourni par Intel ou AMD. Le noyau Linux peut mettre à jour le micrologiciel du processeur sans la mise à jour du BIOS au démarrage. Le microcode du processeur est stocké dans la RAM et le noyau met à jour le microcode à chaque démarrage. Ces mises à jour du microcode d'Intel/AMD devaient corriger des bogues ou appliquer des errata pour éviter les bogues du processeur. Cette page explique comment installer la mise à jour du microcode AMD ou Intel à l'aide du gestionnaire de packages ou des mises à jour du microcode du processeur fournies par Intel sous Linux.

Comment connaître l'état actuel du microcode

Exécutez la commande suivante en tant que root utilisateur :

# dmesg | grep microcode

Exemples de sorties :


Comment installer le micrologiciel du microcode Intel sur Linux à l'aide d'un gestionnaire de packages

L'outil pour transformer et déployer la mise à jour du microcode CPU pour x86/amd64 est fourni avec Linux. La procédure pour installer le firmware du microcode AMD ou Intel sous Linux est la suivante :

  1. Ouvrez l'application du terminal
  1. Type d'utilisateur Debian/Ubuntu Linux :sudo apt install intel-microcode
  1. Type d'utilisateur Linux CentOS/RHEL :sudo yum install microcode_ctl

Les noms de packages sont les suivants pour les distributions Linux populaires :

  • microcode_ctl et linux-firmware – package de mise à jour du microcode CentOS/RHEL
  • intel-microcode – Paquet de mise à jour du microcode Debian/Ubuntu et clones pour les processeurs Intel
  • amd64-microcode – microcode Debian/Ubuntu et clones microcode pour les processeurs AMD
  • linux-firmware – Firmware du microcode Arch Linux pour les processeurs AMD (installé par défaut et aucune action n'est requise de votre part)
  • intel-ucode – micrologiciel de microcode Arch Linux pour les processeurs Intel
  • microcode_ctl, linux-firmware et ucode-intel – Package de mise à jour du microcode Linux Suse/OpenSUSE

Avertissement :Dans certains cas, la mise à jour du microcode peut entraîner des problèmes de démarrage tels que le blocage du serveur ou sa réinitialisation automatique au moment du démarrage. Faites-le à vos risques et périls.

Exemples

Tapez la commande apt/commande apt-get suivante sur un Debian/Ubuntu Linux pour processeur Intel :

$ sudo apt-get install intel-microcode

Exemples de sorties :



Vous devez redémarrer la box pour activer la mise à jour du microcode :

$ sudo reboot

Vérifiez-le après le redémarrage :

# dmesg | grep 'microcode'

Si vous utilisez RHEL/CentOS, essayez d'installer ou de mettre à jour les deux packages suivants à l'aide de la commande yum :

$ sudo yum install linux-firmware microcode_ctl
$ sudo reboot
$ sudo dmesg | grep 'microcode'

Comment mettre à jour/installer le microcode téléchargé depuis le site Intel ?

N'utilisez la méthode suivante que lorsqu'elle est recommandée par votre fournisseur, sinon respectez les packages Linux comme décrit ci-dessus. La plupart des mainteneurs de distribution Linux mettent à jour le microcode via le gestionnaire de packages. La méthode du gestionnaire de packages est sûre, testée par de nombreux utilisateurs.

Comment installer le microcode blob du processeur Intel pour Linux (version 20180108) ?

Visitez le site AMD ou Intel pour récupérer le dernier micrologiciel de microcode. Commencez par l'extraire à l'aide de la commande tar :

$ mkdir firmware
$ cd firmware
$ tar xvf ~/path/to/file/microcode-20180108.tgz
$ ls –l

Exemples de sorties :

Assurez-vous que /sys/devices/system/cpu/microcode/reload se termine :

$ ls -l /sys/devices/system/cpu/microcode/reload

Vous devez copier tous les fichiers d'intel-ucode vers /lib/firmware/intel-ucode/ en utilisant la commande cp :

$ sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/

Vous venez de copier le répertoire intel-ucode dans /lib/firmware/. Écrivez l'interface de rechargement à 1 pour recharger les fichiers de microcode :

# echo 1 > /sys/devices/system/cpu/microcode/reload

Mettez à jour un initramfs existant afin que la prochaine fois qu'il soit chargé via le noyau :

$ sudo update-initramfs -u
$ sudo reboot

Vérification que le microcode a été mis à jour au démarrage ou rechargé par la commande echo :

# dmesg | grep microcode

C'est tout. Vous venez de mettre à jour le firmware de votre CPU Intel.


Linux
  1. Comment installer et tester Ansible sur Linux

  2. Linux - Configurer, compiler et installer un noyau Linux personnalisé ?

  3. Le noyau Linux ne sera pas mis à jour vers 2.35.25 ?

  4. Limite de ligne Shebang dans le noyau bash et linux

  5. Comment atténuer les vulnérabilités Spectre et Meltdown sur les systèmes Linux ?

CPU Power Manager - Contrôlez et gérez la fréquence du processeur sous Linux

Installer le noyau Linux 4.15 dans les systèmes basés sur RPM et DEB

Comment nous utilisons Linux Test Project pour tester et améliorer Linux

Comment mettre à jour Manjaro et d'autres distributions Linux basées sur Arch

Comment appliquer les correctifs de sécurité du noyau Linux ? Manuellement et automatiquement sans redémarrage ?

Présentation de la surveillance et du réglage des performances Linux