RangeAmp - en serie CDN-angrep som manipulerer Range HTTP-headeren

Et team av forskere fra Peking University, Tsinghua University og University of Texas i Dallas avslørt en ny klasse DoS-angrep - RangeAmp, basert på bruk av en HTTP-header Område å organisere trafikkforsterkning gjennom innholdsleveringsnettverk (CDN). Essensen av metoden er at på grunn av måten Range-overskrifter behandles i mange CDN-er, kan en angriper be om én byte fra en stor fil gjennom CDN, men CDN-en vil laste ned hele filen eller en mye større blokk med data fra målserver som skal plasseres i hurtigbufferen. Graden av trafikkforsterkning under et slikt angrep, avhengig av CDN, varierer fra 724 til 43330 ganger, som kan brukes til å overbelaste CDN med innkommende trafikk eller redusere kapasiteten til den endelige kommunikasjonskanalen til offerets nettsted.

RangeAmp - en serie CDN-angrep som manipulerer Range HTTP-headeren

Range-overskriften gir klienten muligheten til å spesifisere en rekke posisjoner i filen som skal lastes ned i stedet for å returnere hele filen. For eksempel kan klienten spesifisere "Range: bytes=0-1023", og serveren vil bare overføre de første 1024 bytene med data. Denne funksjonen er etterspurt når du laster ned store filer - brukeren kan sette nedlastingen på pause og deretter fortsette fra avbrutt posisjon. Når du spesifiserer "bytes=0-0", instruerer standarden å gi den første byten i filen, "bytes=-1" - den siste, "bytes=1-" - fra 1 byte til slutten av filen. Det er mulig å overføre flere områder i én overskrift, for eksempel "Range: bytes=0-1023,8192-10240".

I tillegg har et annet angrepsalternativ blitt foreslått, rettet mot å øke nettverksbelastningen når trafikk videresendes gjennom et annet CDN, som brukes som en proxy (for eksempel når Cloudflare fungerer som frontend (FCDN), og Akamai fungerer som backend ( BCDN). Metoden er lik det første angrepet, men er lokalisert innenfor CDN-nettverk og gir mulighet for økt trafikk ved tilgang til andre CDN-er, noe som øker belastningen på infrastrukturen og reduserer kvaliteten på tjenesten.

Tanken er at angriperen sender rekkeviddeforespørsler for flere områder til CDN, for eksempel "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." eller "bytes=-1024,0" ,0-,0-...". Forespørsler inneholder et stort antall "0-"-områder, noe som antyder at filen returneres fra posisjon null til slutten. På grunn av en feil implementering av områdeparsing, når den første CDN-en åpner den andre, sendes en komplett fil for hvert "53-"-område (områdene er ikke aggregert, men sekvensielt iterert), hvis det er duplisering og skjæring av områder i forespørselen som opprinnelig ble sendt av angriperen. Graden av trafikkforsterkning i et slikt angrep varierer fra 7432 til XNUMX ganger.

RangeAmp - en serie CDN-angrep som manipulerer Range HTTP-headeren

I løpet av studien ble oppførselen til 13 CDN-er studert -
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath og Tencent Cloud. Alle de undersøkte CDN-ene tillot den første typen angrep på sluttserveren. Den andre varianten av CDN-angrepet påvirket 6 tjenester, hvorav fire kunne fungere som en frontend i angrepet (CDN77, CDNsun, Cloudflare og StackPath) og tre som en backend (Akamai, Azure og StackPath). Den største gevinsten oppnås i Akamai og StackPath, som lar mer enn 10 tusen områder spesifiseres i Range-overskriften. CDN-eiere ble varslet om sårbarhetene for ca. 7 måneder siden, og da informasjonen ble offentliggjort, hadde 12 av 13 CDN-er fikset de identifiserte problemene eller uttrykt beredskap til å fikse dem (bare StackPath-tjenesten svarte ikke).

Kilde: opennet.ru

Legg til en kommentar