Tim istraživača sa Univerziteta u Pekingu, Univerziteta Tsinghua i Univerziteta Teksas u Dalasu
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.
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