Quello delle botnet è il classico esempio di quelle tecnologie che ad oggi sono parte integrante del cyberspazio e sono nate, per lo meno nella maggioranza dei casi, con intenzioni positive, ma le cui aspettative sono state spesso disattese.
Indice degli argomenti
Cosa sono le botnet
Le botnet sono reti di elaboratori originariamente utilizzati per gestire e mantenere attivi servizi Web. Il nome deriva dalla combinazione delle due parole robot e network. L’accezione che questo termine ha oggi è quella di una rete costituita da elaboratori infettati, gestiti centralmente da un command & control center, operato da attaccanti di varia natura.
Siamo in presenza di una botnet quando un elevato numero di bot si diffonde e compromette numerosi elaboratori e li connette l’un l’altro attraverso Internet.
Una botnet è costituita da tre elementi principali:
- i bot: infettano i target e li rendono parte della botnet;
- un command & control server (C&C): permette al botmaster di inviare comandi ai bot e di gestire la botnet;
- un botmaster: persona che gestisce la botnet.
Ciclo di vita delle botnet
Il ciclo vitale delle botnet può essere diviso in fasi distinte:
- nascita delle motivazioni che spingono un attaccante a creare una botnet. Le ragioni possono essere numerose, ma le principali sono guadagno economico, divertimento/intrattenimento nel testare sin dove ci si può spingere e stato sociale; in molti ambienti underground possedere una vasta botnet è un vero status symbol;
- fase di infezione e propagazione. Inizia quando l’attaccante mette in campo le tecniche necessarie alla compromissione degli elaboratori che faranno parte della botnet. L’attaccante può effettuare in prima persona le operazioni, dalla creazione del malware alla diffusione dello stesso, o può delegarla a terzi, che procedono dietro il pagamento di un compenso. Il malware che viene utilizzato per creare le botnet è studiato in maniera specifica per diffondersi su Internet ed è in grado di sfruttare le vulnerabilità presenti sugli elaboratori per infettarli. Le tecniche di infezione più utilizzate sono quelle di allegare codice maligno ad e-mail, SMS, messaggi istantanei, file condivisi in P2P o direttamente su siti Web compromessi;
- fase di raccolta e gestione. In questa fase il botmaster verifica quali siano i dispositivi zombie che si sono connessi con successo alla botnet, li aggiorna con le ultime informazioni disponibili per l’ottimizzazione delle funzionalità (ad esempio, C&C di backup nel caso il principale venisse disattivato e oscurato). Il botmaster può quindi iniziare ad inviare comandi ai computer zombie che eseguono esattamente quanto richiesto;
- fase di abbandono e reinfezione. Questa fase è in continuo divenire e non termina mai per tutta la vita della botnet. Quotidianamente si assiste ad un turnover dei dispositivi compromessi: alcuni utenti si accorgono dell’infezione e provvedono ad eliminarla; alcuni dismettono il dispositivo; altri semplicemente non lo connettono alla rete per giorni; in determinati casi è lo stesso botmaster ad abbandonare un dispositivo, in quanto esso è divenuto inutilizzabile o il bot installato sullo stesso non è più adeguato. Lo scopo del botmaster è quello di avere online, nel corso delle 24 ore, il maggior numero di dispositivi in contemporanea; ciò spiega chiaramente perché si assiste ad infezioni su scala geografica, in modo che la botnet possa sempre avere computer infetti a disposizione e perché questi attacchi non abbiano di fatto mai termine. I target preferiti sono chiaramente computer non presidiati, sempre online e con molta banda disponibile, come ad esempio i server o i PC casalinghi. Una botnet senza un afflusso quotidiano di nuovi “zombie” è una botnet morta. Secondo i dati ottenuti da Fortinet nel corso del Q1 2018, il 58% delle infezioni da botnet malware dura meno di un giorno, il 17,6% sino a due giorni consecutivi e solo il 5% per più di una settimana. La botnet con una maggiore persistenza è Mirai, che infetta specificamente device IoT, utilizzandoli per attacchi DDoS o per fornire servizi proxy, con una media di 5,5 giorni;
- fase di gestione. Strettamente correlata alla fase di abbandono e reinfezione. Il botmaster lavora per rendere la botnet sicura e resistente ad eventuali attacchi o shutdown di uno o più C&C. Una botnet può essere totalmente distrutta solamente rilevando e bonificando tutti i bot, nonché oscurando tutti i C&C server. Il botmaster opera variando il codice dei bot, introducendo nuovi C&C e rendendo la struttura ridondante;
- fase di monetizzazione. L’attaccante, una volta creata e stabilizzata la propria botnet, può decidere come ottenere il proprio guadagno. Il metodo più comune è quello di affittare la botnet ad altri cyber criminali ma non mancano i casi in cui il creatore della botnet stessa la sfrutti direttamente per portare attacchi. Ad oggi, nonostante i pareri siano spesso contrastanti, spamming e attacchi DDoS sono le attività che forniscono un maggiore ritorno economico, al netto delle spese sostenute.
Architettura delle botnet
Il meccanismo di command & control di una botnet è essenziale, in quanto è ciò che permette al botmaster di controllare i dispositivi infetti.
Ad oggi sono tre i più diffusi tipi di architettura: centralizzata, decentralizzata e ibrida.
L’architettura centralizzata è senza dubbio la più comune. I bot si connettono direttamente al C&C server per ricevere comandi e aggiornamenti. Tutta la gestione della botnet è effettuata tramite C&C e il botmaster deve connettersi allo stesso per poter operare. Il principale problema di questa configurazione è da ricercarsi nel fatto che si è in presenza di un single point of failure: il C&C server viene oscurato e la botnet muore.
I metodi di comunicazione tra C&C e bot più utilizzati sono basati su HTTP e IRC:
- basato su HTTP: il bot utilizza uno specifico indirizzo IP o URL per connettersi ad un Web server che è di fatto il C&C. La connessione tra bot e server non è continua: i comandi vengono pubblicati sul Web server e i bot lo visitano ad intervalli definiti per scaricarli ed eseguirli (metodo Pull).
- basato su IRC: è il metodo più comune e tradizionale, utilizzato sin dalle prime generazioni di botnet, in cui i bot sono collegati ad uno specifico canale su un server IRC e ricevono comandi via chat. I bot sono quindi sempre connessi al C&C e ricevono comandi in tempo reale (metodo Push).
L’architettura decentralizzata si basa sul modello di reti P2P. Un computer infetto funge sia da bot che da C&C server; sparisce quindi l’idea di un C&C centralizzato. Il botmaster invia i comandi ai bot che li ricevono e li inviano ad altri bot. Questo sistema è senza dubbio molto più sicuro rispetto al centralizzato in quanto lo shutdown della botnet diventa estremamente complesso e possibile solamente indentificando tutti i bot presenti; al tempo stesso, per creare una botnet con architettura decentralizzata, è necessaria una profonda conoscenza della materia e skill non indifferenti, rendendo questa tipologia poco diffusa.
L’architettura ibrida cerca di sfruttare sia i vantaggi dell’architettura centralizzata che di quella decentralizzata. Per riuscire in ciò, a titolo di esempio, una botnet può comunicare con i C&C server (attestati su rete P2P) tramite protocollo HTTP per bypassare i meccanismi di difesa quali firewall. Il metodo ibrido può sfruttare qualsiasi protocollo esistente, a discrezione del botmaster.
Attività eseguite tramite botnet
Le botnet, declinate nelle numerose architetture, dimensioni e diffusioni, hanno generalmente un solo scopo, e cioè quello di permettere all’attaccante di eseguire attività fraudolente.
Le più comuni ad oggi sono:
- campagne di spam: i più recenti report indicano che circa l’85% dello spam totale è generato da botnet e che ogni bot può inviare circa 3 messaggi (e-mail o instant messaging) al secondo. Le botnet sono quindi le principali piattaforme per condurre questo tipo di attività;
- attacchi DDoS: essendo le botnet costituite da centinaia di migliaia di elaboratori, ne consegue che quasi sempre si è in presenza di una elevata potenza di calcolo e di banda disponibile. Gli attacchi DDoS vengono effettuati inviando numerosi pacchetti UDP, richieste ICMP o TCP sync flood, con lo scopo di saturare le risorse di un particolare server e renderne indisponibili i servizi;
- hosting illegale: un computer con molta banda disponibile e storage adeguato può divenire un vero e proprio server hosting, su cui il botmaster può caricare contenuti illegali permettendone impunemente la diffusione, mettendo una ulteriore barriera tra sé e le forze dell’ordine;
- furto di informazioni personali: una volta che un elaboratore è infetto, il botmaster può impostare il bot in modo che raccolga informazioni sensibili in base ai siti visitati o trigger personalizzati e li invii al C&C server;
- frodi adware e visualizzazioni: un botmaster può utilizzare i propri bot per simulare clic su uno specifico banner o link, ottenendo un guadagno consistente in caso di siti che paghino piccolissime somme di denaro per questo tipo di attività;
- affitto di botnet: il botmaster può affittare la propria botnet, o anche solamente una parte di essa, a terzi che la possono sfruttare per tutte le attività sopra indicate.
Come rilevare una botnet
Per rilevare le attività di una botnet vengono utilizzate una serie di tecniche:
- basate su signature: i software di protezione, tramite i pattern in essi inseriti sono in grado di rilevare quando un host sia parte di una botnet. Questo metodo funziona solamente per botnet conosciute;
- honeypot: sono sistemi vulnerabili che permettono a chi li gestisce di raccogliere informazioni e visionare in tempo reale le attività degli attaccanti. Il principio di funzionamento di un honeypot, come deducibile dal nome stesso, è da ricercarsi nel fatto che, una volta messo online un host compromissibile, esso attragga numerosi attaccanti. Studiando le tecniche offensive messe in atto ed analizzando il software che viene installato dai malintenzionati, è possibile risalire in maniera esatta a quale sia il malware utilizzato per l’infezione dei bot. Il limite di questo metodo è che i botmaster sono in grado di impiegare tecniche per rilevare honeypot e di conseguenza evitarle;
- analisi comportamentale: sicuramente la tecnica più avanzata. Essa ricerca comportamenti anomali nel traffico di uno specifico host o rete ed è in grado di rilevare variazioni dallo standard; in questo modo è possibile rilevare botnet ancora sconosciute e farlo in tempo reale. I dispositivi atti a mettere in pratica l’analisi sono generalmente dotati di una intelligenza artificiale che è in grado di apprendere i comportamenti tipici degli host su una specifica rete e di segnalare spostamenti al di fuori degli standard definiti.
Mettere in atto queste contromisure all’interno della propria rete locale consente di proteggere adeguatamente il perimetro cyber dell’azienda e tutti i computer connessi ad essa e a Internet.