Das Problem der Microarchitektur-Isolation in Edge-Computing
Cloudflare Workers ist eine weit verbreitete Serverless-Computing-Plattform, die weltweit Millionen HTTP-Requests pro Sekunde verarbeitet. Das System wurde entwickelt, um Anwendungen mit minimaler Latenz direkt am Edge bereitzustellen – ideal für dynamische Content-Erstellung, Bildbearbeitung und Chatbots.
Doch dieses Design hat einen kritischen Trade-off: Um die Start-up-Latenz zu reduzieren, verzichtet Cloudflare Workers auf vollständige Prozess-Isolation zwischen verschiedenen Mietern und verlässt sich stattdessen auf Language-Level-Isolation. Das bedeutet, dass mehrere Kundenscripts in derselben Prozessinstanz laufen – eine Architektur, die anfällig für Spectre-Angriffe ist.
Bisherige Schutzmaßnahmen waren unzureichend
Cloudflare hatte bereits mehrere Gegenmaßnahmen implementiert:
- Restricted Timer Measurements: Timer-Funktionen wurden eingeschränkt
- No Shared Memory: Gemeinsamer Speicher wurde deaktiviert
- No Multithreading: Multithreading war nicht erlaubt
- Dynamic Process Isolation (DyPrIs): Ein System zur Erkennung potentiell bösartiger Scripts, das verdächtige Code isoliert
Diese Maßnahmen sollten Spectre-Varianten effektiv blockieren. Aber wie eine neue Forschungsarbeit zeigt, war die Implementierung von DyPrIs in der Produktion unzureichend.
Microarchitectural Amplification und Remote Timers
Die Forscher demonstrierten, dass es in der Produktionsumgebung von Cloudflare Workers verschiedene Möglichkeiten gibt, die Zeit zu messen – trotz der Beschränkungen. Der Schlüssel liegt in Microarchitectural Amplification Techniques: Diese Verfahren verstärken subtile Timing-Unterschiede, die durch CPU-Cache-Zugriffe entstehen.
Darüber hinaus entdeckten sie Remote Timer – indirekte Wege, um präzise Zeitmessungen durchzuführen, ohne auf direkte Timer-Funktionen zugreifen zu müssen. Kombiniert mit Amplifikationstechniken wird eine praktische Spectre-Attacke möglich.
Das Konzept ist nicht neu, aber in der Cloudflare-Umgebung war es bislang nicht ernst genommen worden – ein klassischer Fall, in dem Theorie und Produktion auseinanderklaffen.
End-to-End-Angriff: JWT-Token-Diebstahl
Die Forscher demonstrierten einen funktionierenden Angriff, der einen JWT-Token (JSON Web Token) von einem co-located Victim Worker extrahiert. Das ist eine kritische Attacke, da JWT-Tokens oft für Authentifizierung und Autorisierung verwendet werden.
Die Verbesserung gegenüber bisherigen Methoden ist dramatisch:
| Methode | Datenrate | Genauigkeit | |---------|-----------|-------------| | Bisherige Angriffe | 2 bit/min | – | | Remote-Timer-Ansatz | bis zu 12 bit/s | 99,16% |
Das bedeutet eine 360-fache Steigerung der Datenübertragungsrate. Ein JWT-Token mit 256 Bit könnte damit in unter 30 Sekunden extrahiert werden – eine unmittelbare Bedrohung für Kundendaten.
Der Angriffspfad ist subtil
Wie funktioniert der Angriff konkret? Der bösartige Worker misst, wie lange ein Speicherzugriff dauert. Wenn das Ziel in einem CPU-Cache liegt, ist der Zugriff schnell. Wenn nicht, dauert er länger. Durch wiederholte Messungen und statistische Analyse kann der Angreifer rekonstruieren, welche Daten im Cache sind – und daraus Rückschlüsse auf das Ziel-Token ziehen.
Die Remote Timer funktionieren durch indirekte Messungen: Zum Beispiel kann man die Zeit messen, die ein HTTP-Request benötigt, oder wie lange eine Kryptographie-Operation dauert. Diese Timing-Seitenkanäle waren schwächer als direkte Timer, aber mit Amplifikationstechniken ausreichend genau.
Cloudflares Reaktion: V8 Sandbox und Hardware-Schutz
Cloudflare reagierte schnell und in koordinierter Weise:
-
V8 Sandbox Integration: Die JavaScript-Engine V8 wurde hardened, um Transient-Execution-Zugriffe auf 64-Bit-Pointer zu limitieren. Das macht es schwächer für speicherbasierten Spectre-Exploits.
-
DyPrIs-Verbesserung: Die Detektionsfähigkeiten des Dynamic Process Isolation Systems wurden erweitert, um feine Timing-Messungen besser zu erkennen.
-
Hardware-assisted Memory Protection Keys (MPK): Das ist die wichtigste Maßnahme: Hardwarebasierte Memory Protection Keys (verfügbar auf modernen Intel/AMD-Prozessoren) isolieren den Heap jedes Tenants unter einem dedizierten Protection Key. Das bietet effektive in-process-Isolation, ohne die Startlatenz signifikant zu erhöhen.
Lektionen für die Cloud-Sicherheit
Dieser Fall zeigt mehrere wichtige Punkte:
- Language-Level-Isolation ist kein Ersatz für Prozess-Isolation: Theoretisch kann sie ausreichend sein, in der Praxis entstehen Seitenkänale.
- Timing ist ein unterschätzter Sicherheits-Vektor: Selbst stark beschränkte Timer können kombiniert und amplifiziert werden.
- Produktion versus Laborbedingungen: Viele Sicherheitsforschungen werden in kontrollierten Umgebungen durchgeführt. Real-world-Bedingungen können überraschende Schwachstellen offenbaren.
- Hardware-Isolation ist robust: Memory Protection Keys bieten echter Isolation mit moderater Performance.
Die Zusammenarbeit zwischen Sicherheitsforschern und Cloudflare in diesem Fall war vorbildlich – die Lücke wurde in koordinierter Weise geschlossen, ohne öffentliches Shaming.





