Eine Forschungsgruppe von der Peking-Universität, der Tsinghua-Universität und der Universität Texas in Dallas eine neue Klasse von DoS-Angriffen – RangeAmp, die auf der Nutzung des HTTP-Headers basiert um den Datenverkehr über Content Delivery Networks (CDN) zu verstärken. Das Konzept besteht darin, dass der Angreifer aufgrund der besonderen Verarbeitung von Range-Headern durch viele CDNs über ein CDN ein Byte aus einer großen Datei anfordern kann, das CDN jedoch die gesamte Datei oder einen deutlich größeren Datenblock vom Zielserver herunterladen wird, um ihn im Cache zu speichern. Der Grad der Verstärkung des Datenverkehrs bei einem solchen Angriff liegt je nach CDN zwischen 724 und 43330, was genutzt werden kann, um den eingehenden Datenverkehr zum CDN zu überlasten oder die Bandbreite des Endverbindungskanals zur Website des Opfers zu verringern.

Der Range-Header ermöglicht es dem Client, die zu ladenden Positionsbereiche in einer Datei anzugeben, anstatt die gesamte Datei zu liefern. Zum Beispiel kann der Client "Range: bytes=0-1023" angeben, und der Server wird nur die ersten 1024 Bytes der Daten übertragen. Diese Funktionalität ist bei der Übertragung großer 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, dass das erste Byte in der Datei zurückgegeben wird, "bytes=-1" – das letzte, "bytes=1-" – beginnend mit Byte 1 bis zum Ende der Datei. Mehrere Bereiche können in einem Header angegeben werden, z. B. "Range: bytes=0-1023,8192-10240".
Zusätzlich wurde eine zweite Angriffsvariante vorgeschlagen, die darauf abzielt, die Netzwerklast zu erhöhen, indem der Verkehr über ein weiteres CDN geleitet wird, das als Proxy fungiert (zum Beispiel, wenn Cloudflare als Frontend (FCDN) und Akamai als Backend (BCDN) fungiert). Diese Methode ähnelt dem ersten Angriff, ist jedoch innerhalb der CDN-Netzwerke lokalisiert und ermöglicht eine Verstärkung des Datenverkehrs durch Anfragen über andere CDNs, wodurch die Infrastruktur belastet und die Dienstqualität gesenkt wird.
Die Idee ist, dass der Angreifer im 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 viele Bereiche "0-", die bedeuten, dass die Datei von der Position null bis zum Ende ausgeliefert wird. Aufgrund einer fehlerhaften Implementierung der Bereichsanalyse bei der Anfrage des ersten CDNs an das zweite wird für jeden Bereich "0-" die gesamte Datei geliefert (d. h. die Bereiche werden nicht aggregiert, sondern nacheinander durchlaufen), wenn im ursprünglich vom Angreifer gesendeten Anfrage-Duplikate und Überschneidungen der Bereiche vorhanden sind. Die Verstärkung des Datenverkehrs bei einem solchen Angriff liegt zwischen 53 und 7432.

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 geprüften CDNs waren anfällig für den ersten Angriffstyp auf den Endserver. Sechs Dienste waren dem zweiten Angriffstyp auf CDN ausgesetzt, von denen vier als Frontend (CDN77, CDNsun, Cloudflare und StackPath) und drei als Backend (Akamai, Azure und StackPath) fungieren können. Die größte Verstärkung wird bei Akamai und StackPath erreicht, die die Angabe von über 10.000 Bereichen im Range-Header zulassen. Die Betreiber der CDNs wurden vor etwa 7 Monaten über die Sicherheitsanfälligkeiten informiert und zum Zeitpunkt der öffentlichen Offenlegung hatten 12 von 13 CDNs die identifizierten Probleme behoben oder ihre Bereitschaft zur Behebung signalisiert (nur der Dienst StackPath hat nicht reagiert).
Quelle: opennet.ru
