Qu'est-ce que Meltdown and Specter?

L’une des nouveautés les plus importantes de l’industrie technologique au cours des dernières années a été la découverte d’une faille de sécurité dans les processeurs des périphériques que nous utilisons quotidiennement. Les failles de sécurité appelées failles de conception Meltdown et Specter (conception matérielle) peuvent être exploitées sur tous les ordinateurs de bureau, ordinateurs portables, tablettes ou téléphones équipés de processeurs conçus et créés au cours des deux dernières décennies. Cela signifie également que le système d'exploitation que vous utilisez importe peu, vous pouvez être exploité.

L’explication la plus simple de ce qu’une combinaison de ces deux failles pourrait apporter est double: ralentissez votre ordinateur et donnez à l’attaquant l’accès à vos données personnelles. Les détails techniques sont ci-dessous.

Comme mentionné précédemment, ces exploits peuvent être utilisés en raison de défauts de conception matérielle dans les puces. Initialement, les chercheurs ont découvert 3 failles, dont deux sont Spectre et la troisième est Meltdown. Pour qu'un attaquant puisse accéder à vos données, il aurait besoin d'exploiter deux techniques qui accélèrent votre ordinateur. Ce sont l'exécution spéculative et la mise en cache.

Exécution spéculative est la capacité de la puce à «deviner» l'avenir, ce qui lui permet de calculer plus rapidement. Les puces actuelles sont capables d'exécuter plus d'une instruction à la fois, ce qui signifie que pendant que la CPU exécute l'instruction suivante, elle calcule ou devine la suivante. Par exemple, si nous prenons une situation où nous disons que si “sky is blue” est vrai, imprimez ensoleillé ou si “sky is blue” est faux, nuageux (ceci peut être facilement montré avec quelques rangées de code, que nous ne pas faire). L’exécution spéculative fait qu’elle commence à calculer les deux cas, si elle est vraie et si elle est fausse en même temps. Ainsi, une fois que la condition est remplie (une fois que “le ciel est bleu” est vrai ou faux), la puce sait déjà quelle est la prochaine étape sera et sera en mesure de l'exécuter sans avoir à faire de l'informatique sur cela. Un exemple similaire est lorsque la puce reconnaît qu'un certain calcul est effectué fréquemment. Elle utilise donc son «temps libre» pour continuer à effectuer le calcul. Ainsi, lorsque le programme en aura besoin, il sera déjà calculé.

Mise en cache est une fonctionnalité qui accélère le processus d'obtention de données à partir de la RAM. Même si chaque périphérique dispose d’une RAM, qu’il s’agisse de 1 gigaoctet ou de 64 Go, le temps qu’il faut à la puce pour récupérer des données à partir de la RAM réelle est un processus long (long terme, en termes informatiques, notre temps est inférieur à un éclair). un œil). Cela peut sembler long, mais si nous prenons en compte le fait que la CPU effectue des millions de calculs toutes les secondes et nécessite beaucoup de données, obtenir des données de la RAM ralentira certainement beaucoup les choses. Une solution pour cela consistait à ajouter une mémoire RAM à la puce réelle. Bien que cette mémoire vive ne représente que quelques mégaoctets, la puce stocke les données que vous prévoyez d'utiliser (le futur proche d'une puce peut être de quelques millisecondes) ou celles que le processeur utilise fréquemment afin de les stocker dans le cache. .

L’exploitation de ces deux techniques posera un problème une fois qu’ils auront commencé à accéder au mémoire protégée. L'un des éléments essentiels de la sécurité d'un PC est la mémoire protégée. Cela signifie que certaines parties des données sont stockées protégées et que le seul qui y a accès est le programme qui les utilise. Tous les autres programmes doivent passer par une vérification de sécurité appelée vérification des privilèges. Le processus permettant de vérifier si un programme dispose de privilèges pour accéder aux données de la mémoire protégée prend beaucoup de temps, plus de temps qu'il ne faut au processeur pour accéder aux données. Donc, si les données sont stockées dans le cache et que la CPU, avec son exécution spéculative, commence à les calculer, mais les stocke toujours dans le cache. Ainsi, en exploitant ces failles, les attaquants ne pourront pas voir vos données, mais pourront le découvrir en recherchant les emplacements. Ce processus s'appelle une attaque par canal latéral.

Meltdown et Specter dans une combinaison peuvent faire tout ce qui est expliqué dans les paragraphes précédents. Tous deux peuvent avoir accès à la certitude que cela ne devrait pas être autrement accessible, chacun à sa manière. Specter peut être utilisé avec un certain code, dans la plupart des cas du code JavaScript, sur un site Web qui pourrait fournir aux utilisateurs attaqués les informations de connexion. Par ailleurs, Meltdown peut être utilisé pour accéder aux données d'autres programmes ou utilisateurs sur le même ordinateur ou dans des situations où un serveur virtuel est hébergé.

Tous les fabricants déploient déjà des mises à jour afin de corriger les exploits. Google et Firefox ont également envoyé des mises à jour pour leurs navigateurs dans l'espoir qu'ils parviennent à renforcer la sécurité. Une chose doit être claire> ce sont des défauts matériels, ce qui signifie que tout logiciel ou toute mise à jour fonctionne sur le matériel. Une mise à jour sécurisée ne sera jamais publiée, mais occupera certainement les fabricants à les réparer pour les puces de la génération future.

Dans le prochain article, nous expliquerons comment vous protéger (autant que possible) de ces exploits.