# Botnet

Un botnet è una rete composta da dispositivi infettati da malware, noti come bot o zombie, che operano sotto il controllo di un singolo attore, chiamato botmaster. Questa struttura consente di ampliare le risorse e le capacità offensive a disposizione del botmaster.
I dispositivi connessi a Internet, se affetti da vulnerabilità nell'infrastruttura, possono diventare parte di una botnet. Se l'agente infettante è un trojan, il botmaster può controllare il sistema tramite accesso remoto utilizzando protocolli di rete come IRC o HTTP, attraverso un centro di comando noto come Command and Control (C2). I computer infettati possono lanciare attacchi, noti come Distributed Denial of Service (DDoS), contro altri sistemi e/o compiere operazioni illecite, talvolta su commissione di organizzazioni criminali.
Le botnet sono strumenti potenti per i criminali informatici, poiché consentono attacchi su larga scala e la possibilità di affittare l'accesso a segmenti della loro rete sul mercato nero per ottenere guadagni significativi.

## Applicazioni delle botnet
### Applicazioni legali

In generale, il termine "botnet" viene utilizzato per descrivere reti capaci di agire con sincronia e autonomia per fini illegali. Tuttavia, esistono anche botnet legali impiegate per studiare la diffusione del malware o per progetti di ricerca sul calcolo distribuito. Un esempio significativo è il progetto SETI@home della Berkeley University, che utilizza la potenza computazionale aggregata di una rete di computer per cercare forme di vita extraterrestre.

### Applicazioni illegali

Le botnet possono compromettere i computer violando le loro difese di sicurezza, come credenziali di accesso deboli, firewall mal configurati o software vulnerabili. In tali casi, il controllo del sistema viene ceduto al botmaster, che è in grado di dirigere le attività di questi computer tramite protocolli di rete come IRC e HTTP/HTTPS.
Alcune botnet sono utilizzate da criminali informatici per una varietà di scopi, tra cui estorsioni, attacchi e la conservazione di materiale illecito, come contenuti di natura pedopornografica.

## Modalità di funzionamento e uso

Tali malware/trojan specializzati, una volta assunto il controllo di un sistema, trasmettono all'esterno, generalmente al proprio botmaster, i dati fondamentali relativi al sistema infettato. Per fare ciò, spesso sfruttano i canali IRC, connettendosi a un canale privato protetto da password per fornire un accesso esclusivo al loro gestore. Tramite questo canale di chat, il gestore è in grado di controllare simultaneamente tutti i sistemi infetti in ascolto, che possono essere anche decine di migliaia, impartendo ordini e richiedendo informazioni come immagini dello schermo, indirizzi IP o, ad esempio, l'hostname/IP di una vittima da attaccare tramite DDoS. I botmaster possono anche controllare i computer zombie attraverso reti peer-to-peer sofisticate, persino utilizzando Skype e protocolli binari e crittografati. Se il bersaglio si trova dietro un firewall ben configurato, per eludere i controlli può essere utilizzato il protocollo HTTP/HTTPS, poiché la porta 80 è generalmente presente nella whitelist dei firewall di quasi tutti gli utenti. In questo caso, il collegamento sfrutta un server intermedio specializzato che supporta il protocollo direttamente o lo utilizza come incapsulamento per altri protocolli che devono rimanere nascosti.
Questi malware sono spesso programmati per spiare il sistema infetto come se fossero spyware, intercettando password e altre informazioni private utili all'attaccante. Possono anche offrire accesso alle macchine infette tramite backdoor oppure fornire servizi proxy che garantiscono l'anonimato in rete a scapito della banda della rete compromessa.
Un uso più sofisticato delle botnet è quello di fungere da proxy verso un sistema compromesso: i bot vengono spesso ripuliti dal malware; tuttavia, se l'attaccante installa un server su una di queste macchine e ne perde il controllo, il danno può essere significativo. Per ridurre tali rischi, una tecnica recentemente adottata è quella del fastflux, in cui una macchina esterna alla botnet esegue un finto server (ad esempio per effettuare spoofing), mentre le macchine della botnet fungono solo da proxy verso questa macchina.
Con l'aumento del numero di sistemi compromessi, l'attaccante può sfruttare sempre più potenza di calcolo per individuare le password di sistemi che in precedenza risultavano molto difficili da decifrare, utilizzando tecniche di calcolo distribuito.

## Meccanismi di protezione dai botnet

I canali C&C (Command and Control), che rappresentano un punto di forza dell'infrastruttura, possono anche costituire una debolezza: i mezzi per accedervi devono essere protetti da altri pirati informatici. Questo livello di protezione è garantito attraverso diverse tecniche, tra cui:
* Hosting bulletproof
* Dynamic DNS
* Fast fluxing
* Domain fluxing
Per evitare che i domini accessibili dalle macchine infette attivino blocchi di protezione o altri automatismi di sicurezza, l'attaccante può utilizzare software che generano dinamicamente nomi di dominio sempre diversi e impiegare un proprio sistema DNS. Avendo il controllo sui record DNS, il malware può cambiare rapidamente gli indirizzi IP a cui puntano i nomi di dominio, reindirizzare domini verso altri domini o rinominare i domini a intervalli casuali seguendo un pattern prevedibile dal malware. Questi sono tutti elementi del domain fluxing, spesso utilizzato insieme a architetture robuste (come stella, multi-server, gerarchica e randomizzata) per eludere i blocchi imposti delle autorità e dei fornitori di servizi Internet.

### Modello client-server

Il modello client-server è stato uno dei primi approcci utilizzati nelle botnet di Internet, generalmente basato su IRC o su siti web contenenti liste di comandi predefiniti. IRC è un protocollo testuale facile da implementare, e le botnet che si fondano su di esso presentano agenti infettanti di dimensioni contenute, che richiedono poca larghezza di banda e utilizzano metodi semplici per la comunicazione.
Nel caso delle botnet basate su IRC, i client infetti si collegano a un server IRC e accedono a un determinato canale per ricevere i comandi. Il botmaster invia i comandi al canale tramite il server IRC, e i client li recuperano ed eseguono.
Tuttavia, questo tipo di canale può essere facilmente inibito da filtri basati su parole chiave, anche se gli agenti creano nuovi canali di chat in modo casuale. Infatti, molte delle grandi botnet preferivano utilizzare domini e hosting protetti piuttosto che IRC nella loro architettura (come nel caso della Rustock botnet e della Srizbi botnet).
Con il passare del tempo, il modello client-server è diventato troppo vulnerabile ai blocchi, spingendo i botmaster a optare per l'uso di protocolli peer-to-peer.

### Peer-to-peer

In risposta agli sforzi per individuare ed eliminare le botnet IRC, i botmaster hanno iniziato a distribuire malware sulle reti peer-to-peer (P2P). Questi bot tendono a utilizzare firme digitali, in modo che solo chi ha accesso alla chiave privata possa controllare le botnet. (Gameover ZeuS, ZeroAccess botnet).
Le botnet più recenti operano completamente su reti P2P. Invece di comunicare con un server centralizzato, i bot P2P fungono sia da server per la distribuzione dei comandi sia da client per riceverli. Questo approccio elimina il problema del singolo punto di vulnerabilità, tipico delle botnet centralizzate.
Per individuare altre macchine infette, il bot interroga discretamente indirizzi IP casuali fino a stabilire un contatto con un'altra macchina compromessa. La macchina contattata risponde fornendo informazioni come la propria versione del software e l'elenco dei bot conosciuti. Se una delle due versioni è inferiore all'altra, inizia un trasferimento di file per effettuare l'aggiornamento. In questo modo, ogni bot amplia la propria lista di macchine infette e si aggiorna comunicando periodicamente con tutti i bot conosciuti.

### Componenti principali

* Componente Host
* Componente di rete

### Componente Host

I bot sono le macchine compromesse che il botmaster può controllare a distanza grazie a un agente attivato su di esse. L'agente che consente a una macchina compromessa di essere gestita da un botmaster è chiamato agente di bot (bot agent). Questo agente può essere un componente di malware autonomo, presentarsi come un file di libreria di collegamento dinamico (DLL), un eseguibile o un pezzo di codice integrato nel malware stesso. Le funzioni principali dell'agente di bot includono: ricevere i comandi dal botmaster, eseguire attacchi e inviare dati al botmaster.

### Componente di rete

Il componente di rete di una botnet è qualsiasi risorsa online utilizzata dalla botnet per portare a termine le sue operazioni.

### Comando e controllo (C&C)

I protocolli di comando e controllo delle botnet sono stati implementati in vari modi, passando da approcci tradizionali come IRC a soluzioni più sofisticate.

### Telnet

Le botnet Telnet utilizzano un semplice protocollo di comando e controllo (C&C) in cui i bot si connettono a un'unità di comando principale che gestisce la botnet.
Il server di controllo scansiona un intervallo di indirizzi IP alla ricerca di server Telnet e SSH con credenziali di accesso predefinite. Una volta trovate queste credenziali, vengono raccolte in una "lista di infezione" e, successivamente, i server vengono infettati tramite script malevoli eseguiti attraverso SSH dal server di controllo.
Quando il comando SSH viene eseguito, il server infettato diventa parte della botnet grazie al codice malevolo che lo ha compromesso. A questo punto, il botmaster, attraverso l'unità di comando principale, è in grado di controllare i bot e lanciare attacchi DDoS su larga scala.
Questi tipi di botnet sono stati utilizzati per attaccare grandi siti web come Xbox Live e PlayStation network da un noto gruppo di hacker chiamato Lizard Squad.

### IRC

I canali di comunicazione IRC rappresentano una forma tradizionale di chat online. Le reti IRC utilizzano metodi di comunicazione semplici e a bassa larghezza di banda, rendendole adatte per ospitare botnet. Queste reti sono state utilizzate con un certo successo per coordinare attacchi DDoS e inviare migliaia di email spam.
In una chat room, è possibile trovare numerosi utenti che possono essere infettati e diventare bot; il botmaster può impartire comandi attraverso la chat room, allertando rapidamente tutti gli utenti connessi.
I cracker possono cambiare continuamente canale per evitare di essere rimossi, ma il semplice blocco di determinate parole chiave si è dimostrato efficace nel fermare le botnet basate su IRC.
Essenziale per l'uso delle reti IRC è la conoscenza da parte dei bot-client del server IRC, della porta e del canale di comunicazione.
Le organizzazioni anti-malware sono in grado di rilevare e disattivare server e canali, bloccando efficacemente le botnet. Quando ciò accade, i client rimangono infetti ma inattivi, poiché non hanno più modo di ricevere istruzioni. Per affrontare questo problema, una botnet può essere composta da diversi server o canali; se uno di essi viene disabilitato, il sistema può passare a un altro server o canale disponibile, evitando così che i client rimangano inattivi. È possibile rilevare e interrompere ulteriori server o canali sniffando il traffico IRC.

### P2P

Poiché la maggior parte delle botnet che utilizzano reti e domini IRC possono essere disattivate nel tempo, i cracker si sono spostati verso le botnet P2P (peer-to-peer) per rendere più difficile la loro rimozione.
In una botnet P2P, tutti i bot sono connessi tra loro e possono fungere sia da server che da client. Questo modello decentralizzato aumenta la resilienza della botnet, poiché non esiste un singolo punto di vulnerabilità.
Il cracker o il gruppo di cracker che crea una botnet di questo tipo inizia reclutando i membri identificando gli host vulnerabili all'interno di una rete P2P già esistente. L'infezione avviene attraverso lo scambio di file malevoli, rendendo il processo di contaminazione relativamente semplice. Dopo l'infezione, è fondamentale che i bot si connettano tra loro e, in particolare, al botmaster per ricevere i comandi.
Per consentire a un bot di connettersi alla rete, deve eseguire una fase di bootstrap, che consiste nel collegarsi a un server bootstrap il cui indirizzo è incorporato nel codice del bot stesso. Questo server viene contattato la prima volta che il bot viene eseguito.
Il compito di un server bootstrap è mantenere un ampio elenco di indirizzi IP dei nodi. Anche se questi server possono essere rimossi dai professionisti della sicurezza, ciò non influirebbe sui bot già presenti nella rete, ma impedirebbe l'ingresso di nuove infezioni fino alla configurazione di nuovi server. Una volta costruita la rete, i bot rimangono in attesa di istruzioni per eseguire azioni illecite o aggiornamenti. Alcuni botmaster utilizzano anche la crittografia come metodo per proteggere o nascondere la botnet da potenziali avversari. Spesso ricorrono a crittografia a chiave pubblica per garantire la sicurezza delle comunicazioni all'interno della rete.

### Domini e HTTP

Molte botnet utilizzano domini per la loro costruzione, di solito ospitati da servizi da bulletproof hosting. Questo rappresenta uno dei primi tipi di comando e controllo (C&C).
Un computer zombie accede a una pagina web o a un dominio appositamente progettati per restituire l’elenco dei comandi di controllo.
Il vantaggio dell’uso di pagine web o domini come C&C consiste nel consentire un controllo e un mantenimento tramite codice semplice, che può essere facilmente aggiornato.
Gli svantaggi dell’utilizzo di questo metodo includono la necessità di una notevole larghezza di banda e il fatto che i domini possono essere facilmente sequestrati dalle agenzie governative senza molti problemi. Se i domini che controllano le botnet non vengono sequestrati, diventano obiettivi facili per attacchi DoS.
Il DNS fast-flux può essere utilizzato come metodo per rendere difficile il rintracciamento dei server di controllo. I server di controllo possono anche passare ad altri domini DNS, con algoritmi di generazione del dominio utilizzati per creare nuovi nomi DNS per i server controllori.
Alcune botnet utilizzano servizi di hosting DNS gratuiti come DynDns.org, No-IP.com e Afraid.org per indirizzare un sottodominio verso un server che ospita i bot. Questi servizi DNS gratuiti forniscono indirizzi spesso codificati nel file eseguibile della botnet. La rimozione di questi servizi può paralizzare l’intera botnet.

## Esempi notevoli

Tra le numerose botnet emerse negli anni 2000-2010, molte delle quali erano ancora attive nel 2015, si possono citare due esempi significativi, entrambi diffusi tramite trojan su piattaforme Microsoft Windows:
* ZeroAccess: utilizzata principalmente per l'estrazione di Bitcoin e per frodi legate a servizi pubblicitari pay-per-click. Questa botnet è nota per aver sfruttato milioni di computer infetti per generare profitti attraverso attività illecite.
* Torpig: focalizzata principalmente sul furto di dati personali e bancari. Torpig ha colpito un gran numero di utenti, raccogliendo informazioni sensibili attraverso tecniche di phishing e malware.

## La botnet e la criminalità

Negli ultimi anni, le botnet sono diventate una fonte di interesse crescente per la criminalità organizzata, rappresentando un metodo efficace per guadagnare denaro in modo illegale. I botmaster vendono i servizi delle botnet a clienti desiderosi di compiere azioni illecite. Tra le attività disponibili nel "catalogo" delle botnet ci sono:
* Denial of Service (DoS): attacchi massivi come DDoS (Distributed Denial of Service), DoS e DRDoS, che mirano a sovraccaricare un servizio o un sito web rendendolo inaccessibile.
* Spam: campagne di invio massivo di email con l'obiettivo di promuovere e vendere ad un vasto pubblico, prodotti, spesso illegali.
* Phishing: campagne progettate per ingannare gli utenti e carpire le loro credenziali, utilizzate per furti d'identità, riciclaggio di denaro e altre attività fraudolente.
* Spyware: software maligno che raccoglie informazioni sull'attività online di un utente senza il suo consenso, trasmettendo tali dati a terzi che li sfruttano per trarne profitto.
Queste attività non solo danneggiano gli individui e le aziende, ma rappresentano anche una minaccia significativa per la sicurezza informatica globale. Le botnet sono quindi strumenti cruciali nel panorama della criminalità informatica moderna.

## Contromisure

La botnet rappresenta un problema complesso e, di conseguenza, anche la sua soluzione risulta altrettanto intricata. Infatti, sebbene in teoria basterebbe eliminare il malware dal computer per estirpare completamente la minaccia, la botnet non risiede su un solo host. Pertanto, anche dopo aver rimosso il malware e ripristinato una macchina compromessa, il problema rimane irrisolto: questo processo elimina semplicemente un elemento ospite dalla botnet, ma essa continuerà a essere operativa e accessibile dai cybercriminali che la gestiscono.Per questo motivo, la lotta contro le botnet deve essere condotta su due fronti:
* Il fronte tecnico
* Il fronte legale

### Il fronte tecnico

Dal punto di vista tecnico, la lotta contro le botnet si concentra su due elementi principali: l'host e la rete. Poiché le botnet sono disperse geograficamente, è necessario identificare e riparare ogni singolo computer infetto. Inoltre, è importante limitare l'efficacia dei sistemi di filtraggio. Alcune botnet utilizzano DNS gratuiti e servizi di hosting come DynDns.org, No-IP.com, e Afraid.org per puntare un sottodominio verso un server IRC che ospita i bot. Questi servizi DNS gratuiti non ospitano gli attacchi, ma forniscono punti di riferimento. La rimozione di tali servizi può paralizzare un'intera botnet. Inoltre, alcune botnet implementano versioni personalizzate di protocolli molto noti. L'analisi delle differenze tra le implementazioni dei protocolli può essere utilizzata per il rilevamento delle botnet. Ad esempio, Mega-D dispone di una versione leggermente modificata del protocollo SMTP per testare la capacità di invio di spam. Filtrare il server SMTP di Mega-D disabilita l'intero pool di bot che si basa su quel server

## Elenco storico di botnet

| Nome | Data di creazione | Data di smantellamento | N° stimato di bot | Capacità dello spam (bn/gg) | Alias |
| Bagle | 2004 | | 230.000 | 5.7 | Beagle, Mitglieder, Lodeight |
| Marina Botnet | | | 6.215.000 | 92 | Damon Briant, BOB.dc, Cotmonger, Hacktool.Spammer, Kraken |
| Torpig | | | 180.000 | | Sinowal, Anserin |
| Storm | | | 160.000 | 3 | Nuwar, Peacomm, Zhelatin |
| Rustock | 2006 circa | marzo 2011 | 150.000 | 30 | RKRustok, Costrat |
| Donbot | | | 125.000 | 0.8 | Buzus, Bachsoy |
| Cutwail | 2007 circa | | 175.000 | 74 | Pandex, Mutant (correlato a: Wigon, Pushdo) |
| Akbot | 2007 | | 1.300.000 | | |
| Srizbi | marzo 2007 | novembre 2008 | 450.000 | 60 | Cbeplay, Exchanger |
| Lethic | | | 260.000 | 2 | |
| Xarvester | | | 10.000 | 0.15 | Rlsloup, Pixoliz |
| Sality | 2008 circa | | 1.000.000 | | Sector, Kuku |
| Mariposa | 2008 circa | 2009 | 12.000.000 | | |
| Conficker | novembre 2008 | | 10.500.000 | 10 | DownUp, DownAndUp, DownAdUp, Kido |
| Waledac | novembre 2008 | marzo 2010 | 90.000 | 1.5 | Waled, Waledpak |
| Maazben | | | 50.000 | 0.5 | |
| Onewordsub | | | 40.000 | 1.8 | |
| Gheg | | | 30.000 | 0.24 | Tofsee, Mondera |
| Nucrypt | | | 20.000 | 5 | Loosky, Locksky |
| Wopla | | | 20.000 | 0.6 | Pokier, Slogger, Cryptic |
| Asprox | 2008 circa | | 15.000 | | Danmec, Hydraflux |
| Spamthru | | | 12.000 | 0.35 | Spam-DComServ, Covesmer, Xmiler |
| Gumblar | 2008 circa | | | | |
| BredoLab | maggio 2009 | novembre 2010 | 30.000.000 | 3.6 | Oficla |
| Grum | 2009 circa | luglio 2012 | 560.000 | 39.9 | Tedroo |
| Mega-D | | | 509.000 | 10 | Ozdok |
| Kraken | | | 400.000 | 9 | Kracken |
| Festi | agosto 2009 | | 250.000 | 2.25 | Spamnost |
| Vulcanbot | marzo 2010 | | | | |
| LowSec | gennaio 2010 | | 11.000 | 0.5 | LowSecurity, FreeMoney, Ring0.Tools |
| TDL4 | 2010 circa | | 4.500.000 | | TDSS, Alureon |
| Zeus | | | 3.600.000 | | Zbot, PRG, Wsnpoem, Gorhax, Kneber |
| Kelihos | 2010 | 2011/2012 | 300.000 | 4 | Hlux |
| Ramnit | 2011 circa | febbraio 2015 | 3.200.000 | | |
| Zer0n3t | 2013 | 2013 | 200 + computer server | 4 | Fib3rl0g1c, Zer0n3t, Zer0Log1x |
| Chameleon | 2012 circa | | 120.000 | | |
| Mirai (malware) | agosto 2016 | | 380.000 | | |
| Koobface | | | 2.900.000 | | Ali Baba & 4 |
I ricercatori dell'Università della California hanno preso il controllo di una botnet che si è rivelata sei volte più piccola del previsto. Questo è accaduto perché molti utenti cambiano frequentemente il loro indirizzo IP durante la giornata. Pertanto, stimare la dimensione di una botnet basandosi solo sul numero di indirizzi IP può portare a una valutazione inaccurata della sua reale grandezza.