Un groupe de chercheurs de l'UniversitĂ© de PĂ©kin, de l'UniversitĂ© Tsinghua et de l'UniversitĂ© du Texas Ă Dallas une nouvelle classe d'attaques DoS â RangeAmp, basĂ©e sur l'utilisation de l'en-tĂȘte HTTP pour organiser le renforcement du trafic via les rĂ©seaux de livraison de contenu (CDN). Le principe de la mĂ©thode repose sur le fait qu'en raison de la particularitĂ© du traitement des en-tĂȘtes Range par de nombreux CDN, un attaquant peut demander via le CDN un seul octet d'un grand fichier, mais le CDN chargera depuis le serveur cible l'intĂ©gralitĂ© du fichier ou un bloc de donnĂ©es beaucoup plus important pour le mettre en cache. Le degrĂ© de renforcement du trafic dans une telle attaque, en fonction du CDN, varie de 724 Ă 43330 fois, ce qui peut ĂȘtre utilisĂ© pour surcharger le trafic entrant du CDN ou rĂ©duire la bande passante du canal de communication final vers le site de la victime.

L'en-tĂȘte Range permet au client de spĂ©cifier une plage de positions dans le fichier Ă charger au lieu de transmettre le fichier complet. Par exemple, le client peut indiquer « Range: bytes=0-1023 » et le serveur ne transmettra que les 1024 premiers octets de donnĂ©es. Cette fonctionnalitĂ© est recherchĂ©e lors du tĂ©lĂ©chargement de grands fichiers â l'utilisateur peut suspendre le tĂ©lĂ©chargement et le reprendre Ă partir de la position interrompue. En indiquant « bytes=0-0 », la norme prescrit de donner le premier octet du fichier, « bytes=-1 » â le dernier, « bytes=1- » â Ă partir de 1 octet jusqu'Ă la fin du fichier. Il est permis de transmettre plusieurs plages dans un mĂȘme en-tĂȘte, par exemple « Range: bytes=0-1023,8192-10240 ».
Une seconde variante d'attaque a Ă©galement Ă©tĂ© proposĂ©e, visant Ă augmenter la charge rĂ©seau en passant le trafic Ă travers un autre CDN, qui est utilisĂ© comme proxy (par exemple, lorsque Cloudflare agit en tant que front-end (FCDN) et Akamai comme back-end (BCDN)). Cette mĂ©thode est similaire Ă la premiĂšre attaque, mais se localise Ă l'intĂ©rieur des rĂ©seaux CDN et permet de renforcer le trafic lors des requĂȘtes via d'autres CDN, augmentant ainsi la charge sur l'infrastructure et diminuant la qualitĂ© du service.
L'idĂ©e est que l'attaquant envoie des requĂȘtes de plage CDN multi-plages, telles que «bytes=0-,0-,0-âŠÂ», «bytes=1-,0-,0-âŠÂ» ou «bytes=-1024,0-,0-âŠÂ». Ces requĂȘtes contiennent un grand nombre de plages «0-», ce qui implique la livraison du fichier depuis la position zĂ©ro jusqu'Ă la fin. En raison d'une implĂ©mentation incorrecte de l'analyse des plages lors de la premiĂšre requĂȘte CDN vers le second, chaque plage «0-» entraĂźne la livraison du fichier complet (les plages ne sont pas agrĂ©gĂ©es, mais parcourues sĂ©quentiellement), si l'attaque initialement envoyĂ©e par l'attaquant contient des duplications et des intersections de plages. Le degrĂ© d'amplification du trafic dans cette attaque varie de 53 Ă 7432 fois.

Au cours de l'Ă©tude, le comportement de 13 CDN a Ă©tĂ© examinĂ© â
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath et Tencent Cloud. Tous les CDN examinĂ©s autorisaient le premier type d'attaque sur le serveur final. Le second type d'attaque sur le CDN a affectĂ© 6 services, dont quatre peuvent agir en tant que frontend (CDN77, CDNsun, Cloudflare et StackPath) et trois en tant que backend (Akamai, Azure et StackPath). L'amplification la plus importante se produit chez Akamai et StackPath, qui autorisent l'indication de plus de 10 000 plages dans l'en-tĂȘte Range. Les propriĂ©taires de CDN ont Ă©tĂ© informĂ©s des vulnĂ©rabilitĂ©s il y a environ 7 mois et, au moment de la divulgation publique, 12 des 13 CDN avaient corrigĂ© les problĂšmes identifiĂ©s ou exprimĂ© leur volontĂ© de les corriger (seul le service StackPath n'a pas rĂ©agi).
Source : opennet.ru
