Distributed Denial of Service

Cos’è il DoS? E il DDoS?

Il DoS è uno dei peggiori attacchi che spesso mettono in ginocchio aziende causando il blocco a volte temporaneo a volte irrimediabile dei servizi. Il DoS accade quando un dispositivo tempesta un altro dispositivo di richieste fasulle. Lo scopo è quello di saturare le risorse a disposizione del servizio e ci sono diversi modi per poterlo fare, come ad esempio saturare la banda di rete, la memoria RAM, il disco, il processore, eccetera. Questa tecnica è molto interessante ed ha diverse varianti. Come descritto di seguito il tutto si gioca sui tempi di attesa e sul dare false informazioni di risposta.

Comunicazione regolare tra due dispositivi di rete

Brevemente quando una applicazione si mette in ascolto per ricevere richieste, apre un socket e ne specifica la coda di backlog, un buffer dove mettere in attesa tutte quelle richieste che devono essere processate. In una normale connessione TCP, ad esempio, viene utilizzato il three-way handshake, che funge un po’ come un saluto prima di avviare la vera e propria trasmissione dei dati.

Andiamo più in dettaglio (ma poco più!). In una logica di client e server, il server è in ascolto e in attesa del client. Prima di fare una richiesta, il client deve richiedere la disponibilità del server e lo fa attraverso un SYN seq <num x>. e attende risposta. Il server, una volta recepito il messaggio se è disponibile per una “chiaccherata” invia un SYN-ACK ack <num x+1> seq <num y> inserendo anch’esso un suo numero di sequenza (seq <num y>) e resta in attesa. Diciamo che fa una contro-verifica al client. Il client, ricevuta la risposta del server, nota l’incremento del suo sequence number e un nuovo sequence number: quello del server. A questo punto il client risponde con ACK ack <num y+1> seq <numx +1> incrementando quindi il solo sequence number del server informando questi che sono sincronizzati ed inizia a inviare i dati.

Cosa c’entra il DoS con tutto questo?

Proviamo ad immaginare: cosa succederebbe se riempissi la backlog con richieste da processare finte inviando dei SYN con indirizzi ip di risposta sbagliati e richiedessi servizi per un timeout superiore al normale?

Metterei il server in questa condizione: la coda è satura di richieste fasulle ed inoltre quelle richieste alle quali sta rispondendo (fasulle anche quelle) lo fanno aspettare per risposte che non arriveranno mai… Inoltre le vere richieste sono in drop perchè il buffer ormai è pieno. E’ da notare che tra queste qualcuna buona può essere processata ma il sistema è sicuramente degradato ed estremamente lento. Questo è il DoS.

dos

Variante 1: il DDoS

Quello sicuramente più conosciuto ed in voga oggi e che spesso viene generalizzato come DoS è il DDoS, ovvero il Distributed Denial of Service. Se un server riesce in qualche modo a saturare un altro server esaurendogli le risorse tempestandolo di richieste, è pur vero che se qualcuno riuscisse a rintracciare il server malevolo e a spegnerlo, il “divertimento sarebbe finito”. Qualcuno malauguratamente ha notato che se fossero due, tre, cento, mille, milioni, i numeri di device che attaccano un servizio, beh allora la cosa sarebbe un po’ più interessante. Caro lettore, sono delle vere e proprie guerre quelle che si scatenano in rete! Il Distributed Denial of Service è catastrofico e seppur diversi esperti ed aziende vi siano dietro per contrastarne gli effetti, la strada per combattere ed arginare questi attacchi si dimostra ancora lunga e faticosa. Ogni tecnologia nuova da spunto per aumentare le possibilità di attacco, mettendo sempre di più a rischio il buon funzionamento dei nostri servizi.

ddos

Variante 2: il R-DoS… e il D-RDoS!

Una particolare variante è il Reflected DoS, R-DoS,  in cui viene usato un server ponte che sarà lui poi a bersagliare la vittima. Si usa, come al solito, la tecnica dell’ip spoofing, ovvero si creano pacchetti ip con indirizzi falsi, dove l’ip sorgente è il server ponte e la destinazione è il server/client vittima. Tipico di questo caso è l’attacco ad un server NTP, in cui un attaccante manda un piccolo pacchetto che causa la risposta da parte del server, una riposta che comporta l’invio di dati provenienti da un numero ingente di server. Il pacchetto inviato e la risposta causano una disparità in termini di dimensioni, da rendere semplice l’attacco con conseguente saturazione della banda.

Sempre utilizzando l’ip spoofing è possibile rendere l’R-DoS ancora più perfido grazie al DRDoS. Ovvero il relativo Distributed RDoS! Il server ponte è il bersaglio medesimo che risponde affermativamente alle connessioni in quanto provengono da lui stesso. Il DoS è causato dall’effetto moltiplicatore delle ritrasmissioni dei pacchetti ip da parte degli attaccanti che non vedono la risposta da parte del server bersaglio.

Un po’ di storia.

Sono convinto che per capire a fondo le cose, le si debba dedicare tempo e sonno, e sono anche convinto che per poter in qualche modo farle proprie e dominarle,  bisogna conoscere un po’ della loro storia e contestualizzarle.

  • 2 novembre 1988 ore 18: Robert Tappan Morris, esperto di sistemi informatici rilascia un programma che sfrutta 4 bug di linux e che avrebbe dovuto replicarsi un numero finito di volte ed in modalità contenuta. Purtroppo la cosa gli sfugge di mano ed il programma si replica centinaia di volte saturando tutti i sistemi.
  • Agosto 1999: 227 dispositivi inondano di pacchetti un server dell’univerisità del Minnesota, lascianodolo offline per più di due giorni.
  • 7 febbraio, 2000 Mafia Boy, nome d’arte del giovane Michael Calce, hacker Canadese di soli 15 anni mette in ginocchio aziende multinazionali come Amazon, Ebay, Yahoo, CNN… sferrando attacchi DDOS dai suoi zombie. (Zombie è il termine tecnico per definire i pc sotto controllo di un hacker ed usati da questo per portare o tentare di portare a termine i propri scopi).

Non voglio certo fare lo storico della situazione, ma questi tre episodi sono, a mio avviso, i primi che in qualche modo danno inizio ad una delle diverse tecniche per violare i sistemi informativi. Senza entrare ulteriormente nel merito, da queste pietre miliari ci saranno un susseguirsi di diversi attacchi, da parte di diversi hacker che per un motivo o per l’altro (spesso politici, economici.. ecc) studiano sistemi per mettere in ginocchio aziende e multinazionali.

Chi deve preoccuparsi di difendersi da un DoS e le sue varianti?

Tendenzialmente le istituzioni in genere. Ad oggi è difficile che un hacker si sprechi, se non per puro diletto ed allenamento, a mettere fuori uso il server del sig. Rossi. Le maggiori aziende a rischio sono sicuramente quelle che esplicitamente, o implicitamente, possano essere coinvolte in eventi politici, economici, di accentramento del potere e così via. E’ un modo per fare la guerra, forse sarà la guerra del futuro? Di sicuro causerà meno morti di un missile, o di una sventagliata di mitra, ma lascerà altrettanti disastri dietro di se.

Come difendersi?

Ora veniamo ad un punto cruciale: si può impostare una difesa per gli attacchi DoS, DDoS e le loro varianti? La realtà, per il momento, è che sia davvero difficile poter dire come difendersi da attacchi del genere e come prevenirli. Di fatto, molte aziende che sviluppano e producono software e sistemi di sicurezza informatici mettono a disposizione diversi tools anche avanzati e molto potenti che permettono di proteggersi da diversi attacchi, ma come è stato dimostrato il 21 ottobre 2016 da parte di alcuni hacker che hanno utilizzato Mirai per mettere in difficoltà i servizi di DynDNS, non esiste ancora “una cura” definitiva.

L’unico modo è quello di armarsi di pazienza e configurare bene i server, i dispositivi perimetrali, tenendo traccia di tutto. Avere una buona documentazione dei porpri sistemi è fondamentale. Disegni di architetture e relative descrizioni. Verificare almeno una volta al mese la robustezza della rete e chiedere consulenza. Aggiornare i sistemi operativi, gli applicativi, i tools, configurare i firewall, i proxy, i reverse proxy. Insomma metabolizzare finalmente che i sistemi informativi sono la parte più importante del nostro core business perchè, salvo pochi casi, ne sono l’infrastruttura di appoggio. Cosa accadrebbe alla vostra azienda se per due o più ore smettesse di dare servizio ai propri clienti? Siete disposti ad accettare il rischio? Se il vostro sistema informatico, oggi, in questo momento, venisse messo fuori uso la vostra azienda per quanto andrebbe avanti?

Investire nella sicurezza oggi, è chiaro,  si rende più che mai necessario.

Cerchiamo di non farlo dopo aver subito un danno, ma prima!

 

About the author: Alessandro Flacco

System Architect Engineer / Information security and Privacy consulting.