Denial of service

Denial of service, nel campo della sicurezza informatica, indica un malfunzionamento dovuto a un attacco informatico (abbreviato attacco DoS, lett. "attacco di diniego del servizio") in cui si fanno esaurire deliberatamente le risorse di un sistema informatico che fornisce un servizio ai client, ad esempio un sito web su un server web, fino a renderlo non più in grado di erogare il servizio ai client richiedenti.[1][2]
In un attacco distribuito di negazione del servizio[3] (in inglese Distributed Denial of Service abbreviato in DDoS), il traffico dei dati in entrata che inonda la vittima proviene da molte fonti diverse. L'esempio in analogia è quello di un gruppo di persone che affollano la porta d'ingresso o il cancello di un negozio o di un'azienda, e non consentendo alle parti legittime di entrare nel negozio o nel business, interrompono le normali operazioni. Ciò rende effettivamente impossibile fermare l'attacco semplicemente bloccando una singola fonte.
Oltre al senso primario di denial of service come azione deliberata ci si può riferire ad esso come azione accidentale, in seguito per esempio ad una errata configurazione,[4][5] o come nel caso dell'effetto Slashdot.[6]
Storia
[modifica | modifica wikitesto]Alcune testimonianze mostrano che la prima dimostrazione di attacco DoS è stata fatta da Khan C. Smith nel 1997 durante un evento DEF CON che ha interrotto l'accesso a Internet alla Las Vegas Strip per oltre un'ora. Il rilascio del codice di esempio durante l'evento ha portato all'attacco online di Sprint, EarthLink, E-Trade e altre grandi aziende nell'anno a seguire.[7]
Descrizione
[modifica | modifica wikitesto]Gli attacchi vengono abitualmente attuati inviando molti pacchetti di richieste, di solito ad un server web, FTP o di posta elettronica saturandone le risorse e rendendo tale sistema "instabile" e non disponibile agli altri utenti. Qualsiasi sistema collegato ad Internet e che fornisca servizi di rete basati sul TCP è quindi soggetto al rischio di attacchi DoS. Inizialmente questo tipo di attacco veniva attuato da "cracker", come gesto di dissenso etico nei confronti dei siti web commerciali e delle istituzioni.
Gli attacchi DoS hanno la connotazione decisamente più "criminale" di impedire agli utenti della rete l'accesso ai siti web vittime dell'attacco. Per rendere più efficace l'attacco in genere vengono utilizzati molti computer inconsapevoli, detti zombie, sui quali precedentemente è stato inoculato un programma appositamente creato per attacchi DoS e che si attiva ad un comando proveniente dal cracker creatore. Se il programma maligno si è diffuso su molti computer, può succedere che migliaia di PC violati da un cracker, ovvero una botnet, producano inconsapevolmente e nello stesso istante un flusso incontenibile di dati che travolgeranno come una valanga anche i link più capienti del sito bersaglio.
Non solo i sistemi server possono essere vittime di un attacco DoS ma anche semplici utenti e client, sebbene questi attacchi siano molto meno frequenti e di nessun interesse per i cosiddetti cracker.
La probabilità sempre minore di incontrare sistemi veramente vulnerabili ha fatto sì che siano diminuiti gli attacchi DoS più eclatanti, però si è scoperta un'estrema vulnerabilità della rete per l'aumento costante della potenza operativa degli attuali personal computer e dell'accesso ad Internet tramite i sistemi DNS. L'implementazione del protocollo TCP/IP, che non garantisce particolare sicurezza sull'identificazione dei mittenti di pacchetti ma anzi ne protegge l'anonimato, può essere sfruttata per mascherarne la vera provenienza.
Trattandosi di connessioni apparentemente legittime, è impossibile bloccarle senza interrompere anche il flusso realmente inoffensivo. Però, limitando drasticamente il numero di sessioni aperte simultaneamente, l'impatto dell'attacco si riduce considerevolmente senza limitare il flusso dei pacchetti regolari. Anche limitando il discorso al blocco di un sito web esistono, e sono stati utilizzati, parecchi modi di ottenere questo risultato.
Di solito gli attacchi DoS possono essere sfruttati per richiedere un riscatto, come preludio di un altro attacco (magari bloccando un servizio di difesa o addirittura il servizio stesso per sostituirlo con uno falso), come atti vandalici o come una forma di protesta (Hacktivism).
Tassonomia dell'attacco
[modifica | modifica wikitesto]Lo scopo di questo attacco è saturare la backlog queue con richieste di attivazione di un servizio (TCP SYN settato) oltre la scadenza dei relativi timeout e non consentendo alla vittima di completare il 3-way handshake; in questo modo non sarà in grado di gestire i SYN leciti a cui verrà negato il servizio.
Sintomi
[modifica | modifica wikitesto]Lo United States Computer Emergency Readiness Team (US-CERT) ha identificato i seguenti sintomi di un attacco denial-of-service:[8]
- prestazioni di rete insolitamente lente (apertura di file o accesso a siti Web);
- indisponibilità di un determinato sito web;
- incapacità di accedere a qualsiasi sito web;
- drammatico aumento del numero di e-mail di spam ricevute (questo tipo di attacco DoS viene detto "mail bombing").
Ulteriori sintomi possono includere:
- disconnessione di una connessione internet wireless o cablata;
- negazione a lungo termine dell'accesso al Web o di qualsiasi servizio Internet.
Se l'attacco viene condotto su una scala sufficientemente ampia, intere regioni geografiche connesse ad Internet possono essere compromesse senza la conoscenza o l'intento dell'aggressore da parte di apparecchiature dell'infrastruttura di rete configurate in modo errato o inconsistenti.
Tipi di attacco
[modifica | modifica wikitesto]- Attacco diretto: l'attaccante interagisce direttamente con la vittima. In questo caso l'attaccante si dice reale e la vittima si dice di primo livello.
- Attacco indiretto: l'attaccante sfrutta terze parti per colpire la vittima. In questo caso l'attaccante si dice riflesso, le terze parti si dicono vittime di secondo livello e la vittima finale si dice vittima di primo livello.
Attacchi portati da un singolo host
[modifica | modifica wikitesto]Questi tipi di attacco, provenendo da un'unica fonte, sono potenzialmente rintracciabili.
Syn-Flood
[modifica | modifica wikitesto]Storicamente il Syn-Flooding rappresenta il capostipite degli attacchi DoS, che trova le sue dirette radici nel Ping of Death. Il termine Syn Flooding, letteralmente tradotto con "inondazione di pacchetti di tipo Syn", nasce dal fatto che tutte le volte che un utente fa clic su un collegamento ipertestuale di una pagina web richiede l'apertura di una connessione (di tipo TCP) verso quel sito; questo avviene seguendo una serie di passi, il primo dei quali consiste nell'invio di un pacchetto TCP che richiede l'apertura di una connessione.
Tutte le regole di funzionamento del protocollo TCP esigono che il sistema risponda allocando alcune risorse (in pratica memoria) per la connessione. Programmando opportunamente un semplice PC, è possibile richiedere l'apertura di diverse migliaia di connessioni al secondo, che "inondando" il server e ne consumano rapidamente tutta la memoria, bloccandolo o mandandolo in crash.
Il punto debole di questo tipo di attacco è che il computer attaccante deve essere in grado di mandare il flusso di pacchetti attraverso la connessione ad Internet fino al server attaccato.
Diversamente, l'utente malintenzionato deve poter fornire delle "credenziali" di accesso valide per usufruire della vulnerabilità insorta nel sistema operativo e portare a termine, efficacemente, l'attacco al sito bersaglio.
I pacchetti dannosi predisposti con un indirizzo IP falsificato (cioè modificato rispetto a quello originale), procureranno al computer "vulnerabile" una situazione temporanea di Denial of Service; tuttavia, poiché le connessioni che sono normalmente disponibili sono lente per tutti (per soggetti ben intenzionati così come per soggetti malintenzionati), questo tipo di attacco diventa impraticabile, nel senso che non dà il risultato atteso (cioè appunto la congestione del server)
Un esempio potrebbe essere il seguente: l'attaccante invia una serie di richieste alla sua vittima e la macchina server, sulla quale vengono eseguiti dei servizi, non sarà in grado di gestire tutte le richieste e i servizi stessi andranno in crash, risultando prima molto rallentati e poi, successivamente, inaccessibili. In questa maniera, un utente qualunque non sarà in grado di accedere ai servizi, ricevendo un errore di richiesta scaduta o timeout.
L'attacco Syn-Flood usa strumenti che rientrano nella categoria