Mobilis in Mobile
La botnet
Con il passare del tempo i sistemi diventano sempre piu sicuri, tuttavia ci sono malware talmente semplici e leggeri che riescono sempre a passare tra le maglie anche del più sofisticato firewall o antivirus.
E’ esagerato chiamarli trojan, questi piccoli programmini non fanno altro che rimanere in ascolto su una determinata porta e attendere comandi da chi è a conoscenza della loro esistenza; chi studia o ha studiato programmazione avrà sicuramente presente gli esercizi con i socket, la prima cosa che si fa è sviluppare un file eseguibile che rimanga in ascolto su una determinata porta ed accetti comandi per restituire, di solito, scritte; sono proprio questi i tipi di programmi che ci interessano in questo articolo.
L’ULTIMO CHIUDA LA PORTA
Chi non è molto esperto di informatica forse non capirà perchè sto parlando di porte riguardo ad un computer, chi scarica da emule invece saprà benissimo di cosa sto parlando.
Tutti i software che hanno bisogno di comunicare con la rete devono passare per una porta in quanto hanno bisogno di mandare e ricevere dati (ad esempio, di default: navigazione internet, porta 80; ftp porta 21; ssh porta 22 etc…), per cui questo numero è effettivamente una porta logica che permette ai dati di passare ed arrivare ad una determinata applicazione che ascolta proprio su quella porta, come per le porte di casa che danno accesso a separate stanze. Per esempio sappiamo che emule scarica dati dai peer tramite la porta 4711 ma sappiamo anche che i peer devono poter scaricare dal nostro emule sempre tramite la stessa porta, per questo dobbiamo dire al router di ridirigere le chiamate che gli arrivano sulla porta 4711 verso il nostro computer e verso la nostra porta 4711, in gergo si chiama NAT e Port Forwarding se la porta aperta sul router è diversa da quella di cui abbiamo bisogno, ad esempio si può aprire la porta 77543 sul router e dirgli di girare le connessioni che arrivano su quella porta sulla porta 22 del nostro computer, ma questa è un altra storia.
Facciamo un esperimento, lanciamo questo comando:
netstat -aon
verrà fuori un elenco di numeri strano, ora ve lo spiego.
Cominciamo dal comando, netstat visualizza tutte le connessioni in ascolto dal o verso il nostro computer. La direttiva -a indica di farle vedere tutte, -o stampa il processo che sta usando quella connessione e -n fa in modo che vengano stampati gli indirizzi e le porte in forma numerica, decisamente più leggibile.
Ora, andiamo a cercare le righe che hanno la dicitura LISTENING o ESTABLISHED in una delle colonne, queste righe indicano che c’è una porta aperta pronta a ricevere dati (LISTENING) oppure che c’è una connessione in corso su quella porta (ESTABLISHED).
Prendiamo per esempio una schermata dal mio pc:

Come vedete ci sono due record, uno LISTENING, cioè vuol dire che è in ascolto ed uno ESTABLISHED cioè vuol dire che è stata stabilita una connessione tra l’indirizzo locale (il mio pc) e l’indirizzo remoto.
Il LISTENING: in questo caso la porta 139 è quella del netbios di windows, che si occupa della condivisione di file e stampanti, perciò vedete che il mio indirizzo è in ascolto sulla porta 139. In questo caso l’indirizzo esterno indica chi si può connettere al mio pc, 0.0.0.0 indica che tutti gli indirizzi ip possono connettersi tramite la porta 139 al mio pc.
L’ESTABLISHED: qui la situazione è diversa, l’indirizzo locale, cioè il mio pc, esce dalla porta 2768 del mio pc e va a connettersi alla porta 9081 dell’indirizzo esterno. In questo caso è una semplice connessione http ad un portale.
CHE COS’E’ UNA BOTNET?
Ora che avete chiaro il funzionamento delle porte posso spiegarvi come funziona una botnet. Una botnet è una rete di programmini che girano su milioni di pc che aprono una porta e rimangono in ascolto in attesa di comandi da parte del master, cioè chi ha creato il programmino.
E’ difficile accorgersi di questi programmi perchè, come avete visto, la sfilza di porte aperte in un pc è veramente lunga.
L’antivirus tace perchè tutto sommato per lui è un programmino di servizio (in gergo chiamati demoni) come il demone che gestisce la tastiera ed il mouse o l’odiato svchost in windows, se aprite la finestra servizi in windows o lanciate un ps -axf su linux potete avere una vaga idea dei demoni che girano in quel momento (generalmente su linux, convenzionalmente, sono indicati con una d dopo il nome del programma, ad esempio ftpd per il demone ftp); come potete vedere sono tanti e quasi tutti aprono una porta ciascuno.
Il firewall lascia passare perchè non lo riconosce come traffico malevolo; può dare un avviso ma generalmente il nome di questi programmini è ingannevole, come ad esempio “windows network service” che ci può spingere a cliccare su autorizza nella maschera di warning che ci presenta il firewall.
Così abbiamo il pc a disposizione del creatore della botnet pronto a ricevere ed eseguire ordini, un pc infettato in questo caso, in gergo, si chiama zombie.
Tanti programmini in attesa dello stesso ordine dalla stessa persona si chiama botnet.
A CHE SERVE UNA BOTNET?
Attualmente, principalmente a far parlare telegiornali e testate pseudo specializzate, in realtà ha scopi molto più gravi.
Ad esempio, al nostro programmino può arrivare il comando di fare una semplice richiesta della pagina index del sito delle poste al secondo, per il nostro pc è un carico di lavoro ridicolo, ma se pensate ad una botnet di 1 milione di pc fanno 1 milione di richieste al secondo e potete stare sicuri che, sopratutto il sito delle poste, andrà fuori servizio in pochi secondi perchè non ce la fa a reggere questo carico di lavoro, questo in gergo viene chiamato DOS, Denied Of Service. Chiaramente non ha utilità pratica però viene usato a scopo “terroristico”, immaginate un gruppo che minaccia di creare disservizio sul portale di una banca o di qualche ente governativo.
L’uso più preoccupante, a mio avviso, però è quello di utilizzare questi programmini per mettere in piedi un cluster di calcolo. Programmi come SETI@HOME mettono a disposizione un programma da scaricare gratuitamente che rimane in ascolto ed esegue dei calcoli utilizzando la potenza libera del processore, dopodichè li rimanda indietro al server centrale.
Se il master della botnet programma gli zombie in questo modo potrà contare su una potenza di calcolo distribuita di 1 milione di CPU (il tempo processore libero ovviamente) e non gli sarà difficile operare azioni di bruteforce su chiavi di cifratura o addirittura su traffico cifrato.
CONCLUSIONE
E’ difficile proteggersi da questo tipo di infezione. Tuttavia tenete sempre l’antivirus ed il firewall aggiornati con le ultime firme e patch, anche se siete su sistemi linux, come vi ho spiegato nel precedente articolo.
| Print article | This entry was posted by Nemo on April 15, 2010 at 00:00, and is filed under Informatica & Tecnologia, blog. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
Facebook comments:
about 4 months ago
C’è però anche da dire che i siti di importanti infrastrutture come Poste Italiane o istituti bancari, hanno a disposizione firewall/IPS in grado di mettere in “black list” gli indirizzi IP da cui vedono arrivare richieste HTTP non conformi agli standard RFC.
Io ho avuto modo di configurare la parte IPS dei firewall Check Point e non ti dico quanto possono essere raffinati nell’analisi applicativa dei protocolli.
about 4 months ago
Si è vero, come dicevo nel post, i sistemi di sicurezza sono sempre più efficaci, però ci sono delle eccezioni. La prima sono le reti casalinghe; spesso gli utenti non installano ne firewall ne antivirus, i produttori di sistemi operativi tentano di metterci una pezza ma è difficile proteggere l’utente da minacce così sofisticate in maniera totalmente trasparente.
A quanto vedo, poi, tu lavori nel campo perciò sai molto bene cosa succede se questi sistemi non sono configurati bene, ti faccio un esempio di un cliente con cui abbiamo avuto a che fare.
Il loro piano per la sicurezza della rete è chiudere tutto lasciando aperto solamente un proxy che controlla i siti che è possibile navigare, dato questo, hanno pensato che la rete fosse automaticamente protetta.
Alla fine, come puoi immaginare, è successo che una miriade di persone si connetteva con il proprio portatile, iniettando virus di ogni sorta nella rete; non essendoci un antivirus a monte, quella rete è diventata una palude di virus e worm, ogni volta che mi attacco a quella rete il symantec fa gli straordinari.
Immagino che non ti dico nulla di nuovo insomma
about 4 months ago
Eh lo so ti capisco perfettamente… Tuttavia ci sono anche delle buone eccezioni. Ad esempio io ho progettato e realizzato una infrastruttura di controllo sull’accesso web in questo modo: proxy + URL/application filtering + antivirus perimetrale + firewall
In questo modo, a meno di non far parte di un ristretto gruppo di utenti autorizzati, non puoi collegarti nemmeno con Skype all’esterno (sfruttando il proxy).
Forse poi io sono un po’ paranoico e mi sono istallato PFSense + Squid a casa come infrastruttura di sicurezza, pur avendo tutti desktop MacOS…
Proprio adesso so installando tre server Red Hat 5.4 che dovranno funzionare da reverse proxy HTTP / HTTPS.