Il pesce Conficker di Aprile
by admin on Mar.22, 2009, under Sicurezza, Società
Il worm Conficker rappresenta attualmente la minaccia più grave e incombente per l’integrità della rete Internet, non certo a livello strutturale, ma come modello valido e neutrale di comunicazione globale.
Il malware in questione sfrutta una nota vulnerabilità dei sistemi Windows (MS08-67) per propagarsi, ed in tal modo si stima abbia infettato una decina di milioni di macchine in giro per il mondo. Il worm installa sè stesso nel file system e configura il registry in modo da invocare la relatva DLL durante la fase di startup.
Ne è stata individuata da pochi giorni la variante “C”, che come i suoi predecessori attua una serie di meccanismi molto sofisticati per autoproteggersi, bloccando l’accesso a vari siti security-related, installando una pseudo-patch per correggere la vulnerabilità 445/TCP, ma mantenendo una backdoor per una eventuale reinfezione. Il worm tenta di individuare, rimuovere o disabilitare servizi critici per la sicurezza, come Windows defender, così come fa con i servizi che rilasciano security patches e aggiornamenti software.
Conficker C incorpora poi due fondamentali threads: uno relativo alla communicazione P2P, ed un altro relativo alla generazione di domini e punti di rendezvous Internet.
Il primo thread è incorporato in un segmento di codice che adotta un livello addizionale di offuscamento, rivelando chiaramente l’intenzione da parte dell’autore (o autori) di ostacolare il reverse engineering. Il protocollo P2P prevede la capacità di coordinamento con peers sia su canali TCP che UDP. L’algoritmo di generazione dei domini è programmato per attivarsi il giorno 1 Aprile 2009 rimanendo fino ad allora in un loop che attende 24 ore e quindi ricontrolla la data via getlocaltime.
L’algoritmo stesso presenta una significativa evoluzione rispetto a quello presente nelle precedenti edizioni: il numero dei nomi di dominio generati giornalmente, potenziali punti di rendezvous Internet, è passato da 250 a 50000. Di questi 50000 domini, ne vengono tuttavia interrogati solo 500, e contrariamente alle varanti precedenti, solamente una volta al giorno.
Se nessuno dei domini è vivo e pronto a servire un payload con firma digitale, attenderà 24 ore, e quindi genererà una nuova lista di 50000 domini. L’algoritmo produce un set di nomi di dominio indipendente da quello generato da Conficker A e B, con rare sovrapposizioni. La lunghezza di ciascun nome di dominio generato varia tra 4 e 10 caratteri, cui un TLD casualmente selezionato viene accodato a partire dalla seguente lista di 116 suffissi (comprendenti 110 effettivi TLDs):
“ac” , “ae” , “ag” , “am” , “as” , “at” , “be” , “bo” , “bz” , “ca” , “cd” , “ch” , “cl” , “cn” , “co.cr” , “co.id” , “co.il” , “co.ke” , “co.kr” , “co.nz” , “co.ug” , “co.uk” , “co.vi” , “co.za” , “com.ag” , “com.ai” , “com.ar” , “com.bo” , “com.br” , “com.bs” , “com.co” , “com.do” , “com.fj” , “com.gh” , “com.gl” , “com.gt” , “com.hn” , “com.jm” , “com.ki” , “com.lc” , “com.mt” , “com.mx” , “com.ng” , “com.ni” , “com.pa” , “com.pe” , “com.pr” , “com.pt” , “com.py” , “com.sv” , “com.tr” , “com.tt” , “com.tw” , “com.ua” , “com.uy” , “com.ve” , “cx” , “cz” , “dj” , “dk” , “dm” , “ec” , “es” , “fm” , “fr” , “gd” , “gr” , “gs” , “gy” , “hk” , “hn” , “ht” , “hu” , “ie” , “im” , “in” , “ir” , “is” , “kn” , “kz” , “la” , “lc” , “li” , “lu” , “lv” , “ly” , “md” , “me” , “mn” , “ms” , “mu” , “mw” , “my” , “nf” , “nl” , “no” , “pe” , “pk” , “pl” , “ps” , “ro” , “ru” , “sc” , “sg” , “sh” , “sk” , “su” , “tc” , “tj” , “tl” , “tn” , “to” , “tw” , “us” , “vc” , “vn”.
Per risolvere i nomi di dominio in indirizzi IP, C usa la API standard di Windows gethostbyname. Se il dominio richiesto risolve in un indirizzo IP, il worm tenterà di contattare tale indirizzo attraverso la porta 80/TCP. Qui utilizza una singola chiamata alla API HttpQueryInfo (una richiesta HTTP Get vuota). Se si connette ad un autentico punto di rendezvous, il server invierà immediatamente al client un eseguibile Win32 firmato digitalmente da mandare in esecuzione. La variante C non produce la ben conosciuta stringa URL di ricerca (con q= o aq=), rendendo di fatto la vita più difficile agli IDS.
Una volta che il file sia stato scaricato e validato, viene mandato in esecuzione attraverso ShellExecute.
I droni infettati possono operare sia come client che come server nell’ambito di un network P2P.
Conficker realizza dunque una robusta piattaforma per distribuire massicciamente malware a milioni di computers attraverso Internet. Nella più fosca delle prospettive, Conficker potrebbe venire trasformato in un’arma devastante per operazioni di warfare in grado di mettere in ginocchio intere nazioni e la stessa Internet.
L’opinione popolare riguardo ai cyber-attacchi russi lanciati contro Estonia e Georgia in tempi recenti è che un esercito di hackers nazionalisti avesse bombardato i computers governativi di quelle nazioni con un DDOS originato da una botnet.
Ma la realtà è ancora più inquietante: il danno più rilevante sofferto dall’Estonia, per esempio, si è verificato quando il sistema bancario euroeo e statunitense scelsero intenzionalmente di escludere l’ Estonia dalla Internet finanziaria, poichè quest’ultima era stata bombardata da transazioni fasulle originate dalla botnet.
In una reazione isterica, per proteggere l’ integrità del proprio sistema finanziario, la rete bancaria Europea aveva tagliato fuori Estonia e Lithuania, abbandonandole al proprio destino.
E’ facile prevedere quale catena di perversi meccanismi sia in grado di scatenare una botnet estesa e intelligentemente congegnata come quella che sta arruolando il worm Conficker.

