← Derniers articles
💻 computer science

Remote-Timer-as-a-Service: Efficient Microarchitectural Leakage in the Cloud with Remote Timers

Cet article démontre que les contre-mesures existantes de Cloudflare Workers contre les attaques Spectre, incluant l'isolation dynamique des processus (DyPrIs), sont insuffisantes face aux fuites microarchitecturales à distance, car les auteurs ont réussi à exploiter des minuteurs distants et des techniques d'amplification pour exfiltrer un jeton JWT à des vitesses nettement plus élevées, incitant Cloudflare à implémenter l'isolation de la mémoire assistée par le matériel et le sandboxing de V8 pour atténuer la vulnérabilité.

Auteurs originaux : Martin Schwarzl, Haocheng Xiao, Albert Pedersen, Sam Ainsworth, Nigel Topham

Publié 2026-08-19
📖 8 min de lecture🧠 Analyse approfondie

Auteurs originaux : Martin Schwarzl, Haocheng Xiao, Albert Pedersen, Sam Ainsworth, Nigel Topham

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Dans le paysage numérique moderne, une grande partie de notre activité en ligne ne se déroule pas dans des centres de données lointains et centralisés, mais sur des serveurs situés beaucoup plus près de nous. Cette approche, connue sous le nom d'informatique en périphique (edge computing), permet aux sites web et aux applications de répondre presque instantanément en traitant les données à proximité. Pour rendre cette vitesse possible, des entreprises comme Cloudflare font fonctionner des milliers de programmes clients différents sur le même ordinateur physique en même temps. Elles font cela en partageant un seul grand environnement logiciel, plutôt que de donner à chaque client son propre ordinateur isolé. Cette conception est incroyablement efficace, mais elle crée une vulnérabilité unique. Si un programme peut jeter un coup d'œil à la mémoire d'un autre, il pourrait voler des informations sensibles comme des mots de passe ou des clés secrètes. Pendant des années, les experts en sécurité se sont inquiétés d'un type spécifique de ruse appelée attaque Spectre, où un programme utilise de minuscules délais invisibles dans la façon dont un ordinateur traite les informations pour deviner quelles données un autre programme détient.

Des chercheurs de Cloudflare et de l'Université d'Édimbourg ont récemment démontré que ce risque théorique est un danger réel et pratique. Ils ont montré que même avec les règles de sécurité strictes que Cloudflare avait mises en place pour arrêter de telles ruses, un programme malveillant pourrait toujours écouter le minutage des événements à travers Internet pour voler des secrets. L'équipe a prouvé qu'en utilisant une combinaison astucieuse de techniques, un attaquant pouvait mesurer le temps avec suffisamment de précision pour contourner les défenses du système. Ils ont réussi à extraire un jeton numérique secret d'un programme victime s'exécutant sur la même machine, le faisant des centaines de fois plus vite que toute tentative précédente. Cette découverte a forcé l'entreprise à revoir son architecture de sécurité, passant de mises en garde logicielles à des barrières imposées par le matériel pour protéger ses utilisateurs.

L'histoire commence par la façon dont ces ordinateurs en périphique sont construits. Pour gérer des millions de requêtes chaque seconde, Cloudflare exécute de nombreux scripts clients à l'intérieur d'un seul processus, qui est un grand conteneur hébergeant tous les programmes actifs. Cela diffère des systèmes plus anciens où chaque programme s'exécutait dans sa propre boîte séparée. Bien que cette approche partagée rende tout plus rapide, cela signifie que si un script trouve un moyen de lire la mémoire de son voisin, il peut voir tout ce que ce voisin fait. Pour prévenir cela, Cloudflare avait introduit plusieurs mesures de sécurité. Ils ont gelé les horloges que les programmes pouvaient lire, empêchant ainsi la mesure précise du temps. Ils ont également supprimé la capacité des programmes à partager de la mémoire ou à exécuter plusieurs threads à la fois. De plus, ils ont installé un système de surveillance appelé Isolation de Processus Dynamique, qui surveille le comportement d'un script. Si un script commence à agir de manière suspecte, comme essayer de mesurer le temps trop souvent, le système l'expulse du processus partagé et le place dans sa propre boîte isolée.

Les chercheurs ont entrepris de tester si ces défenses étaient réellement suffisantes. Ils ont commencé par s'attaquer au problème du temps. Puisque le système gelait les horloges pendant le travail normal, les attaquants avaient besoin d'un moyen de mesurer le temps de l'extérieur. Ils ont découvert qu'ils pouvaient utiliser une fonctionnalité appelée WebSockets, qui permet à un programme de maintenir une connexion durable avec un serveur. En envoyant des messages de l'aller-retour via cette connexion, ils pouvaient créer un minuteur à distance qui fonctionnait même pendant que le programme principal était occupé. Ils ont testé cela dans l'environnement de production réel, et non seulement en laboratoire, et ont constaté qu'ils pouvaient mesurer le temps avec une résolution d'environ une milliseconde. Cela peut paraître lent, mais c'était suffisant pour lancer l'attaque.

Le défi suivant était de rendre le signal assez fort pour être entendu au-dessus du bruit d'un Internet encombré. Un seul bit d'information secret pourrait ne causer qu'un délai de quelques nanosecondes, ce qui est bien trop petit pour être mesuré avec leur minuteur à distance. L'équipe a utilisé une technique appelée amplification. Imaginez essayer d'entendre un murmure dans une pièce bruyante ; vous pourriez demander à la personne de répéter la même chose encore et encore, ou vous pourriez utiliser un appareil qui fait résonner le son. Les chercheurs ont construit un gadget qui répétait le minuscule délai des milliers de fois, accumulant l'effet jusqu'à ce que le délai total atteigne quelques millisecondes. Cela rendait la différence entre une réponse "oui" et une réponse "non" assez grande pour être détectée par leur minuteur à distance, malgré la gigue et le bruit d'un réseau réel.

Avec un minuteur fiable et un moyen d'amplifier le signal, l'équipe s'est attaquée au vol de données proprement dit. Ils avaient besoin d'un moyen de tromper l'ordinateur pour qu'il révèle un secret sans que l'ordinateur ne s'en aperçoive. Ils ont utilisé une méthode appelée exécution spéculative, où l'ordinateur devine ce qu'il doit faire ensuite et commence à y travailler avant d'être certain de son bon droit. Si la supposition est erronée, l'ordinateur abandonne généralement le travail. Cependant, les chercheurs ont trouvé un moyen de laisser une trace de ce travail dans son cache, une zone de mémoire petite et rapide. En organisant soigneusement leur code, ils pouvaient forcer l'ordinateur à supposer qu'il devait lire une pièce spécifique de données secrètes. Même si l'ordinateur réalisait plus tard qu'il s'était trompé et arrêtait l'opération, l'acte de lire la donnée laissait une marque dans le cache qui prenait plus de temps à accéder ultérieurement. En mesurant le temps nécessaire pour accéder à cet endroit, ils pouvaient savoir si la donnée secrète avait été lue.

Les chercheurs ont combiné ces éléments en une chaîne d'attaque complète. D'abord, ils ont utilisé une fonctionnalité spéciale du système de Cloudflare appelée Durable Objects pour maintenir leur script malveillant en fonctionnement pendant des heures sans être arrêté, contournant ainsi les limites de temps habituelles. Cela leur a permis de rester dans le même processus partagé que leur victime. Ensuite, ils ont utilisé leurs gadgets de minuteur à distance et d'amplification pour divulguer l'adresse mémoire des données de la victime. Une fois qu'ils ont su où se trouvaient les données, ils ont utilisé un second gadget pour lire le secret réel, qui était, dans leur test, un jeton numérique utilisé pour l'authentification. Ils ont répété ce processus bit par bit, reconstruisant l'intégralité du secret.

Les résultats étaient frappants. Dans l'environnement de production réel, l'équipe a été capable de voler des données à un taux allant jusqu'à 12 bits par seconde. C'est une amélioration massive par rapport aux tentatives précédentes, qui ne parvenaient qu'à environ 120 bits par heure. L'attaque était précise, identifiant correctement les bits secrets plus de 99 pour cent du temps. Crucialement, l'attaque a réussi à échapper au système de surveillance. Les chercheurs ont découvert que la façon dont ils utilisaient le minuteur à distance et la connexion de longue durée a dérouté le système de détection. Le système examinait la fréquence à laquelle le script accédait à certains compteurs internes pour décider s'il était malveillant, mais le minutage de leur attaque faisait en sorte que ces compteurs paraissaient normaux. Comme le script ne terminait jamais sa tâche pendant son exécution, le système n'a jamais eu l'occasion de l'isoler avant que les données ne soient volées.

Cette découverte a mis en évidence une faille fondamentale dans le fait de compter uniquement sur le logiciel pour arrêter les ruses de niveau matériel. Les mesures de sécurité mises en place par Cloudflare, telles que le gel des horloges et la surveillance du comportement, n'étaient pas suffisantes pour arrêter un attaquant déterminé doté des bons outils. En réponse à cette démonstration, Cloudflare a mis en œuvre une série de nouvelles défenses. Ils ont introduit un bac à sable (sandbox) qui limite la façon dont les programmes peuvent accéder à la mémoire, érigeant de fait une clôture autour des données afin que, même si un programme tente de regarder en dehors de sa propre zone, il ne puisse pas atteindre les secrets du voisin. Ils ont également amélioré leurs méthodes de détection pour rechercher les schémas spécifiques de l'attaque plutôt que de simples comportements généraux. Enfin, et c'est peut-être le plus important, ils ont déployé un système d'isolation basé sur le matériel. Ce système utilise les capacités physiques de l'ordinateur pour verrouiller les données de chaque client dans une pièce séparée, garantissant que même si un programme tente de s'introduire, le matériel lui-même bloquera la tentative.

Ce travail sert de rappel puissant que dans le monde de l'informatique à haute vitesse, l'efficacité et la sécurité sont souvent en tension. En repoussant les limites de la rapidité et de la flexibilité de ces systèmes, de nouvelles vulnérabilités apparaissent inévitablement. Les chercheurs n'ont pas seulement trouvé un bug ; ils ont montré que l'ensemble de la stratégie consistant à protéger les systèmes partagés avec des vérifications logicielles était insuffisante face à des attaques modernes et sophistiquées. La solution a nécessité un passage vers des frontières imposées par le matériel, prouvant que parfois, la seule façon de garder les secrets en sécurité est de construire des murs que le logiciel ne peut pas escalader. Cette étude confirme que si l'informatique en périphique offre une vitesse et une commodité incroyables, elle exige un niveau de sécurité physique plus élevé pour protéger les vastes quantités de données sensibles qui y circulent chaque seconde.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →