Hamburgi ja Kölni ülikoolide teadlased
Probleem on tingitud asjaolust, et CDN-id ei salvesta vahemällu mitte ainult edukalt täidetud päringuid, vaid ka olukordi, kus http-server tagastab vea. Reeglina, kui päringute moodustamisega on probleeme, annab server välja vea 400 (Bad Request), ainsaks erandiks on IIS, mis liiga suurte päiste puhul väljastab vea 404 (ei leitud). Standard lubab vahemällu salvestada ainult vead koodidega 404 (ei leitud), 405 (Meetod pole lubatud), 410 (Kadunud) ja 501 (Pole rakendatud), kuid mõned CDN-id salvestavad vastused vahemällu ka koodiga 400 (Bad Request), mis sõltub saadetud päringu peale.
Ründajad võivad põhjustada algse ressursi tõrketeate „400 Bad Request”, saates päringu teatud viisil vormindatud HTTP-päistega. CDN ei võta neid päiseid arvesse, mistõttu teave lehele juurdepääsu puudumise kohta salvestatakse vahemällu ja kõik muud kehtivad kasutajataotlused enne ajalõpu aegumist võivad põhjustada tõrke, hoolimata asjaolust, et algne sait esitab sisu. ilma probleemideta.
HTTP-serveri sundimiseks veateate tagastamiseks on pakutud kolm ründevalikut:
- HMO (HTTP Method Override) – ründaja saab alistada algse päringumeetodi päiste "X-HTTP-Method-Override", "X-HTTP-Method" või "X-Method-Override" kaudu, mida mõned serverid toetavad, kuid ei võeta CDN-is arvesse. Näiteks saate muuta algse GET meetodi meetodiks "DELETE", mis on serveris keelatud, või meetodiks "POST", mis ei ole staatika jaoks rakendatav;
- HHO (HTTP Header Oversize) – ründaja saab valida päise suuruse nii, et see ületaks lähteserveri piirangut, kuid ei jääks CDN-i piirangute alla. Näiteks Apache httpd piirab päise suurust 8 KB-ni ja Amazon Cloudfront CDN lubab päiseid kuni 20 KB;
- HMC (HTTP Meta Character) – ründaja saab sisestada päringusse erimärke (\n, \r, \a), mida peetakse lähteserveris kehtetuks, kuid mida CDN-is ignoreeritakse.
Rünnakule vastuvõtlikum oli Amazon Web Servicesi (AWS) kasutatav CloudFront CDN. Amazon on nüüd probleemi lahendanud, keelates vigade vahemälu, kuid teadlastel kulus kaitse lisamiseks rohkem kui kolm kuud. Probleem puudutas ka Cloudflare'i, Varnishi, Akamai, CDN77 ja
Fastly, но атака через них ограничена целевыми серверами, на которых используется IIS, ASP.NET,
Rünnaku blokeerimiseks saidi poolel saate kasutada päist „Cache-Control: no-store”, mis keelab vastuste vahemällu salvestamise. Mõnes CDN-is, nt.
CloudFront ja Akamai, saate vigade vahemälu profiili seadete tasemel keelata. Kaitseks saab kasutada ka veebirakenduste tulemüüre (WAF, Web Application Firewall), kuid need peavad olema juurutatud CDN-i poolel vahemällu salvestavate hostide ees.
Allikas: opennet.ru