Sia le piccole e medie imprese che le grandi aziende devono oggi fare i conti con i rischi derivanti dagli attacchi informatici. Basta aprire la propria casella e-mail, spesso anche quella aziendale, per ritrovarsi inondati di tantissimi messaggi di posta elettronica, molti dei quali pericolosi ed illegittimi..
Col tempo, la nostra capacità di riconoscere le e-mail dannose è certamente migliorata ma questo non vuol dire che possiamo sentirci al sicuro. Gli hacker sperimentano costantemente nuove tecniche di attacchi e, dunque, è importante operare sempre con una grande attenzione, soprattutto nei contesti aziendali.
In questo articolo parleremo di un’altra tipologia di cyber attack molto in voga, l’attacco UDP Flood. Scopriremo in cosa consiste, quali sono le sue caratteristiche e cosa si può fare per difendersi da esso.
Che cos’è un attacco UDP Flood?
Un UDP flood è un tipo di attacco denial-of-service in cui un gran numero di pacchetti UDP (User Datagram Protocol) viene inviato a uno specifico server con l’obiettivo di sovraccaricare la capacità del dispositivo di elaborare e rispondere. Il firewall che protegge il server di destinazione può anche esaurirsi a causa dell’UDP flood.
L’attacco UDP può, inoltre, sfruttare il sistema firewall, impedendo ad un dispositivo di ricevere traffico legittimo. Gli hacker, infatti, potrebbero utilizzare indirizzi IP falsi per mantenere l’anonimato e assicurarsi che nessuno dei pacchetti ICMP raggiunga il server host.
I canali UDP possono essere utilizzati per inviare un volume immenso di traffico a qualsiasi host. Non esistono meccanismi interni di difesa in grado di limitare la velocità di un flusso UDP. Di conseguenza, gli attacchi UDP Flood sono particolarmente pericolosi in quanto eseguibili con una proporzione limitata di risorse.
Come funziona l’attacco UDP flood
Un flusso UDP funziona principalmente sfruttando i passaggi che un server esegue quando risponde a un pacchetto UDP inviato a una delle sue porte. In condizioni normali, quando un server riceve un pacchetto UDP su una specifica porta, risponde attraverso due passaggi:
- In primo luogo, il server controlla se sono in esecuzione programmi in attesa di richieste sulla porta specificata;
- Se nessun programma riceve pacchetti su quella porta, il server risponde con un pacchetto ICMP (ping) per informare il mittente che la destinazione non era raggiungibile.
Un flusso UDP si può, sotto certi aspetti, paragonare al lavoro di smistamento delle chiamate da parte degli addetti alla reception degli hotel. Generalmente, chi telefona all’operatore della reception chiede di essere connesso a una stanza specifica. A questo punto, l’operatore deve esaminare l’elenco di tutte le stanze per assicurarsi che l’ospite sia presente in camera e disponibile a rispondere alla chiamata.
Una volta che l’addetto alla reception si rende conto che l’ospite non sta rispondendo a nessuna chiamata, deve riprendere il telefono e dire a chi telefona che l’ospite non risponderà alla chiamata. Se improvvisamente tutte le linee telefoniche dovessero attivarsi contemporaneamente con richieste simili, ci sarebbe un sovraccarico.
Come difendersi da questo attacco
Tradizionalmente, il metodo di mitigazione UDP si basava su firewall che filtravano o bloccavano i pacchetti UDP dannosi. Tuttavia, tali metodi stanno diventando irrilevanti, poiché i moderni attacchi ad alto volume possono facilmente avere la meglio dei firewall.
In genere, la maggior parte dei sistemi operativi tenta di mitigare gli attacchi flood UDP limitando il tasso di risposte ICMP. Tuttavia, tale filtraggio indiscriminato potrebbe condizionare anche il traffico legittimo.
Ci sono, comunque, alcune best practice per difendersi da un attacco UDP Flood. In primo luogo, bisogna lavorare sul server ed assicurarsi che esso non abbia bisogno di risorse eccessive per gestire i pacchetti in arrivo.
Infatti, se un pacchetto UDP in entrata da un indirizzo di origine non confermato avvierà un processo molto impegnativo per memoria e CPU ed utilizza più pacchetti UDP per trasferire una risposta al client, il server potrebbe essere un bersaglio facile da attaccare.
È necessario, poi, dare un’occhiata alle impostazioni del firewall, facendo attenzione al carico di lavoro richiesto ai vari pacchetti. Inoltre, è importante disporre di un’ampia larghezza di banda. Poiché i pacchetti ricevuti tenderanno a consumare la larghezza di banda in entrata indipendentemente dalle attività svolte, avere un buon quantitativo di “bandwith” è fondamentale.
Collaborando con il proprio provider, si possono infine prendere le giuste misure per il filtraggio del traffico. Se vengono individuati schemi facilmente riconoscibili che possono essere utilizzati per distinguere il traffico legittimo dall’inondazione, i filtri potrebbero essere applicati prima, in modo tale che i collegamenti non vengano sovraccaricati.