RangeAmp — Serie von Angriffen auf CDN, die den HTTP-Header Range manipuliert

Eine Gruppe von Forschern der Peking-Universität, der Tsinghua-Universität und der University of Texas in Dallas hat Eine neue Klasse von DoS-Angriffen - RangeAmp, die auf der Nutzung des HTTP-Headers basiert. Range zur Verstärkung des Traffics über Content Delivery Networks (CDN). Der Kern der Methode ist, dass aufgrund der speziellen Verarbeitung von Range-Headern in vielen CDNs der Angreifer über das CDN ein Byte aus einer großen Datei anfordern kann, aber das CDN die gesamte Datei oder einen erheblich größeren Datenblock vom Zielserver herunterlädt, um ihn im Cache abzulegen. Der Grad der Traffic-Verstärkung bei einem solchen Angriff variiert je nach CDN und beträgt zwischen 724 und 43330 Mal, was verwendet werden kann, um den eingehenden Traffic des CDN zu überlasten oder die Bandbreite des endgültigen Kommunikationskanals zur Zielseite zu reduzieren.

RangeAmp - eine Serie von Angriffen auf CDN, die den HTTP-Header Range manipuliert.

Der Range-Header ermöglicht es dem Client, einen Bereich von Positionen in einer Datei zu definieren, der heruntergeladen werden soll, anstatt die gesamte Datei zu übertragen. Zum Beispiel kann der Client angeben "Range: bytes=0-1023" und der Server überträgt nur die ersten 1024 Bytes der Daten. Eine solche Möglichkeit ist bei großen Dateien gefragt - der Benutzer kann den Download pausieren und später von der unterbrochenen Position fortfahren. Bei der Angabe "bytes=0-0" schreibt der Standard vor, das erste Byte der Datei zu übertragen, "bytes=-1" das letzte und "bytes=1-" ab dem ersten Byte bis zum Ende der Datei. Es ist auch erlaubt, mehrere Bereiche in einem Header zu übertragen, zum Beispiel "Range: bytes=0-1023,8192-10240".

Zusätzlich wurde eine zweite Angriffsvariante vorgeschlagen, die darauf abzielt, die Netzwerklast zu erhöhen, indem der Datenverkehr über ein weiteres CDN geleitet wird, das als Proxy fungiert (z. B. wenn Cloudflare als Frontend (FCDN) und Akamai als Backend (BCDN) fungiert). Diese Methode ähnelt dem ersten Angriff, lokalisiert sich jedoch innerhalb der CDN-Netzwerke und ermöglicht es, den Datenverkehr durch andere CDNs zu verstärken, was die Infrastruktur belastet und die Servicequalität verringert.

Die Idee ist, dass der Angreifer an das CDN Range-Anfragen für mehrere Bereiche sendet, wie "bytes=0-,0-,0-…", "bytes=1-,0-,0-…" oder "bytes=-1024,0-,0-…". Die Anfragen enthalten eine große Anzahl von Bereichen "0-", die implizieren, dass die Datei von der Nullposition bis zum Ende übertragen wird. Aufgrund einer fehlerhaften Implementierung der Bereichsanalyse beim ersten CDN während des Zugriffs auf das zweite wird für jeden Bereich "0-" die gesamte Datei übertragen (die Bereiche werden nicht aggregiert, sondern nacheinander durchlaufen), wenn der ursprünglich vom Angreifer gesendete Antrag Duplikate und Überschneidungen von Bereichen enthält. Der Verstärkungsgrad des Datenverkehrs bei einem solchen Angriff reicht von 53 bis 7432.

RangeAmp - eine Serie von Angriffen auf CDN, die den HTTP-Header Range manipuliert.

Im Rahmen der Untersuchung wurde das Verhalten von 13 CDNs analysiert.
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath und Tencent Cloud. Alle untersuchten CDNs erlaubten den ersten Angriffstyp auf den Endserver. Sechs Dienste waren dem zweiten Angriffstyp auf das CDN ausgesetzt, von denen vier im Angriff als Frontend (CDN77, CDNsun, Cloudflare und StackPath) und drei als Backend (Akamai, Azure und StackPath) fungieren können. Die höchste Verstärkung wird bei Akamai und StackPath erreicht, die die Angabe von mehr als 10.000 Bereichen im Range-Header erlauben. Die CDN-Besitzer wurden vor etwa 7 Monaten über die Sicherheitslücken informiert, und zum Zeitpunkt der öffentlichen Enthüllung hatten 12 von 13 CDNs die identifizierten Probleme behoben oder ihre Bereitschaft zur Behebung signalisiert (nur der Dienst StackPath reagierte nicht).

Quelle: opennet.ru

60GB SSD 8Gb DDR4