Il TCP session hijacking consiste nel prendere il controllo di una conversazione TCP già stabilita interferendo con il suo stato, con i numeri di sequenza o con i suoi pacchetti. Poiché TCP è stateful, entrambi gli endpoint si fidano di un flusso condiviso di acknowledgment e dell'ordinamento. Se un attaccante riesce a inserire, ritardare, falsificare o reindirizzare i pacchetti abbastanza bene da confondere quello stato, può impersonare una delle due parti della connessione senza aprire una nuova sessione.
Questo è importante perché molti servizi si basano su sessioni TCP di lunga durata per login, gestione, trasferimento di file e traffico applicativo. Negli attacchi reali, il dirottamento può coinvolgere l'iniezione di pacchetti, lo spoofing dell'origine, la desincronizzazione degli endpoint o la manipolazione di middlebox che tracciano lo stato della connessione, come dispositivi NAT o proxy. Le difese includono protocolli applicativi cifrati e autenticati, controlli anti-spoofing, una forte validazione dello stato e il monitoraggio di cambiamenti inattesi nei numeri di sequenza o di anomalie nello stato della connessione. Quando lo stato della sessione è protetto, diventa molto più difficile trasformare una conversazione attiva in una controllata dall'attaccante.


