Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Attacchi DoS

Denial Of Service, interruzione del servizio, stop alle comunicazioni. Vediamo da vicino uno degli attacchi più utilizzati per mettere fuori uso siti e servizi sul Web
Denial Of Service, interruzione del servizio, stop alle comunicazioni. Vediamo da vicino uno degli attacchi più utilizzati per mettere fuori uso siti e servizi sul Web
Link copiato negli appunti

Quando sentiamo parlare di pirateria in rete siamo in genere portati a pensare
all'azione di persone molto abili che riescono a penetrare sistemi informatici
ed eventualmente a rubare informazioni riservate.

Parallelamente a questa pirateria "classica" si è sviluppata nel tempo una attività illegale che
non prevede nessuna intrusione ma il cui unico scopo è l'interruzione dei servizi messi a disposizione dai
server presenti su internet. Il nome di questo tipo di attacco è Denial of Service, o semplicemente
DoS, cioè negazione di servizio.

Per capire la portata che questo genere di attacco può avere basta
riflettere su quanto il web sia diventato importante come strumento commerciale
e come mezzo di comunicazione. Al giorno d'oggi moltissime società fondano la
propria attività unicamente su internet e sull'offerta di servizi online agli
utenti. Si pensi ai provider di connettività, ai motori di ricerca come Google, ai grandi fornitori di servizi
di posta come Yahoo! e Hotmail, ai giornali online e in generale a qualsiasi società presente sulla rete con il proprio sito web. Per questi, scomparire improvvisamente della rete significa un
enorme danno economico e di immagine. Gli attacchi DoS su vasta scala mirano proprio a questo.

Ad aggravare ulteriormente lo scenario contribuisce il fatto che questo
genere di attacco, che è molto più diffuso di quanto si possa pensare, è
spesso molto semplice da attuare e, cosa ancor più grave, molto difficile
da combattere
.

Le motivazioni che portano a compiere attacchi DoS possono essere le più
varie. Ragioni Mydoom, il worm ideologico per esempio hanno spesso portato all'oscuramento di siti in
segno di protesta contro la politica o le scelte delle relative società. A tal
proposito solo pochi mesi fa il virus MyDoom ha sferrato un massiccio attacco
DoS contro SCO e Microsoft.

Il sito della RIAA, l'associazione dei discografici americani, più volte è
caduto sotto i colpi del Denial of Service dopo la sua dichiarazione di guerra
al peer-to-peer e lo stesso è successo alla MPAA, l'associazione della case
cinematografiche americane, dopo la sua crociata antipirateria.

Ancora, spammer agguerriti sono arrivati a scatenare attacchi contro i
principali server che gestiscono le black list antispam per riuscire a spargere
indisturbati la loro posta spazzatura. Citiamo infine il terrorismo informatico che mira ad abbattere siti
istituzionali e governativi e recentemente si annoverano perfino attacchi
a fine di estorsione
.

Tipologie di attacchi

I fattori che permettono la realizzazione di questi attacchi possono essere molti e il risultato è sempre lo stesso: un malfunzionamento tale impedire la normale erogazione del servizio ai legittimi utenti. Vediamo alcune delle tipologie possibili:

  • Esaurimento delle risorse: si porta il sistema in una condizione di
    instabilità attraverso un sovraccarico delle sue risorse interne. È
    possibile per esempio forzare la CPU a lavorare al 100% delle proprie
    possibilità oppure si può fare in modo di esaurire la memoria o lo spazio
    su disco o ancora far si che vengano generati una quantità enorme di
    processi che portano allo stallo del sistema operativo. In ognuna di queste
    situazioni il corretto funzionamento della macchina non sarà possibile.
     
  • Saturazione della banda: ogni interfaccia di rete è in grado di
    gestire correttamente una limitata quantità di informazione per unità di
    tempo. Se improvvisamente la rete viene inondata con una quantità di
    traffico superiore alla sua capacità si otterrà l'impossibilità per il
    traffico legittimo di essere ricevuto correttamente.
     
  • Vulnerabilità del software e dei sistemi operativi: in questo caso
    il problema è imputabile ad un difetto di programmazione che non permette
    la corretta gestione di alcune situazioni anomale. L'invio di pacchetti mal formati può in questo caso portare ad instabilità, blocco o
    persino riavvio della macchina. Per non incorrere in questo genere di
    problemi è essenziale aggiornare il proprio sistema con le patch di
    sicurezza rilasciate dal produttore del software vulnerabile.
     
  • Alterazione delle informazioni di configurazione: in questo
    caso l'attaccante cambiando le impostazioni relative alla gestione della
    rete o del sistema è in grado di modificare il percorso del flusso dei dati. Si immagini per esempio di accedere alle tabelle di routing di
    un router che permette alla rete di una società di comunicare con il mondo
    esterno. Se opportunamente modificata tutto il traffico può essere
    rediretto verso una destinazione inesistente in modo da isolare
    completamente la rete. In questo caso è essenziale proteggere adeguatamente
    l'accesso a queste impostazioni vitali.
     

Di seguito si illustreranno alcuni esempi classici di attacchi DoS. Alcuni di
questi hanno fatto storia e oggi non sono più pericolosi. Altri rimangono
purtroppo decisamente attuali e continuano a mietere vittime illustri in tutta
le grande rete.

Ping of death

È un tipo di attacco, sicuramente datato e oramai non più pericoloso, che
fonda il suo funzionamento su una vulnerabilità di alcuni stack TCP/IP.
Attraverso il comando Ping è possibile inviare ad un sistema un
pacchetto ICMP Echo Request. La macchina che riceve questo tipo di
pacchetto in genere risponde al mittente con un pacchetto Echo Reply per
comunicargli che è attiva sulla rete.
Il Ping of Death consiste nell'invio di un pacchetto Echo Request di
dimensioni molto grandi. Per la natura della rete questo pacchetto viene prima
suddiviso in tanti frammenti più piccoli e viene riasssemblato solo quando
raggiunge la destinazione.
La vulnerabilità consiste nel fatto che il buffer di ricezione della macchina
ricevente che dovrebbe ospitare il pacchetto ricostruito non è sufficientemente
grande per contenerlo interamente. La parte eccedente provocherà un Buffer
Overflow che nella maggior parte dei casi bloccherà l'intera macchina impedendo
qualsiasi altra operazione.

Land Attack

Land sfrutta una vecchio bug nella gestione delle connessioni TCP oramai
corretto dai principali produttori di sistemi operativi.
L'attacco prevede l'instaurazione di una connessione TCP con la macchina remota
attraverso un pacchetto SYN in cui sia l'indirizzo IP che la porta del mittente
sono stati falsificati (spoofed) in modo tale da essere uguali a quelli del
destinatario. Questo fa si che il ricevente pensi di aver ricevuto il pacchetto
da se stesso. Questa condizione portava a vistosi rallentamenti del sistema fino
allo stallo completo della macchina.

TearDrop

Ancora una vecchia vulnerabilità che questa volta coinvolge il modulo IP che
gestisce il riassemblamento dei pacchetti frammentati.
A basso livello le reti non possono gestire pacchetti più grandi di poche
centinaia o migliaia di byte. Per questo motivo il protocollo IP prevede la
frammentazione dei pacchetti più grandi al fine di soddisfare i requisiti
richiesti. La ricostruzione del pacchetto originale sul sistema di destinazione
avviene attraverso degli indici (offset) presenti negli header dei singoli
frammenti che indicano la posizione relativa dei dati in arrivo. Se questi
indici sono intenzionalmente modificati per far si che i singoli frammenti
risultino parzialmente o interamente sovrapposti il sistema va in crisi
provocando un Denial of Service.

Flooding

Con questo tipo di attacco passiamo al genere di DoS non imputabili
direttamente a difetti del software quanto piuttosto a limiti intrinseci della
rete e dei suoi protocolli.
To flood in inglese significa allagare e la tecnica consiste nel
saturare completamente la banda in ingresso di una macchina attraverso una
quantità di traffico decisamente superiore alle sue capacità. Il sistema così
inondato risulta paralizzato e incapace di trattare i pacchetti legittimi.
L'attacante dovrà ovviamente disporre di una banda in uscita decisamente
superiore a quella della vittima per riuscire nell'intento. Questo è uno dei
motivi per cui in genere si preferisce un attacco distribuito che verrà
illustrato in seguito.
A seconda del protocollo usato si parlerà di TCP flooding, UDP
flooding o ICMP flooding.
Come si può facilmente intuire non è facile combattere questo tipo di DoS a livello di sistema attaccato. L'unica soluzione possibile in questo caso è
operare a monte, in un punto della rete a più ampia banda (presso il service
provider ad esempio) dove il flooding non crei problemi e dove sia quindi
possibile un filtraggio.

SYN flood

Questo attacco è uno tra i più utilizzati e fonda il suo funzionamento su
una debolezza dello stesso protocollo TCP/IP.

L'instaurazione di una connessione TCP tra due computer avviene attraverso il
cosiddetto Three-Way HandShake che si può così schematizzare:
 

3 way

  • Il sistema A desidera connettersi ad un server B e gli invia
    un pacchetto in cui è impostato un bit denominato SYN.
  • Il server B risponderà alla richiesta con un pacchetto in cui sono
    settati i segnali SYN e ACK.
  • A questo punto il sistema A invierà a B un un ultimo
    pacchetto ACK per confermare definitivamente la sua intenzione ad aprire un
    canale di comunicazione.

Da questo momento in poi i due sistemi saranno connessi e potranno scambiarsi
i dati veri e propri.

La fase critica in questo tipo di attacco è la prima. Dopo la ricezione del
pacchetto SYN infatti il server B alloca dello spazio nella sua memoria
per conservare le informazioni relative allo stato della connessione.
Il protocollo inoltre prevede che se dopo avere spedito il pacchetto SYN+ACK il
server non riceve, entro un certo lasso di tempo (timeout),  l'ultimo ACK
dal sistema A allora il pacchetto deve essere considerato perso.
Il server quindi provvederà nuovamente ad inviare il pacchetto SYN+ACK e
aumenterà progressivamente il timeout di attesa della risposta. Dopo un certo
numero di tentativi falliti la connessione verrà interrotta e la memoria
allocata sarà liberata.

Il SYN flood si basa sui concetti illustrati e prevede l'invio ad un sistema B
di pacchetti SYN il cui indirizzo IP del mittente risulta falsificato (spoofed).
È chiaro che in questa situazione il server invierà in risposta i pacchetti
SYN+ACK a macchine sbagliate le quali non sapendo interpretare i pacchetti
ricevuti semplicemente li ignoreranno. Il server B, ignaro di tutto,
interpreta questa situazione come la perdita di un pacchetto e ritenta varie
volte l'operazione. Durante tutto questo tempo, che può durare anche svariati
minuti, lo stato della connessione rimane allocato occupando spazio in memoria.
Se l'attacante infine inonda il server vittima con una grande quantità di
questi pacchetti SYN falsificati l'effetto utile sarà quello di fargli esaurire
rapidamente la memoria a causa delle innumerevoli connessioni aperte.

DDoS

Attraverso la tecnica del Distributed Denial of Service (DDoS) è possibile
amplificare a dismisura la potenza di un attacco DoS. In questo caso il sistema
dell'attaccante (Master) comanda un esercito di macchine compromesse (Zombie)
sulle quali è stato installato un software Trojan. Comunicando con tale
software il Master può ordinare ad ogni singola macchina Zombie di sferrare in
modo congiunto un attacco di flooding verso un particolare obiettivo. La
larghezza di banda ottenibile in questo modo è direttamente proporzionale al
numero di Zombie sotto controllo e può facilmente metter in ginocchio i sistemi
dei grandi signori della rete come Yahoo!, Microsoft e Google.

Proteggersi da questo tipo di attacco è veramente difficile a causa della
mole di dati inviata e a causa della virtuale impossibilità di identificarne
l'origine a causa della falsificazione dell'IP della sorgente.
Gli unici rimedi preventivi sono attuabili dai provider e dalle grandi reti
potenziali sorgenti di traffico DoS e consistono nel bloccare tutti i pacchetti
uscenti dalla propria rete aventi IP falsificato. Le vittime degli attacchi
invece possono purtroppo fare ben poco.

Alcune risorse sugli attacchi DoS:

La pagina del CERT:
http://www.cert.org/tech_tips/denial_of_service.html

Una bella panoramica sui tipi di attacchi:
http://vayner.net/dos/dos.html

Le pagine di Steve Gibson che descrivono gli attacchi subiti dai suoi
sistemi:
http://www.grc.com/dos/grcdos.htm
http://www.grc.com/dos/drdos.htm

Ti consigliamo anche