Les calculs spéculatifs ouvrent une porte dérobée au vol d'informations
Des chercheurs de l'ETH ont découvert une grave faille de sécurité dans le matériel informatique. La faille, appelée "Retbleed", concerne les microprocesseurs des leaders du marché Intel et AMD. Tous les systèmes d'exploitation disponibles dans le commerce et utilisant ces processeurs sont concernés dans le monde entier. Lorsque les ordinateurs exécutent des étapes de calcul spéciales pour calculer plus rapidement, il existe des traces dont les pirates pourraient abuser.
- Lire à haute voix
- Nombre de commentaires
Parfois, un ordinateur saigne du c?ur et révèle des informations privées au compte-gouttes. C'est le cas de la faille de sécurité matérielle "Retbleed" rendue publique aujourd'hui : cette vulnérabilité prend naissance dans les microprocesseurs qui exécutent les instructions d'un programme informatique et effectuent les calculs correspondants.
Les processeurs - notamment les unités centrales de traitement (CPU) - exécutent parfois des étapes de calcul spéciales qui réduisent le temps de calcul et accélèrent le processus de calcul dans son ensemble. Ce faisant, elles laissent des traces dans la mémoire que les pirates informatiques pourraient exploiter pour obtenir un accès non autorisé à n'importe quelle information dans le système - ils pourraient par exemple dérober des clés de cryptage ou des mots de passe importants pour la sécurité. Cela est particulièrement risqué dans les environnements de cloud computing où plusieurs entreprises partagent des systèmes informatiques. Le Centre national de cybersécurité à Berne estime que la faille est grave, car les processeurs concernés sont utilisés dans le monde entier. Toutefois, les fabricants ont déjà pris les premières mesures pour combler la faille de sécurité.
Cette faille de sécurité a été découverte par le doctorant Johannes Wikner et Kaveh Razavi, professeur de sécurité informatique à l'ETH. Le nom "Retbleed" fait référence à un certain type d'instructions de programme, appelées retours. Un programme informatique se compose d'une série d'instructions ou de commandes, organisées en fonctions, que les processeurs utilisent pour effectuer les calculs souhaités. Après l'exécution d'une fonction, une instruction "return" fait revenir le processeur au point du programme informatique (en anglais "to return") qui suit immédiatement l'instruction initiale qui a utilisé la fonction.
Le calcul spéculatif rend les ordinateurs plus rapides
On peut s'imaginer le déroulement d'un programme informatique comme une rivière avec différentes ramifications. Aux embranchements, les programmes informatiques prennent souvent des décisions quant au cours qu'ils choisissent. Parfois, ces décisions prennent du temps et peuvent ralentir l'exécution. Ce qu'il faut, 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 CPU d'aujourd'hui permettent toutefois d'anticiper les calculs et de les exécuter simultanément. "Une unité centrale peut exécuter les instructions dans un ordre différent de l'ordre du programme afin d'améliorer la puissance de calcul", explique Kaveh Razavi. Dans le milieu informatique, on parle d'"exécutions non programmées" (en anglais "out-of-order executions"). Depuis janvier 2018, on sait que ce type d'exécution peut présenter des failles de sécurité. Pendant l'exécution de l'instruction, un accès non autorisé à la mémoire cache du CPU pourrait avoir lieu, ce qui permettrait aux pirates de voler des informations sensibles dans le système d'exploitation. Cette faille de sécurité est connue sous le nom de "Meltdown" et concerne des problèmes spécifiques aux unités centrales Intel.
Les "exécutions spéculatives" (en anglais "speculative executions"), pour lesquelles des problèmes de sécurité similaires sont également connus depuis 2018, sont étroitement liées aux exécutions out-of-order. "Retbleed" est un problème d'exécution spéculative", explique Johannes Wikner. De telles étapes de calcul spéculatives servent à éviter le ralentissement des calculs en avan?ant certaines étapes de calcul avant de savoir si elles sont réellement nécessaires. Les calculs spéculatifs ont par exemple lieu lorsqu'un processeur tente de deviner le chemin que la cha?ne d'instructions empruntera à un embranchement avant que cela ne soit connu. "Dans ce cas, les CPU 'devinent' la direction qu'ils doivent prendre à un embranchement et exécutent les instructions de manière spéculative sur la base de leur supposition", explique Razavi.
Commandes Return non protégées
Ces spéculations permettent d'améliorer le flux de la cha?ne d'instructions et d'augmenter la puissance de calcul des processeurs. Si les calculs spéculatifs ne sont pas nécessaires, ils sont annulés. Ces spéculations laissent également des traces dans la mémoire cache, ce qui ouvre une porte dérobée aux pirates. Cette faille de sécurité a également été rendue publique en janvier 2018 sous le nom de "Spectre" et concerne les processeurs des fabricants Intel et AMD. Depuis, Intel et AMD ainsi que de grands fabricants de logiciels comme Microsoft ont pris des mesures préventives. Les points faibles des calculs spéculatifs n'ont toutefois pas été définitivement étudiés ni corrigés à ce jour.
"Nous avons montré que dans les calculs spéculatifs, un nombre particulièrement important d'instructions de retour ne sont pas protégées et peuvent être utilisées à mauvais escient".Johannes Wikner
Comme l'ont maintenant découvert Razavi et Wikner, il existe effectivement un problème de sécurité qui n'a pas encore été résolu : "Nous avons montré que lors de calculs spéculatifs, un nombre particulièrement important d'instructions de retour ne sont pas protégées et peuvent être utilisées à mauvais escient", explique Johannes Wikner. En principe, "Retbleed" fonctionne comme la variante 2 de "Spectre" et concerne les microprocesseurs d'Intel et d'AMD. "Comme les mesures de précaution prises jusqu'à présent ne tenaient pas compte des instructions Return, la plupart des microprocesseurs et des systèmes informatiques existants sont vulnérables à 'Retbleed'", ajoute Razavi. "Il faut toutefois une certaine expertise en informatique pour accéder à la mémoire et voler des informations", ajoute Wikner.
Approche de solution pour des mesures de précaution
En février, Razavi et Wikner ont apporté la preuve (en anglais "Proof of Concept") que le "retbleed" constitue un problème sérieux. Entre-temps, leurs résultats ont été publiés dans un article spécialisé, qui a été publié en tant que page externeContribution à la conférence USENIX Security 2022 a été acceptée. Dans cet article, Wikner et Razavi ont examiné la première approche d'Intel et AMD pour résoudre ce problème.
Cette approche part du principe que, lorsque le microprocesseur spécule sur un embranchement, les instructions sont parfois mal exécutées. Le calcul n'aboutit alors pas à la bonne destination et ouvre une brèche par laquelle les pirates informatiques peuvent accéder aux informations contenues dans la mémoire. Actuellement, la solution consiste à empêcher les pirates d'influencer la décision des microprocesseurs concernant les destinations des instructions de retour. Malheureusement, cela s'accompagne d'une perte de performance considérable, qui 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 de publier la faille de sécurité. Comme les risques de sécurité concrets dépendent également de l'architecture de processeur spécifique à l'entreprise, les fabricants ont besoin de temps pour prendre des dispositions 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 sont selon toute probabilité concernés.
Numéro d'identification CVE pour Retbleed
Le Centre national de cybersécurité (NCSC) à Berne 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) à la faille de sécurité "Retbleed" en collaboration et en accord avec les chercheurs de l'ETH Zurich. L'attribution d'une CVE (Common Vulnerabilities and Exposure) permet d'identifier clairement les vulnérabilités dans le monde entier. 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 sur le site du NSCS sous la rubrique "page externeMessages re?us".
Référence bibliographique
Wikner, J ; Razavi, K. RETBLEED : Arbitrary Speculative Code Execution with Return Instructions. Paper accepted at the 31st USENIX Security Symposium, August 10-12, 2022, at the Boston Marriott Copley Place in Boston, MA, USA.
Wikner et Razavi présenteront leurs résultats lors de la page externeUSENIX Sécurité '22 présenter le 12 ao?t 2022, de 13h30 à 2h30.
La publication scientifique est disponible sur le Site web du projet Retbleed de l'ETH Zurich Computer Security Group peuvent être téléchargés. Pour les spécialistes, il existe également un page externeVidéo sur Retbleed.