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
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/
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 :
- Dessinez un texte (ou une publicité ou ce que vous voulez) sur l’écran
- On lit et écrit des informations dans le cache mémoire afin que celui-ci soit remplit
- On lit la première lettre du mot de passe Wifi qui est en mémoire du système d’exploitation
- 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 :
- On lit le premier pixel de notre texte
- 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 :
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.: