sécurité informatique spectre et meltdown

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

Le 14 mars 2018

Divulgation des failles critiques Spectre et Meltdown : l’année a commencé sur les chapeaux de roues dans le domaine de la sécurité informatique. 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, se lance dans la lecture des manuels accompagnants les processeurs Intel. Son but : 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. Ensuite il 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. Elles sont ainsi 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, Horn a travaillé sur un POC pour mettre cette faille en évidence.

Meltdown 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. Elle 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.

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 effet, elles exécutent spéculativement des séquences d’instructions qui ne devraient pas avoir été exécutées.

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 : sandboxing, séparation de processus, containerization, memory safety, ou 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. Elle permet ainsi 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. Elles ne prennent pas en compte 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. Notamment 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. Afin d’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é. Notamment 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 par ailleurs revoir leurs choix de conception. Ils devront développer de nouvelles solutions optimisées pour la sécurité.

 


Sources :

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

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

 

 

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


Par Fabrice CALAND, Consultant ACIES | ABGI

 

sécurité informatique

sécurité informatique

sécurité informatiq