Une nouvelle faille dans les processeurs Intel pour lancer des attaques par canal latéral
Une nouvelle recherche a fourni un autre moyen de voler des données sensibles en exploitant ce qui est le premier canal latéral "sur puce, cross-core" dans les processeurs Intel Coffee Lake et Skylake.
Publié par un groupe d'universitaires de l'Université de l'Illinois à Urbana-Champaign, les résultats devraient être présentés au Symposium USENIX sur la sécurité en août.
Alors qu'il a déjà été démontré que les attaques de fuite d'informations ciblant la microarchitecture du processeur brisent l'isolement entre les applications utilisateur et le système d'exploitation, permettant à un programme malveillant d'accéder à la mémoire utilisée par d'autres programmes (par exemple, Meltdown et Spectre), la nouvelle attaque tire parti d'une contention sur l'interconnexion en anneau.
L'interconnexion en anneau SoC est un bus sur puce agencé dans une topologie en anneau qui permet une communication intra-processus entre différents composants (alias agents) tels que les cœurs, le cache de dernier niveau (LLC), l'unité graphique et l'agent système qui sont logé à l'intérieur du CPU. Chaque agent d'anneau communique avec l'anneau via ce qu'on appelle un arrêt de sonnerie.
Pour tester leur hypothèse, les chercheurs ont procédé à une ingénierie inverse des protocoles de l'interconnexion en anneau pour découvrir les conditions pour que deux processus ou plus provoquent une contention en anneau, les utilisant à leur tour pour créer un canal secret d'une capacité de 4,18 Mbps, ce que les chercheurs disent être le plus grand à ce jour pour les canaux cross-core ne reposant pas sur la mémoire partagée.
"Il est important de noter que, contrairement aux attaques précédentes, nos attaques ne reposent pas sur le partage de mémoire, d'ensembles de cache, de ressources core-private ou de structures uncore spécifiques", a déclaré Riccardo Paccagnella, l'un des auteurs de l'étude. "En conséquence, ils sont difficiles à atténuer en utilisant les techniques existantes d'isolement de domaine."
Observant qu'un arrêt d'anneau donne toujours la priorité au trafic déjà sur l'anneau par rapport au nouveau trafic entrant de ses agents, les chercheurs ont déclaré qu'un conflit se produisait lorsque le trafic existant sur l'anneau retardait l'injection du nouveau trafic d'anneau.
Comment un attaquant s'y prendrait ?
Armé de ces informations, un attaquant peut mesurer le délai d'accès mémoire associé à un processus malveillant dû à une saturation de la capacité de bande passante causée par les accès mémoire d'un processus victime. Cependant, cela nécessite que le processus d'espionnage ait systématiquement un échec dans ses caches privés (L1-L2) et effectue des charges à partir d'une tranche LLC cible.
Ce faisant, la latence répétée dans les charges de mémoire de LLC en raison de la contention d'anneau peut permettre à un attaquant d'utiliser les mesures comme canal secondaire pour fuir les bits clés des implémentations EdDSA et RSA vulnérables ainsi que pour reconstruire les mots de passe en extrayant le timing précis de frappes tapées par un utilisateur victime.
Plus précisément, "un attaquant connaissant nos efforts de rétro-ingénierie peut s'installer de telle manière que ses charges sont assurées de faire face aux charges du premier processus, [...] abuse des atténuations d'attaques de cache de planification préventive pour provoquer la victime. les charges à manquer dans le cache, surveille les conflits d'anneau pendant que la victime est en train de calculer et utilise un classificateur d'apprentissage automatique standard pour éliminer le bruit des traces et des bits de fuite."
L'étude marque également la première fois qu'un canal microarchitectural basé sur la contention a été exploité pour des attaques de synchronisation de frappe afin de déduire des données sensibles tapées par la victime.
Les mesures à prendre
En réponse aux divulgations, Intel a classé les attaques comme un «canal secondaire traditionnel», qui fait référence à une classe d'attaques oracle qui tirent généralement parti des différences de synchronisation d'exécution pour déduire des secrets.
Les directives du fabricant de puces pour contrer les attaques de synchronisation contre les implémentations cryptographiques recommandent de respecter les principes de programmation à temps constant en veillant à ce que
- L'exécution est indépendante des valeurs secrètes
- L'ordre dans lequel les instructions sont exécutées (c'est-à-dire les modèles d'accès au code) sont indépendants des valeurs secrètes, et
- L'ordre dans lequel les opérandes de la mémoire sont chargés et stockés (c'est-à-dire les modèles d'accès aux données) sont indépendants des valeurs secrètes
Vous trouverez ici des conseils supplémentaires sur les pratiques de développement sûres pour atténuer les attaques par canal secondaire traditionnelles.
Le code source pour reproduire la configuration expérimentale détaillée dans l'article peut être consulté ici.
Source : The Hacker News