Les calculs spéculatifs ouvrent une porte dérobée au vol d'informations
Parfois, le coeur d'un ordinateur saigne et révèle des gouttelettes d'informations privées. C'est le cas de la vulnérabilité matérielle «Retbleed» rendue publique aujourd'hui: Cette vulnérabilité se produit dans les microprocesseurs qui exécutent les instructions d'un programme informatique et effectuent les calculs correspondants. Dans certains cas, les processeurs - à savoir les unités centrales de traitement (CPU) - effectuent également des calculs spéciaux qui raccourcissent le temps de calcul et accélèrent le processus informatique global. Ce faisant, ils laissent des traces dans la mémoire que les pirates peuvent exploiter pour obtenir un accès non autorisé à n'importe quelle information du système - par exemple, ils et elles peuvent voler des clés de cryptage ou des mots de passe importants pour la sécurité. Cette situation est particulièrement risquée dans les environnements en nuage (cloud) où plusieurs entreprises partagent des systèmes informatiques. Le Centre national de cybersécurité de Berne, en Suisse, considère que cette vulnérabilité est grave car les processeurs concernés sont utilisés dans le monde entier. Toutefois, les fabricants ont déjà pris des mesures initiales pour combler la vulnérabilité.
La vulnérabilité a été découverte par le doctorant Johannes Wikner et Kaveh Razavi, professeur de sécurité informatique à l'ETH Zurich. Le nom «Retbleed» fait référence à un certain type d'instructions de programme, appelées retours. Un programme informatique est constitué de séquences d'instructions ou de commandes organisées en fonctions avec lesquelles les processeurs exécutent les calculs souhaités. Une fois qu'une fonction a été exécutée, une instruction de retour amène le processeur à revenir au point du programme informatique situé immédiatement après l'instruction initiale qui a utilisé la fonction.
L'informatique spéculative rend les ordinateurs plus rapides
Vous pouvez imaginer le flux d'un programme informatique comme une rivière avec plusieurs branches. Au niveau des embranchements, les programmes informatiques prennent souvent des décisions quant à la branche à choisir. Parfois, ces décisions prennent beaucoup de temps et peuvent ralentir l'exécution. Ce qui est nécessaire, cependant, ce sont des processus de calcul rapides. Traditionnellement, un programme informatique exécute les instructions de manière séquentielle et dans l'ordre du programme, c'est-à-dire une étape de calcul à la fois.
Les architectures de processeurs actuels permettent toutefois d'avancer les calculs et de les exécuter simultanément. «Une unité centrale peut exécuter des instructions dans un ordre différent de celui du programme afin d'améliorer les performances de calcul», explique Kaveh Razavi. Dans le milieu de l'informatique, on appelle cela «l'exécution hors ordre». Depuis janvier 2018, on sait que ce type d'exécution peut présenter des failles de sécurité. Pendant l'exécution des instructions, un accès non autorisé au cache du CPU pourrait se produire, permettant aux pirates de voler des informations sensibles du système d'exploitation. Cette vulnérabilité est connue sous le nom de «Meltdown» et touche des problèmes spécifiques aux processeurs Intel.
L'exécution hors ordre est étroitement liée à l'«exécution spéculative», pour laquelle des problèmes de sécurité similaires sont également connus depuis 2018. «'Retbleed' est un problème d'exécution spéculative», explique Johannes Wikner. Une telle exécution spéculative est utilisée pour éviter de ralentir les calculs en avançant certaines étapes de calcul avant que l'on sache si elles sont réellement nécessaires. Les calculs spéculatifs ont lieu, par exemple, lorsqu'un processeur tente de deviner le chemin que prendra la chaîne d'instructions lors d'un branchement avant que celui-ci ne soit connu. Dans ce processus, les processeurs «devinent» la direction à prendre lors d'un branchement et exécutent des instructions de manière spéculative en fonction de leur supposition», explique Kaveh Razavi.
Instructions de retour pour les personnes vulnérables
Grâce à ces spéculations, le flux de la chaîne d'instructions est amélioré et la puissance de calcul des processeurs est accrue. Si les calculs spéculatifs ne sont pas nécessaires, ils sont annulés. Ces spéculations laissent également des traces dans le cache, ce qui ouvre une porte dérobée aux pirates. Cette vulnérabilité a également été rendue publique en janvier 2018 sous le nom de «Spectre» et affecte les processeurs des fabricants Intel et AMD. Depuis lors, Intel et AMD, ainsi que les principaux fabricants de logiciels tels que Microsoft, ont pris des mesures d'atténuation. Toutefois, les vulnérabilités des exécutions spéculatives n'ont pas fait l'objet de recherches concluantes ni de remèdes à ce jour.
Comme Johannes Wikner et Kaveh Razavi l'ont maintenant découvert, il y a effectivement un problème de sécurité qui n'a pas encore été résolu. «Nous avons montré qu'avec l'exécution spéculative, un nombre particulièrement important d'instructions de retour sont vulnérables et peuvent être détournées», déclare Kaveh Wikner. En principe, «Retbleed» fonctionne comme la variante 2 de «Spectre» et affecte les microprocesseurs Intel et AMD. «Comme les mesures d'atténuation prises jusqu'à présent ne tenaient pas compte des instructions de retour, la plupart des systèmes informatiques à microprocesseur existants sont vulnérables à "Retbleed"», ajoute Kaveh Razavi. «Toutefois, il faut une certaine expertise informatique pour obtenir l'accès à la mémoire et voler des informations», ajoute Johannes Wikner.
Approche de solution pour les mesures d'atténuation
En février, Johannes Wikner et Kaveh Razavi ont apporté la preuve que «Retbleed» est un problème sérieux. Ils ont depuis publié leurs conclusions dans un article scientifique qui a été accepté comme article de la conférence USENIX Security 2022. Dans cet article, Johannes Wikner et Kaveh Razavi ont évalué la première approche d'Intel et d'AMD pour résoudre le problème. Celle-ci part du fait que lorsque le microprocesseur spécule sur une branche, les instructions sont parfois mal exécutées. Le calcul ne mène alors pas à la bonne destination et ouvre une fuite par laquelle les pirates peuvent avoir accès aux informations contenues dans la mémoire. La solution actuelle consiste à empêcher les pirates d'influencer la décision des microprocesseurs sur les destinations de retour. Malheureusement, cette solution a un coût important en termes de performances, car elle ralentit les ordinateurs de 12 à 28%.
Comme il est d'usage dans de tels cas, les chercheurs en sécurité ont d'abord informé les fabricants concernés, AMD et Intel, avant que la vulnérabilité ne soit publiée. Comme les risques de sécurité spécifiques dépendent également de l'architecture du processeur propre à chaque entreprise, les fabricants ont eu le temps de prendre des mesures d'atténuation plus approfondies. Depuis lors, Microsoft, Oracle, Google, Linux, Intel, AMD, ARM, entre autres, ont travaillé sur des mesures de protection avant que «Retbleed» ne soit rendu public aujourd'hui. Un microprocesseur Intel âgé de 3 à 6 ans, ou un processeur AMD âgé de 1 à 11 ans, est susceptible d'être affecté.
Numéro d'identification CVE pour Retbleed
Le National Cyber Security Center (NCSC) de Berne, en Suisse, a attribué aujourd'hui les numéros CVE CVE-2022-29900 (pour les processeurs du fabricant AMD) et CVE-2022-29901 (pour les processeurs du fabricant Intel) pour la vulnérabilité de sécurité Retbleed en coopération et en consultation avec une équipe de recherche de l'ETH Zurich. L'attribution d'un CVE (Common Vulnerabilities and Exposure) permet une identification unique des vulnérabilités au niveau mondial. Depuis septembre 2021, le NCSC est reconnu comme l'autorité d'homologation suisse qui attribue les numéros CVE.
Pour plus d'informations, voir le rapport publié sur le site du NSCS dans la section Advisories.