Atacul CPDoS, care permite inaccesibilitatea paginilor livrate prin CDN

Cercetătorii de la Universitatea din Hamburg și Universitatea din Köln
au dezvoltat o nouă tehnică de atac asupra rețelelor de livrare a conținutului și proxi de caching — CPDoS (Cache-Poisoned Denial-of-Service). Atacul permite obținerea unui refuz de acces la pagină prin otrăvirea cache-ului.

Problema este că CDN-urile cache-uiesc nu doar cererile reușite, ci și situațiile în care serverul http returnează o eroare. De obicei, în cazul problemelor cu formarea cererilor, serverul generează eroarea 400 (Bad Request), cu excepția IIS, care returnează eroarea 404 (Not Found) pentru antetele prea mari. Standardul permite cache-uirea doar a eroarilor cu codurile 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) și 501 (Not Implemented), dar unele CDN-uri cache-uiesc și răspunsurile cu codul 400 (Bad Request), care depind de cererea trimisă.

Atacatorii pot provoca pe resursa originală returnarea erorii "400 Bad Request" prin trimiterea unei cereri cu antete HTTP formate într-un anumit mod. Aceste antete nu sunt considerate de CDN, astfel încât informația despre imposibilitatea de a accesa pagina va ajunge în cache, iar toate cererile corecte ale utilizatorilor până la expirarea timeout-ului pot duce la generarea erorii, chiar dacă site-ul sursă livrează fără probleme conținutul.

Pentru a forța serverul HTTP să returneze o eroare, sunt propuse trei variante de atac:

  • HMO (HTTP Method Override) — atacatorul poate suprascrie metoda originală a cererii prin antetele „X-HTTP-Method-Override”, „X-HTTP-Method” sau „X-Method-Override”, acceptate de unele servere, dar neconsiderate de CDN. De exemplu, se poate schimba metoda originală „GET” într-o metodă interzisă pe server „DELETE” sau o metodă „POST” neaplicabilă pentru statice;

    Atacul CPDoS, care permite inaccesibilitatea paginilor livrate prin CDN
  • HHO (HTTP Header Oversize) — atacatorul poate ajusta dimensiunea antetului astfel încât să depășească limita serverului original, dar să nu se încadreze în restricțiile CDN. De exemplu, Apache httpd limitează dimensiunea antetului la 8 KB, iar CDN Amazon Cloudfront permite antete de până la 20 KB;
    Atacul CPDoS, care permite inaccesibilitatea paginilor livrate prin CDN
  • HMC (HTTP Meta Character) — atacatorul poate introduce în cerere caractere speciale (‘\n’, ‘\r’, ‘\a’), care sunt considerate nepermise pe serverul original, dar sunt ignorate de CDN.

    Atacul CPDoS, care permite inaccesibilitatea paginilor livrate prin CDN

Cel mai afectat de atac a fost CDN CloudFront, utilizat în Amazon Web Services (AWS). În prezent, compania Amazon a remediat problema prin interzicerea cache-ului erorilor, dar cercetătorilor le-a luat mai mult de trei luni pentru a obține implementarea unei protecții. Problema a afectat de asemenea Cloudflare, Varnish, Akamai, CDN77 și
Fastly, dar atacul prin intermediul lor este limitat la serverele țintă care folosesc IIS, ASP.NET, Flask și Play 1. Se observă, ceea ce înseamnă că 11% din domeniile Ministerului Apărării al Statelor Unite, 16% din URL-urile din baza HTTP Archive și aproximativ 30% din cele mai mari 500 de site-uri conform clasamentului Alexa sunt potențial vulnerabile la atacuri.

Ca metodă de ocolire pentru blocarea atacului la nivelul site-ului, se poate utiliza setarea antetului „Cache-Control: no-store”, care interzice cache-ul răspunsurilor. În unele CDN-uri, cum ar fi
CloudFront și Akamai, se poate dezactiva caching-ul erorilor la nivelul setărilor profilului. De asemenea, se pot folosi firewall-uri pentru aplicații web (WAF, Web Application Firewall) pentru protecție, dar acestea trebuie implementate la nivelul CDN-ului înainte de gazdele care efectuează caching-ul.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster