webleads-tracker

RETOUR

Des failles de sécurité dans les processeurs ? Tout savoir sur Meltdown & Spectre

Le 3 janvier dernier, les failles Spectre et Meltdown étaient révélées au grand public, 7 mois après leur découverte et un embargo de la plupart des grands éditeurs. Alors qu’elles représentent certainement la plus grosse menace de sécurité du millénaire (pour le moment !), que ce soit par l'étendue (la majorité des processeurs x86 depuis 20 ans sont concernés) ou la gravité (possibilité de lire plus ou moins n'importe quelle donnée en mémoire), des questions restent : Y'a-t-il des implications réelles ? Les contournements sont-ils efficaces ? Comment les baisses de performances nous affectent-elles et cela va-t-il s'arranger ?

It's not a bug, it's a feature

Enfin, à part Meltdown. Ce dernier est en effet un bug présent dans la MMU (Memory management Unit) des CPU Intel et de certains CPU ARM, qui permet de bypasser les protections d'accès à la mémoire protégée normalement mises en place et donc à un programme d'accéder à la mémoire utilisée pour le noyau ou d'autres processus privilégiés.
Spectre est plus vicieux car ses attaques se basent sur le fonctionnement nominal des processeurs. En effet, ceux-ci étudient les instructions qu'ils exécutent, spéculent sur leurs résultats et, sans les connaître, exécutent les instructions qu'ils estiment être les suivantes. Les attaquants amènent le CPU à exécuter des instructions qu'il ne devrait pas et récupèrent des morceaux de mémoire auxquels ils n'ont normalement pas accès.
Ces faiblesses sont supposées depuis des années, mais les résoudre impacte les performances, donc les fondeurs n'ont pas jugé utile de mettre en place les mécanismes nécessaires pour contourner le problème.

Concrètement, que faut-il pour exploiter ces failles ?

La première chose est un accès à la machine pour exécuter du code malicieux. Mais attention, il est possible de mettre en œuvre Meltdown au travers de code javascript exécuté dans les navigateurs afin de récupérer des informations d'autres onglets par exemple... Mettez à jour vos navigateurs !
Donc du code doit être exécuté localement sur la machine. Et c'est globalement tout. Heureusement, mettre en œuvre du code fonctionnel est beaucoup plus compliqué !

Tout est perdu ?

Alors que Meltdown est facilement exploitable et que des POC (Proof Of Concept) existent déjà. L'exploitation de Spectre est beaucoup plus compliquée. A l'heure actuelle aucun POC n'est publié et les exploitations concrètes n'existent pas encore. Cependant, il ne faut pas se leurrer, quand des failles sont présentes, elles finissent toujours par être exploitées. Et à l'heure où des états dépensent des milliards dans la cyber-guerre, et où les attaques sont de plus en plus sophistiquées, mieux vaut prévenir que guérir.

Que faire pour se protéger ?

Mettre à jour ! La complexité réside dans le périmètre. En effet, le hardware est touché, il faut (au moins) mettre à jour le microcode (qui indique au processeur comment il doit se comporter), les OS sont touchés, il faut mettre à jour les noyaux, les logiciels sont touchés, il faut aussi les mettre à jour (voir l'exemple des navigateurs plus haut).
Aujourd'hui les patchs disponibles permettent de prévenir les attaques la plupart du temps, et
telles qu'elles sont connues actuellement. Cependant ils sont relativement bruts de décoffrage voire incomplets. D'autres patchs vont arriver afin de compléter / améliorer la protection des machines et limiter les impacts observés sur les performances. Il ne suffit donc pas juste d'appliquer ces derniers correctifs et de se frotter les mains mais suivre l'évolution du sujet et appliquer les prochaines mises à jour (ce que l'on est censé faire quoiqu'il arrive). Aujourd'hui, on connaît 2 variantes de Spectre, mais on suppose que d'autres existent et des pistes sont creusées par les chercheurs, même s'il n'y a pas de preuve aujourd'hui. C'est un travail de fond qui s'engage.

Ah oui, il y a cette histoire de pertes de performances...

Effectivement, les correctifs mis en place ont des impacts variables sur les performances car ils mettent en œuvre des mécanismes complexes qui modifient profondément la gestion de la mémoire au sein des OS et/ou implémentent des vérifications qui rallongent l'exécution des instructions CPU.
Comme je le disais plus haut,
ces patchs sont conséquents et récents, ils laissent donc place à des optimisations futures ainsi qu'à l'utilisation de fonctionnalités existantes mais jusque-là délaissées car jugées inutiles. Encore une fois, cela va prendre du temps.
A l'heure actuelle
les régressions les plus importantes sont liées à la mitigation de Meltdown (du moins sur Linux) mais cette dernière est indispensable. L'impact dépendra du type d'activité de la machine, il est convenu que les workloads générant beaucoup d'I/O (disque, réseau, etc.) sont les plus touchés.

Comment déterminer s'il y a vraiment un risque ?

Le plus gros risque se trouve sur les plateformes qui mutualisent des activités différentes, typiquement des hyperviseurs, car une VM affectée peut aller lire la mémoire de l'hôte ou des VMs voisines. Cependant les machines dédiées, virtuelles ou pas, restent vulnérables et doivent être mises à jour, un attaquant peut récupérer des mots de passe, des clés SSH, des clés privées, ou toute autre donnée sensible gérée par le kernel ou un autre processus. Il n'y a pas lieu de sombrer dans la paranoïa si les environnements sont contrôlés, en termes d'accès et de mise à jour.

Comment savoir si on est protégé ?

Nombre de scripts sont disponibles pour vérifier l’activation des protections sur machines. Sur Linux la communauté est très active sur le sujet (voir cet exemple sur Github), quant à Microsoft, l’entreprise a publié des scripts Powershell qui remplissent cette fonction.

Des « exploits » sont également apparus sur le net pour mettre en œuvre la faille Meltdown. Nous en avons testés avec succès en laboratoire mais déconseillons de les utiliser sur des machines en production.

Spectre et Meltdown chez Coreye

La sécurité étant au cœur de l’activité de Coreye, nous abordons bien sûr le sujet avec le plus grand des sérieux et nos équipes sont mobilisées pour analyser les risques sur nos infrastructures ainsi que sur les plateformes de nos clients. Tous les moyens nécessaires sont mis en œuvre pour étudier, appliquer et suivre les mises à jours disponibles sur l’ensemble des systèmes que nous opérons.

SI
RETOUR

Offres