Attacco DDoS: cos’è
Con il termine DoS (Denial of Service) o DDos (Distributed Denial of Service) si indica la negazione e la conseguente indisponibilità di un servizio web erogato causate da un sovraccarico anche temporaneo di risorse di rete, in seguito a un numero imprevisto di richieste scatenato rispettivamente da una o più fonti contemporaneamente, talvolta in modo non intenzionale o più solitamente attraverso un attacco informatico mirato.
Nei casi intenzionali, i criminal hacker riescono a realizzare e pianificare un attacco DDoS, individuando il punto debole di un sistema o di una rete e appena trovata la relativa vulnerabilità innescando la reazione per comprometterne l’operatività. Nei casi di attacchi DDoS più estesi ciò è reso possibile servendosi di vaste reti distribuite, le ben note botnet composte da migliaia di computer e sempre più di frequente da dispositivi IoT utilizzati indebitamente come vettori di attacco.
Attacco DDoS: come funziona
Gli scopi non sono dunque necessariamente quelli di hackerare un sistema, quanto piuttosto di creare disservizi (per vari motivi) o diversivi per distogliere l’attenzione dall’effettivo ultimo fine. A prescindere dalle intenzioni, le relative strategie adottate per ottenere una severa saturazione della banda di trasmissione o delle risorse di un sistema possono coinvolgere diversi livelli dello stack protocollare TCP/IP.
Ad esempio, gli attacchi ai livelli TCP e IP, generando un volume elevato di traffico mirano a colpire l’infrastruttura di rete, sovraccaricando la capacità delle risorse, dei server e delle applicazioni.
Il Flooding
Sfruttando il fatto che un server web può instaurare solo un certo numero di connessioni secondo un predeterminato dimensionamento, questo limite può venire superato con una inondazione di richieste anomale (flooding), comportando il blocco di tutti servizi erogati dal server colpito. Seguono alcune declinazioni.
Ping flooding
Attraverso l’ausilio di botnet vengono solitamente inviati in massa ai target designati dei pacchetti ICMP di echo request. Il ping flooding, se non adeguatamente gestito può innescare un processo che consuma le risorse disponibili.
SYN flooding
Questo schema di attacco sfrutta un abuso della procedura Threeway Handshake del protocollo TCP. Il protocollo di rete TCP (Transmission Control Protocol) si occupa di garantire un traffico dati senza perdite tramite una connessione costituita da un’autenticazione in tre passaggi:
- un client invia un pacchetto di sincronizzazione SYN a un server;
- il server accetta e reinvia a sua volta un altro messaggio SYN e uno di risposta ACK;
- la connessione viene chiusa da una conferma ACK lato client.
I sistemi possono paralizzarsi durante questa procedura se il server dovesse conservare diverse connessioni non concluse perché mancanti di conferme SYN e ACK. La presenza di molte di queste connessioni semiaperte e provocate da un attacco SYN flooding, se non adeguatamente gestita potrebbe rendere le risorse del server completamente occupate. Una contromisura potrebbero essere i SYN cookie: in tal caso, le informazioni inviate dai pacchetti SYN vengono salvate sui client, sotto forma di cookie criptati, utilizzando localmente solo le relative risorse senza sovraccaricare la memoria del sistema target.
UDP flooding
Anche il protocollo UDP (User Datagram Protocol) la versione connectionless del protocollo di livello trasporto può essere vulnerabile al flooding. A differenza di una trasmissione TCP, attraverso il protocollo UDP, una comunicazione dati può instaurarsi senza una connessione in tre passaggi. In questi casi per sovraccaricare i sistemi, compromettendone la relativa disponibilità, i pacchetti UDP vengono inviati in grandi quantità indicando dei numeri di porta che si riferiscono a delle applicazioni non presenti nel sistema target, il quale non riuscendo a individuare alcuna applicazione risponde ad ogni richiesta con un pacchetto ICMP “Indirizzo di destinazione non raggiungibile”.
HTTP flooding
In questo scenario d’attacco si mira a sovraccaricare le risorse di sistema, inondando il server web target con molte richieste HTTP (protocollo di livello applicazione) fino a renderlo non più raggiungibile a causa delle numerose richieste non gestite.
Lo sfruttamento di errori e falle di sicurezza
Anche falle di sicurezza nei sistemi operativi e vulnerabilità software, qualora esistenti e non risolte possono essere sfruttate per sferrare attacchi DDoS e provocare errori e crash di sistema. Ecco due casi noti:
- Ping of Death. I pacchetti IP vengono generalmente inviati sotto forma di frammenti che dovranno essere ricostruiti dal sistema ricevente. Se vengono inviate informazioni errate per la ricostruzione di tali pacchetti, i sistemi potrebbero generare anche pacchetti IP di dimensioni più grandi di quelle consentite causando un buffer overflow, perché la quantità di dati generata supererebbe lo spazio a disposizione. Il sistema vittima dell’attacco potrebbe così andare in crash.
- Attacchi Land. Sempre durante il processo di negoziazione Threeway Handshake previsto dal protocollo TCP, alterando i pacchetti SYN in modo che sia gli indirizzi mittenti che quelli destinatari corrispondano al server target, si potrebbe indurre il sistema vittima a entrare in un loop infinito, rispondendo continuamente alle sue stesse richieste ed esaurendo le proprie risorse sino ad andare in crash.
Gli attacchi DDoS amplificati
Gli attacchi DDoS che si basano su tecniche reflection/amplification colpiscono determinati obiettivi amplificando la loro portata (generando traffico dati dell’ordine dei Terabit) sfruttando le risorse di server di terze parti di tipo memcached (ovvero dotati di un sistema di gestione della memoria in forma distribuita e ad alte prestazioni per l’elaborazione di grosse quantità di dati) lasciati esposti in rete senza un’adeguata protezione. Si rammentano al riguardo gli attacchi subiti dai sistemi GitHub (con carico di picco pari a 1,3 Tbps) nel 2018 e dai sistemi AWS (con carico di picco pari a 2,3 Tbps) nello scorso mese di febbraio.
Contromisure di mitigazione
Per contrastare un sovraccarico dei sistemi informatici sono disponibili diverse soluzioni di sicurezza. Tra queste rientrano l’identificazione degli indirizzi IP critici, la risoluzione di vulnerabilità di sicurezza e la messa a disposizione di risorse hardware e software da utilizzare come bacini di espansione con cui sia possibile compensare gli effetti di eventuali attacchi DDos.
Un’altra tecnica di mitigazione potrebbe essere quella di ridurre al minimo la superficie e i relativi punti di attacco.
In alcuni casi, ciò è possibile confinando le risorse di calcolo su reti Content Distribution Network (CDN) o su sistemi di load balancing:
- Reti CDN. Le applicazioni Web possono utilizzare queste configurazioni di rete per fornire servizi e contenuti, agli utenti finali, sotto forma di sistemi distribuiti.
- Load Balancing. Anche il load balancing può essere impiegato per un’equa distribuzione del carico su diversi sistemi ed evitare così lo sfruttamento di hardware e servizi messi a disposizione per saturare banda e sovraccaricare processi.
In altri casi, per ridurre i punti vulnerabili potenzialmente attaccabili, è possibile limitare e monitorare il traffico dei dati, provenienti da rete pubblica e diretti verso determinate zone dell’infrastruttura di rete, utilizzando blacklist o ACL (Access Control List) per identificare e bloccare indirizzi IP critici, Web Application Firewall (WAF)per prevenire richieste illegittime che tentando di sfruttare potenziali vulnerabilità nelle applicazioni, potrebbero riuscire a mascherare anche un traffico dati anomalo.