È stata ribattezzata CONTINUATION Flood la vulnerabilità del protocollo HTTP/2 portata alla luce da recenti ricerche: qualora venisse sfruttata, potrebbe condurre attacchi di tipo Denial of Service (DoS) e causare il crash di server web tramite una singola connessione TCP in molte implementazioni del protocollo HTTP.
Il cuore del problema risiede nel modo in cui vengono utilizzati i frame CONTINUATION, una componente essenziale del protocollo che consente la frammentazione dei blocchi di dati trasmessi tra client e server al fine di migliorare le prestazioni di trasmissione.
Se mal gestita, questa componente può aprire la porta a gravi minacce alla stabilità dei server.
La sua scoperta è stata accreditata al ricercatore di sicurezza Bartek Nowotarski, che l’ha prontamente segnalata lo scorso 25 gennaio 2024 al CERT Coordination Center (CERT/CC).
Ricordiamo che il protocollo HTTP/2 è stato introdotto nel 2015 e rappresenta un’evoluzione del precedente protocollo HTTP, concepito per ottimizzare le prestazioni web grazie all’introduzione di una struttura binaria per una trasmissione dati più efficiente, il multiplexing per consentire molteplici richieste e risposte su una singola connessione, e la compressione degli header per ridurne l’overhead.
In normali condizioni di funzionamento, i frame CONTINUATION vengono inviati in un determinato ordine, seguendo il flusso delle intestazioni dei pacchetti dati. Ogni frame ha, inoltre, il flag END_HEADERS impostato in maniera tale da indicare se il frame corrente contiene o meno l’ultima parte delle intestazioni dello stream di dati corrente.
Nel caso in cui tale flag non dovesse essere impostato, il dispositivo di destinazione della trasmissione dati attende ulteriori frame di tipo CONTINUATION per completare la comunicazione ed evitare così di interromperla.
Secondo quanto scoperto da Nowotarski, i frame CONTINUATION, tipicamente utilizzati per concatenare flussi di dati divisi in blocchi durante la trasmissione, possono essere inviati in sequenze estremamente lunghe in assenza di adeguate verifiche, sfruttando la mancata impostazione del flag END_HEADERS.
Questo significa che un eventuale abuso di questa caratteristica potrebbe consentire a un attaccante di inviare frame opportunamente predisposti che, sebbene inutili al completamento della trasmissione dati, verrebbero comunque processati dal dispositivo target comportando situazioni di compromissione della disponibilità del servizio per esaurimento della memoria (OOM) o esaurimento delle risorse CPU sul dispositivo di destinazione.
Una condotta, questa, che potrebbe evidentemente condurre a interruzioni del servizio dei server per esaurimento della memoria o delle risorse CPU, a seguito dell’elaborazione di questi frame.
Con differenti ID CVE, la vulnerabilità CONTINUATION Flood interessa diversi prodotti di rete che i rispettivi vendor stanno velocemente cercando di aggiornare.
Come riportato nel bollettino di sicurezza del CERT-CC, ciascuna di queste varianti della vulnerabilità CONTINUATION Flood corrisponde a differenti implementazioni del protocollo HTTP/2 e consentono vari livelli di attacchi di negazione del servizio, tra cui perdite e consumo di memoria o esaurimento della CPU:
Così come riportato anche nel bollettino di sicurezza del CERT-CC, la vulnerabilità CONTINUATION Flood risulta essere più grave delle vulnerabilità sfruttate in attacchi precedenti, come l’HTTP/2 Rapid Reset emerso lo scorso ottobre, ponendo in evidenza la difficoltà per gli amministratori di sistema di diagnosticare e mitigare il problema senza una profonda conoscenza di HTTP/2.
Questo perché le richieste malevole potrebbero non essere visibili nei log di accesso se l’analisi avanzata dei frame non è abilitata sul server, condizione piuttosto comune.
Gli amministratori di sistema sono dunque incoraggiati ad aggiornare il software interessato all’ultima versione disponibile per mitigare le potenziali minacce. In assenza di una soluzione, si consiglia di considerare la disabilitazione temporanea di HTTP/2 sul server.
In attesa di aggiornamenti specifici rilasciati dai singoli vendor dei prodotti afflitti dalla vulnerabilità CONTINUATION Flood, è opportuno monitorare il traffico HTTP/2 e applicare – in caso di inaspettati utilizzi eccessivi della memoria e/o della CPU dei web server e bilanciatori di carico applicativi – restrizioni selettive fino alla disabilitazione della specifica versione del protocollo se utile a ripristinare l’operatività.
Infine, per avere maggiore visibilità degli eventi è possibile abilitare l’analisi avanzata dei frame (tipicamente disabilitata di default) e utilizzare strumenti aggiuntivi di analisi del traffico che, in caso di attacco, dovrebbe far emergere una inattesa rarità di END_HEADERS.
Da tener presente, però, che quest’ultima modalità operative aumenta tipicamente il carico di lavoro del sistema, pertanto, se ne consiglia un utilizzo per il solo tempo limitato all’analisi e alla definizione di eventuali contromisure.
La recente scoperta del ricercatore Bartek Nowotarski è l’occasione giusta per sottolineare ancora una volta, qualora ce ne fosse bisogno, l’importanza di una gestione accurata e della costante vigilanza nella sicurezza delle implementazioni di protocolli complessi come HTTP/2, per proteggere l’integrità e la disponibilità delle risorse web essenziali nell’era digitale.
È cruciale, dunque, procedere con l’aggiornamento dei server e delle librerie impattate prima che tali vulnerabilità vengano sfruttate attivamente.