Gli attacchi di tipo Distributed Denial of Service (DDoS), evoluzione dei classici attacchi DoS (Denial of Service), rappresentano uno degli strumenti malevoli più diffusi nei ricchi “arsenali” offensivi di cui dispongono i criminal hacker e le motivazioni che stanno alla base di un attacco DDoS possono essere di qualsiasi genere: si va dal semplice atto di cyber vandalismo all’estorsione. In passato, ad esempio, alcuni gruppi di cyber criminali hanno usato la minaccia di un attacco DDoS per intimorire le proprie vittime e costringerle a pagare un “pizzo” in Bitcoin.
In altri casi, invece, un attacco DDoS può servire ad un attaccante per attirare le attenzioni dei reparti IT di un’organizzazione e saturare le risorse a disposizione degli strumenti di difesa mentre è in corso un altro cyber attacco mirato al furto di dati o all’installazione di malware e backdoor sui computer della rete locale.
Indice degli argomenti
Tutti i tipi di attacchi di tipo DoS
Gli attacchi basati sulla tecnica cosiddetta Denial of Service (letteralmente: negazione del servizio) vengono categorizzati come Abuse Existing Functionality (Abuso di funzionalità esistenti) e possono essere di vati tipi:
- DDoS – Distributed Denial of Service
- TCP flood
- UDP flood
- ICMP flood
- HTTP flood
- SSL flood
- Amplification
- XML flood
A questi attacchi potremmo poi aggiungere tutte le problematiche legate ad una cattiva configurazione delle risorse di rete che potrebbero portare ad un’interruzione del servizio simile a quella innescata da un attacco DDoS:
- Arp flood
- DHCP exhaustion
- IP pool exhaustion, phone/VoIP flood
- SMS bombing
- errata gestione dell’incremento di traffico
Praticamente, ogni tipo di meccanismo che comprende l’esaurimento delle risorse di un servizio on-line fino a renderlo non più disponibile rientra nella tipologia di un attacco di tipo Denial fo Service.
La tendenza attuale è quella di una diminuzione degli attacchi DDoS di base, mentre si osserva un significativo aumento di cyber attacchi sempre più sofisticati che utilizzano le nuove tipologie di Denial of Service come HTTP flood.
Cos’è un Denial of Service?
Cerchiamo ora di comprendere meglio cos’è e come funziona un Denial of Service. Partiamo dalla definizione del The Tech Terms Computer Dictionary:
“Un attacco Denial of Service è uno sforzo per rendere uno o più sistemi di computer non disponibili. In genere è indirizzato ai server Web, ma può anche essere utilizzato su server di posta, server DNS e qualsiasi altro tipo di sistema informatico. Gli attacchi DoS (Denial of Service) possono essere avviati da una singola macchina, ma in genere utilizzano molti computer per eseguire un attacco. Poiché la maggior parte dei server ha firewall e altri software di sicurezza installati, è facile bloccare i singoli sistemi. Pertanto, gli attacchi DDoS (Distributed Denial of Service) vengono spesso utilizzati per coordinare più sistemi in un attacco simultaneo“.
Come abbiamo già anticipato, però, esistono molte modalità di esecuzione di questo meccanismo di attacco e frequentemente ne appaiono di nuove.
Vediamo quindi di immaginare alcuni scenari tipici di un attacco DoS, le sue motivazioni e le conseguenze.
Prendiamo ad esempio una web application che genera rapporti sulle ore di lavoro e sui task dei dipendenti di un’azienda. Per ogni request, l’applicazione accede al suo database per estrarre tutti i dati utili per completare la richiesta ricevuta. Se il database contiene centinaia di migliaia di record, l’utente dovrà attendere qualche minuto per avere un report completo. Durante questi minuti, la CPU del server DB può raggiungere il 60% di utilizzo per cercare i dati corrispondenti.
Un attacco DoS basato su application layer invierà 10 task simili simultaneamente costringendo il sistema ad utilizzare il 100% della CPU rendendo di fatto il servizio inaccessibile agli altri utenti.
Si tratta di un esempio veramente semplice, ma aiuta a capire la strategia alla base di questi meccanismi di attacco ed è utile a individuare un Denial of Service in base all’ambito di attacco:
- DoS su user specifico: un attaccante potrebbe continuare ad eseguire il login come un determinato utente e se il sito adotta difese basate sul lock dopo un certo numero di tentativi, potrebbero estromettere l’utente reale impedendogli di fare il login. Durante un attacco complesso che sfrutta diversi meccanismi malevoli, ad esempio, un attaccante potrebbe trovare utile bloccare l’admin dall’accedere alla web app o al server.
- DoS su database: un attaccante potrebbe usare delle tecniche di SQL injection per modificare le tabelle e rendere il sistema instabile. Ma ancora: se un database è mal configurato, basterebbe eseguire delle query in modo insistente e massivo riuscendo così a metterlo fuori uso. Parlando di database di siti e-commerce o business critical, possiamo bene immaginare il danno.
- DoS su web app: Un attaccante potrebbe usare tecniche di buffer overflow per inviare request “forgiate” in un particolar modo per far andare in crash i processi e renderlo inutile. Per esempio, se non viene limitato l’inserimento dei caratteri nella sezione “contatti”, un utente potrebbe inserire migliaia di caratteri fino ad ottenere un 500 internal server error (o peggio), ottenendo a volte anche informazioni critiche. Un attacco del genere condotto da un solo utente potrebbe essere lieve, ma fatto da 100 persone contemporaneamente potrebbe avere gravi conseguenze.
Attacchi DDoS: evoluzione della tecnica Denial of Service
L’attacco di tipo DDoS è un DoS con la peculiarità di provenire da più sorgenti: da qui deriva l’acronimo di Distributed Denial of Service, che può essere tradotto in “negazione del servizio distribuita”.
Questo tipo di attacco può avere diverse varianti:
- attacco volontario: servizi di DDoS acquistabili anche sul Dark Web per poco più di 10 dollari al giorno (a volte non solo nel mercato nero);
- attacco involontario: in questo caso, l’attaccante o gli attaccanti prendono il controllo di server/client legacy o configurati malamente e creano quella che si chiama botnet, ovvero una rete creata da macchine “zombie” controllate da remoto dai criminal hacker che vengono utilizzate per colpire il sistema target. In genere, queste macchine non hanno alcun indice di compromissione che sveli la loro trasformazione in un veicolo di attacco, salvo avere un eccessivo utilizzo delle risorse.
La struttura dei moderni attacchi non si differenzia molto da quella originale a parte alcuni che utilizzano tecniche di reflection. Vediamole nel dettaglio.
NTP amplification attack: cos’è e come funziona
È un attacco della famiglia denominata DRDoS , ovvero Distribuited Reflected Denial of Service. L’attaccante produce requests verso i server utilizzando non il proprio IP ma quello del server bersaglio. In questo modo il server entrerà in un loop tentando di ritrasmettere a sé stesso i pacchetti mancanti.
È anche chiamato “attacco a risparmio” poiché l’attaccante sfrutta l’amplificazione per inviare poche richieste e fare in modo che sia la vittima stessa a amplificare la magnitudo dell’attacco stesso.
Facciamo un esempio:
- Chi attacca usa una botnet inviando pacchetti UDP con un IP spoofed verso un server con il comando monlist attivo (qualche volta chiamato MON_GETLIST). L’IP dentro ogni pacchetto è quello del bersaglio.
- Ogni pacchetto UDP fa una richiesta al server NTP usando il comando monlist ottenendo una risposta con pacchetti di dati di grandi dimensioni.
- A questo punto il server risponde “a sé stesso” con i dati richiesti.
- Il ricevente, essendo sempre sé stesso, non fa altro che amplificare la risposta.
Come i server NTP anche i DNS si “prestano” bene a questo tipo di attacchi (non bisogna però confonderli con gli attacchi di tipo DNS flood) e in genere, anche se non amplificato, tutti i servizi che usano le Raw Sockets sono potenzialmente vettori di attacco per la loro possibilità di cambiare l’indirizzo di provenienza (gli spoofer ringraziano).
Buona norma è non esporre nessun tipo di servizio non necessario all’esterno e all’interno dell’infrastruttura.
Moderni attacchi DoS: di cosa si tratta
Tra i moderni attacchi di tipo DoS dobbiamo ricordare i cosiddetti parasiting computing, chiamati così perché consentono ai criminal hacker di sfruttare le risorse computazionali delle vittime per compiere le loro azioni malevoli. Un esempio tipico sono i cryptominer che, dopo aver criptato i file alle vittime, usano la potenza di calcolo dei sistemi compromessi per minare cryptovalute.
Alla stessa maniera funzionano anche gli attacchi di tipo TCP flood, XML flood, UDP flood e via dicendo. Tutti questi attacchi mirano all’esaurimento delle risorse del computer target, anche se per raggiungere l’obiettivo usano tecniche diverse.
Per fortuna oggi i sistemi di prevenzione contro questi attacchi sono molti di più e molto più complessi di quelli agli albori di internet, ma spesso non sono configurati o vi è una errata valutazione e capacità delle proprie capacità di difesa.
Gli attacchi di tipo DoS più sofisticati sfruttano sempre una mancanza di buona gestione dei limiti delle risorse e spesso sfruttano errori nel DNS del nostro provider.
Sarebbe errato, ad esempio, pensare che un semplice firewall basti a fermare un attacco DDoS complesso. Potrebbe al massimo scartare determinati pacchetti limitando le query e via dicendo, ma come tutte le macchina anche il firewall ha i suoi limiti e di fronte ad una botnet estesa potrebbe avere seri problemi a gestire la difesa.
Perfino i Next-Generation Firewall non riuscirebbero a difendere una rete da tutti i tipi di attacco di tipo DoS/DDoS.
I consigli per difendersi da un attacco DDoS
Ecco dunque alcuni utili consigli per prevenire un attacco di tipo DoS/DDoS e mitigare i possibili danni subiti:
- limitare le richieste alle risorse e ritagliare il traffico in base al carico effettivo;
- non esporre servizi inutili e che non sono cruciali;
- eseguire un hardening iniziale dei sistemi (web server, DB server ecc.), ed eseguirlo periodicamente, specialmente dopo aggiornamenti e/o modifiche;
- scartare a priori i bogus packet;
- forzare l’accesso a portali dipendenti e/o critici a determinate fasce di IP o meglio accedervi solo tramite VPN.
- controllare ogni cosa cruciale prima di mandarla in produzione e non dopo aver ricevuto il “colpo”. L’utente, del resto, deve poter fare nel nostro sistema solo ciò che è consentito fare: se compie operazioni “strane” tipo eseguire script, vuol dire che non vuole esserci “amico” ma ha ben altri piani;
- infine, è necessario monitorare costantemente ogni parte della propria infrastruttura ed intervenire per correggere eventuali vulnerabilità, perché c’è sempre qualcuno pronto a sfruttare le risorse altrui per compiere le sue malefatte.
La capacità di difesa contro gli attacchi DoS deve esser paragonabile all’impatto che avrebbero sul business aziendale.
Se abbiamo un sito e vendiamo gadget per maniaci dei film horror, possiamo anche permetterci un down temporaneo del servizio. Una banca no.