ClickCease Les vulnérabilités au niveau du matériel, revisitées

Rejoignez notre populaire bulletin d'information

Rejoignez 4 500+ professionnels de Linux et de l'Open Source !

2 fois par mois. Pas de spam.

Les vulnérabilités au niveau du matériel, revisitées

Joao Correia

13 mai 2024 - Évangéliste technique

En août dernier, j'ai examiné plusieurs bogues du processeur qui posaient de sérieuses menaces pour la sécurité. Les mesures d'atténuation de ces vulnérabilités consistaient généralement à incorporer des instructions supplémentaires ou à opter pour d'autres instructions de l'unité centrale - des stratégies qui entraînent une diminution des performances globales du système. Mon argument était que ces vulnérabilités ramènent en fait votre infrastructure au niveau technologique d'une génération de matériel précédente, même si vous payez pour la plus récente, ce qui signifie simplement que vous gaspillez de l'argent.

Puis Spectre a refait surface au début du mois d'avril, et le cycle habituel s'est répété. Revenons en arrière et approfondissons ce problème récurrent.

 

Spectre. Encore une fois.

 

Spectre est le nom quelque peu fantaisiste donné à un bug découvert en 2017 qui a depuis évolué en une famille de vulnérabilités, chacune exploitant des failles architecturales similaires ou étroitement liées dans les processeurs.Chacune d'entre elles exploite des failles architecturales similaires ou étroitement liées dans les processeurs. Avec la fin de la loi de Moore (l'observation selon laquelle le nombre de transistors sur une puce double environ tous les deux ans), les avancées en matière de CPU ont évolué de manière spectaculaire. Alors que dans les années 90 et au début des années 2000, les nouvelles générations d'unités centrales de n'importe quel fournisseur se traduisaient généralement par un doublement des performances, ou presque, les avancées d'aujourd'hui se heurtent à des limites physiques. Il est de plus en plus difficile d'intégrer davantage de transistors dans le même espace sans faire surchauffer le matériel au point de le faire fondre.

Par conséquent, au lieu de produire des processeurs plus rapides, les fabricants se sont concentrés sur l'augmentation du nombre de cœurs. Au départ, l'augmentation des performances des processeurs multicœurs était modeste, car les logiciels n'étaient pas conçus pour utiliser efficacement l'exécution parallèle. Bien que les logiciels aient depuis évolué pour mieux exploiter les cœurs multiples, les contraintes physiques liées à la dissipation de la chaleur restent un défi de taille. Aujourd'hui, nous voyons des CPU avec plus de 100 cœurs et 400W TDP (puissance thermique de conception), mais ces puces fonctionnent encore à des vitesses d'horloge comparables à celles d'un Pentium 4 de 3 GHz. Pentium 4 à 3 GHz de 3 GHz d'il y a plus de 15 ans. Les travaux préliminaires sur les processeurs à TDP plus élevé conduisent à des solutions de refroidissement obtuses, telles que faire fonctionner l'ensemble du système sous l'eau.

Dans leur quête pour maximiser les performances du processeur dans les limites thermiques existantes, les fabricants ont introduit diverses améliorations. Il s'agit notamment de tailles de cache plus importantes, de niveaux de cache multiples, d'une meilleure communication entre les composants, de l'intégration des contrôleurs de GPU et de mémoire directement dans le CPU, et d'améliorations dans la conception des cartes mères pour gérer la dégradation du signal sur les voies PCIe. Un autre développement important a été l'introduction de mécanismes de prédiction et d'isolation des branches pour empêcher les processus d'un cœur d'accéder aux données d'un autre cœur - ce qui est essentiel dans des environnements tels que l'informatique en nuage, où plusieurs machines virtuelles peuvent fonctionner sur le même matériel physique.

Toutefois, la complexité de ces nouvelles techniques signifie que les problèmes de mise en œuvre sont quelque peu inévitables. Prédiction de branche (un cas particulier d exécution spéculative), par exemple, ne consiste pas seulement à exécuter plus rapidement les instructions en cours. L'unité centrale anticipe les instructions futures potentielles sur la base des instructions précédentes et exécute à l'avance les chemins possibles. Cette exécution préemptive est destinée à améliorer l'efficacité, un peu comme un serveur au restaurant qui se prépare à ajouter des frites à votre commande avant que vous ne confirmiez que vous en voulez. Mais si vous submergez le système de demandes, cela peut conduire à des erreurs - comme recevoir un milkshake alors que vous avez demandé des frites.

Des chercheurs en sécurité, disposant peut-être d'un peu de temps libre, ont réussi à exploiter le mécanisme de prédiction de branche pour accéder à des données qui devraient être inaccessibles, permettant ainsi à un utilisateur normal de lire des données de système privilégiées ou à un locataire de machine virtuelle d'accéder à des données d'un autre locataire ou même du système hôte. Bien que ces exploits ne puissent extraire des données qu'à un rythme de quelques kilobits par heure, pour un attaquant déterminé, c'est suffisant pour extraire des informations sensibles - comme des clés privées - au fil du temps.

L'idée de la nouvelle variante est que non seulement vous pouvez examiner les données dans les branches prédites, mais vous pouvez aussi inciter le processeur à exécuter du code dans d'autres branches qu'il n'exécuterait pas autrement. Cela est possible même dans les systèmes où des mesures d'atténuation des attaques Spectre précédentes ont été déployées, de sorte que toute mesure d'atténuation vient s'ajouter aux correctifs déjà existants qui affectent les performances.

 

Atténuer les vulnérabilités du matériel

 

Comment les fournisseurs de matériel informatique abordent-ils ces questions ? Les correctifs pour les modèles actuels impliquent des modifications matérielles qui n'apparaîtront que dans les nouvelles puces fabriquées dans les années à venir. Ils ne peuvent pas corriger rétroactivement les vulnérabilités des processeurs déjà sur le marché. Par conséquent, la plupart des "correctifs" pour ces types de vulnérabilités agissent plutôt comme des "interrupteurs d'arrêt" pour les fonctions problématiques, en les désactivant ou en les réduisant afin d'atténuer les risques. Malheureusement, cela implique un compromis important en termes de performances : la prédiction de branchement, par exemple, représente une part substantielle des gains de performances des processeurs modernes. Sa désactivation entraîne un ralentissement notable.

Lorsque les correctifs ne sont pas disponibles, les fournisseurs de systèmes d'exploitation s'appuient sur des approches différentes - le noyau Linux, par exemple, a inclus une approche entièrement différente de l'appel de fonction et du "retour", afin de bloquer le vecteur d'attaque. Cependant, plus d'instructions signifient plus de code à exécuter, ce qui signifie une exécution plus lente, ce qui dégrade tout de même les performances.

Si les derniers processeurs ne sont qu'environ 10 % plus rapides que leurs prédécesseurs et qu'une atténuation liée à Spectre réduit les performances de plus de 10 %, alors les performances effectives sont inférieures à celles de l'ancienne génération. Cet impact peut être considérable, en particulier pour des opérations telles que la formation de modèles d'IA, où une réduction de 10 % des performances peut s'avérer coûteuse.

Cette question émergente doit être prise en compte dans la planification organisationnelle, y compris la stratégie commerciale et la reprise après sinistre. Lors de votre prochain exercice de simulation, demandez-vous si votre infrastructure pourrait supporter une baisse de performance de 10 ou 15 % tout en continuant à atteindre vos objectifs commerciaux. Comment géreriez-vous un tel scénario ?

Ces considérations ne sont plus hypothétiques mais constituent des éléments essentiels des stratégies modernes de cybersécurité et soulignent l'importance de garder une longueur d'avance dans un paysage où les vulnérabilités matérielles peuvent avoir des incidences tangibles sur les capacités opérationnelles.

Résumé
Vulnérabilités au niveau du matériel
Nom de l'article
Vulnérabilités au niveau du matériel
Description
Examinons les mesures d'atténuation des vulnérabilités qui intègrent des instructions supplémentaires ou qui optent pour d'autres instructions du processeur.
Auteur
Nom de l'éditeur
TuxCare
Logo de l'éditeur

Vous cherchez à automatiser la correction des vulnérabilités sans redémarrage du noyau, temps d'arrêt du système ou fenêtres de maintenance programmées ?

Découvrez le Live Patching avec TuxCare

Devenez rédacteur invité de TuxCare

Commencer

Courrier

Rejoindre

4,500

Professionnels de Linux et de l'Open Source
!

S'abonner à
notre lettre d'information