RangeAmp - een reeks CDN-aanvallen die de Range HTTP-header manipuleren

Een team van onderzoekers van de Universiteit van Peking, Tsinghua Universiteit en de Universiteit van Texas in Dallas onthuld een nieuwe klasse DoS-aanvallen - RangeAmp, gebaseerd op het gebruik van een HTTP-header RANGE om verkeersversterking te organiseren via Content Delivery Networks (CDN). De essentie van de methode is dat vanwege de manier waarop Range-headers in veel CDN's worden verwerkt, een aanvaller via het CDN één byte uit een groot bestand kan opvragen, maar dat het CDN het hele bestand of een veel groter gegevensblok van de CDN zal downloaden. doelserver die in de cache moet worden geplaatst. De mate van verkeersversterking tijdens een dergelijke aanval varieert, afhankelijk van het CDN, van 724 tot 43330 keer, wat kan worden gebruikt om het CDN te overbelasten met inkomend verkeer of om de capaciteit van het uiteindelijke communicatiekanaal naar de locatie van het slachtoffer te verminderen.

RangeAmp - een reeks CDN-aanvallen die de Range HTTP-header manipuleren

De Range-header geeft de client de mogelijkheid om een ​​bereik van posities in het bestand op te geven dat moet worden gedownload in plaats van het hele bestand terug te sturen. De client kan bijvoorbeeld "Bereik: bytes=0-1023" opgeven en de server verzendt alleen de eerste 1024 bytes aan gegevens. Deze functie is veelgevraagd bij het downloaden van grote bestanden: de gebruiker kan de download pauzeren en vervolgens doorgaan vanaf de onderbroken positie. Bij het specificeren van “bytes=0-0” instrueert de standaard om de eerste byte in het bestand op te geven, “bytes=-1” - de laatste, “bytes=1-” - beginnend bij 1 byte tot het einde van het bestand. Het is mogelijk om meerdere bereiken in één header te verzenden, bijvoorbeeld “Range: bytes=0-1023,8192-10240”.

Daarnaast is er een tweede aanvalsoptie voorgesteld, gericht op het vergroten van de netwerkbelasting bij het doorsturen van verkeer via een ander CDN, dat als proxy wordt gebruikt (bijvoorbeeld wanneer Cloudflare als frontend (FCDN) fungeert) en Akamai als backend ( BCDN). De methode is vergelijkbaar met de eerste aanval, maar is gelokaliseerd binnen CDN-netwerken en zorgt voor meer verkeer bij toegang via andere CDN's, waardoor de belasting van de infrastructuur toeneemt en de kwaliteit van de dienstverlening afneemt.

Het idee is dat de aanvaller Range-aanvragen van verschillende bereiken naar het CDN stuurt, zoals "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." of "bytes=-1024,0-,0-...". Verzoeken bevatten een groot aantal “0-”-bereiken, wat impliceert dat het bestand wordt geretourneerd vanaf positie nul tot het einde. Als gevolg van een onjuiste implementatie van bereikparsering wordt, wanneer de eerste CDN de tweede benadert, een compleet bestand verzonden voor elk “0-” bereik (de bereiken worden niet geaggregeerd, maar opeenvolgend herhaald), als er sprake is van duplicatie en kruising van bereiken in het verzoek dat aanvankelijk door de aanvaller is verzonden. De mate van verkeersversterking bij een dergelijke aanval varieert van 53 tot 7432 keer.

RangeAmp - een reeks CDN-aanvallen die de Range HTTP-header manipuleren

Tijdens het onderzoek werd het gedrag van 13 CDN’s bestudeerd:
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath en Tencent Cloud. Alle onderzochte CDN’s lieten het eerste type aanval op de eindserver toe. De tweede variant van de CDN-aanval had betrekking op 6 diensten, waarvan er vier als frontend bij de aanval konden fungeren (CDN77, CDNsun, Cloudflare en StackPath) en drie als backend (Akamai, Azure en StackPath). De grootste winst wordt behaald in Akamai en StackPath, waarmee meer dan 10 bereiken kunnen worden gespecificeerd in de Range-header. CDN-eigenaren werden ongeveer zeven maanden geleden op de hoogte gebracht van de kwetsbaarheden, en tegen de tijd dat de informatie openbaar werd gemaakt, hadden 7 van de 12 CDN's de geïdentificeerde problemen opgelost of zich bereid verklaard deze op te lossen (alleen de StackPath-service reageerde niet).

Bron: opennet.ru

Voeg een reactie