
Cloudflare patcht mandantenübergreifendes Datenleck in Containers
Cloudflare hat einen Fehler in Containers behoben, durch den Forscher Restdaten anderer Kunden von gemeinsam genutzten Speicherblöcken wiederherstellen konnten; es ist keine Nutzeraktion erforderlich.
Cloudflare hat eine schwerwiegende mandantenübergreifende Datenleck-Schwachstelle in seinem Containers-Dienst gepatcht, die es, wenn sie aktiv ausgenutzt worden wäre, einem Kunden ermöglicht hätte, zurückgelassene Restdateien aus den Containern anderer Kunden auf demselben physischen Host zu lesen. Der Fehler, der von einem Sicherheitsforscher über das Bug-Bounty-Programm des Unternehmens gemeldet wurde, wurde automatisch behoben und erfordert kein Handeln der Cloudflare-Nutzer.
Cloudflare Containers ist eine Funktion im Workers Paid-Tarif, die es Entwicklern ermöglicht, ihre Anwendungen in leichtgewichtigen, isolierten Umgebungen, sogenannten Containern, auszuführen. Unternehmen, die Backend-Dienste erstellen, Aufträge verarbeiten oder Code-Ausführungsplattformen auf der Infrastruktur von Cloudflare betreiben, nutzen sie häufig. Jeder Container soll von anderen abgeschottet sein, doch die neu entdeckte Schwachstelle untergrub diese Trennung und warf Bedenken hinsichtlich der Sicherheit mandantenfähiger Cloud-Dienste für datensensible Anwendungen auf.
Das Problem wurde von Oren Yomtov, einem Sicherheitsforscher des Technologieunternehmens Accomplish, entdeckt, der es am 4. September auf der Plattform HackerOne einreichte. Die spätere Offenlegung von Cloudflare erklärt, dass das Problem in einem gemeinsam genutzten Speicherpool bestand, der unter bestimmten Umständen das Zeroing (Überschreiben mit Nullen) wiederverwendeter physischer Speicherblöcke von 64 Kibibyte (64 KiB) übersprang, bevor sie einem neuen Container zugewiesen wurden.
So funktionierte die Sicherheitslücke: Wenn ein Container gelöscht wird, wird das Thin Volume, das seine Root-Disk unterstützt, entfernt und seine physischen Blöcke werden in einen gemeinsamen Pool zurückgegeben, der mehrere Kunden bedient. Normalerweise sollten diese Blöcke vor ihrer Neuzuweisung mit Nullen überschrieben werden, um eventuelle Restdaten zu löschen. Ein Konfigurationsfehler führte jedoch dazu, dass das Zeroing ausgelassen wurde. Die Forscher zeigten dann, dass sie durch das Schreiben von nur 4 KiB Daten in einen ungenutzten Bereich der Disk eines frisch erstellten Containers erzwingen konnten, dass ein wiederverwendeter 64-KiB-Block zugewiesen wurde. Da das Zeroing fehlte, überschrieben nur die von ihnen geschriebenen 4 KiB den Block; die verbleibenden 60 KiB behielten die Informationen, die vom Container des vorherigen Kunden zurückgelassen worden waren. Dies ist im Wesentlichen ein klassisches Problem mit nicht initialisiertem Speicher, angewendet auf persistenten Speicher.
Bei ihren Tests fanden Yomtov und seine Kollegen auf 18 von 24 Container-Platzierungen und auf 20 der 22 untersuchten zugrunde liegenden physischen Knoten Restmaterial. Diese zurückgelassenen Daten umfassten Verzeichnisstrukturen, Datenbankseiten der in Webanwendungen häufig verwendeten eingebetteten, dateibasierten Datenbank-Engine, Fragmente von Chromium-Profilen sowie Dateien wie .env-Konfigurationsdateien und Berechtigungsnachweisdateien, die alle potenziell von einem Angreifer mit einem Workers Paid-Konto auf demselben Host lesbar waren.
Cloudflare merkt an, dass ein Angreifer keine Kontrolle darüber gehabt hätte, welche spezifischen Kundendaten er wiederherstellen könnte, und er auch keine aktiv gemountete Disk hätte lesen können. Die Skripte des Forschers führten lediglich Überprüfungen durch, die aggregierte Zahlen exponierter Blöcke zurückgaben, ohne jemals tatsächlich lesbare Dateiinhalte abzurufen. Daher wurden während dieser Untersuchung keine echten Kundendaten offengelegt.
Nachdem die Konfiguration korrigiert worden war, die das Block-Zeroing übersprang, hat Cloudflare bestehende Container-Disks stillgelegt und alle zwischengespeicherten Snapshots gelöscht, die möglicherweise noch veraltete Zuordnungen enthielten. Alle Eindämmungsarbeiten waren bis zum 19. September abgeschlossen. Das Unternehmen untersuchte außerdem interne Protokolle, Telemetriedaten und historische Daten und fand keine Hinweise darauf, dass außerhalb der kontrollierten Tests des Forschers Kundendaten über diese Methode offengelegt worden waren.
Da der Patch automatisch auf die Infrastruktur von Cloudflare angewendet wurde, müssen Kunden nichts aktualisieren oder besondere Maßnahmen ergreifen, um sich vor dieser spezifischen Schwachstelle zu schützen. Für alle, die Anwendungen auf gemeinsam genutzter Cloud-Infrastruktur betreiben, unterstreicht der Vorfall jedoch eine allgemeinere Lehre: Der Umgang der Speicherschicht mit gelöschten Daten ist entscheidend für die mandantenfähige Sicherheit.
Für Website-Besitzer und Unternehmen, die ihre Seiten oder Anwendungen bei einem Anbieter hosten, ist die Trennung zwischen Kundenumgebungen eine der wichtigsten Sicherheitsvorkehrungen. Ein Hosting-Dienst, der mit strenger Mandantenisolation konzipiert ist, wie die verwaltete WordPress-Plattform von AEU Hosting, stellt sicher, dass die Daten eines Kunden nicht versehentlich in die eines anderen durchsickern können. Bei der Bewertung eines Hosting- oder Cloud-Anbieters ist es ratsam, zu fragen, wie der Speicher zwischen Mandanten bereinigt wird und wie schnell schwerwiegende Sicherheitslücken gepatcht werden. Für Cloudflare-Nutzer ist in diesem Fall keine Maßnahme erforderlich, aber das grundlegende Prinzip gilt weitreichend: Man sollte immer wissen, wie sein Anbieter mit den Daten von Kunden umgeht, die sich dieselbe physische Hardware teilen.
So schützen Sie sich
- Wenn Sie Cloudflare Workers oder Containers nutzen, ist keine Maßnahme erforderlich, da der Fix automatisch angewendet wurde.
- Fragen Sie jeden Cloud-Anbieter, den Sie nutzen, ob er Speicherblöcke zwischen Mandanten mit Nullen überschreibt, um Datenlecks zu verhindern.
- Wechseln Sie regelmäßig Zugangsdaten und Passwörter für Datenbanken und Drittanbieter-Dienste, auf die Ihre Anwendungen angewiesen sind.
- Speichern Sie sensible Dateien wie .env-Konfigurationsdateien in verschlüsseltem Speicher oder einem Secrets Manager, nicht im Klartext auf der Disk.
- Überwachen Sie Ihre eigenen Hosting- oder Anwendungsprotokolle auf ungewöhnliche Dateizugriffsmuster, insbesondere nachdem ein Anbieter eine Sicherheitslücke bekannt gegeben hat.
Begriffe Erklärt
- container Eine leichtgewichtige, isolierte Umgebung zum Ausführen einer Anwendung, ähnlich einer virtuellen Maschine, die jedoch das Betriebssystem des Hosts gemeinsam nutzt.
- zeroing Das Überschreiben von Speicherblöcken mit Nullen vor ihrer Wiederverwendung, um sicherzustellen, dass keine alten Daten lesbar bleiben.
- cross-tenant Die Situation, in der die Daten oder Aktivitäten eines Kunden für einen anderen Kunden auf derselben gemeinsam genutzten Infrastruktur sichtbar werden oder diesen beeinträchtigen.
- thin volume Ein Speicher-Volume, das nur physischen Speicherplatz belegt, wenn Daten geschrieben werden, anstatt die volle Kapazität im Voraus zuzuweisen.
- residual data Überbleibsel von Informationen eines früheren Nutzers oder Prozesses, die auf einem Speichermedium verbleiben, nachdem es freigegeben wurde.