Bannière blog avec le logo Torii Security ?>

Spectre et Meltdown, deux noms que vous avez sans doute beaucoup entendus ces derniers temps.

Il s’agit des noms de baptême de deux vulnérabilités majeures touchant à elles deux une grande partie des CPU du marché. Les conséquences ? Dans les deux cas, une exploitation réussie aboutit à l’accès pour l’attaquant à la mémoire d’autres processus.

Maintenant que la « frénésie médiatique » est calmée, analysons ce que vous devez savoir pour vous protéger.

Disclaimer

Cet article tente d’expliquer de façon simple les deux vulnérabilités récentes Meltdown et Spectre.
La compréhension des détails de ces vulnérabilités nécessite des connaissances en architecture des systèmes d’informations et architecture de microprocesseurs.
Nous tenterons ici de vulgariser sans plonger dans des notions pointues, et vous invitons à vous reporter aux avis originaux pour plus de détails.

Spectre et Meltdown – Deux vulnérabilités critiques

Une question d’optimisation

Les deux vulnérabilités tirent parti de deux fonctionnalités d’optimisation des processeurs qui permettent, dans les deux cas, d’accéder à des données dans des zones mémoires normalement non accessibles.

Plus précisément, afin de ne pas perdre de cycle CPU, les processeurs lancent parfois des instructions en avance de phase (en spéculant sur la nécessité de l’exécution).

Le résultat obtenu est alors gardé en attente, et, plus tard, le système déterminera si l’exécution de l’instruction était nécessaire :

  • Si oui : alors le CPU a effectivement optimisé son utilisation et tout va pour le mieux
  • Si non : le résultat de l’appel est jeté, et on passe à l’instruction suivante.

De cette façon, aucun cycle CPU n’est perdu, et l’optimisation est bénéfique pour l’utilisateur et le système.

Un problème de divination

Le problème réside ici dans les règles implicites de l’optimisation.
Pour effectuer les calculs, les CPU chargent dans leurs caches des informations pour effectuer cette exécution spéculative.

Les informations et les droits d’accès étant vérifiés plus tard, le risque semble limité.

Mais malheureusement, si les résultats sont invalidés par les CPU, et donc non accessibles par les programmes, le cache lui est toujours présent.

Il devient alors possible de « deviner » les données présentes dans le cache, en mesurant les temps d’accès :

  • Si le temps d’accès est très court, la donnée est dans le cache.
  • Sinon, la donnée n’était pas en cache.

De graves conséquences

Dès lors, il devient théoriquement possible pour un attaquant sans privilège d’obtenir des mots de passe ou tout autre information confidentielle normalement non accessible.

Le résultat est donc très grave pour la confidentialité des données sur les systèmes affectés.

La course au patch

De nombreux éditeurs de système et de logiciels mettent à disposition des patchs (avis du CERTFR).
Mais même s’il est impératif d’effectuer les mises à jour pour l’ensemble de vos systèmes, il est surtout indispensable d’effectuer une analyse de risque avant de mettre à jour l’ensemble de votre parc pour déterminer le niveau d’urgence.

En effet, les patchs de systèmes d’exploitation présentent dans ce cas précis de gros inconvénients :

  • baisse de performance,
  • Plantage aléatoire (sur certains systèmes)
  • Incompatibilité avec certains antivirus

Tous touchés ?

À ce stade, vous l’avez compris, il ne s’agit pas d’une vulnérabilité des systèmes d’exploitation, mais d’un défaut de conception des CPU eux-mêmes !

Nous ne nous avancerons pas à faire une liste des CPU touchés, mais, vous pouvez retrouver sur l’avis du certFR tous les informations à jour, pour chaque fondeur et les contre-mesures proposées par les éditeurs.

Cependant, il est important de noter que ces vulnérabilités ne touchent pas seulement Intel, mais également AMD, ou encore ARM. Elles affectent donc une large part des équipements, du poste travail au serveur en passant par les smartphones.

Parmi les critères qui peuvent orienter votre analyse de risque, il est important de se poser les questions suivantes :

  • Le système est il partagé (virtualisation, multi-utilisateurs,cloud)
  • Le système exécute-t-il du code sur non-sûr (code fourni/généré par des utilisateurs)

En tout les cas, ces vulnérabilités sont l’occasion de rappeler l’importance de durcir ses postes de travail afin d’éviter les fuites et pertes de données.