Attaques sur la micro-architecture des systèmes ubiquitaires – MIAOUS
MIAOUS
Attaques microarchitecturales sur les systèmes du quotidien
Enjeux et objectifs
Le matériel est souvent représenté comme une couche abstraite qui se comporte de manière correcte, exécutant des instructions et produisant un résultat. Cependant, le matériel peut ouvrir la voie à des vulnérabilités au niveau logiciel en créant des effets de bords sur les calculs effectués. Le projet MIAOUS s'intéresse à la sécurité des systèmes d'information et à la protection de la vie privée, et plus précisément dans l'interaction entre le logiciel et le matériel. Nous nous intéressons en particulier aux fuites d’informations par canaux auxiliaires qui ne requièrent aucun accès matériel et qui sont dues à la micro-architecture des processeurs, ainsi qu'à la construction de nouvelles contre-mesures. L'objectif principal de ce projet est de proposer un framework générique pour fournir une meilleure compréhension de la surface d'attaque des attaques sur la micro-architecture, à la fois au niveau du matériel que du logiciel, et les outils pour réduire cette surface d'attaque.
Le projet MIAOUS s’est appuyé principalement sur une approche de recherche empirique, consistant à concevoir, mettre en œuvre et évaluer des attaques et contre-mesures sur du matériel réel. Pour la rétro-ingénierie de composants microarchitecturaux, nous avons utilisé des mesures de temps fines et des compteurs de performance afin de caractériser le comportement de circuits peu ou pas documentés. Concernant les attaques via navigateur, nous avons mené une analyse approfondie des contre-mesures mises en place par les principaux navigateurs au fil du temps, et évalué leur efficacité face à différentes primitives d’attaque. Enfin, pour l’analyse des logiciels en temps constant, nous avons comparé plusieurs approches d’analyse de programmes, en confrontant leurs capacités de détection à des vulnérabilités réelles. Cette démarche systématique a permis de produire des résultats robustes et reproductibles, tout en assurant une bonne couverture de la surface d’attaque étudiée.
Le projet ANR MIAOUS s’est attaqué à un enjeu central de cybersécurité : comprendre comment les processeurs modernes, à travers leurs optimisations internes, peuvent involontairement exposer des données sensibles. Ces vulnérabilités, dites microarchitecturales, sont difficiles à détecter et à corriger, car elles se situent à l’interface entre matériel et logiciel. Le projet a apporté des contributions majeures selon trois axes de recherche complémentaires.
1. Rétro-ingénierie de composants microarchitecturaux
Le projet a permis de mieux caractériser plusieurs composants internes des processeurs (prédicteurs de branchement, de voies de cache, prefetchers…), souvent peu ou pas documentés.
Ces études ont permis de développer de nouvelles primitives d’attaque ou d'améliorer des techniques existantes. Par exemple, la rétro-ingénierie des prédicteurs de voie de cache AMD a révélé des vulnérabilités exploitables pour contourner des protections comme l’ASLR.
Une autre contribution a consisté à améliorer la technique Flush+Flush, la rendant beaucoup plus précise, ce qui a ouvert la voie à la caractérisation avancée des prefetchers. Ces travaux ont renforcé notre compréhension de la surface d’attaque matérielle et des risques associés à des optimisations peu documentées.
2. Attaques depuis les navigateurs et impact sur la vie privée
Un second volet du projet a exploré la possibilité d'exploiter ces vulnérabilités à distance, via des navigateurs web. Ces attaques, complexes à réaliser, ont pourtant montré qu’il est possible de récupérer des informations sensibles sans accès privilégié. Un axe original du projet a été d’étudier comment ces canaux peuvent servir à identifier un appareil ou un utilisateur — ce que l’on appelle le fingerprinting. Des méthodes innovantes ont permis d’identifier la génération du processeur, de distinguer les GPU ou même de profiler la consommation énergétique d’un appareil. Ces résultats montrent que ces fuites matérielles, peu affectées par les mises à jour logicielles, posent des risques durables pour la vie privée.
3. Sécurisation logicielle et détection des vulnérabilités
Enfin, le projet s’est intéressé à la protection des logiciels contre ces attaques, notamment à travers le concept de temps constant, qui vise à écrire du code dont le comportement ne dépend jamais de données secrètes. Le projet a évalué les outils d’analyse existants, révélant que nombre d’entre eux échouent à détecter certaines vulnérabilités pourtant critiques. Un benchmark unifié a été proposé pour mieux évaluer et améliorer ces outils.
Conclusion
En combinant rétro-ingénierie matérielle, attaques à distance et analyse logicielle, le projet MIAOUS a permis de mieux comprendre et prévenir les fuites microarchitecturales. Il a contribué à rapprocher les communautés sécurité, architecture et vie privée, en mettant en lumière des risques techniques et sociétaux émergents.
À la suite de MIAOUS, une nouvelle collaboration internationale a été lancée dans le cadre du projet ANR PRCI FACADES, en partenariat avec Saarland University et le centre de recherche CISPA en Allemagne. Ce projet prolonge les travaux sur les attaques microarchitecturales menées depuis le navigateur, en approfondissant leur impact sur la vie privée. Par ailleurs, nos recherches se recentrent désormais sur l’analyse logicielle, en particulier sur la sécurisation des logiciels sensibles via le respect du temps constant. En effet, il est désormais acquis que tout composant microarchitectural est ou sera vulnérable à une attaque. Dans ce contexte, nous choisissons de concentrer nos efforts sur le volet logiciel, où les marges de manœuvre pour détecter et corriger les vulnérabilités sont plus importantes.
A Systematic Evaluation of Automated Tools for Side-Channel Vulnerabilities Detection in Cryptographic Libraries
Antoine Geimer, Mathéo Vergnolle, Frédéric Recoules, Lesly-Ann Daniel, Sébastien Bardin, Clémentine Maurice.
ACM Conference on Computer and Communications Security (CCS'23)
The Finger in the Power: How to Fingerprint PCs by Monitoring Their Power Consumption
Marina Botvinnik, Tomer Laor, Thomas Rokicki, Clémentine Maurice, Yossi Oren.
20th Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA'23)
Characterizing Prefetchers using CacheObserver
Guillaume Didier, Clémentine Maurice, Antoine Geimer, Walid J. Ghandour.
34th International Symposium on Computer Architecture and High Performance Computing (IEEE SBAC-PAD'22)
CPU Port Contention Without SMT
Thomas Rokicki, Clémentine Maurice, Michael Schwarz.
27th European Symposium on Research in Computer Security (ESORICS'22)
Port Contention Goes Portable: Port Contention Side Channels in Web Browsers
Thomas Rokicki, Clémentine Maurice, Marina Botvinnik, Yossi Oren.
17th ACM ASIA Conference on Computer and Communications Security (ASIACCS'22)
DrawnApart: A Device Identification Technique based on Remote GPU Fingerprinting
Tomer Laor, Naif Mehanna, Antonin Durey, Vitaly Dyadyuk, Pierre Laperdrix, Clémentine Maurice, Yossi Oren, Romain Rouvoy, Walter Rudametkin, Yuval Yarom.
Network and Distributed System Security Symposium 2022 (NDSS'22)
SoK: In Search of Lost Time: A Review of JavaScript’s Timers in Browsers
Thomas Rokicki, Clémentine Maurice, Pierre Laperdrix.
6th IEEE European Symposium on Security and Privacy (EuroS&P'21)
Calibration Done Right: Noiseless Flush+Flush Attacks
Guillaume Didier, Clémentine Maurice.
18th Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA'21)
Nethammer: Inducing Rowhammer Faults through Network Requests
Moritz Lipp, Misiker Tadesse Aga, Michael Schwarz, Daniel Gruss, Clémentine Maurice, Lukas Raab, Lukas Lamster.
Workshop on the Security of Software/Hardware Interfaces (SILM'20, co-located with EuroS&P 2020)
Take A Way: Exploring the Security Implications of AMD's Cache Way Predictors
Moritz Lipp, Vedad Hadžic, Michael Schwarz, Arthur Perais, Clémentine Maurice, Daniel Gruss.
15th ACM ASIA Conference on Computer and Communications Security (ASIACCS'20)
Branch Prediction Attack on Blinded Scalar Multiplication
Sarani Bhattacharya, Clémentine Maurice, Shivam Bhasin, Debdeep Mukhopadhyay
IEEE Transactions on Computers, vol. 69, no. 5, pp. 633-648, 1 May 2020
Le matériel est souvent représenté comme une couche abstraite qui se comporte de manière correcte, exécutant des instructions et produisant un résultat. Cependant, le matériel peut ouvrir la voie à des vulnérabilités au niveau logiciel en créant des effets de bords sur les calculs effectués.
Le projet MIAOUS s'intéresse à la sécurité des systèmes d'information et à la protection de la vie privée, et plus précisément dans l'interaction entre le logiciel et le matériel. Nous nous intéressons en particulier aux fuites d’informations par canaux auxiliaires qui ne requièrent aucun accès matériel et qui sont dues à la micro-architecture des processeurs, ainsi qu'à la construction de nouvelles contre-mesures.
L'objectif principal de ce projet est de proposer un framework générique pour fournir une meilleure compréhension de la surface d'attaque des attaques sur la micro-architecture, à la fois au niveau du matériel que du logiciel, et les outils pour réduire cette surface d'attaque.
Coordination du projet
Clémentine MAURICE (Institut de Recherche en Informatique et Systèmes Aléatoires)
L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.
Partenariat
IRISA Institut de Recherche en Informatique et Systèmes Aléatoires
Graz University of Technology / IAIK
Aide de l'ANR 252 860 euros
Début et durée du projet scientifique :
septembre 2019
- 48 Mois