Një grup kërkuesish nga Universiteti i Pekinit, Universiteti Tsinghua dhe Universiteti i Teksasit në Dallas një klasë të re sulmesh DoS — RangeAmp, e cila bazohet në përdorimin e headers HTTP për të organizuar përforcimin e trafikut përmes rrjetesh të shpërndarjes së përmbajtjes (CDN). Thelbi i metodës është se për shkak të veçorive të procesimit të headers Range në shumë CDN, sulmuesi mund të kërkojë përmes CDN një byte nga një skedar i madh, por CDN do të ngarkojë nga serveri i synuar të gjithë skedarin ose një bllok shumë më të madh të dhënash për ta vendosur në cache. Shkalla e përforcimit të trafikut në këtë sulm varion përkatësisht nga 724 deri në 43330 herë, që mund të përdoret për të mbingarkuar trafik të hyrës në CDN ose për të ulur kapacitetin e kanalit përfundimtar të komunikimit drejt faqes së viktimës.

Headeri Range i jep klientit mundësinë të përcaktojë diapazonin e pozita në skedar që duhet ngarkuar në vend të dorëzimit të skedarit të plotë. Për shembull, klienti mund të tregojë "Range: bytes=0-1023" dhe serveri do të dërgojë vetëm 1024 byte të parë të të dhënave. Kjo mundësi është shumë e kërkuar në ngarkimin e skedarëve të mëdhenj — përdoruesi mund ta ndalë ngarkimin dhe më pas ta vazhdojë atë nga pozita e ndërprerë. Kur tregohet "bytes=0-0" standardi parashikon të dërgojë byte të parë në skedar, "bytes=-1" — të fundit, "bytes=1-" — duke filluar nga byte i parë dhe deri në fund të skedarit. Përcaktohet dërgimi i disa diapazoneve në një header, për shembull "Range: bytes=0-1023,8192-10240".
Për më tepër, është propozuar një variant tjetër sulmi, që ka si objektiv rritjen e ngarkesës rrjetërore duke kaluar trafik përmes një CDN tjetër që përdoret si proxy (për shembull, kur si frontend (FCDN) përdoret Cloudflare, dhe si backend (BCDN) — Akamai). Metoda është e ngjashme me sulmin e parë, por lokalizohet brenda rrjeteve CDN dhe lejon përforcimin e trafikut kur lidhet përmes CDN-ve të tjera, duke rritur ngarkesën mbi infrastrukturën dhe ulur cilësinë e shërbimit.
Ideja është që sulmuesi dërgon në CDN kërkesa Range për disa diapazone, si "bytes=0-,0-,0-…", "bytes=1-,0-,0-…" ose "bytes=-1024,0-,0-…". Kërkesat përmbajnë një numër të madh diapazonesh "0-", që nënkupton dorëzimin e skedarit nga pozita zero deri në fund. Për shkak të zbatimit të gabuar të analizës së diapazoneve kur CDN e parë i drejtohet atij të dytë, për çdo diapazon "0-" dorëzohet skedari i plotë (diapazonet nuk aggregohen, por kalohen një nga një), nëse në kërkesën e dërguar fillimisht nga sulmuesi ka duplicim dhe mbivendosje të diapazoneve. Shkalla e përforcimit të trafikut në këtë sulm është nga 53 deri në 7432 herë.

Gjatë procesit të hulumtimit u studiuar sjellja e 13 CDN —
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath dhe Tencent Cloud. Të gjitha CDN-të e shqyrtuara lejuan formën e parë të sulmit ndaj serverit përfundimtar. Variantit të dytë të sulmit ndaj CDN iu janë nënshtruar 6 shërbime, nga të cilat katër mund të veprojnë si frontend (CDN77, CDNsun, Cloudflare dhe StackPath) dhe tri si backend (Akamai, Azure dhe StackPath). Forca më e madhe e përforcimit arrihet në Akamai dhe StackPath, të cilat lejojnë specifikimin në headerin Range të më shumë se 10,000 diapazonesh. Pronarët e CDN janë njoftuar për dobësitë rreth 7 muaj më parë dhe deri në momentin e zbulimit publik, 12 nga 13 CDN kanë eliminuar problemet e identifikuara ose shprehën gatishmërinë për t'i eliminuar (vetëm shërbimi StackPath nuk ka reaguar).
Burimi: opennet.ru
