En grupp forskare från Pekinguniversitetet, Tsinghua-universitetet och University of Texas i Dallas en ny klass av DoS-attacker — RangeAmp, baserad på användning av HTTP-huvuden för att organisera trafikförstärkning genom innehållsleveransnätverk (CDN). Metoden går ut på att på grund av hur Range-huvuden hanteras av många CDN kan angriparen begära en byte från en stor fil genom CDN, men CDN kommer att hämta hela filen eller en betydligt större datamängd från målservern för att lagra det i cache. Grad av trafikförstärkning vid en sådan attack varierar beroende på CDN från 724 upp till 43330 gånger, vilket kan användas för att överbelasta ingående trafik till CDN eller minska kapaciteten på den slutliga kommunikationskanalen till målet.

Range-huvudet ger klienten möjlighet att ange områden av positioner i filen som ska laddas ner istället för hela filen. Till exempel kan klienten ange "Range: bytes=0-1023" och servern kommer att överföra endast de första 1024 byten av data. Denna funktion efterfrågas ofta vid nedladdning av stora filer — användaren kan pausa nedladdningen och senare återuppta den från den avbrutna positionen. Genom att ange "bytes=0-0" föreskriver standarden att den första byten av filen ska returneras, "bytes=-1" den sista, "bytes=1-" från den första byten till slutet av filen. Det är också tillåtet att överföra flera områden i ett och samma huvud, t.ex. "Range: bytes=0-1023,8192-10240".
Dessutom har ett andra attackalternativ föreslagits, som syftar till att öka nätverksbelastningen vid trafikoment kring ett annat CDN som används som proxy (t.ex. när Cloudflare fungerar som frontend (FCDN) och Akamai som backend (BCDN)). Metoden liknar den första attacken, men lokaliseras inom CDN-näten och gör det möjligt att förstärka trafiken genom att använda andra CDN, vilket ökar belastningen på infrastrukturen och sänker kvalitén på servicen.
Idén är att angriparen skickar Range-förfrågningar till CDN med flera områden, som "bytes=0-,0-,0-…", "bytes=1-,0-,0-…" eller "bytes=-1024,0-,0-…". Förfrågningarna innehåller ett stort antal områden "0-", vilket innebär att filen återges från nollpositionen till slutet. På grund av felaktig implementering av områdesparsering när den första CDN kontaktar den andra, återges hela filen för varje område "0-" (områdena aggregeras inte utan genomgås sekventiellt) om det finns duplicering och överlappning av områden i den ursprungligen skickade förfrågan från angriparen. Grad av trafikförstärkning i en sådan attack varierar från 53 till 7432 gånger.

Under forskningen studerades beteendet hos 13 CDN —
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath och Tencent Cloud. Alla de granskade CDN tillät den första typen av attack på den slutgiltiga servern. Den andra typen av attack på CDN utsattes 6 tjänster för, varav fyra kan agera som frontend i attacken (CDN77, CDNsun, Cloudflare och StackPath) och tre som backend (Akamai, Azure och StackPath). Den största förstärkningen uppnås i Akamai och StackPath, som tillåter mer än 10 000 områden att anges i Range-huvudet. Ägarna av CDN blev meddelade om sårbarheterna för cirka 7 månader sedan, och vid tidpunkten för offentliggörandet hade 12 av 13 CDN åtgärdat de påvisade problemen eller uttryckt beredskap att åtgärda dem (endast tjänsten StackPath hade inte reagerat).
Källa: opennet.ru
