CPDoS-Angriff, der über CDN bereitgestellte Seiten unzugänglich macht

Forscher der Universitäten Hamburg und Köln
entwickelt haben eine neue Angriffstechnik auf Content-Delivery-Netzwerke und Caching-Proxys – CPDoS (Cache-Poisoned Denial-of-Service). Der Angriff ermöglicht es, den Zugriff auf eine Seite durch Cache-Poisoning zu verweigern.

Das Problem liegt darin begründet, dass CDNs nicht nur erfolgreich abgeschlossene Anfragen zwischenspeichern, sondern auch Situationen, in denen der http-Server einen Fehler zurückgibt. Bei Problemen mit der Anforderungsformung gibt der Server in der Regel den Fehler 400 (Bad Request) aus; die einzige Ausnahme bildet IIS, der bei zu großen Headern den Fehler 404 (Not Found) ausgibt. Der Standard erlaubt nur das Zwischenspeichern von Fehlern mit den Codes 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) und 501 (Not Implemented), aber einige CDNs speichern auch Antworten mit Code 400 (Bad Request), was davon abhängt auf die gesendete Anfrage.

Angreifer können dazu führen, dass die ursprüngliche Ressource den Fehler „400 Bad Request“ zurückgibt, indem sie eine Anfrage mit auf eine bestimmte Weise formatierten HTTP-Headern senden. Diese Header werden vom CDN nicht berücksichtigt, sodass Informationen über die Unfähigkeit, auf die Seite zuzugreifen, zwischengespeichert werden und alle anderen gültigen Benutzeranfragen vor Ablauf der Zeitüberschreitung zu einem Fehler führen können, obwohl die ursprüngliche Website den Inhalt bereitstellt ohne Probleme.

Es wurden drei Angriffsoptionen vorgeschlagen, um den HTTP-Server zu zwingen, einen Fehler zurückzugeben:

  • HMO (HTTP Method Override) – ein Angreifer kann die ursprüngliche Anforderungsmethode durch die Header „X-HTTP-Method-Override“, „X-HTTP-Method“ oder „X-Method-Override“ überschreiben, die von einigen Servern unterstützt werden, aber im CDN nicht berücksichtigt. Sie können beispielsweise die ursprüngliche Methode „GET“ in die Methode „DELETE“ ändern, die auf dem Server verboten ist, oder in die Methode „POST“, die für Statik nicht anwendbar ist;

    CPDoS-Angriff, der über CDN bereitgestellte Seiten unzugänglich macht

  • HHO (HTTP Header Oversize) – ein Angreifer kann die Header-Größe so wählen, dass sie das Limit des Quellservers überschreitet, aber nicht unter die CDN-Beschränkungen fällt. Beispielsweise begrenzt Apache httpd die Headergröße auf 8 KB und Amazon Cloudfront CDN erlaubt Header bis zu 20 KB;
    CPDoS-Angriff, der über CDN bereitgestellte Seiten unzugänglich macht

  • HMC (HTTP Meta Character) – Ein Angreifer kann Sonderzeichen in die Anfrage einfügen (\n, \r, \a), die auf dem Quellserver als ungültig gelten, im CDN jedoch ignoriert werden.

    CPDoS-Angriff, der über CDN bereitgestellte Seiten unzugänglich macht

Am anfälligsten für Angriffe war das von Amazon Web Services (AWS) verwendete CloudFront-CDN. Amazon hat das Problem inzwischen behoben, indem es das Fehler-Caching deaktiviert hat, aber die Forscher brauchten mehr als drei Monate, um den Schutz hinzuzufügen. Das Problem betraf auch Cloudflare, Varnish, Akamai, CDN77 und
Fastly, aber der Angriff über sie ist auf Zielserver beschränkt, die IIS, ASP.NET usw. verwenden. Flasche и Spielen Sie 1. Es ist notiert, dass 11 % der Domains des US-Verteidigungsministeriums, 16 % der URLs aus der HTTP-Archivdatenbank und etwa 30 % der 500 größten von Alexa gerankten Websites möglicherweise angegriffen werden könnten.

Als Workaround zum Blockieren eines Angriffs auf der Site-Seite können Sie den Header „Cache-Control: no-store“ verwenden, der das Zwischenspeichern von Antworten verhindert. In einigen CDNs, z.B.
CloudFront und Akamai können Sie das Fehler-Caching auf der Ebene der Profileinstellungen deaktivieren. Zum Schutz können Sie auch Web Application Firewalls (WAF, Web Application Firewall) nutzen, diese müssen jedoch auf der CDN-Seite vor den Caching-Hosts implementiert werden.

Source: opennet.ru

Kommentar hinzufügen