L’attacco SYN flood sfrutta una vulnerabilità nel processo di handshake TCP/IP mirando a interrompere un servizio Web.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Un attacco SYN flood (semi-aperto) è un tipo di attacco denial-of-service (DDoS) che mira a rendere un server indisponibile al traffico legittimo consumandone tutte le risorse. Inviando ripetutamente pacchetti di richieste di connessione iniziale (SYN), l'aggressore è in grado di sopraffare tutte le porte disponibili di una macchina server, obbligando così la vittima designata a rispondere lentamente, o non rispondere affatto, al traffico legittimo.
Gli attacchi SYN flood sfruttano il processo di handshake di una connessione TCP. In condizioni normali, per stabilire una connessione TCP sono necessari tre processi distinti.
Per provocare un denial-of-service, un aggressore sfrutta il fatto che dopo aver ricevuto un pacchetto SYN iniziale, il server designato risponderà con uno o più pacchetti SYN/ACK e attenderà la fase finale dell'handshake. Ecco come funziona:
In rete, quando un server lascia una connessione aperta ma la macchina dall'altra parte della connessione non lo è, la connessione viene considerata semi-aperta. In questo tipo di attacco DDoS, il server designato lascia continuamente connessioni aperte e rimane in attesa del timeout di ogni connessione prima che le porte tornino di nuovo disponibili. Il risultato è che questo può essere considerato un tipo di “attacco semi-aperto”.
Avvalendosi di un attacco SYN flood, un malintenzionato può tentare di creare un denial-of-service in un dispositivo o servizio preso di mira mediante un volume di traffico sostanzialmente inferiore rispetto ad altri attacchi DDoS. Diversamente dagli attacchi volumetrici, che mirano a saturare l'infrastruttura di rete che circonda il bersaglio, gli attacchi SYN devono semplicemente essere maggiori del backlog disponibile nel sistema operativo della vittima designata. Se è in grado di determinare la dimensione del backlog e per quanto tempo ogni connessione rimarrà aperta prima del timeout, l’aggressore potrà mirare con precisione ai parametri necessari per disabilitare il sistema, riducendo così il traffico totale al minimo necessario per creare una situazione di denial-of-service.
La vulnerabilità al SYN flood è nota da tempo e numerosi sono stati i metodi di mitigazione adottati. Alcuni approcci includono:
Ogni sistema operativo su un dispositivo designato ammetterà un certo numero di connessioni semi-aperte. Una possibile risposta per contrastare gli elevati volumi di pacchetti SYN è quella di aumentare il numero massimo di connessioni semi-aperte ammesse dal sistema operativo. Per aumentare correttamente il backlog massimo, il sistema deve riservare delle risorse di memoria aggiuntive per la gestione di tutte le nuove richieste. Se il sistema non dispone di memoria sufficiente per gestire la dimensione aumentata della coda di backlog, ne faranno le spese le prestazioni del sistema, ma ciò sarà probabilmente comunque meglio di un evento di denial-of-service.
Un'altra strategia di mitigazione prevede, una volta riempito il backlog, di sovrascrivere la connessione che rimasta semi-aperta per prima in ordine cronologico. Affinché questa strategia sia efficace, è necessario che il tempo per stabilire connessioni legittime sia inferiore a quello richiesto per riempire il backlog di pacchetti SYN ostili. Questa particolare difesa fallisce quando il volume di attacco viene incrementato, o se la dimensione del backlog è insufficiente.
Questa strategia prevede la creazione di un cookie da parte del server. Al fine di evitare il rischio di perdere connessioni quando il backlog è pieno, il server risponde a ogni richiesta di connessione con un pacchetto SYN-ACK ma poi elimina la richiesta SYN dal backlog, rimuovendo la richiesta dalla memoria e lasciando la porta aperta e pronta per effettuare una nuova connessione. Se la connessione è una richiesta legittima, e viene inviato dal client al server un pacchetto ACK finale, il server ricostruirà (con alcune limitazioni) la voce SYN dalla coda del backlog. Malgrado la perdita di alcune informazioni sulla connessione TCP, è preferibile adottare questa tecnica di mitigazione piuttosto che consentire il verificarsi di eventi di tipo denial-of-service nei confronti di utenti legittimi a seguito di un attacco.
Cloudflare mitiga in parte questo tipo di attacco posizionandosi tra il server aggredito e il SYN flood. Quando viene effettuata la richiesta SYN iniziale, Cloudflare gestisce il processo di handshake nel cloud, trattenendo la connessione con il server preso di mira fino al completamento dell'handshake TCP. Questa strategia sposta il consumo di risorse per mantenere le connessioni con i pacchetti SYN ostili dal server oggetto dell’attacco alla rete Anycast di Cloudflare. Così funziona la protezione DDoS di Cloudflare.