#5. Ancora sulle tecniche di attacco
Piccolo glossario dei concetti e dei termini della cybersecurity

Di Marcello Fausti
Un’altra importante tecnica di attacco è il Distributed Denial of Service o DDoS.
Per fare un paragone con la criminalità comune, mentre le prime due categorie assomigliano molto alla frode o al furto con destrezza e scasso, la terza categoria (il DDoS), invece, assomiglia ad un bombardamento digitale che ha lo scopo di rendere inservibile un servizio online o un apparato digitale o un’intera infrastruttura del soggetto attaccato; insomma, una dimostrazione di “forza bruta”. In questo caso i cybercriminali puntano a mettere pubblicamente in difficoltà un bersaglio oscurando la sua presenza su Internet: la vittima viene colpita con un’arma costruita con la stessa materia prima di Internet, i bit. In pratica, flussi di traffico di dimensioni rilevanti dell’ordine di molti gigabit (miliardi di bit) per secondo o, in qualche caso, anche di terabit (migliaia di miliardi di bit) per secondo vengono rivolti contro le apparecchiature del bersaglio affacciate su Internet allo scopo di “mandarle in confusione”.
Si tratta, quindi, di una guerra che avviene su Internet in cui i cybercriminali sparano al bersaglio utilizzando dei cannoni caricati a bit, sfruttando il fatto che tali infrastrutture vengono di norma progettate in base a stime di massima del volume di traffico che potrà essere generato in un dato arco di tempo dai clienti del servizio web in questione. È evidente che il principio di economicità che normalmente si applica in fase di progettazione non consente a tali infrastrutture di sopportare come caratteristica progettuale dei volumi di traffico del tutto anomali. In realtà, l’effetto di mandare in confusione il sito web del bersaglio si può ottenere anche con attacchi di dimensioni molto inferiori a quelli appena citati; in questo caso il bersaglio non è più l’infrastruttura di rete ma l’applicazione. L’effetto finale è lo stesso: nel primo caso parliamo di un DDoS “volumetrico”; nel secondo caso di un DDoS applicativo. In quest’ultimo caso, non conta il volume della palla da cannone lanciata verso il bersaglio con intenti distruttivi, ma la frequenza elevatissima con cui minuscole palline vengono lanciate verso di esso; l’effetto è lo stesso: il bersaglio non riesce a funzionare più correttamente.
Ora, però, c’è un ulteriore fatto da considerare, ovvero, nel mondo digitale accade una cosa che nel mondo reale non succede. Nel mondo reale non esiste un commercio lecito di armi pesanti e – presumo – che non sia così semplice procurarsene una in modo illecito. Nel mondo digitale, invece, qualsiasi server connesso ad Internet può tramutarsi in un’arma utilizzabile per attaccare un bersaglio. Lo sono le centinaia di migliaia di PC non protetti, presenti in Rete, che hanno sempre maggior capacità elaborativa, dispongono di accessi a larga banda e, cadendo vittima di malware che li assoldano alle botnet, vengono trasformati in tanti “paria” pronti a sparare a comando di chi li controlla. Ad aggravare la situazione, poi, c’è l’avvento del cloud computing (fatto che di per sé apre scenari estremamente positivi) ha reso disponibile a costi trascurabili e in modo più o meno anonimo una capacità di elaborazione praticamente illimitata. In sostanza, esistono sparsi per il mondo dei veri e propri supermercati di armi pesanti che garantiscono agli attaccanti, a basso prezzo e in modo sostanzialmente anonimo, l’approvvigionamento di ciò che serve ad organizzare ed attuare un pericoloso attacco di Distributed Denial of Service. Su Internet è possibile:
- assoldare botnet per pochi dollari l’ora;
- utilizzare servizi chiamati “booter”, ovvero, siti web teoricamente dedicati ad un servizio di “test di carico” per chi (lecitamente) voglia verificare i limiti di tenuta del proprio servizio online, allo scopo sovraccaricare il sito web bersaglio;
- rendere più dirompente un attacco DDoS attraverso complesse tecniche di amplificazione chiamate “reflection & amplification”.
Le tecniche di amplificazione a grandissime linee funzionano così. Innanzitutto, le tecniche che entrano in gioco sono in realtà tre:
- spoofing, ovvero, camuffarsi e assumere le sembianze di qualcun altro;
- reflection, ovvero, triangolazione;
- amplification, ovvero, rendere l’effetto più pesante per il bersaglio.
Per spiegare la dinamica dell’attacco è prima necessario definire tre concetti:
- ogni entità (PC, smartphone, elaboratore o apparato di rete) connesso ad Internet è identificato da un identificatore univoco che è l’indirizzo IP (Internet Protocol);
- le apparecchiature connesse ad Internet realizzano tutto ciò che usiamo ogni giorno attraverso dei colloqui applicativi che utilizzano l’indirizzo IP del mittente e del destinatario di una richiesta, ad esempio, anche l’invio delle e-mail o dei messaggi di chat funziona sulla base di questo principio;
- i colloqui (protocolli) applicativi di Internet sono facilmente alterabili, in questo modo è possibile costruire un colloquio in cui un mittente si camuffa, ovvero, fa finta di essere qualcun altro sostituendo al suo indirizzo IP quello di un’altra entità.
Fatta la premessa che gli indirizzi A, B e R devono essere pubblicamente raggiungibili su Internet, facciamo il seguente esempio: l’indirizzo A deve inviare un messaggio a R ma prima di inviarlo si camuffa (spoofing) da B. L’effetto di questa sostituzione è che il messaggio partirà realmente da A ma il destinatario R non se ne accorgerà e anzi sarà convinto di aver ricevuto un messaggio da B. Ovviamente, R concluderà il colloquio rispondendo a B (e non al vero mittente A) che riceverà da R una risposta che non aveva richiesto. Immaginate per un momento che migliaia o anche milioni di A si camuffino da B ed inviino messaggi a migliaia di R scelti con un preciso criterio che vi spiegherò più avanti. L’effetto è che B sarà inondato di risposte che arrivano da migliaia di R e che non riuscirà a gestire andando in confusione. Il servizio erogato da B, quindi, diventerà irraggiungibile e il gioco è fatto.
In questo esempio abbiamo utilizzato due delle tre tecniche: spoofing (camuffarsi) e reflection (triangolare). Manca ancora la terza, l’amplificazione.
Alcuni servizi pubblicamente disponibili su Internet hanno la caratteristica di essere interrogati tramite una richiesta composta da pochissimi caratteri e di restituire a chi lo ha chiesto una risposta composta da moltissimi caratteri. Ecco fatto il sistema di amplificazione. I principali servizi utilizzabili in questo senso sono:
- SNMP (Simple Network Management Protocol) che amplifica la risposta di un fattore 7;
- SSDP (Simple Service Discovery Protocol) che amplifica la risposta di un fattore 30;
- DNS (Domain Name System) che amplifica la risposta di un fattore 102;
- CHARGEN (Character Generator Protocol) che amplifica la risposta di un fattore 360;
- NTP (Network Time Protocol) che amplifica la risposta di un fattore 1.090.
Ora, se immaginate che le molteplici entità R di cui parlavamo prima appartengano ad una di queste categorie è semplice capire che il povero B sarà sommerso oltre che dalla numerosità delle risposte non desiderate, anche dalla dimensione di queste risposte che varierà in base al fattore di amplificazione scelto.
Ecco un altro paradosso di Internet: virtualmente ogni servizio esposto online su Internet può essere utilizzato per realizzare un attacco in modo sostanzialmente anonimo. Quindi bisogna stare molto attenti ai protocolli attivi sui nostri server esposti su Internet. Se non manteniamo attivi esclusivamente quelli indispensabili, potremmo trovarci inconsapevolmente ed involontariamente coinvolti in un attacco di reflection & amplification.
La dinamica appena descritta sembra un semplice trucco ed in effetti lo è, però, tramite questo semplice trucco è possibile attuare tattiche di attacco anche molto sofisticate.
Esempio.
Recentemente, abbiamo osservato un attacco di DDoS applicativo con reflection che funzionava più o meno così. Immaginate che (R) sia costituito da un servizio applicativo lecito esposto su Internet che ha una relazione di business con (B); è una cosa che accade spesso perché molti business sono costruiti assemblando macro-blocchi costituiti da servizi cloud specializzati in attività di pagamento o fatturazione, etc. Come vedevamo, (R) si vedrà sommerso di richieste che lui attribuisce a (B) ma in realtà provengono dall’attaccante (A) e, quindi, per proteggere tutti gli altri clienti a cui eroga servizi, reagirà bloccando sulla propria rete tutte le connessioni provenienti da (B). L’effetto è che (R) non sarà più “infastidito” dal (B) camuffato, ma il (B) vero si troverà nell’impossibilità di accedere al servizio applicativo (R) indispensabile per portare a termine il suo business. L’effetto sul bersaglio dell’attacco (B) è che continuerà ad essere sotto attacco ed inoltre, non riuscirà più a raggiungere i servizi indispensabili al loro funzionamento; in questo modo, (B) sarà progressivamente escluso da Internet.
CHARGEN (Character Generator Protocol). È un servizio utilizzato a scopo di test e misura. È poco utilizzato.
DDoS. Un attacco combinato eseguito da numerose macchine, pensato per portare al collasso siti web o server, la maggior parte delle volte è realizzato utilizzando le botnet.
DNS (Domain Name System). È un sistema utilizzato per assegnare nomi ai nodi della rete.
NTP (Network Time Protocol). È un protocollo di rete utilizzato per la sincronizzazione degli orologi degli elaboratori.
SNMP (Simple Network Management Protocol). È un protocollo di rete che consente di raccogliere e modificare le informazioni di configurazione dei device gestiti sulla propria rete.
Spoofing. Camuffarsi, mascherarsi allo scopo di assumere le sembianze di qualcun altro falsificando l’indirizzo sorgente di una comunicazione. Ad esempio, è possibile fare spoofing di un indirizzo di e-mail impostando il nome utente (quello che in prima battuta viene visualizzato nella e-mail) con un nome conosciuto dal destinatario, mentre il reale indirizzo ne rivela la provenienza sconosciuta e inaffidabile. Si usa il termine spoofing (in questo caso IP spoofing o address spoofing) quando si crea un pacchetto IP nel quale viene falsificato l’indirizzo IP del mittente.
SSDP (Simple Service Discovery Protocol). Protocollo di rete utilizzato per la ricerca di servizi attivi su una rete.
Leggi gli altri articoli del Piccolo glossario dei concetti e dei termini della cybersecurity
#1. Che cos’è il rischio cyber e come si gestisce
#2. Quali sono le principali minacce? E come è possibile proteggersi?
#3. Quali sono i vettori di attacco più pericolosi?