Qualche settimana fa abbiamo affrontato il tema dell’attacco DDoS alle infrastrutture svizzere e in particolare alla città di Bellinzona spiegando in maniera semplice cosa è successo e dando una definizione superficiale di cosa sia un Denial of Service (DoS), oggi ci spingeremo oltre e tenteremo di dare qualche nozione in più per comprendere le ormai quotidiane notizie di attacchi di questo tipo.
Cominciamo col dire che il Denial of Service (negazione del servizio) è la maggiore minaccia del mondo IT. L’obbiettivo di questa tipologia di attacchi e rendere inutilizzabili i servizi di una rete informatica consumandone le risorse quali la banda di connessione, lo spazio disponibile per la memorizzazione dei dati, ma si può arrivare anche alla compromissioni di interi database, file o programmi, sino alla distruzione fisica degli apparati.

Esistono due tipologie principali di Denial of Service, il DoS ossia l’attacco svolto da un solo apparato contro un sistema, oppure il DDoS (Distributed DoS) che prevede l’uso di diverse apparati, tipicamente una bot-net per lanciare l’attacco.
Indipendentemente dal fatto che siano DoS o DDoS tutti gli attacchi possono essere racchiusi in tre categorie principali:
- attacchi volumetrici
- attacchi di protocollo
- attacchi a livello applicazione
Gli attacchi volumetrici
Si parla di attacchi volumetrici quando l’hacker utilizza i protocolli di comunicazione per consumare le risorse di connessione di una rete o di un servizio. Questi attacchi vengono misurati, infatti, in bps (Bits-Per-Second).
Un primo approccio agli attacchi volumetrici è detto Flood Attack (Attacco alluvione) e vede l’hacker inviare una quantità enorme di traffico verso la propria vittima nel tentativo di consumare le risorse di banda. L’effetto potete immaginarlo come quello che accade al vostro PC quando aprite troppi programmi, consumate la sua capacità di rispondervi e quindi si blocca o rallenta.
Il secondo modo di lanciare attacchi volumetrici è l’Amplification Attack (attacco di amplificazione). Per capire meglio cosa si intende immaginate di visitare un sito, nel momento in cui digitate il nome del sito e premete “invio” il vostro computer invierà una richiesta ad un server DNS che ha il compito di rispondere indicando al vostro computer l’indirizzo IP, ossia l’indirizzo della macchina che ospita il sito che volete visitare. La richiesta che voi inviate è molto piccola, mentre la risposta che ricevete è 70 volte più grande. Sfruttando questo semplice principio un hacker invierà molte richieste ad un server DNS fingendo di essere la sua vittima; il server DNS ingannato invierà le risposte direttamente alla vittima creando quell’amplificazione (70 a 1) dell’attacco che l’hacker voleva ottenere.
L’effetto è che la vittima dell’hacker verrà sommersa anche in questo caso dal traffico generato e vedrà le proprie risorse di connessione, la banda o bandwidth, esaurirsi.

Gli attacchi di protocollo
A differenza degli attacchi volumetrici, gli attacchi di protocollo hanno come obbiettivo non solo consumare la banda, ma anche altre tipologie di risorse come ad esempio il numero massimo di connessioni che un server può gestire.
Un esempio di attacco di protocollo è il Fragmentation Attack (attacco di frammentazione). Immaginate di volere caricare un video su Facebook. Per viaggiare attraverso la rete questo grosso file dovrà essere diviso in pacchetti di dimensioni contenute (frammenti) che una volta arrivati a destinazione verranno riassemblati dal server di Facebook per ottenere il filmato originale. Gli hacker sfruttano questo normale modo di operare per inviare alla propria vittima un enorme quantità di frammenti, spesso manomettendoli, ad esempio creando dei duplicati. All’arrivo di questi frammenti il server vittima cercherà di riassemblarli, ma la loro enorme quantità consumerà in fretta le risorse del server rendendolo inaccessibile. Per questo motivo gli attacchi di protocollo vengono misurati in pps (Packets-Per-Second) o in cps (Connections-Per-Second)

Gli attacchi a livello di applicazione
Quando si parla di attacchi a livello di applicazione ci si riferisce ad una serie di attacchi DoS o DDoS che non hanno come obbiettivo mandare down (rendere inaccessibile) una intera rete, ma, in estrema sintesi e senza entrare in tecnicismi, una singola applicazione sfruttandone le debolezze. Per avere un’idea immaginate di aprire il vostro browser e visitare un sito; quello che per voi è un click per il computer è una richiesta scritta secondo il protocollo HTTP/s che contiene una intestazione e un corpo, ossia il cosa vogliamo comunicare al server.
Un attaccante potrebbe mandare molte richieste HTTP con intestazione, ma senza corpo. Il server che le riceve penserà ad un errore nella trasmissione e quindi terrà impegnate delle risorse aspettando che prima o poi arrivi anche il corpo della richiesta, più connessioni verranno tenute aperte in questo modo e più il server vedrà ridurre le proprie capacità sino ad essere incapace di rispondere a nuove richieste e questo causerà il DoS. Gli attacchi a livello di applicazione di misurano in rps, (Requests-Per-Second).
Che siano attacchi volumetrici o altro, gli attacchi DoS o DDoS hanno come fine ultimo rendere indisponibile un servizio, il perché lo si faccia dipende dalle motivazioni degli attaccanti; possono essere azioni dimostrative come nel caso degli attacchi al sito del comune di Bellinzona, possono esser azioni a supporto di un esercito come gli attacchi che mirano alle infrastrutture ucraine, oppure attacchi che mirano a causare un danno economico ad una azienda.
In ultimo vanno annoverati tra gli attacchi DoS anche la distruzione fisica di un dispositivo; può sembrare ridicolo, ma una martellata ad un server è un mezzo primitivo ed efficace per renderlo indisponibile.