CPDoS-Angriff, der es ermöglicht, Seiten, die über CDN bereitgestellt werden, unzugänglich zu machen

Forscher der Universitäten Hamburg und Köln
haben eine neue Technik für Angriffe auf Content Delivery Networks und zwischengespeicherte Proxys — CPDoS (Cache-Poisoned Denial-of-Service). Der Angriff ermöglicht den Zugriff auf eine Seite durch das Vergiften des Caches zu verweigern.

Das Problem besteht darin, dass CDNs nicht nur erfolgreich ausgeführte Anfragen cachen, sondern auch Situationen, in denen der HTTP-Server einen Fehler zurückgibt. In der Regel gibt der Server bei Problemen mit der Erstellung von Anfragen den Fehler 400 (Bad Request) aus; eine Ausnahme bildet IIS, der bei zu großen Headern den Fehler 404 (Not Found) zurückgibt. Der Standard erlaubt nur das Cachen von Fehlern mit den Codes 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) und 501 (Not Implemented), jedoch cachen einige CDNs auch Antworten mit dem Code 400 (Bad Request), der von der gesendeten Anfrage abhängt.

Angreifer können auf dem ursprünglichen Ressourcen Fehler 400 Bad Request zurückgeben, indem sie eine Anfrage mit bestimmten HTTP-Headern senden. Diese Header werden von CDNs nicht berücksichtigt, sodass Informationen über den fehlenden Zugriff auf die Seite in den Cache gelangen und alle anderen korrekten Benutzeranfragen bis zum Ablauf der Timeout-Periode zu einer Fehleranzeige führen können, obwohl die ursprüngliche Seite problemlos Inhalte liefert.

Um den HTTP-Server zur Rückgabe eines Fehlers zu zwingen, werden drei Angriffsvarianten vorgeschlagen:

  • HMO (HTTP Method Override) — der Angreifer kann die ursprüngliche Anfragemethode durch die Header "X-HTTP-Method-Override", "X-HTTP-Method" oder "X-Method-Override" überschreiben, die von einigen Servern unterstützt, jedoch von CDNs nicht berücksichtigt werden. Zum Beispiel kann die ursprüngliche Methode "GET" in die auf dem Server verbotene Methode "DELETE" oder die für statische Inhalte ungeeignete Methode "POST" geändert werden;

    CPDoS-Angriff, der es ermöglicht, Seiten, die über CDN bereitgestellt werden, unzugänglich zu machen
  • HHO (HTTP Header Oversize) — der Angreifer kann die Größe des Headers so wählen, dass sie die Grenze des ursprünglichen Servers überschreitet, jedoch nicht unter die CDN-Beschränkungen fällt. Zum Beispiel beschränkt Apache httpd die Headergröße auf 8 KB, während das CDN Amazon Cloudfront Header bis zu 20 KB zulässt;
    CPDoS-Angriff, der es ermöglicht, Seiten, die über CDN bereitgestellt werden, unzugänglich zu machen
  • HMC (HTTP Meta Character) — der Angreifer kann spezielle Zeichen (\n, \r, \a) in die Anfrage einfügen, die auf dem ursprünglichen Server als ungültig gelten, jedoch im CDN ignoriert werden.

    CPDoS-Angriff, der es ermöglicht, Seiten, die über CDN bereitgestellt werden, unzugänglich zu machen

Am anfälligsten für Angriffe war das CDN CloudFront, das in Amazon Web Services (AWS) verwendet wird. Derzeit hat die Firma Amazon das Problem durch ein Verbot der Fehler-Cachebildung behoben, doch die Forscher benötigten mehr als drei Monate, um einen Schutz zu implementieren. Auch Cloudflare, Varnish, Akamai, CDN77 und
Fastly waren betroffen, aber die Angriffe über sie waren auf Zielserver mit IIS und ASP.NET beschränkt. Flask und Play 1. Es wird angemerkt, weshalb potenziell 11 % der Domains des US-Verteidigungsministeriums, 16 % der URLs aus der HTTP Archive-Datenbank und etwa 30 % der 500 größten Websites im Alexa-Ranking anfällig für Angriffe sein könnten.

Als Umgehungsmethode zum Blockieren von Angriffen auf der Website kann der Header „Cache-Control: no-store“ verwendet werden, der die Cachebildung von Antworten verbietet. In einigen CDNs, wie zum Beispiel in
CloudFront und Akamai, kann die Cachebildung von Fehlern auf Profil-Ebene deaktiviert werden. Zum Schutz können auch Web Application Firewalls (WAF) eingesetzt werden, jedoch müssen diese am CDN vor den hostenden Servern, die die Cachebildung durchführen, implementiert werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4