Come Bloccare un attacco DDoS

banner bloccare un attacco ddos

Vuoi sapere come bloccare un attacco DDos ma non sai come fare? Non ti preoccupare, in questa guida scoprirai le basi su come difenderti da un attacco Distributed Denial of Service.

Un attacco informatico è un’azione intenzionale da parte di utenti non autorizzati verso sistemi informatici di altri utenti e/o aziende con due obiettivi fondamentali:

  • Accedere in modo non autorizzato ai dati;
  • Invalidare un servizio di rete attivo.

Nel mondo, ogni giorno gruppi di hacker tentano di accedere a sistemi informatici. Non a caso attualmente la figura dell’ethical hacker è diventata una delle maggiori professioni più richieste nel mondo del lavoro.

Nonostante ciò, molte aziende non hanno ancora compreso che la sicurezza dei loro dati deve essere messa al primo posto prima di qualsiasi attività.

Proprio per questo concetto che sfugge ai privati ma anche alle grandi imprese, ogni ora nel mondo vengono rubati una grande quantità di dati riservati.

Se sei un privato o un azienda e vuoi imparare come bloccare gli attacchi informatici in particolare l’attacco DDoS sei capitato nel posto giusto!

In questo articolo ti spiego come sono strutturati questi attacchi e quali sono le contromisure da adottare per difendere il tuo sistema.

Indice


Come si svolgono gli attacchi informatici?

Partiamo subito col dire che portare un attacco informatico a termine non è una cosa semplice.
Nei nostri sistemi informatici spesso sono presenti delle vulnerabilità o delle criticità che ad un potenziale attaccante agevolano di molto il suo compito. In quest’ottica, cerchiamo di comprendere quali sono le vulnerabilità dei sistemi informatici in rete.

Tutti gli elaboratori oggi, comunicano con lo stack di protocolli TCP/IP (per approfondire guarda il video 1 e video 2). Il protocollo IP garantisce l’indirizzamento logico dei nodi in una rete, la gestione della congestione di rete, e l’instradamento dei pacchetti tra un mittente e un destinatario.

Inoltre il protocollo preleva i datagrammi IP e li incapsula in nuovo pacchetto chiamato segmento TCP il quale porta le informazioni sul protocollo applicativo di livello superiore.
Il protocollo applicativo HTTP permette agli utenti di visualizzare le pagine web che troviamo su internet. Tale protocollo funziona con l’architettura client-server, ove il client è un nodo che vuole visitare un sito web, e il server è un nodo che offre le pagine web mediante il protocollo HTTP all’esterno.
Tale protocollo a livello TCP lavora con un livello di trasporto che assegna al server la porta di accesso 80, e ai client assegna una qualunque porta non privilegiata con un numero maggiore di 49152.

La caratteristica di tale protocollo, è quella di utilizzare la tecnica dei riscontri ACK tra client e server. In pratica il client divide i suoi dati in segmenti TCP numerati, e li invia al server. Il quale per ogni segmento TCP ricevuto invia un riscontro ACK Acknowledgement.

Dopo questa piccola panoramica entriamo più nello specifico.

Alcuni attacchi informatici, hanno lo scopo di attaccare e compromettere la trasmissione a livello IP e TCP, fino ad invalidare il servizio del server attaccato.

In pratica, un potenziale aggressore può attaccare un servizio servendosi delle caratteristiche del protocollo TCP. Infatti se analizzi più da vicino la comunicazione con questo protocollo, ti accorgerai che sono presenti alcuni punti di debolezza.

Nel caso non ti ricordi gli svantaggi di questo protocollo, cerco di rinfrescarti la memoria.

Il primo problema è legato al momento della comunicazione tra client e server.

Infatti quando un client vuole accedere tramite TCP ad un servizio su un server invia un pacchetto con un campo speciale detto SYN attivo. Questo campo comunica al server l’apertura di un canale (socket) con il client per cominciare la trasmissione vera e propria.

In questo frangente, un attaccante può eseguire un attacco di tipo “SYN FLOODING”. Ciò significa che inizierà ad aprire centinaia di connessioni con il campo SYN attivo.
Quando il server è inondato di richieste di nuove connessioni tende a saturare la sua RAM, rendendo via via il servizio inaccessibile.

Questo svantaggio è stato subito sfruttato dagli hacker per poter mettere fuori uso le macchine, ma attualmente questo tipo di attacco è poco utilizzato, poiché quando la sorgente è lo stesso IP tutti i protocolli applicativi di tipo TCP sono ben protetti.
Per farti comprendere come questo sia possibile, prendiamo in considerazione la configurazione di un web server molto noto ovvero Apache.

Questa configurazione può lavorare sia in HTTP, che in HTTPS (che è l’evoluzione cifrata ormai in uso su tutti i siti web di una certa levatura).

Oggi se non hai un sito web con un certificato che permetta agli utenti di ‘stare’ al sicuro navigando sul tuo sito internet, il tuo sito tenderà a venir screditato sui motori di ricerca.

Ora se vediamo la configurazione di Apache indipendentemente dal sistema operativo, devi prestare attenzione ad alcuni importantissimi parametri quali:

  • Timeout 300: tempo massimo espresso in secondi che il web server deve inviare o ricevere un pacchetto. Se viene superare tale limite il server chiude, automaticamente, la connessione con il client;
  • Keepalive On: consente ad ogni client connesso di effettuare più richieste al server di default se è impostato On.
  • MaxkeepAliveRequest 100: numero massimo richieste accettate per ogni connessione client consiglio di tenere un valore basso.
  • KeepAliveTimeout 5 : numero di secondi dopo il quale il server aspetta una nuova richiesta da una connessione dopo di che quest’ultimo chiude la connessione se non vi è altra richiesta da parte dello stesso client.
  • Maclient: rappresenta il numero massimo di client (IP) che possono accedere alle risorse del server.

Un attacco DoS prevede la disponibilità da parte di un attaccante di una banda superiore alla macchina bersaglio. Inoltre un attaccante esperto prepara l’attacco combinandolo con IP Spoofing.
L’IP Spoofing è la falsificazione dell’indirizzo IP che consente di nascondere la propria identità.
Per poter preparare un attacco partendo da IP Spoofing occorre che siano soddisfatti alcuni requisiti:

  • l’attaccante si deve trovare tra il mittente e il destinatario in quanto egli invia pacchetti con un indirizzo IP preso da un altro nodo reale, allo scopo di intromettersi nella comunicazione, e per intercettare anche i dati di ritorno ACK se l’attacco prevede un servizio di tipo TCP. Nella sostanza l’attaccante invia pacchetti con IP falso ovvero non suo, ma di un altro nodo, il destinatario lo riconosce come legittimo e reinvia pacchetti al mittente, che devono quindi essere intercettati dall’attacante (basta che siano sulla stessa rete);
  • L’attacco è condotto su di un servizio di livello UDP che non prevede messaggi di notifica ACK (ad esempio il protocollo DNS lavora così);
  • Quando si desidera solo rendere inaccessibile il servizio della vittima saturando la banda. In questo caso si può considerare un vero e proprio attacco DoS in quanto tende ad impedire ad altri nodi di accedere al servizio.

Bene, questo che ti ho descritto è un attacco di tipo DoS (Denial of Service).

Attacchi DoS e DDoS: Esiste una differenza?

Come descritto nel paragrafo precedente, hai appena letto come si sviluppa un attacco DoS.

Vediamo ora come si sviluppa un attacco DDoS e se esiste una differenza tra i due attacchi informatici.

In questo attacco, la prerogativa principale è che l’attaccante costruisce una rete di amplificazione, per far si che la vittima riceva i pacchetti “Spoof” con le false richieste TCP ricevute da più mittenti.

A questo punto ti stai chiedendo cosa intendo per rete di amplificazione, vero?

Una rete di amplificazione è una rete di computer che amplifica le richieste partendo da una sola sorgente, Un esempio tipico è una rete LAN dove posso far partire un’amplificazione.

Ad esempio se dal mio calcolatore inizio ad inviare pacchetti all’indirizzo Broadcast di una LAN mal configurata, ottengo come effetto che in una rete molto grande viene generato traffico aggiuntivo non indirizzato a nessun nodo specifico.

Questo traffico che ho generato entrando nella rete LAN, viene poi portato ad aumentare il flusso di dati con conseguente inacessibilità al servizio.
In sostanza l’attacco Smurf avviene in questo modo:
L’attaccante inizia ad inviare alla Rete LAN di amplificazione pacchetti con mittente falsificato con quello della vittima e configurando l’IP di destinazione con l’IP Broadcast della rete LAN. Una volta che la rete comincia a rispondere alla richieste ad esempio ICMP (ping), l’attaccante inoltra quest’ultime all’IP della vittima. In questo modo la vittima riceve un grande traffico che consuma la sua banda e mette a rischio la sua operatività in termini di servizi.

Bene, ora avrai compreso che ci sono delle grosse difficoltà tecniche per generare un attacco DoS e/o DDoS, seppur esistono software appositi che lo fanno al posto tuo. Ti premetto che tutto questo materiale descritto in questo articolo è solo per fini di studio, poichè l’interruzione di un servizio pubblico su Internet piccolo o grande che sia è punito dalla legge precisamente dal Codice Penale.
In questo schema ti riporto la differenza tra attacco Dos e DDoS. Come puoi osservare nell’attacco DoS è un solo calcolatore a portare l’attacco, mentre nell’attacco DDoS si sfrutta la rete di amplificazione descritta in precedenza.

Schema di un attacco DoS e DDos

Come bloccare un attacco DDoS

Questi attacchi informatici sono molto difficili da attuare, ma allo stesso tempo sono anche molto difficili da individuare e controllare.

Il primo problema, per cui sono molti difficili da individuare, risiede nel fatto che un pacchetto SYN/ACK è legittimo se inviato sulla porta TCP del servizio, ed è quindi impossibile riconoscere questo dagli altri, se non dopo che l’attacco è in corso.

Una possibile soluzione a questo problema possiamo prenderla dalla configurazione di Apache. Ovvero è quella di dimensionare bene i parametri che ti ho mostrato in relazione alle caratteristiche del tuo servizio.
Un’altra possibilità è quella di diminuire il TTL ovvero il Time To Live dei pacchetti nella rete per diminuire le potenziali connessioni “appese” (quelle con il flag SYN attivo).
Una terza via, è quella di impostare il firewall in modo che scarti casualmente le richieste con SYN attive, in questo modo ogni nodo che tenterà di accedere al tuo servizio la prima volta potrebbe non riuscirci subito.
In ultimo e non meno importante è opportuno installare sul tuo computer o sul tuo servizio un IDS ovvero un software anti-intrusione, che può prevedere e bloccare molti attacchi di questo tipo.

Ti avrei voluto parlare anche di altri tipi di attacchi, approfondire l’attacco Smurf, ma la materia è molto vasta, nelle prossime settimane vedremo una distribuzione Linux e torneremo sull’argomento.