Abo
  • Services:
Anzeige
Die Paypal-Webseite gab Daten auch preis, wenn man einen unsinnigen Dateinamen mit CSS-Endung anfügte.
Die Paypal-Webseite gab Daten auch preis, wenn man einen unsinnigen Dateinamen mit CSS-Endung anfügte. (Bild: Omer Gil)

Sicherheitslücke: Caches von CDN-Netzwerken führen zu Datenleck

Die Paypal-Webseite gab Daten auch preis, wenn man einen unsinnigen Dateinamen mit CSS-Endung anfügte.
Die Paypal-Webseite gab Daten auch preis, wenn man einen unsinnigen Dateinamen mit CSS-Endung anfügte. (Bild: Omer Gil)

Mittels Caches von Content-Delivery-Netzwerken und Loadbalancern lassen sich geheime Daten aus Webservices extrahieren. Dafür müssen jedoch zwei Fehler zusammenkommen. Unter anderem Paypal war davon betroffen.

Vor Webseiten geschaltete Caching-Services können zu einem Sicherheitsrisiko werden. Der Sicherheitsforscher Omer Gil präsentierte die sogenannte Web Cache Deception Attack bereits im Februar in einem Blogpost. Auf der Black-Hat-Konferenz hat er den Angriff nochmal im Detail erläutert.

Anzeige

Viele Webseiten nutzen heute Services von Firmen wie Cloudflare oder Akamai, die vor die eigentliche Webseite vorgeschaltet werden und Anfragen schneller beantworten. Statische Dateien, also etwa Bilder, CSS-Dateien oder HTML-Seiten, die sich nicht verändern, können dabei von diesen Services in einem Cache gespeichert und somit schneller ausgeliefert werden, wenn ein anderer Nutzer diese Daten anfragt. Man spart sich einen zusätzlichen Request zur ursprünglichen Webseite.

Wichtig ist dabei aber natürlich, dass die gecachten Dateien keine geheimen Daten enthalten. Webseiten, die nur einem eingeloggten Nutzer angezeigt werden und individuell für diesen angepasst sind, dürfen nicht im Cache landen und an andere Nutzer ausgeliefert werden. Als Orientierung, welche Dateien gecacht werden können, nutzen viele Content-Delivery-Netzwerke (CDNs) die Dateiendung. CSS-Dateien oder Javascript ist beispielsweise in der Regel unproblematisch. Zumindest bei Javascript gibt es aber Ausnahmen, da auch diese Skripte manchmal dynamisch erzeugt werden. Das hat schon in anderen Situationen zu Angriffen geführt.

URL-Parser erlauben angehängte Nonsens-Daten

Die Idee der Web-Cache-Deception-Attack ist folgende: Manche Webanwendungen erlauben es, an eine URL beliebige Dinge anzuhängen. Besteht beispielsweise eine Seite https://www.example.com/account/ dann liefert ein Aufruf der URL https://www.example.com/account/invalid.css denselben Inhalt.

Der Hintergrund: Manche Webanwendungen nutzen einen URL-Dispatcher-Code, der den Pfad der URL prüft und an den entsprechenden Backend-Code weiterleitet. Wenn der URL-Dispatcher nur den Beginn einer URL vergleicht, kommt es zu diesem Verhalten. Gil zeigte ein Codebeispiel für Django, in dem die URL mit dem regulären Ausdruck ^inbox/ geprüft wird. Verhindern kann man dieses unerwünschte Verhalten mit einem regulären Ausdruck, der auch prüft, dass die URL hier zu Ende ist. Dieser würde dann ^inbox/$ lauten - das zusätzliche Dollar-Zeichen prüft das Stringende.

Der Angriff läuft nun folgendermaßen ab: Ein Angreifer lockt das Oper auf eine Seite mit einer URL der Form https://www.example.com/account/invalid.css - wie oben beschrieben. Wenn ein CDN einen Cache für die Seite bereitstellt und die Datei dank der CSS-Endung im Cache speichert, kann sie ein Angreifer anschließend dort selbst abrufen. Sind dort geheime Informationen abrufbar, kann der Angreifer sie auslesen.

CDN-Anbieter ignorieren HTTP-Cache-Header

Damit der Angriff funktioniert, muss allerdings noch etwas dazukommen. Über HTTP-Header kann eine Webseite kontrollieren, ob Seiten gecacht werden können. Dynamisch generierte Seiten sollten üblicherweise einen Header mitschicken, der das Cachen unterbindet. Aber offenbar ignorieren manche CDN-Services die Caching-Header, darunter auch Akamai, einer der größten Anbieter der Branche.

Bemerkenswert ist dabei ein Feature von Cloudflare. Cloudflare bietet an, dass der CDN-Cache die Cache-Header einer Anwendung ignoriert und trotzdem dem Nutzer Cache-Header schickt, die den Browser anweisen, eine Seite nicht zu cachen. Das erscheint in diesem Kontext ausgesprochen riskant. Cloudflare hat zwar in einem Blogbeitrag auf Gils Angriff reagiert, auf dieses problematische Feature wurde dort allerdings nicht eingegangen.

Gils Angriff ist durchaus praxisrelevant: Zum Zeitpunkt seiner Recherchen war die Paypal-Webseite verwundbar. Dabei konnte ein Angreifer den Namen des Nutzers, den aktuell im Account vorgehaltenen Geldbetrag, Informationen über Transaktionen, die Passnummer, die Adresse, Telefonnummer und die letzten vier Stellen der Kreditkartennummer auslesen. Paypal nutzte dabei Akamai als CDN.

Auf anderen Seiten, die Gil nicht nennt, hat er nach eigenen Angaben auch die Möglichkeit gefunden, den Account komplett zu übernehmen. Auf der gecachten Seite war ein Token zum Schutz vor Cross-Site-Request-Forgery-Angriffen abrufbar.

Entwickler von Webanwendungen können sich vor derartigen Angriffen am besten schützen, indem sie solche URLs nicht zulassen. So sollte immer die gesamte URL geprüft werden - und wenn dort sinnlose Daten angehängt sind, sollte die Seite mit einem Fehler antworten. Doch auch CDN-Anbieter sollten hier handeln. Cache-Header zu ignorieren ist sicher generell keine gute Idee.


eye home zur Startseite
schauma 28. Jul 2017

IMHO Die Sicherheitslücke liegt im Verhalten des Webservers. Er erstellt aus einer...

deutscher_michel 28. Jul 2017

Zum Einen: der Vorteil eines CDNs liegt in erster linie nicht in einem "Cache" zur...



Anzeige

Stellenmarkt
  1. Wilken Neutrasoft GmbH, Greven
  2. NetApp Deutschland GmbH, Neu-Isenburg
  3. Constantia Business Services GmbH, Pirk
  4. Giesecke & Devrient 3S GmbH, München


Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)
  2. 129,99€ (219,98€ für zwei)

Folgen Sie uns
       


  1. Remote Desktop

    Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

  2. Telekom-Chef

    Regulierung soll an schlechtem Glasfaserausbau schuld sein

  3. Hacker One

    Nur 20 Prozent der Bounty-Jäger hacken in Vollzeit

  4. Memories of Mars

    Basisbau und Überlebenskampf auf dem Roten Planeten

  5. Elektromobilität

    Audi testet intelligentes Energiesystem für daheim

  6. Mi Notebook Air

    Xiaomi baut Quadcore und Nvidia-Grafik ein

  7. Amazon Go

    Kassenloser Supermarkt öffnet

  8. Microsoft

    Großer Widerstand gegen US-Zugriff auf weltweite Cloud-Daten

  9. Künstliche Intelligenz

    Microsofts Bot zeichnet auf Geheiß alles

  10. Gemeinsame Bearbeitung

    Office für Mac wird teamfähig



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Indiegames-Rundschau: Krawall mit Knetmännchen und ein Mann im Fass
Indiegames-Rundschau
Krawall mit Knetmännchen und ein Mann im Fass
  1. Games 2017 Die besten Indiespiele des Jahres
  2. Indiegames-Rundschau Von Weltraumpiraten und dem Wunderdoktor

BeA: Soldan will Anwälten das Internet ausdrucken
BeA
Soldan will Anwälten das Internet ausdrucken
  1. BeA Bundesrechtsanwaltskammer stellt Zahlungen an Atos ein
  2. Chipkarten-Hersteller Thales übernimmt Gemalto
  3. Atos Gemalto bekommt 4,3-Milliarden-Euro-Angebot

Nachbarschaftsnetzwerke: Nebenan statt mittendrin
Nachbarschaftsnetzwerke
Nebenan statt mittendrin
  1. US-Wahl 2016 Twitter findet weitere russische Manipulationskonten
  2. Nextdoor Das soziale Netzwerk für den Blockwart
  3. Hasskommentare Neuer Eco-Chef Süme will nicht mit AfD reden

  1. Re: SPD müsse sich erneuern?

    Palerider | 11:23

  2. Re: Schön die Fehler bei anderen Suchen

    sundilsan | 11:23

  3. Re: Regulierung ist immer schlecht für die...

    Schattenwerk | 11:22

  4. Re: Halt deine sch**ß Fr*ss* und bau einfach mal...

    sundilsan | 11:20

  5. Re: War das nicht die SPD, die seit 2013 keine...

    Palerider | 11:20


  1. 11:29

  2. 10:58

  3. 10:43

  4. 10:28

  5. 10:10

  6. 09:31

  7. 09:16

  8. 09:00


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel