Skupina výzkumníků z Pekingské univerzity, Univerzity Tsinghua a Texaské univerzity v Dallasu nová třída DoS útoků — RangeAmp, založená na využití HTTP hlavičky k uspořádání zesílení traffiku přes sítě pro doručování obsahu (CDN). Podstatou metody je, že kvůli vlastnostem zpracování Range hlaviček ve mnoha CDN může útočník požádat přes CDN o jeden byte z velkého souboru, ale CDN stáhne z cílového serveru celý soubor nebo výrazně větší blok dat pro uložení do cache. Úroveň zesílení traffiku při takovém útoku se v závislosti na CDN pohybuje od 724 do 43330krát, což může být využito k přetížení příchozího traffiku CDN nebo snížení propustnosti koncového komunikačního kanálu ke stránce oběti.

Hlavička Range dává klientovi možnost určit rozsah pozic v souboru, které mají být staženy místo vydání celého souboru. Například klient může specifikovat „Range: bytes=0-1023“ a server předá pouze prvních 1024 byte dat. Tato možnost je žádaná při stahování velkých souborů — uživatel může pozastavit stahování a poté ho pokračovat z přerušované pozice. Při specifikaci „bytes=0-0“ norma přikazuje vydat první byte v souboru, „bytes=-1“ — poslední, „bytes=1-“ — začínajíc od 1 byte až do konce souboru. Je povoleno přenášet více rozsahů v jedné hlavičce, například „Range: bytes=0-1023,8192-10240“.
Dále byl navržen druhý variant útoku, zaměřený na zvýšení síťového zatížení při procházení traffiku přes další CDN, který je používán jako proxy (například když jako frontend (FCDN) vystupuje Cloudflare a backend (BCDN) — Akamai). Metoda připomíná první útok, ale lokalizuje se uvnitř CDN sítí a umožňuje zesílit traffik při obsluze přes jiné CDN, čímž zvyšuje zátěž na infrastruktuře a snižuje kvalitu služby.
Myšlenka spočívá v tom, že útočník posílá do CDN Range požadavky na několik rozsahů, jako například „bytes=0-,0-,0-…“, „bytes=1-,0-,0-…“ nebo „bytes=-1024,0-,0-…“. Požadavky obsahují velké množství rozsahů „0-“, což znamená, že soubor je vracen od nulové pozice až do konce. Kvůli nesprávné implementaci rozboru rozsahů při přístupu prvního CDN k druhému, je na každý rozsah „0-“ vracen celý soubor (rozsahy nejsou agregovány, ale postupně procházeny), pokud v původně zaslaném požadavku útočníka dochází k duplicitě a překrývání rozsahů. Míra zesílení provozu v takovém útoku se pohybuje od 53 do 7432 krát.

Během výzkumu bylo prozkoumáno chování 13 CDN —
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath a Tencent Cloud. Všechny z posuzovaných CDN umožnily první typ útoku na koncový server. Druhému typu útoku na CDN podléhalo 6 služeb, z nichž čtyři mohou hrát roli front-endu (CDN77, CDNsun, Cloudflare a StackPath) a tři v roli back-endu (Akamai, Azure a StackPath). Nejvyššího zesílení dosahuje Akamai a StackPath, které povolují uvedení ve všech rozsazích po více než 10 tisících rozsahů. Vlastníci CDN byli o zranitelnostech informováni přibližně před 7 měsíci, a do doby veřejného odhalení informací 12 z 13 CDN odstranilo zjištěné problémy nebo vyjádřilo ochotu je odstranit (nebyla reagováno pouze na službu StackPath).
Zdroj: opennet.ru
