Comment protéger votre serveur contre les vulnérabilités de fusion et de spectre

Que sont la fusion et le spectre?

Le 4 janvier 2018, de multiples vulnérabilités dans la conception de CPU modernes ont été révélées. Tirant parti de certaines optimisations des performances du processeur, ces vulnérabilités nommées * Meltdown * et * Specter * permettent aux attaquants de contraindre les applications à révéler le contenu de la mémoire système et de la mémoire de l’application lorsqu’elles sont manipulées correctement. Ces attaques fonctionnent parce que le comportement normal de vérification des privilèges au sein du processeur est altéré par l’interaction de fonctionnalités telles que l’exécution spéculative, la prédiction de branche, l’exécution dans le désordre et la mise en cache.

La fusion a été divulguée dans CVE-2017-5754. Spectre a été divulgué dans les CVE-2017-5753 et https://nvd.nist.gov/vuln/detail/CVE-2017-5715. [CVE-2017-5715].

Pour plus d’informations, consultez le lien: # comment-fait-fusion-fonctionne-t-il [comment fonctionne la fusion?] Et lien: # comment-fonctionne-spectre-fonctionne-t-il [comment fonctionne spectre?] Ci-dessous.

Suis-je concerné par la fusion et le spectre?

Meltdown et Specter affectent la majorité des processeurs modernes. Les optimisations de processeur utilisées dans ces vulnérabilités constituent une caractéristique essentielle de la conception de la plupart des processeurs, ce qui signifie que la plupart des systèmes sont vulnérables jusqu’à ce qu’ils soient corrigés. Cela inclut les ordinateurs de bureau, les serveurs et les instances de calcul fonctionnant dans des environnements Cloud.

Les correctifs destinés à protéger contre la fusion sont en cours de publication par les fournisseurs de systèmes d’exploitation. Bien que des mises à jour soient également publiées pour Specter, elles représentent toute une classe de vulnérabilités et nécessiteront donc probablement des corrections en profondeur plus poussées.

Dans les environnements cloud et virtualisés, les fournisseurs devront mettre à jour l’infrastructure sous-jacente pour protéger leurs invités. Les utilisateurs devront mettre à jour leurs serveurs pour atténuer l’impact des systèmes d’exploitation invités.

Comment puis-je me protéger?

Une protection complète contre cette classe de vulnérabilité nécessitera probablement des modifications dans la conception du processeur. + Entre-temps, les mises à jour logicielles peuvent atténuer les vulnérabilités en désactivant ou en contournant certains des comportements optimisés conduisant à ces vulnérabilités.

Malheureusement, étant donné que ces correctifs affectent les routines d’optimisation au sein du processeur, les correctifs d’atténuation peuvent réduire les performances de votre serveur. L’ampleur du ralentissement dépend fortement du type de travail exécuté, les processus intensifs en E / S ayant l’impact le plus important.

État actuel du correctif d’atténuation

Au moment de la rédaction de cet article (9 janvier 2018), les distributions Linux ont commencé à distribuer des correctifs, mais aucune distribution n’est encore entièrement corrigée.

Les distributions qui ont publié des mises à jour du noyau avec * atténuation partielle * (corrigée pour Meltdown * AND * variante 1 de Spectre) incluent:

  • CentOS 7: noyau 3.10.0-693.11.6

  • CentOS 6: noyau 2.6.32-696.18.7

Les distributions ayant publié des mises à jour du noyau avec * atténuation partielle * (corrigée pour Meltdown) incluent:

  • Fedora 27: noyau 4.14.11-300

  • Fedora 26: noyau 4.14.11-200

  • Ubuntu 17.10: noyau 4.13.0-25-generic

  • Ubuntu 16.04: noyau 4.4.0-109-generic

  • Ubuntu 14.04: noyau 3.13.0-139-generic

  • Debian 9: noyau 4.9.0-5-amd64

  • Debian 8: noyau 3.16.0-5-amd64

  • Debian 7: noyau 3.2.0-5-amd64

  • Fedora 27 Atomic: noyau 4.14.11-300.fc27.x86_64

  • CoreOS: noyau 4.14.11-coreos

Si votre noyau est mis à jour au moins vers la version correspondant à la précédente, certaines mises à jour ont été appliquées.

Les systèmes d’exploitation dont les noyaux * non encore publiés avec atténuation * incluent:

  • FreeBSD 11.x

  • FreeBSD 10.x

Ubuntu 17.04, qui arrive en fin de vie le 13 janvier 2018 * ne recevra pas de correctifs *. Les utilisateurs sont vivement encouragés à mettre à jour ou à migrer.

En raison de la gravité de cette vulnérabilité, nous vous recommandons d’appliquer les mises à jour dès qu’elles sont disponibles au lieu d’attendre un jeu de correctifs complet. Cela peut vous obliger à mettre à niveau le noyau et à redémarrer plusieurs fois au cours des prochains jours et semaines.

Comment appliquer les mises à jour?

Pour mettre à jour vos serveurs, vous devez mettre à jour votre logiciel système une fois que les correctifs sont disponibles pour votre distribution. Vous pouvez mettre à jour en exécutant votre gestionnaire de paquets habituel pour télécharger la dernière version du noyau, puis en redémarrant votre serveur pour passer au code corrigé.

Pour les serveurs * Ubuntu * et * Debian *, vous pouvez mettre à jour votre logiciel système en actualisant votre index de paquet local, puis en mettant à niveau votre logiciel système:

sudo apt-get update
sudo apt-get dist-upgrade

Pour les serveurs * CentOS *, vous pouvez télécharger et installer le logiciel mis à jour en tapant:

sudo yum update

Pour les serveurs * Fedora *, utilisez plutôt l’outil + dnf +:

sudo dnf update

Quel que soit le système d’exploitation, une fois les mises à jour appliquées, redémarrez votre serveur pour passer au nouveau noyau:

sudo reboot

Une fois le serveur en ligne, connectez-vous et vérifiez le noyau actif par rapport à la liste ci-dessus pour vous assurer que votre noyau a été mis à niveau. Recherchez fréquemment de nouvelles mises à jour pour vous assurer de recevoir les correctifs supplémentaires dès qu’ils seront disponibles.

Contexte additionnel

Les familles de vulnérabilités Meltdown et Specter exploitent des fonctionnalités d’amélioration des performances au sein des processeurs modernes. Une combinaison de fonctionnalités de processeur telles que l’exécution spéculative, la vérification de privilèges, l’exécution dans le désordre et la mise en cache de la CPU permet un accès en lecture aux emplacements mémoire qui devraient être hors limites. Il en résulte que des programmes non privilégiés peuvent être contraints de révéler des données sensibles de leur mémoire ou d’accéder à une mémoire privilégiée à partir du noyau ou d’autres applications.

Comment fonctionne la fusion?

La vulnérabilité Meltdown consiste à amener un processeur à lire un emplacement mémoire hors limites en tirant parti des failles d’une optimisation de la CPU appelée exécution spéculative. L’idée générale fonctionne comme ceci:

  • Une demande est faite pour un emplacement de mémoire illégal.

  • Une seconde requête est faite pour lire, de manière conditionnelle, un emplacement mémoire valide. _Si la première requête contenait une certaine valeur.

  • À l’aide d’une exécution spéculative, le processeur termine le travail en arrière-plan des deux demandes avant de vérifier que la demande initiale est invalide. Une fois que le processeur a compris que les requêtes impliquaient une mémoire externe, il a correctement refusé les deux requêtes. Bien que les résultats ne soient pas renvoyés par le processeur après que le code de vérification des privilèges identifie l’accès à la mémoire comme invalide, les deux emplacements consultés restent dans la mémoire cache du processeur.

  • Une nouvelle demande est maintenant faite pour l’emplacement de mémoire valide. S’il retourne rapidement, l’emplacement se trouvait déjà dans le cache de la CPU, indiquant que la requête conditionnelle avait déjà été exécutée. L’utilisation itérative de ces conditions peut être utilisée pour comprendre la valeur des emplacements mémoire hors limites.

Meltdown représente une vulnérabilité spécifique sur laquelle il est possible de remédier.

Comment fonctionne Spectre?

Spectre fonctionne également en incitant un processeur à utiliser abusivement une exécution spéculative pour lire des valeurs restreintes. Les avis de divulgation décrivent * deux variantes * ayant différents niveaux de complexité et d’impact.

Pour la * variante 1 * de Spectre, le processeur est amené à exécuter de manière spéculative une lecture avant que la vérification des limites ne soit appliquée. Premièrement, l’attaquant encourage le processeur à rechercher de manière spéculative un emplacement mémoire au-delà de ses limites valides. Ensuite, comme pour Meltdown, une instruction supplémentaire charge, de manière conditionnelle, une adresse légale dans le cache en fonction de la valeur hors limites. Le temps nécessaire pour extraire l’adresse légale ultérieurement indique si elle a été chargée dans le cache. Ceci, à son tour, peut révéler la valeur de l’emplacement mémoire hors limites.

  • La variante 2 * de Spectre est la plus compliquée à exploiter et à atténuer. Les processeurs exécutent souvent de manière spéculative des instructions même lorsqu’ils rencontrent une instruction conditionnelle qui ne peut pas encore être évaluée. Ils le font en devinant le résultat le plus probable du conditionnel en utilisant un mécanisme appelé prédiction de branche.

La prévision de branche utilise l’historique des exécutions précédentes via un chemin de code pour choisir un chemin à exécuter de manière spéculative. Cela peut être utilisé par les attaquants pour inciter un processeur à prendre une décision spéculative incorrecte. Étant donné que l’historique de sélection de branche ne stocke pas de références absolues à la décision, un processeur peut être amené à choisir une branche dans une partie du code même s’il est formé à une autre. Cela peut être exploité pour révéler des valeurs de mémoire en dehors de la plage acceptable.

Conclusion

Spectre et Meltdown représentent de graves failles de sécurité. le potentiel de leur impact potentiel continue de se développer.

Pour vous protéger, veillez à mettre à jour le logiciel de votre système d’exploitation à mesure que les correctifs sont publiés par les fournisseurs et continuez de surveiller les communications liées aux vulnérabilités Meltdown et Specter.