Les vulnérabilités du processeur ont fait fureur récemment, Zenbleed et Downfall étant deux récentes. Mais à quel point devriez-vous vous inquiéter ?
Les vulnérabilités du processeur ont fait l'actualité ces dernières années, et elles sont souvent accompagnées d'un message assez effrayant lorsqu'il s'agit de leur divulgation. Dans le cas d Zenbleed et Chute, c'était que n'importe quelle application sur votre ordinateur pouvait accéder à la mémoire de n'importe quel autre programme exécuté dans de bonnes circonstances. Cela semble intense, non ?
Cependant, ce n’est pas aussi grave qu’il y paraît. C'est évidemment suffisamment important pour justifier une divulgation et une mise à jour logicielle pour corriger les erreurs, même au détriment des performances, mais qu'est-ce qui se passe exactement pour causer ces problèmes de sécurité? Faut-il s'inquiéter ?
Devriez-vous vous inquiéter des vulnérabilités du processeur telles que Zenbleed, Downfall et Inception?
Pour être honnête, aucun de ces exploits n’affecte la grande majorité des gens. Bien qu'ils puissent divulguer des données d'un programme à un autre, tout logiciel malveillant présent sur la machine d'un consommateur dispose déjà d'un niveau d'accès élevé dont il peut abuser. Au contraire, ces attaques sont particulièrement inquiétantes dans les contextes de cloud computing.
Pour comprendre le problème, vous devez comprendre que de nombreux serveurs cloud différents sont simplement des ordinateurs avec beaucoup de puissance, une large bande passante réseau et d'autres matériels spécialisés si requis. De nombreuses entreprises louent ce qu'on appelle un VPS, ou serveur privé virtuel, qui sont des machines virtualisées avec une puissance limitée vers lesquelles des dizaines d'autres machines virtuelles peuvent fonctionner.
Là où cela peut poser problème, c'est qu'une seule personne sur une machine virtuelle pourrait exécuter l'un de ces éléments. vulnérabilités, obtenant un aperçu des données qui transitent par le processeur, y compris les données provenant d'autres machines virtuelles. Cela ne devrait pas être possible et constitue une violation majeure de la sécurité. C'est pourquoi, lorsque Zenbleed a été divulgué, il existait déjà des correctifs pour les processeurs Epyc d'AMD, destinés à une utilisation sur serveur.
Vulnérabilités CPU les plus graves actuellement
La norme industrielle de « classement » des vulnérabilités et de leur gravité repose sur le Common Vulnerability Scoring System (CVSS). Il fournit une mesure quantitative de la gravité, car les différents aspects de la vulnérabilité auront un impact sur le score. Il mesure en prenant en compte les éléments suivants :
- Vecteur d'attaque: Réseau/Adjacent/Local/Physique
- Complexité de l'attaque: Faible/Élevé
- Privilèges requis: Aucun/Faible/Élevé
- Interaction de l'utilisateur: Pas nécessaire
- Portée: Inchangé/Modifié
- Confidentialité: Aucun/Faible/Élevé
- Intégrité: Aucun/Faible/Élevé
- Disponibilité: Aucun/Faible/Élevé
Tous ces éléments classent la gravité d'un bug. Par exemple, une vulnérabilité qui peut être exécutée sur un réseau de faible complexité, sans privilèges requis, sans interaction utilisateur, avec une portée modifiée, une fuite élevée de confidentialité des données, une violation élevée de l'intégrité des données et un impact élevé sur la disponibilité obtiendront un score parfait de 10 dans CVSS 3.1, le score le plus élevé possible.
Grâce à cette métrique, nous pouvons évaluer les dégâts dont Zenbleed et Downfall sont capables. Spoiler: ce sont les mêmes, bien qu’ils affectent des processeurs différents. Par conséquent, même s'ils obtiennent un certain montant en dans le contexte des vulnérabilités, elles peuvent affecter différentes quantités de produits, et cela n'impactera pas leur score. Les scores CVSS servent essentiellement uniquement au triage, mais ne racontent pas toute l’histoire.
Zenbleed: 6,5 (Moyen)
- Vecteur d'attaque: Locale
- Complexité de l'attaque: Faible
- Privilèges requis: Faible
- Interaction de l'utilisateur: Aucun
- Portée: Modifié
- Confidentialité: Haut
- Intégrité: Aucun
- Disponibilité: Aucun
Explication: Le vecteur d'attaque nécessite un accès local à la machine (c'est-à-dire qu'il s'exécute sur la machine) tout en n'ayant aucun impact sur l'intégrité des données sur la machine ou sur leur disponibilité. Cependant, cela change la portée (ce qui signifie qu'il a un impact sur les ressources au-delà de ses privilèges) et la complexité de l'attaque, et les privilèges requis pour son exécution sont faibles. Cela viole également totalement la confidentialité des informations présentes sur la machine.
Chute: 6,5 (moyenne)
- Vecteur d'attaque: Locale
- Complexité de l'attaque: Faible
- Privilèges requis: Faible
- Interaction de l'utilisateur: Aucun
- Portée: Modifié
- Confidentialité: Haut
- Intégrité: Aucun
- Disponibilité: Aucun
Explication: Le vecteur d'attaque nécessite un accès local à la machine (c'est-à-dire qu'il s'exécute sur la machine) tout en n'ayant aucun impact sur l'intégrité des données sur la machine ou sur leur disponibilité. Cependant, cela change la portée (ce qui signifie qu'il a un impact sur les ressources au-delà de ses privilèges) et la complexité de l'attaque, et les privilèges requis pour son exécution sont faibles. Cela viole également totalement la confidentialité des informations présentes sur la machine.
Début: 5,6 (moyen)
- Vecteur d'attaque: Locale
- Complexité de l'attaque: Haut
- Privilèges requis: Faible
- Interaction de l'utilisateur: Aucun
- Portée: Modifié
- Confidentialité: Haut
- Intégrité: Aucun
- Disponibilité: Aucun
Explication: Le vecteur d'attaque nécessite un accès local à la machine (c'est-à-dire qu'il s'exécute sur la machine) tout en n'ayant aucun impact sur l'intégrité des données sur la machine ou sur leur disponibilité. Cependant, cela change de portée (ce qui signifie qu'il a un impact sur les ressources au-delà de ses privilèges), la complexité de l'attaque est élevée et les privilèges requis pour son exécution sont faibles. Cela viole également totalement la confidentialité des informations présentes sur la machine.
Spectre: 5,6 (Moyen) (Patché)
Spectre, bien qu'il s'agisse d'un phénomène plus répandu, marque en fait moins que Zenbleed et Downfall. C'est grâce au fait que la complexité de l'attaque a été surnommée "Élevée", ce qui a fait baisser son score.
- Vecteur d'attaque: Locale
- Complexité de l'attaque: Haut
- Privilèges requis: Faible
- Interaction de l'utilisateur: Aucun
- Portée: Modifié
- Confidentialité: Haut
- Intégrité: Aucun
- Disponibilité: Aucun
Explication: Le vecteur d'attaque nécessite un accès local à la machine (c'est-à-dire qu'il s'exécute sur la machine) tout en n'ayant aucun impact sur l'intégrité des données sur la machine ou sur leur disponibilité. Cependant, cela change de portée (ce qui signifie qu'il a un impact sur les ressources au-delà de ses privilèges), la complexité de l'attaque est élevée et les privilèges requis pour son exécution sont faibles. Cela viole également totalement la confidentialité des informations présentes sur la machine.
Fusion: 5,6 (Moyen) (Patché)
Comme Spectre, Meltdown obtient un score inférieur à Zenbleed et Downfall, en raison de la plus grande complexité d'attaque requise.
- Vecteur d'attaque: Locale
- Complexité de l'attaque: Haut
- Privilèges requis: Faible
- Interaction de l'utilisateur: Aucun
- Portée: Modifié
- Confidentialité: Haut
- Intégrité: Aucun
- Disponibilité: Aucun
Explication: Le vecteur d'attaque nécessite un accès local à la machine (c'est-à-dire qu'il s'exécute sur la machine) tout en n'ayant aucun impact sur l'intégrité des données sur la machine ou sur leur disponibilité. Cependant, cela change de portée (ce qui signifie qu'il a un impact sur les ressources au-delà de ses privilèges), la complexité de l'attaque est élevée et les privilèges requis pour son exécution sont faibles. Cela viole également totalement la confidentialité des informations présentes sur la machine.
La principale cause: la prédiction de branche
Source: AMD
La prédiction de branchement et l'exécution spéculative font généralement référence au moment où votre ordinateur effectue des opérations qui ne sont pas nécessaires pour le moment mais qui le seront dans les cycles suivants. Cela se produit souvent lorsque votre système dispose de ressources libres, car cela accélère le traitement global lorsque les instructions ou les données ne seraient pas encore prêtes pour le processeur. Si le travail effectué n'est pas nécessaire, il est généralement ignoré et le processeur peut revenir là où il le souhaite afin d'exécuter l'instruction correcte suivante. Lorsqu’il fait cela, on parle d’une erreur de prédiction de branche.
Pour une compréhension plus approfondie des prédicteurs de branche, imaginez un scénario dans lequel un programme ajoute systématiquement les deux mêmes nombres lors de son exécution. À un moment donné, le processeur peut reconnaître ce modèle et préparer les étapes suivantes si la méthode dans laquelle ces deux nombres sont ajoutés est à nouveau appelée. Si ce résultat change à un moment donné, même si le processeur avait prévu que les deux mêmes nombres soient identiques, alors la supposition sera rejetée et remplacée par le flux d'exécution réel. Cependant, pour le moment où ces chiffres sont la même chose, le processeur peut alors parcourir ces instructions rapidement.
Il existe cependant de nombreux problèmes en matière d’exécution spéculative, et des vulnérabilités telles que Spectre, Zenbleed, Downfall, etc., en résultent. Il s'agit d'une fonctionnalité puissante à laquelle nous devons en grande partie les performances des processeurs modernes, mais elle constitue une cible majeure lorsque les chercheurs recherchent des vulnérabilités dans les processeurs.
Atténuation: un inhibiteur de performances
L'atténuation de ces vulnérabilités est de la plus haute importance, mais le problème est que ces atténuations nuisent souvent aux performances. Dans le cas du Zenbleed le plus récent d'AMD, l'atténuation pourrait entraîner d'énormes frais généraux de performances.
La raison en est que le seul véritable moyen de contourner ce problème est de désactiver ou de modifier le comportement du prédicteur de branchement dans le processeur concerné. Le même impact sur les performances peut être trouvé dans les atténuations de la chute d'Intel, avec les premiers rapports suggérant des impacts sur les performances allant jusqu'à 39 %. Jeux épiques une fois partagé de façon célèbre Graphiques d'utilisation du processeur une fois la vulnérabilité Meltdown révélée et quel impact ces atténuations ont eu sur l'utilisation du processeur de l'entreprise. Comme on pouvait s’y attendre, l’utilisation du processeur a considérablement augmenté. Là où les choses deviennent effrayantes, c'est avec le correctif pour Inception d'AMD, les performances ont chuté jusqu'à 54 %.
Étant donné que de telles vulnérabilités affectent les fonctionnalités fondamentales du processeur, il est difficile de vraiment les corriger, à part désactiver ou gravement mutiler les fonctionnalités principales. L’exécution spéculative est extrêmement importante, et ces atténuations seront ressenties par de nombreuses personnes. Les performances de jeu sont moins prévisibles, donc si l'utilisation principale de votre PC est le jeu, vous pourriez être d'accord, car votre ordinateur ne peut pas faire autant de prédictions, mais ces problèmes sont beaucoup plus importants. systèmes.
Les futurs processeurs sont-ils concernés?
Heureusement, dans le cas d'Intel Downfall et de Zenbleed, ces exploits affectent les processeurs plus anciens. Processeurs plus récents des deux sociétés sont en sécurité et il n’y a rien à craindre pour l’instant. Une refonte importante est généralement ce qui finit par résoudre ces problèmes. Par exemple, Spectre a affecté les processeurs Intel de huitième et neuvième génération, mais la neuvième génération incorporait une version matérielle des correctifs logiciels implémentés, complet avec le succès de la performance. La 10e génération d'Intel était toujours sûre, mais n'avait plus d'impact sur les performances en raison de ces mesures d'atténuation.
En conséquence, étant donné que Downfall et Zenbleed ont déjà été corrigés dans les versions les plus récentes de leurs processeurs respectifs, les utilisateurs n'ont pas grand-chose à craindre. Bien sûr, d’autres vulnérabilités peuvent toujours être découvertes, mais à ce stade, vous êtes en sécurité.