Un nou atac ce afectează memoria cache permite atacatorilor să vizeze site-uri CDN protejate

Un nou atac ce afectează memoria cache permite atacatorilor să vizeze site-uri CDN protejate

O echipă de cercetători germani în domeniul securității cibernetice a descoperit un nou atac de otrăvire a memoriei cache împotriva sistemelor de web caching care ar putea fi folosit de un atacator pentru a forța un site web să livreze pagini de eroare către majoritatea vizitatorilor săi, în loc de conținutul sau resursele legitime.

Problema afectează sistemele de reverse proxy cache precum Varnish și unele servicii de rețea de distribuție a conținutului (CDN) utilizate pe scară largă, inclusiv Amazon CloudFront, Cloudflare, Fastly, Akama și CDN77.

Pe scurt, o rețea de distribuție de conținut (CDN) este un grup de servere distribuit geografic care se află între serverul de origine al unui site web și vizitatorii acestuia, pentru a optimiza performanța site-ului.

Un serviciu CDN stochează fișierele statice – inclusiv pagini HTML, fișiere javascript, imagini și videoclipuri – de pe serverul de origine și le livrează mai rapid vizitatorilor, fără a reveni din nou la serverul originar.

Fiecare dintre serverele CDN distribuite geografic, cunoscute și sub numele de edge nodes, partajează copia exactă a fișierelor din cache și le expune vizitatorilor în funcție de locațiile lor. În general, după o perioadă definită sau setată manual, serverele CDN reîmprospătează memoria cache prin preluarea unei noi copii actualizate a fiecărei pagini web de pe serverul de origine și le stochează pentru viitoarele solicitări.

Cum acționează atacul CPDoS împotriva CDN-urilor?

Acronimul CPDoS (Cache Poisoned Denial of Service) subliniază modul în care serverele intermediare CDN sunt incorect configurate pentru a stoca resurse web sau pagini cu răspunsuri de eroare returnare de serverul de origine. Atacul CPDoS amenință disponibilitatea resurselor web ale unui site doar prin simpla trimitere a unei singure cereri de tip HTTP care conține un antet malformat. Acest lucru a fost observat de trei academicieni de sorginte germană, respectiv Hoai Viet Nguyen, Luigi Lo Iacono și Hannes Federrath.

Problema apare atunci când un atacator poate genera o solicitare HHTP pentru o resursă memorată în cache, în cazul în care cererea conține câmpuri inexacte care sunt ignorate de sistemul de scache, însă întâmpină o eroare în timp ce sunt procesate de serverul de origine.

Cum funcționează atacul CPDoS

Un atacator de la distanță solicită o pagină web unui site web țintă, trimițând o solicitare HTTP care conține un antet malformat. În cazul în care serverul CDN intermediar nu are o copie a resursei solicitate, acesta va transmite cererea către serverul web de origine, care va avea un blocaj din cauza antetului defectuos. În consecință, serverul de origine returnează apoi o pagină de eroare, care este eventual stocată în memoria cache, în locul resursei solicitate. Acum, ori de câte ori vizitatorii legitimi încearcă să obțină resursa țintă, li se va comunica pagina de eroare din cache în locul conținutului original. Serverul CDN va răspândi, de asemenea, aceeași pagină de eroare la alte edge nodes din rețeaua CDN, ceea ce va face ca resursele țintite ale site-ului victimei să fie indisponibile.

Este important de remarcat faptul că o simplă solicitare este suficientă pentru a înlocui conținutul autentic din memoria cache cu o pagină de eroare. Acest lucru se traduce prin faptul că o astfel de solicitare rezidă sub pragul de detectare a firewall-urilor aferente aplicațiilor web (WAF-uri) și în special a mijloacelor de protecție împotriva DDoS, deoarece scanează cantități mari de trafic neregulat de rețea.

Mai mult decât atât, CPDoS poate fi exploatat pentru a bloca, de exemplu, patch-uri sau actualizări de firmware distribuite prin cache-uri, împiedicând soluționarea vulnerabilităților din dispozitive și software-uri. Atacatorii pot, de asemenea, să dezactiveze alertele de securitate sau mesajele importante de pe site-uri web de renume, cum ar fi serviciile bancare online sau site-urile guvernamentale oficiale.

3 modalități de a lansa atacurile CPDoS

Pentru a efectua atacurile DdoS îndreptate împotriva CDN-urilor, solicitarea HTTP malformată poate fi de trei tipuri:

  • HTTP Header Oversize – HHO – o solicitare HHTP care conține un antet supradimensionat care funcționează în scenariile în care o aplicație web folosește o memorie cache care acceptă o limită mai mare a dimensiunii antentului față de serverul de origine;
  • HTTP Meta Character HMC – în loc să trimită un antet supradimensionat, acest atac încearcă să ocolească o memorie cache folosind un antet de solicitare ce conține un caracter meta dăunător, cum ar fi \n, \r sau \a;
  • HTTP Method Override – HMO – utilizarea antetului de înlocuire HTTP pentru a ocoli politica de securitate care interzice solicitările DELETE.

Servicii CDN vulnerabile atacurilor CPDoS

Cercetătorii în domeniul securității cibernetice au efectuat trei atacuri împotriva diferitelor combinații de sisteme de cache și implementări HTTP, descoperind CloudFront CDN al Amazon drept cel mai vulnerabil la atacul CPDoS.

Conform acestora, în cadrul studiului, a fost analizat întregul proces de cache și cel al paginilor de eroare aferente a 15 soluții de web cache, timp în care au fost comparate cu specificațiile HTTP. Astfel, au fost identificate un produs proxy cache și cinci servicii CDN care sunt vulnerabile la CPDoS.

Echipa a raportat descoperirile lor către furnizorii HTTP afectați de implementare și către furnizorii de memorie cache în data de 19 februarie 2019. Echipa Amazon Web Services (AWS) a confirmat vulnerabilitățile de pe CloudFront și a abordat problema prin interzicerea memorării în cache a paginilor de eroare cu codul de stare 400 – cerere greșită – furnizată în mod implicit.

De asemenea, Microsoft a recunoscut problemele raportate și a publicat o actualizare pentru atenuarea acestei vulnerabilități, atribuită ca CVE-2019-0941, în actualizările sale de securitate din luna iunie 2019.

Play Framework a confirmat problemele raportate și a patch-uit produsul împotriva atacului CPDoS, prin limitarea impactului antetului X-HTTP-Method Override și în versiunile Play Framework 1.5.3. și 1.4.6. Alți furnizori afectați, printre care și Flask, au fost contactați de mai multe ori, însă cercetătorii nu au primit nici un răspuns din partea acestora.

O astfel de breșă de securitate, nesoluționată la momentul oportun, poate avea repercursiuni grave asupra întregii organizații, indiferent dacă este vorba de una publică sau una privată. Astfel, este extrem de important ca aplicațiile pe care compania ta le folosește să fie actualizate la zi, pentru a evita eventualele evenimente neplăcute.

No Comments

Post a Comment

Comment
Name
Email
Website