Il protocollo di controllo di trasmissione (TCP) è uno dei fondamenti principali su cui poggia l’Internet di oggi.
Questo protocollo di trasporto consente la comunicazione affidabile tra due host in rete. Tuttavia, come per qualsiasi tecnologia, ci sono aspetti di TCP che possono essere sfruttati per scopi malevoli. In questo contesto, uno degli attacchi più insidiosi è l’attacco TCP Reset (RST). Questo articolo si propone di analizzare a fondo gli attacchi TCP RST, descrivendo come funzionano, come possono essere rilevati e quali misure preventive possono essere prese per mitigare la loro minaccia.

Il funzionamento di TCP
Per comprendere pienamente l’attacco TCP RST, è fondamentale avere una comprensione di base delle funzionalità del protocollo TCP.
Il TCP è un protocollo orientato alla connessione, il che significa che stabilisce una connessione affidabile tra due host prima che i dati possano essere scambiati. Questo processo di stabilimento della connessione è conosciuto come “three-way handshake”. Una volta stabilita la connessione, i dati vengono trasmessi sotto forma di segmenti TCP. Se si presenta un problema durante la comunicazione o quando la comunicazione è completa, viene inviato un pacchetto TCP con il flag RST per interrompere immediatamente la connessione.
Cos’è l’attacco TCP RST
Nel contesto di un attacco, un malintenzionato invia un pacchetto RST fasullo a uno degli host partecipanti alla connessione. Questo pacchetto fasullo segnala alla macchina di destinazione che c’è un problema con la connessione, costringendo quest’ultima a chiudere la connessione. Di conseguenza, l’effetto principale di un attacco TCP RST è l’interruzione immediata di una connessione TCP attiva. Questo può causare interruzioni di servizio significative e problemi operativi per le applicazioni in esecuzione sulla connessione.
Dettagli tecnici dell’attacco TCP RST
Per eseguire con successo un attacco TCP RST, l’attaccante deve avere una conoscenza approfondita dei dettagli del protocollo TCP e della connessione specifica che si intende interrompere. Questo perché per far sì che un host accetti un pacchetto RST e interrompa la connessione, il pacchetto RST deve avere il giusto numero di sequenza TCP.
Il numero di sequenza TCP è un valore di 32 bit che viene utilizzato per garantire che i pacchetti arrivino nell’ordine corretto. Ogni pacchetto TCP ha un numero di sequenza e un numero di conferma. Il numero di sequenza è il numero del primo byte di dati nel pacchetto, mentre il numero di conferma è il numero del prossimo byte che il mittente del pacchetto si aspetta di ricevere.
Se un attaccante può predire o conoscere il numero di sequenza attuale di una connessione TCP, può quindi creare un pacchetto RST con il giusto numero di sequenza. Quando l’host di destinazione riceve questo pacchetto, interromperà la connessione.
La predizione o la conoscenza del numero di sequenza può essere ottenuta in vari modi. In un attacco “passivo”, l’attaccante potrebbe intercettare il traffico di rete per determinare il numero di sequenza corrente. In un attacco “attivo”, l’attaccante potrebbe inviare pacchetti di sondaggio alla vittima e osservare le risposte per dedurre il numero di sequenza.
Esecuzione dell’attacco TCP RST
Eseguire un attacco TCP RST efficace richiede una conoscenza approfondita del protocollo TCP e della connessione specifica che si intende interrompere. In particolare, l’attaccante deve essere in grado di predire o conoscere il numero di sequenza corrente della connessione TCP. Se il numero di sequenza del pacchetto RST non corrisponde al numero di sequenza atteso, il pacchetto RST verrà ignorato, rendendo l’attacco inefficace. Questo rende l’attacco TCP RST più complesso da eseguire, ma non impossibile, specialmente in reti dove l’attaccante è in grado di intercettare il traffico.
Identificazione di un attacco TCP RST
Identificare un attacco TCP RST può essere complesso a causa della natura intermittente del problema e della potenziale varietà di sintomi.
Alcuni segni possono includere interruzioni di servizio inaspettate, problemi di connettività e anomalie nel traffico di rete. Le tecniche di identificazione più avanzate possono includere l’analisi del traffico di rete per rilevare pacchetti RST anomali.
Effetto di un attacco TCP RST
Il principale effetto di un attacco TCP RST è l’interruzione di una connessione TCP attiva. Questo può avere vari effetti, a seconda del tipo di applicazione che sta utilizzando la connessione.
Ad esempio, potrebbe interrompere:
- un download
- un video streaming
- una chiamata VoIP
causando un degrado del servizio per l’utente. In alcuni casi, l’interruzione della connessione potrebbe causare un crash dell’applicazione o del sistema operativo, se non sono stati progettati per gestire correttamente tali eventi.
Inoltre, un attaccante potrebbe utilizzare un attacco TCP RST per interrompere una connessione di rete sicura, forzando la vittima a ristabilire la connessione su un canale non sicuro che l’attaccante può intercettare. Questa è una forma di attacco “downgrade”.
Mitigazione dell’attacco TCP RST
Esistono diverse strategie per mitigare la minaccia degli attacchi TCP RST. Una delle più comuni è l’uso di crittografia end-to-end, come il protocollo SSL/TLS. Questa tecnologia impedisce agli attaccanti di leggere o manipolare i dati trasmessi, rendendo in pratica impossibile la realizzazione di un attacco TCP RST. Altre strategie includono l’uso di firewall e sistemi di rilevazione delle intrusioni per identificare e bloccare i tentativi di attacco.
Conclusione
Gli attacchi TCP RST sono una minaccia significativa per la sicurezza e l’affidabilità delle connessioni di rete. Comprendere il loro funzionamento, come possono essere rilevati e come possono essere mitigati è essenziale per qualsiasi organizzazione che si affida alla rete per le sue operazioni. Investire in misure preventive e formazione sulla sicurezza può aiutare a proteggere le reti aziendali da questa e da altre minacce.
- Autore articolo
- Ultimi articoli

Sono CTO, socio della società Onorato Informatica e il Direttore del Security Operations Center.
Aiuto le imprese e i professionisti a progettare e implementare servizi di sicurezza informatica e a difendersi dagli attacchi informatici di hacker e virus.
Da oltre vent’anni mi occupo di linguaggi di programmazione: C, C++, C#, VB.NET, HTML, PHP e JAVA. Dirigo lo sviluppo e la gestione soluzioni di sicurezza informatica per aziende e enti tramite servizi di Web Security, Network Security, Anti-DDoS, Intrusion Prevention Systems, Perimeter Security, Network Segmentation, Security Information and Event Management, Threat and Vulnerability Management.
A differenza delle classiche soluzioni di sicurezza informatica, noi lavoriamo con servizi sviluppati internamente ad alte performance; utilizziamo solo tecnologie esclusive e certificate.
Inoltre, negli ultimi 10 anni ci siamo specializzati nella pianificazione, progettazione e implementazione dei servizi di Vulnerability Assessment e Penetration Test di sistemi e infrastrutture, comprese WebApp, Mobile e IoT.