Protégez Linux ou Windows des vulnérabilités Spectre et Meltdown

L'un des composants fondamentaux de tout ordinateur conçu pour utiliser un système d'exploitation, quel que soit son développeur, est le CPU ou le processeur qui a progressé à pas de géant en nous offrant de nouvelles vitesses de traitement, de nouvelles technologies, plus de cœurs et tout cela afin de optimiser et améliorer le démarrage du système et l'exécution des programmes que nous y avons installés.

Tout cela est innovant et nous remplit d'émotion lorsque nous achetons un ordinateur avec un excellent processeur car nous sommes sûrs que ce sera un bon investissement mais que se passe-t-il si le processeur, qu'il soit Intel, AMD ou autre, présente dans sa conception des failles de sécurité qu'ils mettent nos informations et notre confidentialité en danger, là le sujet change de cap et nous fait réfléchir à la façon dont ce type de situation peut se produire dans des transformateurs renommés et de grandes entreprises du monde entier.

Eh bien, cette vulnérabilité est une réalité qui a été découverte il y a quelques jours, le 4 janvier, où les vulnérabilités Spectre et Meltdown ont été découvertes, qui sont liées à la conception du processeur où un attaquant est autorisé à accéder aux informations et à la mémoire du système où vital des éléments tels que des clés de cryptage ou des mots de passe sont hébergés.

Le pire dans tout ce problème est que ces vulnérabilités affectent les processeurs Intel, ARM et AMD, c'est pourquoi nous sommes tous ouverts à être victimes de ces vulnérabilités et c'est pourquoi aujourd'hui, chez Solvetic, nous analyserons en profondeur quelles sont ces vulnérabilités, comment elles attaque et comment nous pouvons protéger nos serveurs et nos équipements contre celles-ci.

Rappelons que ces vulnérabilités attaqueront tous les types d'équipements tant au niveau domestique qu'au niveau de l'entreprise et actuellement les correctifs qui serviront à nous protéger contre Spectre et Meltdown sont publiés par les développeurs de systèmes d'exploitation et d'applications.

Qu'est-ce que Spectre

Spectre est une vulnérabilité qui a la capacité d'inciter le processeur à démarrer le processus d'exécution spéculative, car les processeurs modernes utilisent la prédiction de branche et l'exécution spéculative permet de maximiser les performances du processeur. .

Les attaques de spectre permettent d'inciter une victime à exécuter de manière spéculative certaines opérations qui ne se produiraient pas lors de l'exécution correcte du programme, ce qui permet à des informations confidentielles d'être divulguées par un canal latéral pour l'attaquant de manière très simple.

Les avis de divulgation de ces vulnérabilités ont découvert deux variantes avec différents niveaux de complexité et d'impact de Spectre sur le processeur et avec lui sur la sécurité de l'utilisateur.

Ces variantes sont :

Variante 1 (CVE-2017-5753)Cette vulnérabilité affecte les processeurs Intel, AMD et ARM, permettant à l'attaquant de tromper les programmes sans aucun type d'erreur, en suivant les meilleures pratiques, pour filtrer toutes les informations utilisateur stockées sur l'ordinateur.

Cela a été découvert le 3 janvier de cette année par l'équipe Google Project Zero et cette variante fait un usage excessif de l'exécution spéculative afin d'effectuer des tâches de contournement de vérification des limites, ce qui entraîne la redirection du code du noyau avec le contrôle de l'attaquant de manière spéculative.

Voici une liste des systèmes pouvant être attaqués par cette variante :

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • RHEV-M 4.0
  • RHEV-M pour les serveurs
  • Plateforme Red Hat Enterprise Linux OpenStack 7.0 (Kilo) pour RHEL 7
  • Plateforme Red Hat Enterprise Linux OpenStack 6.0 (Juno) pour RHEL 7
  • Red Hat Enterprise MRG 2
  • Plateforme Red Hat OpenStack v 8/9/10/11/12
  • Debian Linux sifflant
  • Debian Linux jessie
  • Extension Debian Linux
  • Buster Debian Linux, sid
  • Serveur d'entreprise SUSE Linux pour Raspberry Pi 12 SP2
  • SUSE OpenStack Cloud 6
  • Openstack Cloud Magnum Orchestration 7
  • SUSE Container as a Service Platform ALL
  • SUSE Linux Enterprise Haute disponibilité 12 SP2 / SP3
  • SUSE Linux Enterprise Live Patching 12
  • Module d'entreprise SUSE Linux pour le cloud public 12
  • SUSE Linux Enterprise Server 11 SP3-LTSS
  • SUSE Linux Enterprise Server 11 SP4
  • Kit de développement logiciel SUSE Linux Enterprise 11/12 SP3 / SP4
  • SUSE Linux Enterprise pour SAP 12 SP1
  • SUSE Linux Entreprise 11
  • SUSE Linux Entreprise 12
  • OpenSuse Linux basé sur SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • AMI Linux Amazon

Variante 2 (CVE-2017-5715)Cette variante est responsable du déclenchement de l'exécution spéculative en utilisant l'injection de cible de branche. Il est basé sur la présence d'une séquence d'instructions spécifique et précisément définie dans le code privilégié, ainsi que sur la situation dans laquelle les accès mémoire peuvent provoquer la mise en cache des données du microprocesseur y compris des instructions exécutées de manière spéculative qui ne seront jamais compromises.

Grâce à cette variante, un attaquant sans aucun privilège aurait la possibilité de franchir les limites du système et de l'ordinateur pour lire la mémoire privilégiée en effectuant des attaques ciblées de cache de canal latéral et ainsi voir la sécurité de l'utilisateur pénétrée.

Les systèmes concernés sont les mêmes que ceux énumérés ci-dessus.

Pour éviter ces variantes sous Linux, nous pouvons effectuer le processus suivant.

Dans les environnements CentOS ou RedHat, nous exécutons tout d'abord les lignes suivantes :

 uname -r sudo yum mise à jour

Une fois le système mis à jour, nous procédons au redémarrage du système en exécutant la ligne :

 redémarrage sudo
Ensuite, nous confirmons que le noyau a été mis à jour en utilisant à nouveau la commande :
 uname -r
Enfin, nous vérifions que les variantes sont appliquées dans le système en exécutant ce qui suit :
 rpm -q --changelog noyau | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754' 

AGRANDIR

Dans le cas de l'utilisation d'Ubuntu ou de Debian, nous pouvons exécuter les lignes suivantes :

 sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0

Formes d'attaque de spectreSpectre utilise certaines techniques d'attaque telles que:

  • Exploiter l'exécution spéculative. Avec cette technique, Spectre attaque la tâche du processeur au niveau d'instructions d'exécution spéculatives avec des séquences qui n'auraient pas dû être exécutées lors de la bonne exécution du programme et ces séquences finiront par s'inverser créant des instructions transitoires dont l'attaquant profite pour filtrer l'utilisateur informations.
  • Attaques utilisant du code natif :. Cette attaque crée un programme qui contient des données secrètes dans sa mémoire d'accès et une fois ce programme compilé, les binaires et les bibliothèques partagées du système sont analysés afin de filtrer les informations des utilisateurs.

Enfin, un autre programme d'attaque est écrit qui exploite la fonction d'exécution spéculative du CPU pour exécuter les séquences précédemment rencontrées en tant qu'instructions transitoires.

  • Attaques utilisant JavaScript. Cette attaque est utilisée pour percer le bac à sable du navigateur en y installant du code JavaScript portable.

Matériel affecté par SpectreActuellement, il a été découvert que Spectre est capable de violer du matériel tel que :

  • Processeurs basés sur Ivy Bridge
  • AMD Ryzen
  • Processeurs Intel
  • Processeurs Qualcomm

En résumé, l'attaque Spectre se compose des phases suivantes :

  • Phase 1. Tout d'abord, l'attaque commence par une phase de configuration, où l'adversaire effectue des opérations qui provoquent des pannes de processeur afin qu'une exploitation spéculative erronée puisse ensuite être effectuée.

Durant cette phase, l'attaquant peut préparer le canal latéral qui sera utilisé pour extraire les informations de la victime.

  • Phase 2. Dans cette phase, le processeur exécute de manière spéculative une ou plusieurs instructions qui transfèrent des informations confidentielles du contexte de la victime vers une microarchitecture de canal latéral.

Cela permet à l'attaquant d'effectuer une action, telle que syscall, socket, et dans d'autres cas, l'attaquant peut profiter de l'exécution spéculative de son propre code pour obtenir des informations sensibles du même processus par l'utilisateur.

  • Phase 3. Dans cette phase, les données confidentielles sont récupérées de Spectre à l'aide de techniques telles que flush + rechargement ou éviction + rechargement. Ce processus de récupération consiste à mesurer combien de temps il faut pour lire les adresses mémoire dans les lignes de cache qui sont surveillées périodiquement.

Qu'est-ce que Meltdown

L'autre attaque qui affecte la sécurité des utilisateurs est Meltdown qui permet à un attaquant d'accéder aux informations privées de l'utilisateur via le système d'exploitation installé, tel que Microsoft Windows ou High Sierra.

Son nom a été attribué pour sa capacité à violer les limites de sécurité normalement imposées par le matériel du système.

La vulnérabilité Meltdown a été cataloguée sous le nom CVE-2017-5754 où il est indiqué que Meltdown a la capacité de pénétrer l'isolement de base entre les applications utilisateur et le système d'exploitation, quel qu'il soit. Cette attaque permet à un programme d'accéder à la mémoire et, avec elle, aux informations confidentielles d'autres programmes et du système d'exploitation lui-même.

Cette faille a également été découverte le 3 janvier par l'équipe Google Project Zero et d'autres équipes supplémentaires.
Cette vulnérabilité affecte les processeurs Intel x86-64 mais pas les processeurs AMD x86-64.

L'effondrement peut affecter le système comme :

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux
  • Debian Linux sifflant
  • Jessie Debian Linux
  • Extension Debian Linux
  • Buster Linux Deiban, sid
  • SUSE Linux Entreprise 11
  • SUSE Linux Entreprise 12
  • OpenSuse Linux basé sur SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • AMI Linux Amazon
  • les fenêtres
Actuellement, nous avons la solution pour cette vulnérabilité pour les distributions Linux suivantes avec leur version de noyau comme celle-ci :
  • RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
  • Debian stretch [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / wheezy [3.2.0-5-amd64]
  • CoreOS [4.14.11-Coréos]
  • Arch Linux [mise à jour en cours]
  • Gentoo Linux [mise à jour en cours]
  • Ubuntu Linux v16.04 [4.4.0-109-generic ou 4.13.0-26-generic] /v17.10 [4.13.0-25-generic] /14.04 [3.13.0-139-generic]
  • SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]

Pour nous protéger de cette vulnérabilité CVE-2017-5754, nous pouvons exécuter les opérations suivantes :

  • Sur CentOS et RedHat :
 uname -r sudo yum update sudo reboot
  • Dans Fedora :
 sudo dnf --refresh mettre à jour le noyau 
  • Sur Debian et Ubuntu :
 uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0

Comment fonctionne MeltdownRappelons-nous que l'une des fonctionnalités de sécurité centrales au niveau des opérations dans les systèmes d'exploitation modernes est l'isolation de la mémoire, qui garantit que les applications utilisateur n'ont pas accès aux mémoires des autres utilisateurs et programmes et empêchent ainsi les applications de lire ou d'écrire. à la mémoire du noyau.

Dans les processeurs modernes, l'isolement entre le noyau et les processus utilisateur est normalement exécuté par un moniteur de bits de processeur qui définit si une mémoire a la capacité d'accéder à la page du noyau ou non.
Meltdown a été développé comme une nouvelle attaque qui a le pouvoir de surmonter complètement l'isolement de la mémoire en fournissant un moyen simple pour tout processus utilisateur de lire la mémoire du noyau de la machine en cours d'exécution, y compris toute la mémoire physique allouée sur la région du noyau.

Meltdown fonctionne sur tous les principaux systèmes d'exploitation actuels et cette vulnérabilité exploite les informations de canal secondaire disponibles sur la plupart des processeurs modernes tels qu'Intel ou AMD.

Meltdown donne à un attaquant la possibilité d'exécuter du code sur un processeur vulnérable afin de vider l'intégralité du noyau dans l'espace d'adressage, y compris toute mémoire physique allouée.

La cause de la simplicité et de la portée de Meltdown sont des effets secondaires causés par une exécution dans le désordre, c'est-à-dire qu'il s'agit d'une caractéristique des processeurs actuels qui a été développée pour surmonter les latences des unités d'exécution occupées.

Les phases de travail Meltdown sont :

  • Phase 1. Dans cette phase, une demande est faite pour un emplacement de mémoire illégal dans le noyau du processeur.
  • Phase 2. Dans cette phase, une deuxième requête est effectuée afin de lire conditionnellement un emplacement mémoire valide uniquement si la première requête contient une certaine valeur active.
  • Phase 3. Dans cette phase, la tâche d'exécution spéculative est effectuée où le processeur termine le travail de fond pour les deux demandes précédentes avant de vérifier que la demande initiale est invalide. Dès que le processeur comprend que les requêtes impliquent une mémoire hors limites, il refuse les deux requêtes.
  • Phase 4. Là, une nouvelle demande est faite pour l'emplacement mémoire valide.

Nous pouvons donc définir ce qui suit avec la vulnérabilité Meltdown :

Le contenu d'un emplacement mémoire choisi par l'attaquant, qui lui est inaccessible, est chargé dans un registre système.

Une instruction transitoire accède à une ligne de cache sur la base du contenu secret du registre.

L'attaquant utilise Flush + Reload pour déterminer l'accès à la ligne de cache et ainsi accéder aux informations stockées dans l'emplacement mémoire choisi.

Une fois que nous aurons compris le fonctionnement de ces vulnérabilités, nous verrons comment nous protégerons nos ordinateurs contre elles, même si nous devons préciser qu'à ce jour, aucune attaque n'a été signalée impliquant à la fois des utilisateurs et des administrateurs.

1. Comment vous protéger de Spectre et Meltdown sur les systèmes Linux


Dans le cas de Linux, nous utiliserons specter-meltdown-checker.sh qui est un script shell pour déterminer si le noyau Linux est vulnérable aux 3 CVE que nous avons mentionnés de ces vulnérabilités.

NoterCe script doit être exécuté en tant qu'utilisateur root.

Étape 1
Pour installer ce script, nous allons d'abord aller dans le répertoire /tmp comme ceci :

 cd / tmp / 
Étape 2
Une fois dans ledit répertoire, nous procédons à l'obtention du script en exécutant la ligne suivante :
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh 

NoterUne autre option pour l'obtenir est d'exécuter la ligne suivante :

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

Comment vérifier si nous sommes vulnérables ou non à Spectre ou MeltdownPour vérifier la sécurité de notre distribution, nous pouvons exécuter la ligne suivante :

 sudo sh spectre-fusion-checker.sh

C'est aussi simple que cela Nous pouvons vérifier si notre système est vulnérable ou non à ces nouvelles menaces.

2. Comment vous protéger de Spectre et Meltdown sur les systèmes Windows


Dans ce cas, nous utiliserons Windows 10 et pour cela, nous devons accéder à Windows PowerShell en tant qu'administrateurs en cliquant avec le bouton droit sur l'application et en sélectionnant l'option "Exécuter en tant qu'administrateur".

Étape 1
Une fois le terminal PowerShell ouvert, nous procédons à l'exécution de la ligne suivante :

 Install-Module SpeculationControl
Étape 2
Dans les questions affichées, nous entrerons la lettre S pour confirmer :

AGRANDIR

Étape 3
La politique d'exécution standard de Windows ne nous permettra pas d'exécuter ce script, pour cela, afin d'exécuter le script, nous devons enregistrer la configuration actuelle afin qu'elle puisse être restaurée ultérieurement puis modifier la politique d'exécution afin qu'elle puisse être exécutée le scénario. Pour cela nous allons exécuter les deux commandes suivantes :

 $ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser

AGRANDIR

Étape 4
Maintenant, nous pouvons exécuter le script en exécutant ce qui suit :

 Import-Module SpeculationControl Get-SpeculationControlSettings

AGRANDIR

Étape 5
Nous pouvons voir des informations détaillées sur le système et nous devons regarder en particulier deux lignes :

Prise en charge du système d'exploitation Windows pour l'atténuation de l'injection de cible de brancheCette ligne indique la mise à jour du logiciel Microsoft et si sa valeur est vrai signifie que l'ordinateur est protégé contre les attaques Meltdown et Spectre.

Prise en charge matérielle pour l'atténuation de l'injection de cible de brancheCette ligne fait référence à la mise à jour du micrologiciel ou du BIOS / UEFI requise par le fabricant de l'ordinateur si sa valeur est vrai cela signifie que nous serons protégés contre la vulnérabilité Spectre.

Étape 6
Pour restaurer la politique d'exécution dans sa configuration d'origine après avoir vérifié la sécurité du système, nous pouvons exécuter la ligne suivante :

 Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser 

AGRANDIR

Étape 7
Il convient de rappeler l'importance de maintenir le système d'exploitation à jour, car les développeurs publieront des correctifs de sécurité pour éviter ces failles de sécurité :

3. Informations officielles sur le spectre et la fusion par les fabricants


Dans les liens suivants, nous pouvons trouver des informations sur ces vulnérabilités dans chacun des principaux sites des développeurs et ainsi avoir des informations plus détaillées sur la façon de prévenir et d'avoir une longueur d'avance sur le problème :
  • Intelligence
  • BRAS
  • DMLA
  • NVIDIA
  • Microsoft Windows
  • Serveur Windows
  • Amazone
  • Google
  • Android
  • Manzana
  • Lenovo
  • HP
  • Huawei
  • Cisco
  • Mozilla
  • Chapeau rouge
  • Debian
  • Ubuntu
  • Feutre
  • VMWare

Comme on peut le voir, même si des vulnérabilités seront toujours présentes, nous pouvons prendre les mesures nécessaires pour être attentifs à toute défaillance et ainsi éviter que nos informations ne soient affectées.

wave wave wave wave wave