samedi 3 février 2018

Meldown-Spectre : cauchemar en cuisine


Meldown et Spectre sont deux vulnérabilités annoncées en janvier 2018 par des chercheurs du projet Google Zero. Ces deux failles de sécurité touchent la plupart des processeurs mis en circulation depuis 1995 (AMD, Intel et ARM), autant dire tous...


Ces failles représentent un véritable cauchemar pour la sécurité des machines car elles sont directement liées à des mécanismes d'optimisation du fonctionnement du processeur et permettent un accès à certaines zone mémoire et donc la fuite potentielle de données. En outre, touchant le cœur même du fonctionnement d'un terminal, elles pourraient impacter les performances des machines.
"La vulnérabilité révélée suggère qu’on pourrait avoir affaire à une des plus grandes failles de sécurité de tous les temps" Bill Doyle
En Californie, une class action a eu lieu contre Intel afin de compenser les consommateurs lésés par la baisse de performance des équipements... Bref une affaire de sécurité qui va certainement chiffrer très lourd pour la compagnie américaine.

Si vous souhaitez comprendre les mécanismes techniques mis en œuvre, je vous suggère la lecture de cet excellent billet sur Hackndo qui de façon pédagogique présente l'ensemble de la problématique.

Le début du post ci-dessous qui commence par expliquer le fonctionnement d'un processeur et les mécanismes d'optimisation.

Les mécanismes en jeu

Ces deux attaques sont différentes de celles dont nous entendons parler majoritairement. Elles touchent le matériel, ou hardware, et non pas des applications. Pour comprendre ces attaques, il est nécessaire de faire un petit récapitulatif sur le fonctionnement et l’optimisation d’un processeur.

Fonctionnement d’un processeur

Un processeur, ce n’est rien d’autre qu’une calculatrice. Au début, des calculs étaient envoyés à un processeur, celui-ci effectuait les calculs qu’on lui envoyait dans l’ordre, les uns après les autres, puis il retournait les résultats.
Lorsqu’un programme est exécuté, les données à traiter sont dans la mémoire vive (qu’on appelle aussi simplemement mémoire), ou RAM. Pour traiter une instruction, les données nécessaires au traitement doivent être envoyées depuis la mémoire vive vers la mémoire interne du processeur pour qu’il les traite. Ensuite, le résultat est enregistré à nouveau en mémoire.
Si le temps de traitement des données par le processeur est environ le même que le temps de récupération des données en mémoire, tout ça se coordonne très bien. En effet, pendant que le processeur traite une instruction, les données de la prochaîne instruction sont rapatriées, permettant d’avoir un flux tendu.
Avec le temps, le matériel a évolué, et les processeurs sont devenus très, très rapides. Tellement rapides qu’ils ont largement devancé les accès en mémoire. Ainsi, aujourd’hui, le traitement d’une instruction se fait environ en 0.5 nano-seconde, tandis qu’un accès mémoire se fait en 20 nano-secondes.
Par conséquent, si jamais le processeur traitait les instructions linéairement, il passerait la plupart de son temps à attendre les données, au lieu de travailler.
C’est pourquoi les constructeurs se sont penchés sur le sujet afin d’optimiser le processus de traitement de leurs processeurs.
La suite sur : http://beta.hackndo.com/meltdown-spectre/




http://beta.hackndo.com/meltdown-spectre/

Aucun commentaire:

Enregistrer un commentaire