VoIP and Hacking

Meccanismi delle botnets

by admin on Mar.27, 2009, under Hacking, Sicurezza

Il termine botnet viene usato per definire un network di hosts infettati, detti anche bots, sotto il controllo di un operatore umano comunemente conosciuto come botmaster. Se le botnets arruolano macchine vulnerabili tramite metodi utilizzati anche da altri tipi di malware, la loro caratteristica fondante consiste nell’uso dei cosiddetti “command and control (C&C) channels”.

Lo scopo principale di tali channels è quello di impartire i comandi del botmaster alle schiere dei propri bots. Tali canali possono operare su una ampia varietà di topologie di rete e utilizzare differenti meccanismi di comunicazione, da protocolli Internet molto conosciuti ai più recenti protocolli P2P. Tuttavia, la maggior parte delle botnets attualmente usa il protocollo Internet Relay Chat (IRC), originariamnte progettato per gestire ampie “chat rooms”.

Le botnets vengono usate principalmente per attività illegali che spaziano dall’ estorsione allo spamming, dal furto di identità alla pirateria software. Sfortunatamente, nonostante una attenzione sostanzialmente in crescita rispetto al fenomeno, è sempre molto difficile studiarne il comportamento malizioso.
Le botnets di solito fanno nuove vittime sfruttando una qualche vulnerabilità del software in esecuzione sulla vittima, mutuando strategie di infezione da diverse altre tipologie di malware, inclusi worms autoreplicanti, virus come allegati e-mail, etc.
Una volta infettata, la vittima tipicamente esegue uno script (conosciuto come shellcode) che scarica il codice binario del bot vero e proprio da una specifica locazione.
Completato il download, il bot binario installa sè stesso sulla macchina target in modo da essere mandato in esecuzione ad ogni restart.
Come affermato in precedenza, ciò che caratterizza le botnets è il fatto che i singoli bots sono controllati attraverso comandi inviati dal botmaster della rete.
Il canale di comunicazione usato per impartire comandi può essere implementato ricorrendo ad una varietà di protocolli (es. HTTP, P2P, etc.). Tuttavia, la maggior parte delle odierne botnets usa il protocollo Internet Relay Chat (IRC). Il protocollo IRC era stato specificamente progettato per consentire diverse forme di comunicazione (point-to-point, point to multi-point, etc.) e trasferimento dati verso un ampio numero di hosts finali. La implicita flessibilità di tale protocollo, così come la disponibilità di diverse implementazioni open-source, consente a terze parti di estenderlo in modo tale da adattarsi alle proprie esigenze.
Tali caratteristiche fanno di IRC il protocollo preferito dai botmasters, dato che semplifica l’implementazione della botnet e assicura un elevato grado di controllo sui bots.
Una volta inizializzato, il bot tenta di contattare l’indirizzo del server IRC incorporato nell’ eseguibile. In molti casi, questa operazione richiede una preventiva risoluzione del nome DNS del server IRC. L’utilizzo di un nome DNS anziché di un indirizzo IP hard-coded IP consente al botmaster di mantenere il controllo della botnet nella eventualità che l’indirizzo IP attualmente associato al nome DNS del server IRC sia black-listed.
Una volta conosciuto l’indirizzo IP del server IRC, il bot tenta di stabilire una sessione IRC con il server e si “sintonizza” sul command and control channel specificato nel binario. Genericamente parlando, la comunicazione fra bot e server IRC richiede la combinazione di distinte autenticazione.
Per prima cosa, un bot necessita di autenticare se stesso con il server IRC usando il messaggio PASS per poter iniziare la sessione IRC con quel server. I botmasters normalmente proteggono il canale command and control con una password e di conseguenza richiedono che il bot si autentichi prima dell’accesso. Le passwords sono contenute nel binario del bot e l’ autenticazione normalmente avviene in chiaro.
La seconda fase di autenticazione, che non fa parte del protocollo IRC, richiede che il botmaster autentichi sè stesso presso la popolazione di bots prima di poter impartire un qualsiasi comando. Mentre la prima autenticazione è intesa a impedire a estranei di partecipare al canale C&C, l’altra fase serve a evitare che qualche altro botmaster assuma il controllo della botnet. Una volta che il bot abbia raggiunto con successo il canale IRC specificato, automaticamente esamina ed esegue il “channel topic”. Esso conterrà il comando che ciascun bot è tenuto ad eseguire.
A seconda del channel mode impostato dal botmaster, i bots possono anche “ascoltare” tutti i messaggi scambiati sul channel. Tale comportamento broadcast dei canali IRC è una caratteristica  di design che rende il protocollo IRC protocol adatto a supportare chat rooms su larga scala. Le analogie tra differenti botnets in genere terminano qui; le differenti botnets possiedono differenti set di comandi e risposte come estensioni al protocollo IRC standard.

Send post as PDF to PDF | PDF Creator | PDF Converter
:, , ,

Comments are closed.

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...