Powered By Blogger

Rechercher sur ce blogue

vendredi 2 février 2018

CPU : Vulnérabilités Meltdown et Spectre visant les processeurs Intel





Deux vulnérabilités nommées Meltdown et Spectre affectent les processeurs Intel depuis 1995.
Ces vulnérabilités peuvent permettre la lecture de données en mémoire et potentiellement voler des informations comme des mots de passe.
Plusieurs applications sont vulnérables dont Windows.
Voici quelques informations autour de ces vulnérabilités Meltdown et Spectre.

Que sont les vulnérabilités Meltdown et Spectre ?

Ce sont des vulnérabilités matérielles importantes sur les processeurs Intel.
Ces bugs de sécurité permettent l’accès à des zones de mémoires utilisées par des applications en cours de fonctionnement. Il ne s’agit pas d’un accès directe à la mémoire RAM mais plutôt d’une déduction du contenu de celle-ci à travers a mémoire en cache sur le processeur. Ainsi un malware pourrait lire des informations stockées par les applications dont des mots de passe.
Ces vulnérabilités tirent partie de la fonction d’exécution spéculative sur les processeur Intel, de ce fait, il s’agit de de vulnérabilités de canal latéral execution speculative.
Cette fonction tente de prédire le prochain calcul du processeur selon les actions effectuées par les applications et d’effectuer le calcul en avance afin d’optimiser les performances.
Pour un aperçu du principe de ces vulnérabilités, lire le paragraphe suivant.
Mozilla confirme que la vulnérabilité peut-être exploitée par des sites internet en utilisant JavaScript.
Nvidia pense, pour le moment, que leurs processeurs ne sont pas concernés par ces bugs de sécurité.
Certains processeurs AMD peuvent être vulnérables à Spectre.

La confusion autour des processeurs AMD s’explique par les déclarations initiales de l’entreprise une semaine auparavant. Celle-ci affirmait que « AMD n'est pas sensible aux trois variantes ». En d'autres termes, certaines puces d'AMD sont vulnérables à deux failles - mais simplement pas les trois.
Selon Papermaster, AMD estime que la menace de Spectre Variante 1 « peut être contenue avec un correctif de système d'exploitation (OS) et nous travaillons avec les fournisseurs de systèmes d'exploitation pour résoudre ce problème. »

Des vulnérabilités importantes et cruciales

Vulnérabilités Meltdown et Spectre visant les processeurs Intel
Meltdown brise l’isolation entre les applications utilisateurs et le système d’exploitation.
Spectre brise l’isolation entre les différentes applications. Un attaquant peut forger un programme qui peut potentiellement lire les données en mémoire des applications en cours de fonctionnement.
Cette dernière vulnérabilité est plus difficile à exploiter mais plus difficile à mitiger.

Ces vulnérabilités Spectre et Meltdown touchent les ordinateurs personnels, mobiles et tout appareil utilisant des processeurs intel.
De ce fait, cette vulnérabilité est importante d’un point de vue sécurité puisqu’elle vise un éventail large de matériel informatique.
Les différents éditeurs se doivent de publier des correctifs concernant ces deux vulnérabilités.
Les numéros des alertes de sécurité : CVE-2017-5753, CVE-2017-5715 (Spectre), et CVE-2017-5754 (Meltdown).
Enfin, un site informatif regroupant toutes les informations a aussi été créé : https://meltdownattack.com/

Comment fonctionnent ces vulnérabilités ?

Voici dans les grandes lignes, le fonctionnement de l’attaque et des vulnérabilités Meltdown et Spectre.

La vulnérabilité Meltdown

L’accès à la mémoire RAM est un peu plus lente que le processeur.
Afin de ne pas être handicapé, les constructeurs de processeur ont créé une mémoire cache sur le processeur qui contient les informations les plus régulières.
Le but est ainsi de ne pas avoir à accéder à la mémoire RAM est ainsi gagner en vitesse.
Le système d’exploitation prévoit de ne pas donner accès à certaines zones de mémoire RAM, l’application A ne peut pas accéder à la zone mémoire de l’application B.
Toutefois, le processeur lui a accès à la zone entière de mémoire et peut filtrer certaines accès par la suite.
La vulnérabilité Meltdown tire partie de ce fonctionnement et de la fonction speculative execution qui a accès à toute la zone mémoire sans aucun filtrage.
Le but ici est de savoir si une information se trouve dans le cache du processeur pour en déduire son contenu.
Imaginons le programme suivant :
  1. Dessinez un texte (ou une publicité ou ce que vous voulez) sur l’écran
  2. On lit et écrit des informations dans le cache mémoire afin que celui-ci soit remplit
  3. On lit la première lettre du mot de passe Wifi qui est en mémoire du système d’exploitation
  4. Si cette première est un « S », on lit le premier pixel en mémoire de notre texte à l’écran
Théoriquement, l’étape 3 devrait nous être interdite par la CPU puisque le programme n’est pas censé avoir accès à la zone mémoire contenant le mot de passe Wifi.
Seulement la fonction spéculative du processeur va elle, exécuter ces étapes 3 et 4 pour stocker les informations dans le cache du processeur.
A partir de là, on peut imaginer un second programme qui va effectuer les opérations suivantes :
  1. On lit le premier pixel de notre texte
  2. On calcule le temps que l’action a prise
Si l’exécution est rapide, on peut en déduire que l’information se trouve dans le cache du processeur et donc que la première lettre du mot de passe Wifi est bien un « S ».
On peut alors répéter l’opération pour en déduire le mot de passe Wifi entier.

La vulnérabilité Spectre

Spectre est assez similaire à Meltdown mais plus difficile à exploiter mais vise tous les processeurs modernes.
Si la vulnérabilité Meltdown permet de récupérer le mot de passe Wifi à travers une publicité ou texte à l’écran… Spectre lui donne la possibilité par exemple de lire des informations d’un onglet du navigateur internet… ce qui peut poser des problèmes dans le cas où vous visitez le site de votre banque.
La protection dans le navigateur internet est implémenté, en quelque sorte, de la manière suivante :
char accessMemory(position)
{
   if(position >= end)
       throw error();
   return memory[position];
}
On s’assure que la publicité ne peut lire au delà de sa fin de zone de mémoire (end) à travers la condition if, si c’est le cas, une erreur est renvoyée.
Encore une fois ici, la fonction speculative du processeur va au delà, et tout comme Meltdown, on peut tenter de s’assurer que l’information est en dans le cache du processeurs en utilisant la condition suivante.
if(accessMemory(100000000)=='B')
 x=readPixel(1);
et donc, tout comme Meltdown, on mesure le temps pour accéder au premier pixel.
Si la réponse est rapide, nous savons qu’il y a un B à la position 100000000.
Cette vulnérabilité permet donc d’outrepasser toutes les protections comme les bac à sables et accéder à des informations interdites.
Enfin, l’attaque peut-être menée en parallèle afin de trouver plus rapidement les informations mémoire.
source : SPECTRE & MELTDOWN: TAPPING INTO THE CPU’S SUBCONSCIOUS THOUGHTS

Les correctifs contre Spectre et Meltdown

Cette vulnérabilité a été trouvée par Google et publiée le 3 Janvier 2018.
Beaucoup d’éditeurs (dont Google) n’ont pas encore publiés de correctifs.

Windows

Microsoft a publié un bulletin de sécurité concernant Windows : KB4073119 et KB4072699 (pour les Windows Serveur).
Les correctifs corrigent le bug Meltdown et une partie des bugs Specture.
Pour ce dernier, une mise à jour CPU-firmware peut-être nécessaire.
Les bulletins de sécurité :

Cas du KB4056894 avec les antivirus et AMD

Microsoft indique aussi que ces correctifs peuvent être incompatible avec certains antivirus et causer des BSOD.
Ces mises à jour ne seront pas proposées sur les Windows où ces antivirus sont installés.
Un bulletin de compatibilité a été publié par Microsoft, toutefois l’éditeur de l’antivirus peut forcer la mise à jour en créant une clé dans le registre de Windows spécifique.
Sur Windows 7, la mise à jour peut provoquer un BSOD STOP 0x000000c4 après la mise à jour KB4056894 au démarrage.

Android

Un bulletin de sécurité lié aux vulnérabilités Meltdown et Spectre a été publié pour les systèmes Android : https://source.android.com/security/bulletin/2018-01-01
Notez que les smartphone Samsung n’utilisent pas de processeur Intel et ne sont donc pas touchées par ces vulnérabilités.

GNU/Linux

La plupart des distributions Linux sont touchées par ces vulnérabilités.
Suivez les mises à jour habituelles de vos distributions.
Quelques bulletins :
Il semblerait que pour le patch d’Ubuntu, des problèmes de démarrage de GNU/Linux ont été signalés par la suite.

Mozilla Firefox

Mozilla indique que la version 57 de Firefox (publié en Novembre) possède des contre-mesures.
On ne sait pas encore quand les correctifs seront disponibles.

Google Chrome

Ces vulnérabilités seront corrigées sur Chrome 64 autour du 23 Janvier.
Il est toutefois possible d’activer des contre-mesure sur Chrome 63.
Pour cela,
  • Ouvrez un nouvel onglet dans l’adresse copier/collez : chrome://flags
  • Dans la liste cherchez « Strict site isolation » puis cliquez sur Activez.

Vmware

Les produits VMWare ne seraient vulnérables qu’à Spectre : https://blogs.vmware.com/security/2018/01/vmsa-2018-0002.html
  • ESXi 5.5, 6.0, et 6.5 (il faut installer les patchs sivants : ESXi550-201709101-SG, ESXi600-201711101-SG, ESXi650-201712101-SG; ESXi 5.5)
  • Workstation 12.x (mettre à jour vers 12.5.8)
  • Fusion 8.x (mettre à jour vers 8.5.9)

NVidia

La mise à jour des pilotes des cartes graphiques Nvidia GeForce driver 390.65 corrige la vulnérabilité Spectre.

EDIT – Patchs et baisse des performances

Quelques tweets avaient signalés des baisses de performances après l’applications de patchs.
Voici le résultat des tests effectuées par Microsoft.
  • Sur Windows 10 avec des processeurs récents (PC 2016 à base de Skylake, Kabylake), une petite baisse des performances ont été détectés mais les utilisateurs ne devraient pas s’en rendre compte.
  • Sur Windows 10 avec des processeurs silicons plus anciens (PC de 2015 en Haswell et plus anciens), on note une baisse significative des performances.
  • Sur Windows 8 et Windows 7 (PC de 2015 en Haswell et anciens CPU), les utilisateurs ne devraient se rendre compte de rien.
  • Windows Serveur, sur les applications avec IO intensifs, une baisse des performances devraient être constatée si vous activez l’isolation et mitigation de codes inconnus. Microsoft recommande donc d’évaluer les risques de sécurité et la balance autour des performances.
source:  Understanding the performance impact of Spectre and Meltdown mitigations on Windows Systems
D’autres benchmark sont disponibles notamment celui-ci sur le jeu BattleField :
Impact de la mise à jour Windows Meltdown sur les performances

EDIT – Vulnerabilités déjà exploitées ?

D’après ce tweet, ces vulnérabilités sont déjà exploitées par un malware qui a permis de récupérer plus de 100k mots de passe de compte en ligne.





REF.:

Aucun commentaire: