Attacchi di rete: DoS

Luca Cicchinelli/ dicembre 28, 2016/ Networks/ 0 comments

Analizzeremo le principali tipologie di attacchi di rete di tipo DoS (Denial of service).

DoS

Uno degli attacchi di rete più semplici e più conosciuti è il DoS.
Questo attacco si limita a bloccare un determinato servizio, o una determinata risorsa, esaurendone le risorse di rete generando un enorme flusso di dati.

Normalmente per effettuare un attacco di tipo DoS vengono inviati moltissimi pacchetti ICMP(echo request).
Alla ricezione di uno di questi pacchetti viene inviato un pacchetto di risposta(echo reply) verso l’indirizzo di provenienza del pacchetto ricevuto.

Per esempio quando si effettua un Ping verrà inviato un pacchetto ICMP di tipo echo request.
Verrà poi calcolato il tempo, impiegato da esso, per ritornare come pacchetto ICMP di tipo echo reply,

  1. Ping richiesto da badpr0g diretto a xyz;
  2. Invio di un pacchetto ICMP echo request da parte di badpr0g;
  3. Ricezione del pacchetto echo request da parte di xyz;
  4. Invio di un pacchetto ICMP echo reply da parte di xyz diretto a badpr0g;
  5. Ricezione del pacchetto echo reply da parte di badpr0g;
  6. Calcolo del tempo impiegato dal pacchetto per arrivare a xyz come echo request e tornare a badpr0g come echo reply.

Ping flooding

Gli attacchi DoS di tipo flooding, non bloccano una risorsa ma si limitano a generare un tale traffico da renderla inutilizzabile.
Il flooding non viene utilizzato solo rivolto ad una risorsa di rete, può riguardare anche cicli della CPU che processi di sistema.

Una delle forme più semplici del flooding è il ping flood, che consiste nell’occupare tutta la larghezza di banda del target rendendo così impossibile il traffico di dati all’interno di essa.
L’attacco si svolge inviando tanti pacchetti ICMP quanti la banda è in grado di inviarne.

Se l’aggressore può inviare più dati di quanti il target ne può ricevere: l’attacco andrà a buon fine.

Esiste un modo per effettuare questo tipo di attacco senza utilizzare enormi quantità di banda chiamato: smurf.

In questo tipo di ping flood si andrà ad utilizzare lo spoofing.
Verrà sostituito l’indirizzo di origine del pacchetto con l’indirizzo del target.

Sfruttando l’indirizzo di broadcast di una rete malconfigurata, possiamo far inviare a tutti gli host attivi sulla rete un pacchetto ICMP, di risposta, verso il nostro target.
Tutti i pacchetti di risposta provenienti dalla ricezione del pacchetto ICMP di tipo echo request verranno inviate al target sotto forma di pacchetti ICMP di tipo echo reply.

Questi indirizzi di broadcast permettono all’aggressore di inviare un numero relativamente piccolo di richieste echo ICMP mentre il target sarà letteralmente sommerso dalle risposte di ogni singolo host all’interno della rete utilizzata.

SYN flooding

Un attacco di tipo SYN flood tenta di esaurire gli stati nello stack TCP/IP in quanto TCP mantiene solo connessioni che devono essere obbligatoriamente tracciate.

Di questo si occupa lo stack TCP/IP presente nel kernel, in cui è presente una tabella in grado di tracciare un numero finito di connessioni in arrivo.

Per utilizzare questo tipo di attacco viene utilizzato lo spoofing dell’indirizzo di provenienza di un pacchetto SYN.

Un pacchetto SYN viene utilizzato per iniziare una connessione TCP, alla ricezione di questo tipo di pacchetto da parte del target sarà inviato un pacchetto di tipo SYN/ACK all’indirizzo precedentemente spoofato e verrà attesa la risposta prevista da un pacchetto di tipo ACK.

Ognuna di queste connessioni semiaperte in attesa del pacchetto ACK rimarrà ferma nella tabella di cui parlavamo prima, che ha uno spazio limitato.

Le risposte non arriveranno mai, in quanto il pacchetto di tipo SYN/ACK è stato inviato ad un indirizzo inesistente.

La tabella si riempirà, in quanto il tempo di timeout delle connessioni è relativamente lungo.
I pacchetti SYN reali non potranno arrivare al target ed iniziare connessioni TCP/IP valide.

Teardrop

Questo è un attacco che sfrutta una vulnerabilità presente in alcune implementazioni del sistema di riassemblaggio dei frammenti di IP.

Quando un pacchetto è frammentato gli offset contenuti nella sua intestazione permettono di ricostruirlo senza alcun tipo di problema.

Il Teardrop invia pacchetti frammentati con offset sovrapposti causando il blocco nelle implementazioni che non prevedono questa condizione.
Questo tipo di attacco non funziona più, ma ricordiamoci che comprendere il meccanismo di un certo tipo attacco può evitare di ripetere gli stessi errori nel caso di implementazioni di nuovi protocolli.

Ping of Death

Un pacchetto ICMP può contenere soltanto 65.536 byte nella sua sezione dati.

Spesso questa sezione viene tralasciata poiché le informazioni più importanti si trovano nell’intestazione, la maggior parte dei sistemi si bloccavano in seguito della ricezione di un pacchetto ICMP più grande del previsto.

Un pacchetto ICMP enorme divenne noto come “Ping of Death“.
Ormai i sistemi moderni non presentano più questa vulnerabilità, perciò l’implementazione di questo tipo di attacco risulterebbe totalmente inutile.

Conclusione

Il fine di HOWORKS è quello di informare, non mi assumo nessuna responsabilità dell’uso che farete delle informazioni contenute in questo articolo.
Per qualsiasi dubbio potete contattarci utilizzando i commenti o le nostre pagine social.

Facci sapere cosa ne pensi con un commento!