
Immaginiamo una metropolitana notturna in cui le richieste sono vagoni che scorrono uno dopo l’altro. Il front end fa da bigliettaio e smista i vagoni, il back end è il deposito che li riceve e li lavora. Se il bigliettaio e il deposito non sono d’accordo su dove finisce un vagone e inizia quello successivo, si apre una fessura che qualcuno può sfruttare per infilare un vagone nascosto. Quel vagone nascosto è il contrabbando di richieste HTTP.
Nel mondo reale la cosa prende forma quando componenti diversi della catena di comunicazione interpretano in modo diverso la lunghezza del corpo di una richiesta. In HTTP versione uno ci sono due modi per dichiarare la lunghezza del corpo, uno è il content length e l’altro è la transfer encoding in modalità chunked. Quando i nodi intermedi o i server finali non concordano su quale metodo utilizzare, la stessa sequenza di byte può essere letta da un elemento come parte della richiesta corrente e da un altro come l’inizio della richiesta successiva.
Questo disaccordo non è una sottigliezza teorica ma una vera leva d’attacco. Le varianti che si incontrano più spesso sono quelle in cui il front end prende come riferimento il valore di lunghezza mentre il back end interpreta la codifica a blocchi, oppure il contrario, oppure ancora situazioni in cui entrambi supportano la codifica a blocchi ma uno dei due ignora l’intestazione perché leggermente deformata con spazi, tabulazioni o formattazioni non standard. In tutti i casi il risultato effettivo è lo stesso, una parte di dati che si ritrova dove non doveva essere e che può alterare il comportamento di richieste legittime successive.
Avvio delle iscrizioni al corso Cyber Offensive Fundamentals Vuoi smettere di guardare tutorial e iniziare a capire davvero come funziona la sicurezza informatica? La base della sicurezza informatica, al di là di norme e tecnologie, ha sempre un unico obiettivo: fermare gli attacchi dei criminali informatici. Pertanto "Pensa come un attaccante, agisci come un difensore". Ti porteremo nel mondo dell'ethical hacking e del penetration test come nessuno ha mai fatto prima. Per informazioni potete accedere alla pagina del corso oppure contattarci tramite WhatsApp al numero 379 163 8765 oppure scrivendoci alla casella di posta [email protected].
Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì. |
Le conseguenze pratiche possono diventare molto serie. Una richiesta prepended può cambiare il contesto di una transazione e far credere al server che una chiamata autenticata appartenga a un utente diverso. Si possono rubare sessioni, bypassare filtri, avvelenare cache o inserire comandi nella sequenza di richieste che colpisce utenti successivi sulla stessa connessione. In ambienti moderni il rischio aumenta quando c’è il downgrade da HTTP due a HTTP uno perché la riscrittura o la traduzione dei messaggi introduce ulteriori punti di ambiguità, e quando le connessioni backend vengono riutilizzate per inviare più richieste una dopo l’altra perché il riuso moltiplica le possibilità che dati residui vengano interpretati come nuova richiesta.
Per capire dove guardare basta osservare i comportamenti divergenti tra front end e back end, le intestazioni duplicate o non conformi che emergono nei log e i casi in cui i log mostrano mismatch tra la lunghezza dichiarata e il contenuto reale. Questi segnali non sono la prova definitiva di una vulnerabilità ma sono la traccia che indica che la catena di elaborazione non è allineata e che vale la pena investigare. Dal punto di vista di chi progetta e mantiene l’infrastruttura la soluzione più robusta è eliminare l’ambiguità alla fonte.
La comunicazione end to end su HTTP due risolve il problema alla radice perché quel protocollo fornisce un unico, solido meccanismo per definire le dimensioni delle richieste. Quando non è possibile mantenere HTTP due su tutta la filiera la fase di traduzione verso HTTP uno deve essere trattata come un punto critico: la richiesta riscritta va verificata rispetto alla specifica e gli elementi della catena non devono tollerare deviazioni formattative che possano essere interpretate in modo diverso. Nei pezzi dell’infrastruttura che si occupano di accettare e inoltrare traffico è utile normalizzare le richieste e rilevare le ambiguità invece di tentare di correggerle in modo silente. Il back end, di norma, dovrebbe chiudere la connessione quando non è possibile risolvere un’ambiguità in modo certo, perché mantenere aperte connessioni impure è ciò che permette al contrabbando di propagarsi.
Limitare o controllare il riutilizzo delle connessioni backend riduce la finestra d’attacco anche se non la elimina del tutto. È importante anche uniformare la gestione delle intestazioni che determinano la lunghezza del corpo e non accettare varianti non standard che possono essere sfruttate per mascherare la codifica. A complemento di queste scelte architetturali, test specifici che replicano scenari di desincronizzazione e monitoraggio attento dei log aiutano a individuare regressioni e incidenti reali.
Da ultimo, vale la pena ricordare che le tecniche che permettono di generare desincronizzazione sono potenti e pericolose se usate senza autorizzazione, quindi la loro esplorazione va sempre confinata ad ambienti controllati e autorizzati e qualsiasi scoperta in sistemi di terzi va gestita con responsabilità e disclosure appropriata. Capire il meccanismo del contrabbando di richieste significa riconoscere che non stiamo parlando di bug isolati ma di disallineamenti di protocollo che emergono nelle catene complesse di servizi, ed è proprio per questo che la difesa efficace nasce dall’allineamento dei protocolli, dalla standardizzazione dei comportamenti e dalla capacità di osservare e reagire quando le cose non tornano.
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

Cyber ItaliaNel monitoraggio quotidiano dei forum underground capita spesso di imbattersi in leak che, almeno a una prima lettura, sembrano “ordinari”: liste di credenziali, accessi a servizi legacy, dump poco strutturati. Il thread “NEW LEAK FTP LOGIN” comparso…
CulturaLinus Torvalds, il creatore di Linux, ha espresso una posizione ferma e senza mezze misure riguardo al dibattito sull’integrazione e l’uso di strumenti di intelligenza artificiale nella scrittura e revisione del codice del kernel di…
CybercrimeNel mondo di oggi la tecnologia non è più un mero strumento di efficienza o comodità, ma una leva geopolitica di primaria importanza. L’accesso a infrastrutture digitali, piattaforme cloud e sistemi di comunicazione non è…
CybercrimeImmaginate una situazione in cui Internet sembra funzionare, ma i siti web non si aprono oltre la prima schermata, le app di messaggistica sono intermittenti e le aziende sono in continuo cambiamento. Secondo gli autori…
CulturaRecentemente, una bobina di nastro magnetico è rimasta in un normale armadio universitario per mezzo secolo, e ora è improvvisamente diventata una scoperta di “archeologia informatica del secolo“. Un nastro con la scritta “UNIX Original…