En gruppe forskere fra Peking Universitet, Tsinghua Universitet og University of Texas i Dallas en ny klasse af DoS-angreb — RangeAmp, baseret på brugen af HTTP-headeren for at organisere trafikforstærkning gennem indholdsleveringsnetværk (CDN). Essensen af metoden er, at på grund af den måde, som Range-headere behandles af mange CDN, kan angriberen anmode om en enkelt byte fra en stor fil via CDN, men CDN vil hente hele filen eller en betydeligt større datablok fra målserveren for at placere i cachen. Grad af trafikforstærkning ved et sådant angreb afhængig af CDN spænder fra 724 til 43330 gange, hvilket kan bruges til at overbelaste den indkommende trafik til CDN eller reducere båndbredden af den endelige forbindelse til ofrets websted.

Range-headeren giver klienten mulighed for at specificere et interval af positioner i filen, som skal downloades i stedet for at levere hele filen. For eksempel kan klienten angive "Range: bytes=0-1023" og serveren vil kun sende de første 1024 bytes data. Denne funktion er nødvendig ved download af store filer — brugeren kan pause download og derefter fortsætte fra det punkt, det blev afbrudt. Ved at angive "bytes=0-0" foreskriver standarden, at den første byte i filen skal sendes, "bytes=-1" — den sidste, "bytes=1-" — fra byte 1 og til slutningen af filen. Det er tilladt at sende flere intervaller i en enkelt header, for eksempel "Range: bytes=0-1023,8192-10240".
Derudover er der blevet foreslået en anden angrebsmetode, der har til formål at øge netværksbelastningen ved at lede trafikken gennem endnu en CDN, der bruges som proxy (for eksempel når Cloudflare fungerer som frontend (FCDN), og Akamai som backend (BCDN)). Metoden minder om det første angreb, men lokaliseres inden for CDN-netværkene og tillader at forstærke trafikken ved anmodning gennem andre CDN, hvilket øger belastningen på infrastrukturen og sænker servicekvaliteten.
Ideen er, at en angriber sender Range-anmodninger til CDN fra flere intervaller, såsom «bytes=0-,0-,0-…», «bytes=1-,0-,0-…» eller «bytes=-1024,0-,0-…». Anmodningerne indeholder et stort antal intervaller «0-«, hvilket indebærer levering af filen fra nulpositionen til slutningen. På grund af en ukorrekt implementering af intervalparsing ved henvendelse fra det første CDN til det andet, leveres hele filen for hvert interval «0-» (intervallerne aggregeres ikke, men gennemgås sekventielt), hvis der i den oprindeligt sendt anmodning fra angriberen er dobbeltheder og overlap. Forstærkningen af trafikken i en sådan angreb varierer fra 53 til 7432 gange.

Under undersøgelsen blev adfærden af 13 CDN-steder undersøgt —
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath og Tencent Cloud. Alle de overvejede CDN tillod den første type angreb på den endelige server. Seks tjenester blev truffet af den anden angrebsform mod CDN, hvoraf fire kan fungere som front-end (CDN77, CDNsun, Cloudflare og StackPath) og tre som back-end (Akamai, Azure og StackPath). Den største forstærkning opnås i Akamai og StackPath, som tillader angivelse af mere end 10.000 intervaller i Range-headeren. CDN-ejerne blev underrettet om sårbarhederne for cirka 7 måneder siden, og på tidspunktet for offentliggørelsen af oplysningerne havde 12 ud af 13 CDN løst de identificerede problemer eller udtrykt vilje til at løse dem (kun tjenesten StackPath reagerede ikke).
Kilde: opennet.ru
