A distanza di 50 anni dalla loro comparsa, gli attacchi denial-of-service (DoS) e distributed denial-of-service (DDoS) sono ampiamente riconosciuti, ma continuano a causare danni significativi alle organizzazioni di tutti i settori e dimensioni. I malintenzionati impiegano questi metodi consolidati poiché mantengono la loro efficacia nel tempo.
Ma quali sono le differenze. Vediamo nel dettaglio.
Cos’è un attacco DoS?
Un attacco DoS tipicamente prende di mira una macchina o un server. L’attaccante inonda il bersaglio con molteplici richieste di risorse condivise, e la macchina si blocca. Le capacità di elaborazione e calcolo del server sono sopraffatte e non riesce a tenere il passo con le richieste.
Un attacco DoS generalmente prende di mira una macchina o un server. L’aggressore sovraccarica il bersaglio con numerose richieste di risorse, portando il sistema al blocco. Le capacità di elaborazione e calcolo del server non riescono più a star dietro alle richieste, impedendogli di gestirle adeguatamente.
Le possibili conseguenze? Gli utenti finali potrebbero non essere in grado di inviare email, visitare un sito web o elaborare transazioni online.
Sebbene un attacco DoS non sia progettato per assumere il controllo del server, il conseguente tempo di inattività può comportare perdite finanziarie significative. Anche i costi indiretti, come la perdita di clienti e il danno al marchio o alla reputazione, risultano rilevanti.
Gli attacchi DoS mirano a interrompere le operazioni di un’organizzazione, impedendo la normale attività, a differenza degli attacchi motivati finanziariamente o per furto di dati come l’estorsione o il ransomware.
Gli attori malevoli eseguono attacchi di tipo DoS indirizzando un computer specifico e sovraccaricandolo con indirizzi IP falsificati e pacchetti di dati corrotti. Un attacco di successo può compromettere gravemente il funzionamento del dispositivo in pochi minuti o giorni, a seconda della velocità e dell’intensità con cui vengono trasmessi gli indirizzi e i pacchetti.
Gli attacchi DoS mirano a interrompere dispositivi o server singoli.
Tipi di attacchi DoS
I tipi di attacchi DoS generalmente rientrano nelle seguenti categorie:
- Reindirizzamento del browser: in questo attacco, l’utente finale viene dirottato su un sito web diverso da quello previsto.
- Chiusura delle connessioni: una volta che l’utente finale chiude un sito web, non può più accedervi perché la connessione non è più attiva.
- Cancellazione dei dati: il cyberattaccante elimina le risorse condivise nel server.
- Esaurimento delle risorse: l’accesso al server rallenta notevolmente. Questo è l’attacco DoS più comune.
Cos’è un attacco DDoS?
Un attacco DDoS è simile a un attacco DoS ma l’obiettivo è disabilitare più di una macchina o servizio. Un attacco DDoS utilizza più host compromessi per infettare più macchine contemporaneamente. Un singolo attacco DDoS può colpire più sistemi in diverse aree geografiche allo stesso tempo. Questa tecnica è stata utilizzata per interrompere componenti critici dell’infrastruttura, come le forniture d’acqua e le reti elettriche.
Gli attacchi DDoS si basano sull’uso di server o dispositivi compromessi, noti come botnet o zombie. Questi zombies sono controllati da un computer remoto che coordina l’attacco. A causa dell’enorme portata e scala di un attacco DDoS, risulta complicato identificare i responsabili. Gli attacchi DDoS sono resi possibili non solo dall’elevata interconnettività di dispositivi fisici e virtuali, ma anche dall’evoluzione dei dispositivi IoT.
Gli attacchi DDoS utilizzano le medesime vulnerabilità degli attacchi DoS, ma la scala dei danni può aumentare notevolmente a causa del numero di macchine e server coinvolti.
Alcuni eventi DDoS degni di nota includono l’attacco del febbraio 2020 su AWS, che ha sfruttato una vulnerabilità di LDAP; l’attacco del dicembre 2020 su Google lanciato da ISP cinesi; e l’attacco del settembre 2016 del botnet Mirai su Krebs on Security, Dyn e altri siti.
Tipi di attacchi DDoS
Gli attacchi DDoS rientrano in tre categorie principali:
- Attacchi basati sul volume: si tratta degli attacchi più comuni, in cui gli aggressori sommergono i target con una marea di richieste.
- Attacchi al protocollo: mirano al layer 3 (network) e al layer 4 (transport) del modello OSI.
- Attacchi al livello applicativo: mirano al layer 7 (application) del modello OSI e sono considerati i più difficili da mitigare e rilevare.
Metodi di attacco comuni includono:
- UDP flood. Questo tipo di attacco prevede l’invio massivo di pacchetti di dati falsificati alle porte del server, sovraccaricando il sistema durante il tentativo di assemblare tali pacchetti. Gli attacchi UDP flood possono coinvolgere diversi protocolli, come DNS, Network Time Protocol, VoIP e reti peer-to-peer, tra gli altri.
- ICMP flood. Conosciuto anche come “ping flood”, questo attacco sovraccarica la vittima con richieste di ICMP echo. Gli attaccanti utilizzano numerosi dispositivi per inondare i server con pacchetti ping falsificati, influenzando la larghezza di banda in entrata e in uscita mentre il server tenta di rispondere. Gli attacchi possono colpire endpoint interni specifici come router o computer.
- HTTP flood. I malintenzionati inviano numerose richieste HTTP a un server web per rallentarlo o sovraccaricarlo. Gli attaccanti possono utilizzare comandi HTTP GET o HTTP POST. Il comando GET implica il sovraccarico del server con numerose richieste di immagini o file, mentre il comando POST comporta la richiesta continua di URL da un server fino al suo blocco.
- TCP SYN flood: Gli attaccanti inviano richieste SYN a un server ma non inviano mai l’ACK di ritorno. Di conseguenza, il tradizionale handshake tra il computer dell’utente finale e il server non può essere completato. Tali attacchi possono essere eseguiti tramite riflessione o in forma distribuita. L’attacco di riflessione comporta l’invio di richieste SYN con indirizzi IP falsificati, inducendo il server a rispondere agli indirizzi contraffatti con pacchetti SYN-ACK. Un attacco distribuito, invece, sfrutta una botnet per generare un gran numero di richieste SYN..
- Attacco Fraggle. Questo tipo di attacco utilizza richieste UDP echo per inviare un gran numero di pacchetti a un indirizzo di broadcast o multicast su un server.
- Attacco Smurf. Simile a un attacco Fraggle, ma utilizza richieste ICMP echo.
- Slowloris. Questo attacco prende di mira un server web. Crea un effetto a cascata su tutti i siti web sullo stesso server avviando richieste HTTP e mantenendole attive.
- Buffer overflow. L’attaccante mira a sfruttare le regioni di memoria del server per esaurire tutta la memoria disponibile. Questo si verifica quando la quantità di dati immessi supera ampiamente la capacità di elaborazione del server. Gli attacchi di buffer overflow possono essere basati su stack o heap. Gli overflow di buffer basati su stack colpiscono la memoria disponibile al momento dell’attacco, mentre gli attacchi basati su heap prendono di mira l’intera memoria assegnata a un programma.
- Ping of death. Gli attaccanti inviano pacchetti di dati superiori a 65.535 byte al server in parti più piccole. Il server si blocca tentando di riassemblarli, superando la dimensione massima consentita. Questo attacco colpisce hypervisor, istanze cloud e reti cloud.
- Amplification attack. Noto anche come Reflection attack, l’Amplification attack coinvolge attori malintenzionati che falsificano indirizzi IP per inviare richieste a un server “riflettore”. Questo server genera una risposta di grande dimensione che sovraccarica il server bersaglio. Gli attacchi di amplificazione possono colpire protocolli come TCP, UDP, ICMP, Simple Service Discovery Protocol/Universal Plug and Play e DNS. Quest’ultimo è la versione più comune dell’attacco.
Come prevenire gli attacchi DoS e DDoS
Gli attacchi DoS e DDoS colpiscono senza preavviso. È quindi fondamentale che le organizzazioni non solo sappiano come identificare un attacco del genere, ma anche ridurre l’esposizione e sapere come mitigare gli effetti degli attacchi DoS e DDoS. Alcune opzioni includono:
- Monitorare continuamente le reti per segni di un attacco.
- Utilizzare un web application firewall per monitorare e filtrare il traffico web.
- Suddividere le reti in subnet più piccole utilizzando la segmentazione della rete.
- Utilizzare il rate limiting per controllare il numero di richieste in arrivo e prevenire il sovraccarico di un sistema.
- Utilizzare una content delivery network, che utilizza server distribuiti e rende più difficile bloccare la rete di un’organizzazione.
- Seguire le migliori pratiche di patching.