Remote-Timer-as-a-Service: Efficient Microarchitectural Leakage in the Cloud with Remote Timers
Dit artikel toont aan dat de bestaande tegenmaatregelen van Cloudflare Workers tegen Spectre-aanvallen, inclus\nbij Dynamic Process Isolation (DyPrIs), onvoldoende zijn tegen remote microarchitecturale lekkage, aangezien de auteurs er succesvol in slaagden om via remote timers en amplificatietechnieken een JWT-token met aanzienlijk hogere snelheden te exfiltreren, wat Cloudflare ertoe aanzette om hardware-ondersteunde geheugenisolatie en V8-sandboxing te implementeren om de kwetsbaarheid te mitigeren.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
In het moderne digitale landschap vindt een groot deel van onze online activiteit niet in verre, gecentraliseerde datacentra plaats, maar op servers die zich veel dichter bij ons bevinden. Deze aanpak, bekend als edge computing, stelt websites en applicaties in staat om bijna onmiddellijk te reageren door gegevens in de buurt te verwerken. Om deze snelheid mogelijk te maken, draaien bedrijven zoals Cloudflare duizenden verschillende klantprogramma's tegelijkertijd op dezelfde fysieke computer. Ze doen dit door één grote softwareomgeving te delen, in plaats van elke klant zijn eigen geïsoleerde computer te geven. Dit ontwerp is ongelooflijk efficiënt, maar creëert een unieke kwetsbaarheid. Als één programma in het geheugen van een ander kan gluren, zou het gevoelige informatie zoals wachtwoorden of geheime sleutels kunnen stelen. Jarenlang hebben beveiligingsexperts zich zorgen gemaakt over een specifiek type truc genaamd een Spectre-aanval, waarbij een programma de minuscule, onzichtbare vertragingen in de manier waarop een computer informatie verwerkt gebruikt om te raden welke gegevens een ander programma vasthoudt.
Onderzoekers van Cloudflare en de Universiteit van Edinburgh hebben onlangs aangetoond dat dit theoretische risico een zeer reëel, praktisch gevaar is. Ze toonden aan dat zelfs met de strikte beveiligingsregels die Cloudflare had ingesteld om dergelijke trucs te stoppen, een kwaadaardig programma nog steeds de timing van gebeurtenissen over het internet kon beluisteren om geheimen te stelen. Het team bewees dat een aanvaller, door middel van een slimme combinatie van technieken, de tijd met voldoende precisie kon meten om de verdediging van het systeem te omzeilen. Ze slaagden erin een geheim digitaal token te extraheren uit een programma van een slachtoffer dat op dezelfde machine draaide, waarbij ze dit honderden malen sneller deden dan elke eerdere poging. Deze ontdekking dwong het bedrijf om zijn beveiligingsarchitectuur volledig te herzien, waarbij ze overstapten van softwarematige waarschuwingen naar hardwarematig afgedwongen barrières om zijn gebruikers te beschermen.
Het verhaal begint bij de bouw van deze edge-computers. Om miljoenen verzoeken per seconde af te handelen, draait Cloudflare veel verschillende klantscripts binnen één proces, wat een grote container is die alle actieve programma's bevat. Dit is anders dan oudere systemen waar elk programma in zijn eigen aparte doos draaide. Hoewel deze gedeelde aanpak alles sneller laat draaien, betekent het ook dat als een script een manier vindt om het geheugen van zijn buurman te lezen, het alles kan zien wat die buurman doet. Om dit te voorkomen, had Cloudflare verschillende veiligheidsmaatregelen geïntroduceerd. Ze bevroren de klokken die programma's konden uitlezen, waardoor ze geen tijd nauwkeurig konden meten. Ze verwijderden ook de mogelijkheid voor programma's om geheugen te delen of tegelijkertijd meerdere threads uit te voeren. Daarnaast installeerden ze een bewakingssysteem genaamd Dynamic Process Isolation, dat het gedrag van een script monitort. Als een script zich verdacht gedraagt, zoals het te vaak proberen te meten van tijd, zet het systeem het script uit het gedeelde proces en plaatst het in een eigen geïsoleerde doos.
De onderzoekers zetten zich in om te testen of deze verdedigingen werkelijk voldoende waren. Ze begonnen bij het probleem van de tijd. Omdat het systeem de klokken bevroor tijdens normaal werk, hadden de aanvallers een manier nodig om de tijd van buitenaf te meten. Ze ontdekten dat ze een functie genaamd WebSockets konden gebruiken, die een programma in staat stelt een langdurige verbinding met een server open te houden. Door berichten heen en weer te sturen over deze verbinding, konden ze een externe timer creëren die bleef werken, zelfs terwijl het hoofdprogramma bezig was. Ze testten dit in de echte productieomgeving, niet alleen in een lab, en ontdekten dat ze de tijd konden meten met een resolutie van ongeveer één milliseconde. Hoewel dit misschien traag klinkt, was het genoeg om de aanval te starten.
De volgende uitdaging was om het signaal luid genoeg te maken om boven de ruis van het drukke internet uit te komen. Een enkel geheim bit aan informatie zou slechts een vertraging van enkele nanoseconden kunnen veroorzaken, wat veel te klein is om met hun externe timer te meten. Het team gebruikte een techniek genaamd amplificatie (versterking). Stel je voor dat je probeert een fluistering te horen in een lawaaierige kamer; je zou de persoon kunnen vragen om hetzelfde ding steeds opnieuw te fluisteren, of je zou een apparaat kunnen gebruiken dat het geluid laat echoën. De onderzoekers bouwden een gadget die de kleine vertraging duizenden keren herhaalde, waardoor het effect werd opgestapeld totdat de totale vertraging groeide tot enkele milliseconden. Dit maakte het verschil tussen een "ja" en een "nee" antwoord groot genoeg om gedetecteerd te worden door hun externe timer, zelfs met de jitter en ruis van een echt netwerk.
Met een betrouwbare timer en een manier om het signaal te versterken, richtte het team zich op de daadwerkelijke diefstal van gegevens. Ze hadden een manier nodig om de computer te misleiden om een geheim te onthullen zonder dat de computer merkte dat het gebeurde. Ze gebruikten een methode genaamd speculatieve executie (speculative execution), waarbij de computer raadt wat hij hierna moet doen en alvast begint met werken voordat hij zeker weet of dat wel juist is. Als de gok fout is, gooit de computer het werk meestal weg. De onderzoekers ontdekten echter een manier om de computer een spoor van dat werk achter te laten in zijn cache, een klein, snel geheugengebied. Door hun code zorgvuldig in te richten, konden ze de computer dwingen te raden dat hij een specif een stuk geheim dat moest lezen. Zelfs toen de computer later besefte dat hij het fout had en stopte, liet de handeling van het lezen van de gegevens een spoor achter in de cache dat langer duurde om te benaderen. Door te meten hoe lang het duurde om die plek te benaderen, konden ze zien of de geheime gegevens waren gelezen.
De onderzoekers combineerden deze elementen tot een volledige aanvalsketen. Eerst gebruikten ze een speciale functie van Cloudflare's systeem genaamd Durable Objects om hun kwaadaardige script urenlang te laten draaien zonder dat het werd gestopt, waarmee ze de gebruikelijke tijdlimieten omzeilden. Dit stelde hen in staat om in hetzelfde gedeelde proces te blijven als hun slachtoffer. Vervolgens gebruikten ze hun externe timer en amplificatie-gadgets om het geheugenadres van de gegevens van het slachtoffer te lekken. Zod matter ze wisten waar de gegevens zich bevonden, gebruikten ze een tweede gadget om de eigenlijke geheime gegevens te lezen, wat in hun test een digitaal token was dat wordt gebruikt voor authenticatie. Ze herhaalden dit proces bit voor bit, waarbij ze het volledige geheim reconstructeerden.
De resultaten waren opmerkelijk. In de echte productieomgeving was het team in staat om gegevens te stelen met een snelheid van tot wel 12 bits per seconde. Dit is een enorme verbetering ten opzichte van eerdere pogingen, die slechts ongeveer 120 bits per uur haalden. De aanval was accuraat en identificeerde de geheime bits in meer dan 99 procent van de gevallen correct. Cruciaal was dat de aanval erin slaagde het bewakingssysteem te omzeilen. De onderzoekers ontdekten dat de manier waarop ze de externe timer en de langdurige verbinding gebruikten, het detectiesysteem in verwarring bracht. Het systeem keek naar hoe vaak het script bepaalde interne tellers raakte om te beslissen of het kwaadaardig was, maar de timing van hun aanval zorgde ervoor dat die tellers er normaal uitzagen. Omdat het script zijn taak nooit voltooide terwijl het draaide, kreeg het systeem nooit de kans om het te isoleren voordat de gegevens gestolen waren.
Deze ontdekking onderstreepte een fundamentele fout in het vertrouwen op enkel software om hardwarematige trucs te stoppen. De beveiligingsmaatregelen die Cloudflare had ingesteld, zoals het bevriezen van klokken en het monitoren van gedrag, waren niet voldoende om een vastberaden aanvaller met de juiste instrumenten te stoppen. Als reactie op deze demonstratie implementeerde Cloudflare een reeks nieuwe verdedigingen. Ze introduceerden een sandbox die beperkt hoe programma's geheugen kunnen benaderen, wat effectief een hek rond de gegevens plaatst zodat zelfs als een programma probeert buiten zijn eigen gebied te kijken, het de geheimen van de buurman niet kan bereiken. Ze verbeterden ook hun detectiemethoden om te zoeken naar de specifieke patronen van de aanval in plaats van alleen algemeen gedrag. Ten slotte, en misschien wel het belangrijkste, implementeerden ze een hardwarematig isolatiesysteem. Dit systeem maakt gebruik van de fysieke mogelijkheden van de computer om de gegevens van elke klant in een aparte kamer op te sluiten, waardoor gegarandeerd wordt dat zelfs als een programma probeert in te breken, de hardware zelf de poging zal blokkeren.
Dit werk dient als een krachtige herinnering dat in de wereld van high-speed computing, efficiëntie en beveiliging vaak met elkaar in spanning zijn. Door de grenzen van hoe snel en flexibel deze systemen kunnen zijn te verleggen, verschijnen er onvermijdelijk nieuwe kwetsbaarheden. De onderzoekers vonden niet alleen een bug; ze toonden aan dat de gehele strategie om gedeelde systemen met softwarecontroles te beschermen, onvoldoende was tegen moderne, geavanceerde aanvallen. De oplossing vereiste een verschuiving naar hardwarematig afgedwongen grenzen, wat bewees dat soms de enige manier om geheimen veilig te houden, het bouwen van muren is waar de software niet overheen kan klimmen. Deze studie bevestigt dat hoewel edge computing ongelooflijke snelheid en gemak biedt, het een hoger niveau van fysieke beveiliging vereist om de enorme hoeveelheden gevoelige gegevens te beschermen die er elke seconde doorheen stromen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.