Una Botnet è una rete di host infestati da malware che eseguono gli intenti malevoli di un aggressore: un host che svolge questa attività sotto la supervisione di un master viene denominato Bot.
Una volta installato, un Bot viene di solito usato per rubare informazioni sensibili, inviare spam, eseguire attacchi DoS (Denial of Service) ed altre attività illegali. Il risultato di una infezione da malware può essere catastrofico.
Un Bot viene di solito installato attirando l'utente verso pagine web preposte a questo scopo, dalle quali viene scaricato in modo fraudolento il codice del malware o effettuando semplici ma efficaci tecniche di social-engineering.
I Bot sono differenti da altri malware (as esempio Worms) in quanto sono caratterizzati dalla presenza di un canale "Command and Control" (C&C), che viene utilizzato per interagire con un Botmaster il quale invia comandi (di solito operazioni illegali) che devono essere eseguiti dal Bot.
Di solito le comunicazioni C&C vengono eseguite da applicazioni "normali" che utilizzano protocolli di tipo push, come ad esempio IRC o P2P File Sharing, e che non svolgono azioni malevole. In breve tempo gli sviluppatori di Botnet si resero conto che un approccio basato su protocolli di tipo pull, che si basano invece sul protocollo HTTP, rende il codice più difficilmente individuabile. Infine la ricerca di una maggiore capacità di occultazione (stealthiness) ha spinto la topologia dei Botnet da una struttura centralizzata verso una decentralizzata, utilizzando per comunicare reti P2P.
Riassumendo i Bot ricevono comandi da un Botmaster utilizzando un meccanismo di tipo push o pull ed eseguono le attività che gli vengono assegnate; le operazioni di una Botnet centralizzata sono relativamente semplici ed intuitive mentre per una Botnet P2P di solito è il contrario.
Vediamo per esempio il funzionamento di un tipico Botnet P2P, chiamato Storm Worm. In questa Botnet il Botmaster pubblica/condivide file di comandi in una rete P2P, insieme a specifiche chiavi di ricerca che possono essere utilizzate dai Bot per ricercarli. I Bot infestati da Storm Worm utilizzano un meccanismo pull per ricevere i comandi. Nella fattispecie ogni Bot contatta frequentemente i Peers alla ricerca delle chiavi specifiche per localizzare i file di comandi. Inoltre i Bot comunicano ripetutamente con i loro peers per inviare messaggi "keep-alive".
Per individuare host e reti infestate da Bot vengono utilizzate diverse tecniche che si basano sull'analisi delle comunicazioni C&C oppure sulla raccolta di informazioni e quindi su valutazioni statistiche del traffico di rete. Per saperne di più segnalo i seguenti link:
https://www.usenix.org/legacy/event/sec08/tech/full_papers/gu/gu.pdf
http://isg.rhul.ac.uk/sullivan/pubs/tr/2009-12.pdf
https://www.usenix.org/legacy/events/nsdi10/tech/full_papers/perdisci.pdf
https://www.usenix.org/system/files/conference/usenixsecurity12/sec12-final127.pdf