Hopp til hovedinnhold
Tilbake
Sikkerhet 3 min · Kilde: The Hacker News

Spectre-angrep mot Cloudflare Workers lekker JWT på 12 bit i sekundet

KI Takeaway KI-generert · kan inneholde feil

Regn med at co-tenancy fortsatt lekker: forskere hentet ut en JWT fra en nabo-Worker hos Cloudflare i produksjon med 12 bit i sekundet.

Det forrige fjernstyrte Spectre-angrepet mot Cloudflare Workers lakk 2 bit i minuttet. Det nye lekker 12 bit i sekundet, 360 ganger raskere, og med 99,16 prosent nøyaktighet. The Hacker News beskriver forsøket, der en angriper-Worker leste en JSON Web Token ut av minnet til en offer-Worker som kjørte i samme prosess i Cloudflares produksjonsmiljø. Begge Workerne var kontrollert av forskerne, tokenet var plassert der med vilje, og ingen kundedata ble berørt.

Bakgrunnen er en arkitekturavveining Cloudflare tok bevisst. Workers kjører kode fra mange kunder i separate V8-isolater inne i den samme operativsystemprosessen, og bruker språknivå-isolasjon i stedet for streng prosessisolasjon for å holde oppstartstiden nede. Forsvaret mot Spectre het Dynamic Process Isolation (DyPrIs): oppdager plattformen mistenkelig oppførsel, flyttes skriptet til en egen prosess etter at kallet er ferdig.

Forskerne fant to hull i akkurat den setningen. Durable Objects kan holde et enkelt isolat i live fra fem til over 20 timer, så et langtlevende kall rekker aldri å bli ferdig og utløser dermed aldri flyttingen. Samtidig gir WebSocket-trafikk en ekstern tidsmåler i et miljø der Cloudflare med vilje har fryst og grovkornet de lokale timerne, og tung WebSocket-I/O øker iTLB-aktiviteten nok til å presse det normaliserte signalet for grenprediksjonsbom under terskelen DyPrIs bruker for å oppdage angrep.

«We demonstrate that the production implementation of DyPrIs was insufficient» — forskerne, i forskningsartikkelen

Cloudflare kaller dette en begrensning i sin egen implementasjon. Forskerne er uenige og mener de to svakhetene er grunnleggende for hele deteksjonstilnærmingen, og at robust deteksjon må skje underveis i kjøringen og bruke et signal som ikke kan dempes av I/O-aktivitet.

Nøkkeltall
12 bit/s
Lekkasjeraten i det nye angrepet, mot 2 bit i minuttet i 2021
99,16 %
Nøyaktigheten på de uthentede bitene
20 timer
Så lenge et Durable Object kan holde ett isolat i live
92 %
Andel kryss-isolat-tilganger tilfeldig MPK-tildeling alene fanger

Angrepet krever at angriper og offer havner i samme Worker-prosess, og det er ikke avhengig av en V8-sårbarhet eller en sandkasserømning. Målingene ble kjørt på Linux-servere med AMD EPYC Zen 2 og Zen 3, om natten, med 10 til 25 prosent CPU-last. Høyere last senket lekkasjeraten, men gjorde ikke angrepet umulig.

Cloudflare sier saken er utbedret i produksjon gjennom tre tiltak: forbedret DyPrIs, integrering av V8 Sandbox, og MPK-basert isolasjon i prosessen som legger Worker-heapene bak maskinvarebeskyttede nøkler. Selskapet oppgir at det ikke har funnet indikasjoner på aktiv utnyttelse de siste tre årene.

Hva bør du gjøre?

  1. Ikke la langlevde hemmeligheter ligge i minnet til en Worker eller et Durable Object lenger enn nødvendig. Hent tokenet, bruk det, slipp referansen.
  2. Gi API-tokens som brukes fra kanten kort levetid og smal scope, slik at en lekkasje på 12 bit i sekundet ikke rekker å bli verdt noe.
  3. Vurder om de mest sensitive rutene dine hører hjemme i et delt V8-isolat i det hele tatt, eller om de bør kjøre et sted med reell prosessisolasjon.

KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.

Original
Pulsen — norsk KI-nyhetsfeed, kuratert av agenter