Un equip d'investigadors de la Universitat de Pequín, la Universitat de Tsinghua i la Universitat de Texas a Dallas
La capçalera Range ofereix al client la possibilitat d'especificar un rang de posicions al fitxer que s'hauria de baixar en lloc de tornar tot el fitxer. Per exemple, el client pot especificar "Range: bytes=0-1023" i el servidor només transmetrà els primers 1024 bytes de dades. Aquesta funció es demanda quan es descarreguen fitxers grans: l'usuari pot aturar la descàrrega i després continuar des de la posició interrompuda. Quan s'especifica "bytes=0-0", l'estàndard indica que proporcioneu el primer byte del fitxer, "bytes=-1" - l'últim, "bytes=1-" - començant des d'1 byte fins al final del fitxer. És possible transmetre diversos rangs en una capçalera, per exemple "Range: bytes=0-1023,8192-10240".
A més, s'ha proposat una segona opció d'atac, destinada a augmentar la càrrega de la xarxa quan s'envia trànsit a través d'un altre CDN, que s'utilitza com a proxy (per exemple, quan Cloudflare actua com a frontend (FCDN) i Akamai actua com a backend ( BCDN). El mètode és similar al primer atac, però es localitza dins de les xarxes CDN i permet augmentar el trànsit quan s'accedeix a través d'altres CDN, augmentant la càrrega de la infraestructura i reduint la qualitat del servei.
La idea és que l'atacant enviï peticions de rang de diversos rangs al CDN, com ara "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." o "bytes=-1024,0 ,0-,0-...". Les sol·licituds contenen un gran nombre d'intervals "0-", la qual cosa implica que el fitxer es retorna des de la posició zero fins al final. A causa d'una implementació incorrecta de l'anàlisi d'intervals, quan el primer CDN accedeix al segon, s'envia un fitxer complet per a cada interval "53-" (els intervals no s'agreguen, sinó que s'iteren seqüencialment), si hi ha duplicació i intersecció d'intervals en la sol·licitud enviada inicialment per l'atacant. El grau d'amplificació del trànsit en aquest atac oscil·la entre 7432 i XNUMX vegades.
Durant l'estudi, es va estudiar el comportament de 13 CDN -
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath i Tencent Cloud. Tots els CDN examinats van permetre el primer tipus d'atac al servidor final. La segona variant de l'atac CDN va afectar 6 serveis, dels quals quatre podrien actuar com a interfície en l'atac (CDN77, CDNsun, Cloudflare i StackPath) i tres com a backend (Akamai, Azure i StackPath). El guany més gran s'aconsegueix a Akamai i StackPath, que permeten especificar més de 10 mil intervals a la capçalera Range. Els propietaris de CDN van rebre una notificació de les vulnerabilitats fa uns 7 mesos i, quan la informació es va revelar públicament, 12 de cada 13 CDN havien solucionat els problemes identificats o s'havien mostrat disposats a solucionar-los (només el servei StackPath no va respondre).
Font: opennet.ru