Botnet
Una delle piaghe più diffuse nel mondo delle comunicazioni digitali è l’avvento delle botnet, reti di computer infetti utilizzati per protrarre attacchi su larga scala. I principali attacchi legati al mondo delle botnet sono DDoS, spamming, furto di credenziali o spionaggio industriale.
Nel mondo delle botnet s’individuano due categorie di attori, i botmaster, coloro che tramite un server di comando e controllo (C&C) gestiscono la rete e ne indirizzano le azioni, e i bot (zombie), macchine infette in attesa di comandi e artefici involontari degli attacchi.
Nell’ultimo decennio nell’underground sono apparsi svariati prodotti, distinti per processo operativo, target, vulnerabilità sfruttate e finalità, tra questi ricordiamo Citadel, Kelihos, Storm, ZeroAccess, Zeus, Mariposa, Conficker, Rustock, Oficla.
In questo articolo cercheremo di classificare le botnet secondo il processo operativo o l’architettura di rete utilizzata.
Le botnet possono essere divise in due classi, operando la suddivisione per architettura:
- Botnet Centralizzate: il tipo di architettura è più semplice, tutti i bot sono connessi direttamente al C&C. Il server C&C gestisce la lista di tutte le macchine infettate, controlla il loro status e da loro informazioni operative. Questa tipologia di botnet è estremamente vulnerabile, una volta “reversato” un bot, si hanno tutte le informazioni necessarie per poter effettuare il takedown del C&C e smantellare la rete; esistono alcune estensioni a questa struttura, in cui si usano più server di comando e controllo, ma i vantaggi che si ottengono sono trascurabili.
- Botnet Decentralizzate o P2P: in questo schema i bot non sono necessariamente connessi al server C&C ma tutti insieme costituiscono una rete di comunicazione in cui i comandi sono trasmessi anche da zombie a zombie. Ogni nodo della rete è un bot, il quale comunica solo con una lista di nodi “vicini”. In questo schema per gestire la botnet è necessario l’accesso ad almeno un client. Il punto di forza di questi schemi è la difficoltà che s’incontra nel momento in cui si è interessati a smantellare l’intera rete; il reverse engineering di un singolo bot non è più sufficiente a individuare tutti i computer coinvolti né tantomeno a smantellare i server C&C.
In parallelo alla classificazione per architettura, possiamo differenziare i bot per protocollo o metodo usato per trasmettere i dati
- Botnet IRC: generalmente usate in schemi centralizzati in cui il server C&C è un server IRC al quale i client si connettono su un canale specifico.
- Botnet IM oriented: per rendere più facili le comunicazioni (non dovendo implementare un nuovo protocollo di comunicazione), alcuni bot comunicano tramite servizi di messaggistica istantanea (ICQ, MSN, AOL,…), questo schema si presta estremamente bene ad essere implementato in modelli decentralizzati.
- Botnet web-based o http: si tratta di nuovo di architetture centralizzate, in cui il server C&C viene installato su una macchina remota che risponde a richieste http effettuate dai client; il vantaggio di questa struttura è che il traffico http difficilmente viene rilevato come sospetto. Un’accortezza sovente utilizzata è quella di indirizzare il traffico tramite protocollo HTTPS cosicché l’analisi del traffico risulti più complessa.
- Botnet web-service: estende il concetto di botnet web-based, utilizzando servizi web diffusi (pastebin, evernote, gmail,…) come server C&C; in questo modo l’indirizzo del botmaster non viene mai rivelato, i bot eseguono delle richieste all’apparenza totalmente lecite a servizi web che difficilmente possono essere filtrati o individuati.
- Botnet su social network: stessa struttura delle botnet IM oriented, in questo caso si sfruttano i social network e le comunicazioni web, i vantaggi sono gli stessi delle botnet web-service uniti ai vantaggi di una botnet distribuita.
Botnet tramite TOR: in questo caso si sfrutta l’anonimità garantita da TOR per nascondere il traffico generato. La migliore estensione è quella in cui s’implementa una botnet web-based in cui il server di comando e controllo risiede su un hidden service. In quest’ultima implementazione smantellare la botnet è un compito estremamente arduo. Uno sviluppo futuro potrebbe prevedere delle implementazioni di botnet P2P tramite hidden services.
Di seguito verranno analizzati i vantaggi e le criticità di ciascun tipo architettura descritta in precedenza.
- Botnet centralizzate: questo tipo di botnet ha preso piede grazie alla estrema semplicità di implementazione, ma a questa semplicità corrisponde una grande debolezza, come già visto è sufficiente eliminare il server di comando e controllo centrale per distruggere l’intera struttura di rete. Tra queste riconosciamo le botnet IRC e quelle web-based.
- Botnet P2P: questo tipo di architetture sono estremamente resistenti, la prima e più evidente criticità risiede nell’eventualità in cui si perdesse l’accesso alla rete P2P, il botmaster potrebbe non essere in grado di riprendere il controllo della botnet. Bisogna pertanto consolidare il protocollo affinché qualunque bot possa, secondo autenticazione (chiave pubblica/privata), inviare comandi all’intera rete.
Se la lista dei nodi “vicini” è in chiaro o se vi sono dei metodi per “trovare” i nodi della rete, si possono attuare attacchi che richiedono l’enumerazione dei bot; un primo approccio consiste nello smantellare la rete passando di peer in peer (altamente improbabile nella pratica, ma non impossibile, basti pensare ad un ambito aziendale, nel quale diventa facile individuare le altre macchine compromesse); sono stati descritti e analizzati attacchi a botnet P2P che permettono l’enumerazione dei peer, tramite i metodi di sinkholing e partitioning; tramite questi due attacchi si rende meno efficace o inoffensiva l’intera rete, arrivando eventualmente a escludere il botmaster dal network. - Botnet IM oriented: La principale difficoltà, comune a parecchi altri schemi è dovuta all’installazione di un servizio di Instant Messaging sul computer infetto e successivamente permettere al relativo traffico di uscire attraverso la rete della vittima. Il blocco dei bot è semplice in quanto è sufficiente filtrare il traffico di rete per quel protocollo, in particolare i servizi di IM sono spesso filtrati in automatico negli ambiti aziendali.
- Botnet web-service e botnet su social network: il vantaggio sostanziale di queste botnet deriva dal traffico generato che difficilmente può essere individuato o filtrato. Garantisce anche un buon livello di protezione al botmaster, il quale difficilmente può essere individuato poiché non interagisce direttamente con i bot. Si può smantellare relativamente in fretta la struttura della botnet se è disponibile una forma di enumerazione degli account coinvolti, tramite richiesta da parte delle autorità competenti all’ente fornitore del servizio.
- Botnet tramite TOR: qui i vantaggi e le vulnerabilità sono strettamente correlate alla resistenza degli hidden services, pertanto qualsiasi debolezza nel protocollo TOR può aprire le porte allo smantellamento della botnet. Gli svantaggi principali risiedono nell’installazione di TOR sul computer zombie e nella possibilità che il traffico verso i relay di TOR sia bloccato.
In questo articolo abbiamo raccolto i principali tipi di architetture di botnet e analizzato, a grandi linee , i punti di forza e le vulnerabilità di ciascuna di esse. E’ evidente come le strutture siano diventate in questo decennio sempre più sofisticate, puntando a migliorare la resistenza della rete e allo stesso tempo a ridurre il detection ratio. I modelli matematici e la crittografia stanno diventando i nuovi elementi chiave adottati da queste reti e la prevenzione sembra essere la strada migliore da intraprendere.
di kalup e VoidSec