Cosa è e come funziona un attacco Denial of Service

Tempo di lettura: 8 minuti

In questo articolo andremo a trattare un argomento che non ho mai approfondito, sia a causa di poco interesse, sia a causa del fatto che è una metodologia di attacco che poco si addice ad un hacking prettamente etico. Non tratterò come di consueto le metodologie di attacco, in quanto sono profondamente contrario all’attuazione dello stesso, per cui se siete qui per scoprire come eseguire un attacco DoS avete sbagliato articolo (e sito). Nel prossimo tratterò invece gli attacchi DDoS, sempre più quotidiani e potenti.

Cosa è un attacco Denial of Service

Wikipedia lo definisce come un attacco informatico che mira ad esaurire le risorse di un sistema informatico, mirando quindi a negare la disponibilità del servizio verso client benevoli. Come vedremo ci sono diverse modalità per esaurire la risorse di un servizio, ad esempio:

  • Congestione della rete
  • Riempimento della memoria
  • Avvelenamento della traduzione a dominio
  • Riduzione della potenza di computazione

Solitamente I DoS sono attacchi temporanei, atti a bloccare le risorse per tempi più o meno brevi, ma ci sono anche casi speciali in cui l’attacco porta ad un danneggiamento o distruzione completa del firmware, solitamente detti PDOs o phlashing.

Questi attacchi sono una delle categorie più pericolose per un’azienda o ente che offre servizi via web, in quanto qualunque ‘nemico’ (come aziende concorrenti o governi) con abbastanza risorse potrebbe danneggiare irrimediabilmente la vittima. Chiunque compie questo attacco per divertimento o per “diletto” non ha compreso per nulla le potenzialità e la pericolosità dello stesso.

Tipologie

Gli attacchi, in base alla modalità possono dividersi in:

  1. Diretti: l’attaccante colpisce in maniera diretta la vittima, senza utilizzare host di terze parti;
  2. Indiretti: l’attaccante, vuoi per anonimato, vuoi per poca potenza di banda, utilizza sistemi terzi per eseguire l’attacco.

Gli attacchi provenienti da un singolo host, ormai sempre più remoti (se non a piccoli web services o a client/router privati) sono diversi, tutti sfruttanti caratteristiche peculiari dei protocolli di rete.

Attacco Smurf

È stato il primo attacco DoS, lanciato verso gli anni ‘90. In esso l’attaccante invia un grande numero di richiesto ICMP (Internet Control Message Protocol) ad un indirizzo broadcast. Essendo richieste echo venivano inviate a tutti i nodi partecipanti alla rete i quali rispondevano alla richiesta, invando anche loro un messaggio, questa volta all’indirizzo IP vittima ((lo spoofed IP), il quale veniva inondato letteralmente di pacchetti.

Ping of death

L’attacco, utilizzato alla fine degli anni ‘90, utilizzava una grave vulnerabilità nel protocollo IP dei principali sistemi operativi. L’attaccante inviava un pacchetto IP malformato che causava un buffer overflow alla vittima e il conseguente blocco del servizio.

Ping of death
Ping of death

Attacco TCP SYN flood

Questo attacco mira a saturare le risorse della macchina, basandosi su una peculiarità del protocollo TCP, il quale, ogni qualvolta viene aperta una connessione TCP esegue un three way handshake. L’attaccante non esegue di fatto il three way ma invia solo il primo pacchetto SYN, lasciando uno stato aperto (una struttura di memoria fondamentalmente) sul server. Una volta che sul server sono presenti migliaia di connessioni aperte per metà, la memorià andrà ad esaurirsi e l’attacco sarà andato a buon fine.

Per risolvere questo attacco basta utilizzare un SYN Cookie, cioè si crea la struttura dati solo quando l’handshake è completato. In questo modo non possono essere create strutture a metà ma solo complete, quindi ragionevolmente, solamente da parte di host innocui.

Attacco TCP SYN FLOOD
Attacco TCP SYN FLOOD

Difese

Le difese a questa tipologia di attacchi sono ormai molte (ricordiamoci che parliamo di attacchi da un singolo host, principalmente con IP statico) e ben testate.

Firewall

I firewall sono device di sicurezza che permettono di controllare il traffico tra le due parti di una rete. Tutto il traffico deve passare quindi attraverso il firewall per essere protetto. Ci sono due tipi di firewall:

  1. packet filter: lavorano a livello OSI 3 e 4 e ispezionano l’header dei pacchetti IP, oltre alla porta TCP e UDP. Vengono specificate delle regole per le quali certi pacchetti possono o non possono passare, in entrambe le direzioni. I pacchetti possono quindi essere bloccati in base all’indirizzo IP di sorgente o destinazione o la porta TPC/UDP di sorgente o destinazione.
  2. stateful packet filter: analizzano il pacchetto, comprendendo le richieste e le risposte (SYN,SYN-ACK, ACK).
Stateful Firewall
Stateful Firewall

IDS

Gli IDS consistono in una serie di sensori che rilevano dati, e possono essere posizionati sia sugli hosts che sulla rete. Ci sono due approcci alla rilevazione di intrusione:

  1. basato sulla conoscenza: cercano pattern di traffico o attività che sembrano maligne sulla base di informazioni come login falliti, pattern di bit che indicano un attacco di buffer overflow, certi tipi di pacchetti TCP SYN che indicano un attacco SYN flood. Vengono anche detti misuse detection IDS.
  2. basato sul comportamento: rilevano anomalie nel sistema, in base alle statistiche di utilizzo (e.g. se di notte non c’è traffico, se c’è è un male)

Gli IDS sono quindi sensori distribuiti atti a raccogliere dati, analizzare, riportare le informazioni utili e nel caso reagire.Idealmente:

  • proteggono le comunicazioni;
  • proteggono I dati;
  • possono essere attaccati e manipolati.

Essi si possono dividere in:

  1. Network Based IDS (NIDS) guardano gli attacchi nel traffico di rete: essi utilizzano I pacchetti di rete come sorgente e sono tipicamente degli adattatori i rete in modalità promiscua. Riconoscono gli attacchi sulla base di:
    • pattern o espressioni;
    • frequenza di rilevazione (es port scanning);
    • correlazione di eventi poco frequenti.
  2. Host-based IDS (HIDS) guardano gli attacchi negli host: tipicamente sono sistemi di monitoraggio eventi e log di sicurezza. Verificano il checksum dei file di sistema e eseguibili. Alcuni prodotti ascoltano l’attività delle porte e avvisano se ci sono accessi.
TIpologie di IDS
TIpologie di IDS

Conclusioni

I semplici attacchi DoS sono ormai in disuso, in quanto decisamente meno performanti rispetto ad un attacco di negazione del servizio distribuito. Per chi volesse altre difese, sul sito della SANS ci sono ottime fonti, mentre per una più tecnica (ma decisamente completa) descrizione degli stessi consiglio RFC4732.