RangeAmp - serija CDN napada koji manipulišu Range HTTP zaglavljem

Tim istraživača sa Univerziteta u Pekingu, Univerziteta Tsinghua i Univerziteta Teksas u Dalasu otkriveno nova klasa DoS napada - RangeAmp, zasnovana na upotrebi HTTP zaglavlja domet organizirati povećanje prometa putem mreža za isporuku sadržaja (CDN). Suština metode je da zbog načina na koji se zaglavlja opsega obrađuju u mnogim CDN-ovima, napadač može zatražiti jedan bajt iz velike datoteke preko CDN-a, ali će CDN preuzeti cijelu datoteku ili mnogo veći blok podataka sa ciljni server koji treba staviti u keš memoriju. Stepen pojačanja prometa prilikom ovakvog napada, ovisno o CDN-u, kreće se od 724 do 43330 puta, što se može iskoristiti za preopterećenje CDN-a dolaznim prometom ili smanjenje kapaciteta konačnog komunikacijskog kanala do žrtvine stranice.

RangeAmp - serija CDN napada koji manipulišu Range HTTP zaglavljem

Zaglavlje Range daje klijentu mogućnost da specificira raspon pozicija u datoteci koje treba preuzeti umjesto vraćanja cijele datoteke. Na primjer, klijent može odrediti "Range: bytes=0-1023" i server će prenijeti samo prvih 1024 bajtova podataka. Ova funkcija je tražena pri preuzimanju velikih datoteka - korisnik može pauzirati preuzimanje i zatim nastaviti sa prekinute pozicije. Kada se specificira “bytes=0-0”, standard nalaže da se da prvi bajt u datoteci, “bytes=-1” - posljednji, “bytes=1-” - počevši od 1 bajta do kraja datoteke. Moguće je prenijeti nekoliko raspona u jednom zaglavlju, na primjer “Range: bytes=0-1023,8192-10240”.

Dodatno, predložena je i druga opcija napada, čiji je cilj povećanje mrežnog opterećenja prilikom prosljeđivanja prometa preko drugog CDN-a, koji se koristi kao proxy (na primjer, kada Cloudflare djeluje kao frontend (FCDN), a Akamai djeluje kao backend ( BCDN). Metoda je slična prvom napadu, ali je lokalizirana unutar CDN mreža i omogućava povećanje prometa kada se pristupa preko drugih CDN-ova, povećavajući opterećenje na infrastrukturi i smanjujući kvalitetu usluge.

Ideja je da napadač CDN-u šalje zahtjeve za opseg od nekoliko raspona, kao što su "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." ili "bytes=-1024,0 ,0-,0-...". Zahtjevi sadrže veliki broj raspona “0-”, što implicira da se datoteka vraća od nulte pozicije do kraja. Zbog pogrešne implementacije raščlanjivanja opsega, kada prvi CDN pristupi drugom, potpuna datoteka se šalje za svaki raspon “53-” (opsezi se ne agregiraju, već se sekvencijalno ponavljaju), ako postoji dupliciranje i presjek raspona u zahtjev koji je napadač prvobitno poslao. Stepen pojačanja saobraćaja u ovakvom napadu kreće se od 7432 do XNUMX puta.

RangeAmp - serija CDN napada koji manipulišu Range HTTP zaglavljem

Tokom studije proučavano je ponašanje 13 CDN-a -
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath i Tencent Cloud. Svi ispitani CDN-ovi dozvolili su prvi tip napada na krajnji server. Druga varijanta CDN napada zahvatila je 6 servisa, od kojih su četiri mogle djelovati kao frontend u napadu (CDN77, CDNsun, Cloudflare i StackPath) i tri kao backend (Akamai, Azure i StackPath). Najveći dobitak je postignut u Akamai-u i StackPath-u, koji omogućavaju da se u zaglavlju Range specificira više od 10 hiljada opsega. Vlasnici CDN-a su obaviješteni o ranjivosti prije otprilike 7 mjeseci, a do trenutka kada je informacija objavljena u javnosti, 12 od 13 CDN-ova je otklonilo identifikovane probleme ili izrazilo spremnost da ih otklone (samo StackPath servis nije odgovorio).

izvor: opennet.ru

Dodajte komentar