Un attacco TCP SYN Flood (noto anche come "attacco semiaperto") è una forma di attacco Denial-of-Service (DoS) o Distributed Denial-of-Service (DDoS). L'obiettivo dell'attacco è rendere un server irraggiungibile per le richieste legittime sovraccaricando deliberatamente le sue risorse. L'attaccante invia un gran numero di pacchetti SYN, utilizzati per avviare una connessione TCP. Il server riserva quindi risorse per ogni richiesta di connessione in entrata e attende la conferma finale dal client. Poiché questa conferma non arriva mai, molte connessioni rimangono "semiaperte". Ciò esaurisce gradualmente le porte disponibili e le risorse di sistema del server, in modo che gli utenti legittimi possano accedere al servizio solo con ritardi o non possano accedervi affatto.
Gli attacchi TCP SYN Flood sfruttano specificamente la fase di instaurazione della connessione TCP. In condizioni normali, questa fase avviene tramite il cosiddetto handshake a tre vie, che consiste in tre passaggi consecutivi per stabilire una connessione stabile tra client e server.
Per un attacco Denial-of-Service, un attaccante sfrutta il fatto che il server riserva risorse dopo aver ricevuto un pacchetto SYN, invia un pacchetto SYN/ACK e poi attende la conferma finale del client. Esattamente questo comportamento è quello di cui l'attaccante approfitta. Il processo si svolge come segue:
Quando un server nella rete considera una connessione aperta, ma il partner di comunicazione non completa una connessione completa, si parla di connessione semiapertta. In questa forma di attacco DDoS, il server di destinazione mantiene aperte molte connessioni incomplete e attende un timeout prima di liberare le risorse e le porte occupate. Poiché nuove connessioni semiaperte si accumulano continuamente, questa tecnica di attacco è anche chiamata "attacco semiaperto".
Quando un attacco viene condotto tramite una botnet, rintracciare l'attaccante reale è molto più difficile, poiché il traffico è distribuito su molti dispositivi compromessi. Gli attaccanti possono anche manipolare o nascondere gli indirizzi IP dei dispositivi mittenti, rendendo difficile identificare l'origine effettiva dei pacchetti. Se viene utilizzata una botnet come la botnet Mirai, il classico oscuramento dell'IP dell'attaccante spesso non è più necessario, poiché la comunicazione avviene comunque tramite numerosi dispositivi infetti che fanno parte dell'attacco.
Un attacco TCP SYN Flood senza IP spoofing è chiamato attacco diretto. In questo caso, l'attaccante utilizza il proprio indirizzo IP reale senza alcuna occultamento. Poiché l'attacco proviene da un singolo sistema sorgente, è relativamente facile da rilevare e bloccare. Per creare lo stato di connessione semiapertta sul sistema di destinazione, l'attaccante si assicura che il suo computer non risponda alle risposte SYN/ACK del server. Ciò può essere ottenuto, ad esempio, tramite regole del firewall che sopprimono le risposte in uscita o scartano specificamente i pacchetti SYN/ACK in entrata. In pratica, tuttavia, questo metodo viene raramente utilizzato poiché è relativamente facile da contrastare, ad esempio bloccando il singolo indirizzo IP attaccante. Se invece viene utilizzata una botnet come la botnet Mirai, la necessità di nascondere l'IP dell'attaccante reale scompare, poiché l'attacco è già distribuito su molti dispositivi compromessi.
Un attaccante può inoltre falsificare l'indirizzo IP nei pacchetti SYN inviati (IP spoofing) per rendere più difficili le contromisure e nascondere la propria identità. Anche se i pacchetti contengono indirizzi mittente manipolati, rintracciare fino alla sorgente effettiva è ancora possibile in determinate circostanze. Sebbene questo processo sia complesso e impegnativo, non è fondamentalmente escluso, specialmente quando i provider di servizi Internet (ISP) cooperano nell'analisi e nel tracciamento dei percorsi di rete.
Un attacco TCP SYN Flood consente a un attaccante di creare una denial-of-service su un sistema o servizio di destinazione con un volume di dati comparativamente basso. A differenza degli attacchi DDoS volumetrici, che principalmente sovraccaricano l'infrastruttura di rete con grandi quantità di dati, questo attacco si concentra sulle risorse del sistema operativo stesso. È sufficiente che il numero di connessioni semiaperte superi la capacità del cosiddetto backlog del sistema di destinazione. Se l'attaccante può anche stimare la dimensione di questo backlog e la durata del timeout delle connessioni aperte, i parametri necessari possono essere determinati con precisione per sovraccaricare deliberatamente il sistema. Ciò consente di raggiungere una denial-of-service con traffico di rete minimo.
Per proteggersi dagli attacchi DDoS TCP SYN Flood, sono disponibili diverse opzioni:
Questa strategia prevede l'utilizzo di cookie da parte del server. Per evitare che il backlog venga sovraccaricato di richieste SYN e che le connessioni legittime vengano rifiutate, il server risponde inizialmente a ogni richiesta di connessione con un pacchetto SYN/ACK, ma non archivia la richiesta in modo permanente nel backlog. Invece, le informazioni associate vengono temporaneamente scartate, liberando risorse e mantenendo le porte disponibili per nuove connessioni. Solo quando viene ricevuto un pacchetto ACK finale valido dal client la connessione viene confermata come legittima e lo stato associato nel backlog viene ripristinato, con alcune limitazioni. Anche se alcune informazioni di connessione non vengono completamente preservate, questo compromesso è accettato perché impedisce agli utenti legittimi di essere colpiti da una denial-of-service durante un attacco.
Ogni sistema operativo su un sistema di destinazione limita il numero di connessioni semiaperte simultaneamente possibili. Una possibile risposta agli alti volumi di richieste SYN in entrata è aumentare questo limite, consentendo più richieste di connessione simultanee. Tuttavia, aumentare il backlog richiede risorse di sistema aggiuntive, in particolare memoria, per gestire le connessioni aperte. Se queste risorse sono insufficienti, può influire sulle prestazioni del sistema, ma in molti casi è ancora preferibile a un'interruzione completa del servizio causata da un attacco denial-of-service.
Un'altra strategia di difesa è scartare la connessione semiapertta più vecchia quando il backlog è pieno e sostituirla con una nuova. Questo metodo presuppone che le connessioni legittime possano essere completamente stabilite più velocemente di quanto il backlog venga riempito da richieste SYN dannose. Altrimenti, il sistema continua a perdere risorse per connessioni incomplete. La strategia è solo parzialmente efficace e può fallire se il volume di attacco è troppo alto o il backlog è complessivamente troppo piccolo.
La limitazione della velocità è un metodo che consente a un server di limitare il numero di richieste SYN in entrata per indirizzo IP. Ciò impedisce a un attaccante di inviare troppe richieste SYN e di sovraccaricare il backlog. La limitazione della velocità viene spesso utilizzata in router o firewall per prevenire attacchi DDoS. La protezione di limitazione della velocità controlla ogni pacchetto SYN in entrata e lo confronta con un pattern predefinito. Se il pacchetto non corrisponde al pattern, viene scartato. Ciò impedisce a un attaccante di eseguire un attacco denial-of-service.
Tievolu protegge dagli attacchi TCP SYN Flood con la DDoS Protection sviluppata internamente "Tievolu PYRUS". Tutto il traffico TCP viene monitorato continuamente e filtrato automaticamente quando necessario. Un sistema integrato basato su AI e ML rileva pattern insoliti e anomalie e risponde in pochi secondi con contromisure appropriate. Vengono presi in considerazione vari parametri per garantire la difesa più precisa ed efficace possibile. Quando viene identificato un attacco TCP SYN Flood, la DDoS Protection riconosce il pattern di attacco caratteristico e crea automaticamente regole di filtraggio che vengono implementate negli appliance di filtraggio corrispondenti. Ciò consente di rilevare e bloccare automaticamente le fonti di attacco note senza richiedere intervento manuale.
In alternativa, i clienti possono attivare un ulteriore livello di protezione contro gli attacchi TCP SYN Flood tramite il nostro Cloud Firewall. Nel Cloud Firewall, è possibile configurare regole di filtraggio TCP specifiche per catturare specificamente solo i pacchetti SYN. Queste regole possono anche essere combinate con vari meccanismi di limitazione della velocità per limitare il numero di richieste in entrata. Inoltre, è possibile estendere i filtri con blocchi ASN o geografici (geo-blocking) per ridurre il traffico sospetto o indesiderato in una fase iniziale.