Attacco CPDoS per rendere non disponibili le pagine servite tramite CDN

Ricercatori delle Università di Amburgo e Colonia
si sono sviluppati una nuova tecnica di attacco alle reti di distribuzione dei contenuti e ai proxy di caching - CPDoS (Denial of Service avvelenato dalla cache). L'attacco consente di negare l'accesso a una pagina tramite cache-avvelenamento.

Il problema è dovuto al fatto che i CDN memorizzano nella cache non solo le richieste completate con successo, ma anche le situazioni in cui il server http restituisce un errore. Di norma, se ci sono problemi con la formazione delle richieste, il server emette un errore 400 (Bad Request); l'unica eccezione è IIS, che emette un errore 404 (Not Found) per intestazioni troppo grandi. Lo standard consente solo la memorizzazione nella cache degli errori con i codici 404 (Non trovato), 405 (Metodo non consentito), 410 (Gone) e 501 (Non implementato), ma alcuni CDN memorizzano nella cache anche le risposte con il codice 400 (Bad Request), che dipende sulla richiesta inviata.

Gli aggressori possono far sì che la risorsa originale restituisca un errore “400 Bad Request” inviando una richiesta con intestazioni HTTP formattate in un certo modo. Queste intestazioni non vengono prese in considerazione dalla CDN, quindi le informazioni sull'impossibilità di accedere alla pagina verranno memorizzate nella cache e tutte le altre richieste utente valide prima della scadenza del timeout potrebbero risultare in un errore, nonostante il sito originale fornisca il contenuto senza alcun problema.

Sono state proposte tre opzioni di attacco per forzare il server HTTP a restituire un errore:

  • HMO (HTTP Method Override): un utente malintenzionato può sovrascrivere il metodo di richiesta originale tramite gli header "X-HTTP-Method-Override", "X-HTTP-Method" o "X-Method-Override", supportati da alcuni server, ma non presi in considerazione nel CDN. Ad esempio, puoi modificare il metodo "GET" originale nel metodo "DELETE", che è vietato sul server, o nel metodo "POST", che non è applicabile per le statistiche;

    Attacco CPDoS per rendere non disponibili le pagine servite tramite CDN

  • HHO (HTTP Header Oversize): un utente malintenzionato può selezionare la dimensione dell'intestazione in modo che superi il limite del server di origine, ma non rientri nelle restrizioni della CDN. Ad esempio, Apache httpd limita la dimensione dell'intestazione a 8 KB e Amazon Cloudfront CDN consente intestazioni fino a 20 KB;
    Attacco CPDoS per rendere non disponibili le pagine servite tramite CDN

  • HMC (HTTP Meta Character): un utente malintenzionato può inserire caratteri speciali nella richiesta (\n, \r, \a), che sono considerati non validi sul server di origine, ma vengono ignorati nella CDN.

    Attacco CPDoS per rendere non disponibili le pagine servite tramite CDN

Il più suscettibile agli attacchi è stato il CDN CloudFront utilizzato da Amazon Web Services (AWS). Amazon ha ora risolto il problema disabilitando la memorizzazione nella cache degli errori, ma i ricercatori hanno impiegato più di tre mesi per aggiungere la protezione. Il problema ha interessato anche Cloudflare, Varnish, Akamai, CDN77 e
Velocemente, ma l'attacco attraverso di essi è limitato ai server di destinazione che utilizzano IIS, ASP.NET, pallone и Gioca a 1. È notato, che l'11% dei domini del Dipartimento della Difesa degli Stati Uniti, il 16% degli URL del database HTTP Archive e circa il 30% dei primi 500 siti web classificati da Alexa potrebbero essere potenzialmente soggetti ad attacchi.

Come soluzione alternativa per bloccare un attacco lato sito, è possibile utilizzare l'intestazione "Cache-Control: no-store", che vieta la memorizzazione nella cache delle risposte. In alcuni CDN, ad es.
CloudFront e Akamai, puoi disabilitare la memorizzazione nella cache degli errori a livello di impostazioni del profilo. Per la protezione è possibile utilizzare anche i firewall delle applicazioni Web (WAF, Web Application Firewall), ma questi devono essere implementati sul lato CDN davanti agli host di memorizzazione nella cache.

Fonte: opennet.ru

Aggiungi un commento