Sécurité informatique : les failles critiques Spectre et Meltdown

Sécurité informatique : les failles critiques Spectre et Meltdown 1
  • faille informatique -
  • meltdown -
  • spectre

Publié le 14 mars 2018

L’année 2018 a commencé sur les chapeaux de roues dans le domaine de la sécurité informatique, avec la divulgation des failles critiques Spectre et Meltdown. En effet, ces failles situées au niveau du processeur peuvent toucher l’ensemble des systèmes équipés de processeurs Intel, AMD ou ARM.

 

En avril 2017, Jann Horn, ingénieur employé par Google pour trouver des vulnérabilités Zero day[i], se lance dans la lecture des manuels accompagnants les processeurs Intel pour vérifier la capacité du matériel à supporter certains de ces codes.

Ce faisant, il s’est intéressé à la façon dont les processeurs géraient « l’exécution spéculative ». Cette technique permet au processeur d’améliorer sa propre vitesse en « anticipant » des instructions qui ne lui ont pas encore été données.

Les microprocesseurs modernes utilisant un pipeline se servent de l’exécution spéculative pour réduire le coût des instructions de branchement conditionnel. Quand une instruction de branchement conditionnel est rencontrée, le processeur prédit quelle voie du branchement le programme est susceptible de suivre et commence à exécuter les instructions correspondantes. Si la supposition s’avère être incorrecte, tous les calculs qui ont eu lieu après le branchement sont rejetés.

Du point de vue de la sécurité, l’exécution spéculative implique l’exécution d’un programme de manière potentiellement incorrecte. Toutefois, le système étant conçu pour annuler les résultats d’une exécution spéculative incorrecte afin de maintenir l’exactitude, ces erreurs étaient supposées n’avoir aucune incidence sur la sécurité.

En effet, la sécurité des systèmes informatiques repose fondamentalement sur l’isolation de la mémoire. Par exemple, les plages d’adresses du noyau sont marquées comme inaccessibles et protégées contre l’accès des utilisateurs.

Or, les manuels consultés par Jann Horn indiquaient qu’en cas d’erreur de la part du processeur, les données resteraient stockées dans la mémoire de la puce. C’est ainsi que l’ingénieur a suspecté que cette information pouvait être utilisée à des fins malveillantes. En collaboration avec une équipe de chercheurs en sécurité à l’université de Graz, Jann Horn a travaillé sur un POC pour mettre cette faille en évidence.

Dans [1], les auteurs présentent Meltdown, qui exploite les effets secondaires de l’exécution non ordonnée sur les processeurs modernes pour lire des emplacements de mémoire noyau. L’attaque est indépendante du système d’exploitation et ne repose sur aucune vulnérabilité logicielle. Meltdown casse tous les mécanismes de sécurité fondés sur l’isolation des espaces d’adressage ainsi que les environnements paravirtualisés. Meltdown s’appelle ainsi, car elle fait « fondre » les protections entre les applications et le système d’exploitation. Sur les systèmes concernés, Meltdown permet à un adversaire de lire la mémoire d’autres processus ou machines virtuelles dans le cloud sans aucune autorisation ni privilèges, ce qui affecte des millions de clients et pratiquement tous les utilisateurs d’un ordinateur personnel.

Dans [2], les auteurs présentent une nouvelle classe d’attaques micro-architecturales appelées les attaques de Spectre. À un niveau élevé, les attaques de Spectre trompent le processeur en exécutant spéculativement des séquences d’instructions qui ne devraient pas avoir été exécutées lors de l’exécution correcte du programme. En choisissant soigneusement quelles instructions sont exécutées de manière spéculative, il est possible de divulguer des informations à partir de l’espace d’adresse mémoire à travers les domaines de sécurité. Spectre casse l’isolation entre différentes applications.

Les techniques d’isolation logicielle sont largement déployées sous une variété de noms comme sandboxing, séparation de processus, containerization, memory safety, proof-carrying code. Une hypothèse de sécurité fondamentale qui sous-tend tout cela est que le CPU exécutera fidèlement le code, y compris ses contrôles de sécurité. L’exécution spéculative viole malheureusement cette hypothèse et permet aux attaquants de violer le secret (mais pas l’intégrité) de la mémoire et du contenu des registres. En outre, les contre-mesures existantes aux attaques de cache pour les implémentations cryptographiques ne prennent en compte que les instructions « officiellement » exécutées, et non les effets dus à l’exécution spéculative, et sont également affectées.

La sécurité dépend fondamentalement de la bonne compréhension entre les développeurs de matériel et de logiciels quant aux informations que les implémentations CPU sont ou ne sont pas autorisées à exposer. Par conséquent, les solutions à long terme exigeront que les architectures de jeux d’instructions et les implémentations CPU soient mises à jour pour inclure des directives claires sur les propriétés de sécurité du processeur. Plus généralement, la sécurité et la performance sont antagonistes. Or, l’industrie technologique a longtemps privilégié la maximisation de la performance. Par conséquent, les processeurs, compilateurs, pilotes de périphériques, systèmes d’exploitation et de nombreux autres composants critiques ont évolué en multipliant les couches d’optimisations complexes qui introduisent des risques de sécurité. Le coût de l’insécurité augmentant, les fabricants devront revoir leurs choix de conception et développer de nouvelles solutions optimisées pour la sécurité.


[1] LIPP, Moritz, SCHWARZ, Michael, GRUSS, Daniel, et al. Meltdown. arXiv preprint arXiv:1801.01207, 2018.

[2] KOCHER, Paul, GENKIN, Daniel, GRUSS, Daniel, et al. Spectre Attacks: Exploiting Speculative Execution. arXiv preprint arXiv:1801.01203, 2018.

 

 

[i] Vulnérabilité n’ayant fait l’objet d’aucune publication ou n’ayant aucun correctif connu


Par Fabrice CALAND, Consultant ACIES | ABGI

Nos autres articles

Retour en haut

Contact

Vous souhaitez des informations complémentaires, être contacté par un de nos experts ou convenir d’un rendez-vous.

Contactez-nous