Remote-Timer-as-a-Service: Efficient Microarchitectural Leakage in the Cloud with Remote Timers
Questo articolo dimostra che le contromisure esistenti di Cloudflare Workers contro gli attacchi Spectre, inclusa la Dynamic Process Isolation (DyPrIs), sono insufficienti contro la fuga microarchitetturale remota, poiché gli autori sono riusciti a sfruttare timer remoti e tecniche di amplificazione per esfiltrare un token JWT a velocità significativamente più elevate, spingendo Cloudflare a implementare l'isolamento della memoria assistito dall'hardware e il sandboxing di V8 per mitigare la vulnerabilità.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Nel moderno panorama digitale, una vasta quantità della nostra attività online non avviene in distanti data center centralizzati, ma su server situati molto più vicini a noi. Questo approccio, noto come edge computing, consente ai siti web e alle applicazioni di rispondere quasi istantaneamente elaborando i dati nelle vicinanze. Per rendere possibile questa velocità, aziende come Cloudflare eseguono migliaia di diversi programmi cliente sullo stesso computer fisico contemporaneamente. Lo fanno condividendo un singolo grande ambiente software, invece di dare a ogni cliente il proprio computer isolato. Questo design è incredibilmente efficiente, ma crea una vulnerabilità unica. Se un programma può sbirciare nella memoria di un altro, potrebbe rubare informazioni sensibili come password o chiavi segrete. Per anni, gli esperti di sicurezza hanno temuto un tipo specifico di trucco chiamato attacco Spectre, in cui un programma utilizza minuscoli ritardi invisibili nel modo in cui un computer elabora le informazioni per indovinare quali dati un altro programma stia detenendo.
Ricercatori di Cloudflare e dell'Università di Edimburgo hanno recentemente dimostrato che questo rischio teorico è un pericolo pratico e reale. Hanno dimostrato che, anche con le rigide regole di sicurezza che Cloudflare aveva implementato per fermare tali trucchi, un programma malevolo potrebbe comunque ascoltare la temporizzazione degli eventi attraverso internet per rubare segreti. Il team ha provato che, utilizzando una combinazione intelligente di tecniche, un attaccante potrebbe misurare il tempo con abbastanza precisione da aggirare le difese del sistema. Sono riusciti a estrarre un token digitale segreto da un programma vittima in esecuzione sulla stessa macchina, melakukannya centinaia di volte più velocemente di qualsiasi tentativo precedente. Questa scoperta ha costretto l'azienda a rinnovare la propria architettura di sicurezza, passando da avvisi basati sul software a barriere imposte dall'hardware per proteggere i propri utenti.
La storia inizia con il modo in cui questi computer edge sono costruiti. Per gestire milioni di richieste al secondo, Cloudflare esegue molti diversi script cliente all'interno di un singolo processo, ovvero un grande contenitore che ospita tutti i programmi attivi. Questo è diverso dai sistemi più vecchi dove ogni programma girava nella propria scatola separata. Sebbene questo approccio condiviso renda tutto più veloce, significa che se uno script trova un modo per leggere la memoria del suo vicino, può vedere tutto ciò che il vicino sta facendo. Per prevenire questo, Cloudflare aveva introdotto diverse misure di sicurezza. Avevano congelato gli orologi che i programmi potevano leggere, impedendo loro di misurare il tempo con precisione. Avevano anche rimosso la capacità dei programmi di condividere la memoria o eseguire più thread contemporaneamente. Inoltre, avevano installato un sistema di sorveglianza chiamato Dynamic Process Isolation, che monitora il comportamento di uno script. Se uno script inizia ad agire in modo sospetto, come cercare di misurare il tempo troppo spesso, il sistema lo espelle dal processo condiviso e lo mette in una propria scatola isolata.
I ricercatori si sono posti l'obiettivo di testare se queste difese fossero davvero sufficienti. Hanno iniziato affrontando il problema del tempo. Poiché il sistema congelava gli orologi durante il lavoro normale, gli attaccanti avevano bisogno di un modo per misurare il tempo dall'esterno. Hanno scoperto che potevano usare una funzionalità chiamata WebSocket, che consente a un programma di mantenere una connessione a lungo termine con un server. Inviando messaggi avanti e indietro attraverso questa connessione, potevano creare un timer remoto che funzionasse anche mentre il programma principale era occupato. Hanno testato questo in un vero ambiente di produzione, non solo in un laboratorio, e hanno scoperto che potevano misurare il tempo con una risoluzione di circa un millisecondo. Anche se questo può sembrare lento, era sufficiente per iniziare l'attacco.
La sfida successiva era rendere il segnale abbastanza forte da essere sentito sopra il rumore di internet. Un singolo bit di informazione segreta potrebbe causare solo un ritardo di pochi nanosecondi, che è troppo piccolo per essere misurato con il loro timer remoto. Il team ha utilizzato una tecnica chiamata amplificazione. Immaginate di cercare di sentire un sussurro in una stanza rumorosa; potreste chiedere alla persona di sussurrare la stessa cosa ripetutamente, oppure potreste usare un dispositivo che faccia l'eco del suono. I ricercatori hanno costruito un gadget che ripeteva il minuscolo ritardo migliaia di volte, accumulando l'effetto finché il ritardo totale non cresceva fino a pochi millisecondi. Questo rendeva la differenza tra una risposta "sì" e una "no" abbastanza grande da essere rilevata dal loro timer remoto, nonostante il jitter e il rumore di una rete reale.
Con un timer affidabile e un modo per amplificare il segnale, il team si è concentrato sul furto effettivo dei dati. Avevano bisogno di un modo per ingannare il computer affinché rivelasse un segreto senza che il computer si rendesse conto che stava accadendo. Hanno usato un metodo chiamato esecuzione speculativa, dove il computer indovina cosa dovrebbe fare dopo e inizia a lavorarci prima di essere sicuro che sia corretto. Se la supposizione è errata, il computer di solito scarta il lavoro svolto. Tuttavia, i ricercatori hanno scoperto un modo per far lasciare al computer una traccia di quel lavoro nella sua cache, una piccola e veloce area di memoria. Organizzando attentamente il loro codice, potevano forzare il computer a ipotizzare che dovesse leggere un pezzo specifico di dati segreti. Anche se il computer successivamente si rendeva conto di aver sbagliato e interrompeva l'operazione, l'atto di leggere il dato lasciava una traccia nella cache che richiedeva più tempo per essere accessata in seguito. Misurando quanto tempo occorreva per accedere a quel punto, potevano capire se il dato segreto era stato letto.
I ricercatori hanno combinato questi elementi in una catena di attacco completa. Per prima cosa, hanno usato una funzione speciale del sistema di Cloudflare chiamata Durable Objects per mantenere il loro script malevolo in esecuzione per ore senza che venisse interrotto, eludendo i normali limiti temporali. Ciò ha permesso loro di rimanere nello stesso processo condiviso con la vittima. Successivamente, hanno usato i loro gadget del timer remoto e dell'amplificazione per far trapelare l'indirizzo di memoria dei dati della vittima. Una volta individuata la posizione dei dati, hanno usato un secondo gadget per leggere il segreto effettivo, che nel loro test era un token digitale usato per l'autenticazione. Hanno ripetuto questo processo bit per bit, ricostruendo l'intero segreto.
I risultati sono stati impressionanti. In un vero ambiente di produzione, il team è stato in grado di rubare dati a una velocità di fino a 12 bit al secondo. Questo è un miglioramento massiccio rispetto ai tentativi precedenti, che gestivano solo circa 120 bit l'ora. L'attacco era accurato, identificando correttamente i bit segreti più del 99 percento delle volte. Fondamentalmente, l'attacco è riuscito a eludere il sistema di sorveglianza. I ricercatori hanno scoperto che il modo in cui utilizzavano il timer remoto e la connessione a lungo termine confondeva il sistema di rilevamento. Il sistema osservava quanto spesso lo script accedeva a determinati contatori interni per decidere se fosse malevolo, ma la temporizzazione del loro attacco rendeva quei contatori normali. Poiché lo script non terminava mai il proprio compito mentre era in esecuzione, il sistema non ha avuto la possibilità di isolarlo prima che i dati venessero rubati.
Questa scoperta ha evidenziato un difetto fondamentale nel fare affidamento esclusivamente sul software per fermare trucchi a livello hardware. Le misure di sicurezza che Cloudflare aveva in atto, come il congelamento degli orologi e il monitoraggio del comportamento, non erano sufficienti a fermare un attaccante determinato con gli strumenti giusti. In risposta a questa dimostrazione, Cloudflare ha implementato una serie di nuove difese. Hanno introdotto un sandbox che limita il modo in cui i programmi possono accedere alla memoria, ponendo di fatto una recinzione attorno ai dati in modo che, anche se un programma tenta di guardare oltre la propria area, non possa raggiungere i segreti del vicino. Hanno anche migliorato i loro metodi di rilevamento per cercare i pattern specifici dell'attacco piuttosto che comportamenti generali. Infine, e forse più importante, hanno distribuito un sistema di isolamento basato sull'hardware. Questo sistema utilizza le capacità fisiche del computer per chiudere i dati di ogni cliente in una stanza separata, garantendo che anche se un programma tenta di entrare, l'hardware stesso bloccherà il tentativo.
Il lavoro funge da potente promemoria del fatto che, nel mondo dell'informatica ad alta velocità, efficienza e sicurezza sono spesso in tensione. Spingendo i confini di quanto questi sistemi possano essere veloci e flessibili, nuove vulnerabilità appaiono inevitabilmente. I ricercatori non hanno solo trovato un bug; hanno dimostrato che l'intera strategia di proteggere i sistemi condivisi con controlli software era insufficiente contro attacchi moderni e sofisticati. La soluzione ha richiesto un passaggio verso confini imposti dall'hardware, dimostrando che a volte l'unico modo per mantenere sicuri i segreti è costruire muri che il software non possa scalare. Questo studio conferma che, sebbene l'edge computing offra una velocità e una comodità incredibili, esso richiede un livello superiore di sicurezza fisica per proteggere le vaste quantità di dati sensibili che vi fluiscono attraverso ogni secondo.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.