E-SECURITY: LE INFEZIONI VIRALI v. 1.1 Questo tutorial è stato scritto da Gallerini Micaela (heba, [email protected]), esso non vuole avere la presunzione di spiegare tutto fin nei minimi particolari, ma vuole essere un tramite tra gli utenti comuni e l'informatica, la sicurezza informatica, la programmazione. Questo tutorial è consigliato a utenti esperti e amministratori di sistema, ne è sconsigliato l'uso a utenti non esperti poiché vi sono riferimenti a file di sistema e a tecniche che possono risultare ostiche ad un utente qualsiasi. La seguente opera è distribuita con licenza Creative Commons “Attribution NoCommercialNoDeriv 3.0” (by-nc-nd/3.0), reperibile a questo link http://creativecommons.org/licenses/by-ncnd/3.0/legalcode: è libera la riproduzione (parziale o totale), la distribuzione, la comunicazione o l'esposizione al pubblico, rappresentazione, esecuzione o recitazione in pubblico, purché non a scopi commerciali o di lucro e a condizione che venga indicato l'autore e, tramite link il contesto originario. AVVERTENZE: tutte le informazioni inserite in questo tutorial sono state ricavate dalla decrittazione di file infetti inviatemi da alcuni lamer, tutta la decrittazione è avvenuta su una macchina con sistema operativo Linux, la decrittazione in altri ambienti potrebbe subire sostanziali differenze sull'esito del lavoro. Indice 1. Introduzione 1.1 Cosa sono le infezioni del computer 1.2 Un po' di storia 2. La classificazione 2.1 I virus 2.2 Gli spyware 2.3 Gli adware 2.4 I dialer 2.5 I trojan horses 2.6 I malware 2.7 I rootkit 3. Come vengono inviati i file infettivi 3.1 I floppy disk 3.2 La rete internet e intranet 3.3 Le e-mail 4. Programmi ed estensioni utilizzate normalmente 4.1 I programmi più comuni utilizzati per creare una macchina zombie 4.2 Le varie estensioni delle infezioni informatiche 5. Come eliminare le infezioni e i primi elementi di prevenzione 5.1 Il copyright e le infezioni informatiche 5.2 La prevenzione 5.3 Come eliminare i virus 1. INTRODUZIONE 1.1 Cosa sono le infezioni del computer? Un'infezione virale è un virus che infetta il sistema e lo rende più o meno inutilizzabile. Il virus è un programma che non lavora in collaborazione con il kernel, il sistema operativo e le varie applicazioni, esso infatti lavora contro tutto il sistema modificandone le parti principali in modo che sia impossibile lavorare correttamente sulla propria macchina. 1.2 Un po' di storia Il primo virus informatico fu inventato nel 1982 da Skrenta ancora studente per fare uno scherzo, inserendolo in un videogioco, il virus partiva e faceva diventare la schermata bianca dopo un tot di volte che il gioco veniva caricato. Negli anni successivi i virus si sono evoluti e sono diventati più insidiosi rispetto a quello scherzoso del 1982, inizialmente furono scritti nei linguaggi di basso livello come C , Basic o Assembler, nella seconda metà degli anni '80 i virus si diffusero con lo scambio di floppy disk i primi virus ricercavano file .exe del sistema cancellavano una o più parti di tali file e vi si copiavano all'interno in modo tale che il sistema leggesse il loro codice e non quello originario. Con la diffusione delle reti (soprattutto quelle aziendali) i virus si trasformarono di nuovo, non solo infettavano un file del sistema operativo e lo modificavano ma creavano una copia di se stessi nascondendosi in file che poi venivano inviati su altri computer della stessa rete. Dalla metà degli anni '90 con l'avvento di internet e dei personal computer i virus furono diffusi semplicemente tramite e-mail, il virus infettava il pc e replicava il suo codice in modo che ogni volta che si utilizzava il programma di posta elettronica si spediva automaticamente a tutti gli indirizzi della rubrica, oppure veniva inviato tramite la connessione internet; a partire da quel periodo i virus furono scritti non solo in linguaggi di basso livello ma anche in VisualBasic e oggi si possono trovare anche in Asp.net. Agli inizi del millennio nacquero i trojan horses, infezioni più complesse che attaccavano il sistema in modo più completo caricando le libraries e le .dll di sistema, nel momento in cui la maggior parte dei virus e dei trojan venivano bloccati dal sistema e dagli antivirus e nel momento in cui non era più possibile modificare in modo significativo il virus vennero inventati nuovi tipi di infezioni, ad oggi resistono i malware e i rootkit come infezioni più potenti e più difficili da eliminare. 2. CLASSIFICAZIONE DELLE VARIE INFEZIONI 2.1 I virus Il termine virus come abbiamo visto nell'introduzione è nato nel 1984 circa, esso indica non solo un programma che infetta il sistema ma il termine è proprio di un modo particolare di infettarlo. Infatti, esso fu ispirato dai virus biologici, per cui il virus si autoriproduce, si alimenta e si espande creando copie infinite di se stesso da inviare ripetutamente attraverso la rete intranet o internet. Esso di solito si installa in un eseguibile (.exe) modificandolo; è possibile che possa modificarne solo una parte in modo che compaiano oggetti o frasi sul desktop, oppure è possibile che elimini una parte del programma in modo da rendere inutilizzabile una certa applicazione, per esempio è possibile che eseguendo un programma non lo faccia partire per nulla o rigetti un errore come questo: File unknown bad request 0X0015E Un'altra disfunzione creata da un virus informatico può essere quella di modificare il programma stesso in modo che quando venga eseguito non inserisca dei dati o non li modifichi, non li stampi o non li ricerchi, o cerchi qualcos'altro da ciò che è stato digitato; inoltre, potrebbe modificare la maschera del programma in modo che venga richiesta una password per potervi accedere anche se non è stata prevista dal programma stesso. Si può dire che il virus è stato creato per creare disturbo all'interno del sistema, anche se è possibile programmarlo per distruggere completamente il sistema operativo dandogli istruzioni per cancellare definitivamente tutto ciò che è contenuto sull'hardisk. Mentre all'inizio l'unico modo per infettare un computer era quello di installare direttamente da floppy il file eseguibile infettato, con l'avvento delle reti intranet e soprattutto con internet la possibilità di una macchina di infettarsi si moltiplicarono esponenzialmente. Negli ultimi anni la programmazione dei virus si modificò in modo che ogni volta che si installava su una macchina esso si replicava e si inviava tramite la rete intranet (con il passaggio di un file infettato) o internet, attraverso l'invio del file infetto tramite posta elettronica a tutti i contatti della rubrica di posta, oppure attraverso la connessione internet tramite l'invio di pacchetti invisibili. Con il rinnovo degli archivi degli antivirus installati sulla macchina, essi si modificarono in modo da cercare il file contenente tutte le versioni dei virus in circolazioni, aprirlo e modificarlo cancellandone tutto il contenuto, in questo modo l'antivirus non lo riconosce e non può eliminarlo o metterlo in quarantena. 2.2 Gli spyware La parola spyware indica un programma che spia le attività di una macchina quando connessa ad internet. Il programma .exe viene, di solito, inserito in altri programmi di gestione ed utilità di sistema per cui è scaricato ed installato liberamente dall'utente; non sempre lo spyware è segnalato accuratamente nella documentazione di alcuni prodotti in questo modo l'utente lo installa e rimane ignaro della sua presenza fino a che non viene visualizzato da un software specifico anti-spyware. E' possibile contrarre questo tipo di infezione anche durante la navigazione internet, infatti alcuni tipi di siti possono essere programmati in modo da installare, di solito tramite la ricezione dei cookies, dei programmi spy; in questo caso è consigliata una pulizia giornaliera o per lo meno dopo ogni disconnessione da internet dei cookies e dei file temporanei, ossia aprire il proprio browser (se su windows 3.x, 95,98, Me, Nt, 2000,2003, Vista), andare su Strumenti -> Opzioni -> Pannello di controllo -> Opzioni Internet a questo punto cliccare su Elimina cookies e successivamente su Elimina file. Alcuni file però non vengono cancellati e ne rimane qualche traccia in questo caso è meglio utilizzare un software specifico1. Lo spyware attiva le sue caratteristiche, ossia quelle di inviare i dati della macchina e della connessione (come il sistema operativo utilizzato, il browser, i programmi che vengono utilizzati per la protezione di internet come firewall o antivirus, l'ip e le porte aperte) solo ed esclusivamente se gli vengono richieste da una macchina remota e non li invia in automatico appena aperta la connessione. Per cui, utilizzando un programma di sniffing l'autore dello spyware ricerca tutti i computer che hanno installato un dato programma, nel qual caso lo spyware appartenga ad un'azienda, o che contenga semplicemente uno script predefinito tipo: while $conn is up then run xxx.exe $ip = remote_address $os = operative system end while una volta che il programma di sniffing ha dato i suoi risultati con la ricerca, può essere la ricerca di un range di ip o semplicemente quello di un certo sistema operativo o di un certo prodotto installato come può essere Ms Office o il programma aziendale scaricato e contenente lo spyware, l'autore del programma richiederà appunto le indicazioni della connessione e del proprietario della macchina invadendo così la privacy della persona o dell'azienda. Questo tipo di spyware, però, si elimina solamente se si cancella il programma principale che lo ha generato. Questo metodo, all'inizio, gli spyware erano utilizzati per controllare quante persone utilizzavano un certo tipo di software dalle aziende produttrici e quale era la loro gestione e per quali usi lo utilizzavano per cui si potrebbe definire un'indagine di mercato vera e propria, costituendo però una violazione della privacy dell'azienda utilizzatrice perché programmi di questo tipo non controllano solo se era installato su una macchina, ma va a sondare tutto il software installato di un'azienda e ciò che viene utilizzato maggiormente, nonché i clienti ed i fornitori o qualunque altra informazione 1 il software più comune ed il migliore in assoluto per combattere questo tipo di infezioni è Spybot Search&Distroy o nel caso dei cookies CCleaner al riguardo. Non solo, gli spyware non vengono utilizzati solo dalle aziende per costruirne indagini di mercato, ma anche dai lamer che con gli stessi programmi di sniffing possono ottenere delle informazioni molto importanti di social engineering tanto da costituirne un vero e proprio pericolo per le aziende. La maggior parte degli spyware è predisposta per le utenze di windows e per girare su un sistema win32, esattamente infettano la library wsock32.dll la quale è usata dal sistema e dalle applicazioni per effettuare la connessione della rete TCP/IP; ciò però non implica assolutamente che per altri sistemi operativi non vi sia lo stesso pericolo in ogni caso è sempre meglio tenere aggiornata la cache eliminare i cookies e i file temporanei seguendo le stesse indicazioni di windows, per esempio per chi usa Mozzilla o Firefox: Tools -> Cookies manager -> Manage cookies e qui cancellare tutti i cookies inseriti all'interno, i file temporanei li si può trovare all'interno di una cartella dedicata /tmp. Se per caso sono installati più sistemi operativi su una rete e, poniamo caso, lo spyware sia installato su windows succede che se non viene disinstallato sia che ci si colleghi da windows sia dal secondo sistema operativo la nostra privacy è a rischio; infatti, la rete con cui ci si collega è unica e anche collegati con linux o un altro sistema unix, uno sniffer può controllare facilmente sia le condizioni della macchina in cui risiede lo spyware (windows) sia risalire (fino a che non viene bloccato dal firewall) al server o ai nodi intermedi. Se invece vi sono due sistemi operativi sullo stessa macchina, escluso che siano entrambi windows (es. 98 e XP), è impossibile che lo spyware identifichi il secondo sistema operativo perchè la rete è unica e o ci si collega con il primo sistema operativo o ci si collega con il secondo, per cui se la rete in cui risiede lo spyware non è attiva non potrà visualizzare nulla del sistema operativo che si sta utilizzando per la connessione, né i programmi aziendali né null'altro. Nel caso di virtualizzazioni lo spyware visualizzerà tutto ciò che riguarda il sistema operativo virtualizzato se anch'esso sarà attivo durante la connessione internet. 2.3 Gli adware Gli adware storicamente sono nati come un trucco di alcune aziende2 per poter inserire pubblicità all'interno dei loro prodotti; di solito la pubblicità era degli sponsor che sostenevano il programma o il sito, se l'utente pagava (o in alcuni casi paga ancora oggi) una quota associativa al sito o al programma i banner o le finestre pop up pubblicitarie venivano eliminate. Questo potrebbe far pensare che qualunque sito che propone finestre pop up o che visualizzi pubblicità e che la elimini dopo il pagamento di una quota definita dal proprietario del sito, ma in realtà non è proprio così. L'adware è un programma creato appositamente per installarsi sulla macchina e aprire finestre pop up pubblicitarie nel momento in cui il programma ospite è attivo; se l'adware è stato creato da un'azienda ed è stato dichiarato nelle note legali del programma l'adware è perfettamente legale. Con il tempo, però, i lamer li hanno utilizzati per creare disturbo alle macchine durante la connessione o inserendoli in altre tipologie di infezioni in modo da creare ancora più confusione ed intasamento della memoria del sistema. Originariamente gli adware erano fatti in HTML o Javascript, poichè erano più malleabili e inviabili senza creare sospetto in chi lo riceveva; mentre ora si sono evoluti in tecniche di programmazione più complesse; di solito sono programmi per Ms Windows per cui devono essere letti dalla sua architettura di desktop manager o dai suoi browser (Internet Explorer). E' possibile trovare adware creati appositamente per Microsoft (vedi Figura 2.1) con teconologia Microsoft, nel caso dell'adware in figura inviatomi qualche tempo fa, come si può vedere, è stato scritto in ASP.NET per poter essere letto con il protocollo HTTP richiamando il server da telnet. Il programma successivamente, richiede la connessione al server pubblicitario fasullo di msn (http://ads1.msn.com/ads/59575/0000059575_000000000000000383072.jpg), dichiarando la grandezza dell'immagine e della finestra pop up, proprio come se stato programmato un sito, anzichè un adware. Inoltre, l'adware abbina al sito suddetto un sito pubblicitario(http://g.msn.com/0AD0003Z/1014327.1??PID=3498595&amp) il quale si visualizzerà ogni volta che si aprirà il browser ed ogni tot di tempo dichiarato nella programmazione dell'adware. I programmi adware sono fastidiosi più che pericolosi è l'abbinamento che se ne fa che li può rendere più o meno pericolosi, questo perchè se sono abbinati a dei trojan (come vedremo successivamente) potrebbero intasare la CPU e la RAM adducendo il sistema a confondere la tipologia reale dell'infezione per cui a scambiare un trojan solo per adware o per spyware, poichè potrebbe intasare la memoria con una visualizzazione all'infinito della stessa finestra internet. Figura 2.1 2 ad oggi ci sono ancora alcune aziende che utilizzano il metodo dell'adware nei loro siti o programmi. Per circoscrivere le possibilità di infezione degli adware è sempre meglio stare attenti ai siti che si frequentano e ai file che si scaricano, per quanto riguarda i programmi accertatevi sempre sulle note legali che non vi siano adware se non li desiderate non scaricate il programma, utilizzate sempre alla conclusione di una sessione di internet (o una volta a settimana) una scansione con un programma specifico anti-adware3. 3 uno dei programmi più conosciuti e più risolutivi del problema è sicuramente Adawre-SE, questa la versione freeware è possibile acquistare una versione più completa del software che contiene più utilità sul sito della Lavasoft. 2.4 I dialer4 I dialer sono delle connessioni internet in dial up, il nome del virus dialer è derivato appunto da loro, o meglio, dal loro funzionamento. Il programma virus si installa sul pc in due modi: il primo, scaricando un programma infetto da internet, oppure tramite e-mail, esso una volta installato sulla macchina disconnette il computer dalla rete, dopo un tempo fisso indicato dal programma, e lo riconnette ad un numero telefonico indicato dal programma; di solito questi numeri di telefono sono intercontinentali (riferito all'Italia) e situati in stati in cui questo tipo di attività non sono reato, in questo modo però la bolletta dell'utente si gonfierà in modo esponenziale al tempo di connessione. Più specificatamente il dialer infetta la funzione InternetGetConnectedState che contiene la library wininet.dll responsabile della connessione ad internet, il programma virus agisce su questa library in modo da disconnettere il modem, o altro supporto di connessione (per esempio un router), impostando la variabile lpdwFlags a INTERNET_CONNECTION_OFFLINE e riconnetterlo dandogli una nuova impostazione numerica predefinita dal programma stesso. Il programma però funziona diversamente a seconda della connessione internet che si possiede; infatti, se si possiede una connessione dial up il programma funzionerà come descritto in precedenza, ma se si utilizzerà una connessione DSL (RFC 1307) o HDSL2 (RFC 4319) il risultato del virus dialer sarà leggermente diverso, questo perchè vi è un'incompatibilità di reti fisiche, ossia la rete DSL (1 o 2) non utilizza la stessa rete fisica della linea dial up. Ciò significa che nel momento in cui il virus dialer disconnette la rete internet impostando la solita variabile lpdwFlags a INTERNET_CONNECTION_OFFLINE non sarà in grado di riconnetterlo al numero di telefono preimpostato, questo perchè di solito quei numeri utilizzano reti dial up e non DSL, in questo caso la connessione internet verrebbe lanciata ma non effettuata ad un altro numero, risulterebbe quindi impossibile aprire una connessione internet una volta disconnessa. Infatti, il programma continuerà a tentare la connessione ad internet senza successo, rovinando così anche il modem o il router che continuerà a forzare la linea per la connessione inutilmente. La maggior parte dei virus dialer al giorno d'oggi sono rilevabili ed eliminabili con un comune antivirus/malware, anche se a volte rimane qualche residuo nel sistema per cui è sempre meglio ripassare con un utility di registro come Hijackthis. 4 vedere anche l'articolo sui dialer postato sul blog http://rashna.eponym.com/blog/_archives/2006/8/18/2220609.html 2.5 I trojan horses I trojan horses, detti anche "cavalli di troia", sono stati chiamati così perché essi vengono nascosti all'interno di file, immagini o e-mail stesse, in questo modo l'utente non li riconosce come infezioni informatiche e le scarica sulla sua macchina infettando tutto il suo sistema. Oggi giorno vengono definiti trojan horses solo alcune tipologie di infezioni, per esempio quelle che occludono tutta la memoria di un sistema operativo, come possono essere i famosissimi w32, soprannominati così perchè sono attivi solo su sistemi WIN 32 (fig. 2.2). Questo tipo di infezione agisce solo su sistemi operativi con desktop manager; infatti questo tipo di infezioni interagisce con le .dll e le .lib del sistema operativo. Esistono diverse tipologie di trojan horses, come abbiamo già detto, una delle infezioni più sviluppate è quella di mandare in overflow il buffer dello stak o in alcuni casi di sovraccaricare le .dll in modo da non farle lavorare correttamente, in questo modo il sistema operativo si impalla e viene reso inutilizzabile. Una delle caratteristiche dei w32 è quella di infettare il sistema tramite le .dll e di far credere di essere un altro tipo di virus, di solito il sasser, incidendo sul file di sistema lsasser.exe. I trojan horses incidono sulla library di sistema kernel32.dl, questa library ha il compito di svolgere alcune funzioni molto importanti di accesso alla memoria, della gestione delle porte I/O e degli interrupt. Windows suddivide in pagine di 4kb ciascuna la memoria, la difficoltà a raggiungere una pagina di memoria ed il conseguente errore "pagina non valida" può indicare appunto che ci sia stato un accesso non consentito su un'area di memoria già impegnata del kernel32, poichè questa library blocca l'accesso di altri programmi all'area di memoria disponibile ed allo SWAP per evitare malfunzionamenti del sistema operativo. Nel momento in cui la library viene forzata e sovraccaricata in un overflow, simile all'overflow del buffer, nel caso riportato in figura 2.3 alla library kernel32 viene inviato un input di U identificativo di unit/unità, di spazi che aumentano in modo considerevole il blocco della workstation, di underscore e di altri caratteri speciali come € in questo modo il trojan horses invia un'infinità di richieste di accesso in modo consecutivo, questo causa la saturazione della memoria disponibile ed anche di tutto lo SWAP, bloccando la workstation. In questi casi si vedrà il sistema adoperare tutta la memoria al 99-100% in modo da bloccare il sistema operativo e l'utente non ha più la possibilità di utilizzare nessun programma o di navigare in internet perchè la memoria risulta essere completamente piena. fig. 2.2 E' possibile trovare anche trojan horses che non incidono solo sulla library kernel32, ma caricano da programma anche la library user32.dll, come si può vedere in fig. 2.4. La library user32 è colei che comanda tutti i comandi utente desktop, per cui a discrezione del programma potrebbe sovraccaricare alcuni comandi come per esempio l'accesso alla connessione ad internet, o potrebbe ritornare in un box apposito l'errore 128. Fig. 2.3 Esattamente come si può vedere nella figura (2.4) sottostante, il trojan horses che ho esaminato carica entrambe le libraries e i loro processi, moduli e gli indica di terminarle (con il comando assembler ExitProcess) per poi terminare il processo e far comparire un messaggio in una finestra che si apre successivamente e che chiede indica che il sistema si riavvierà entro un certo tempo, di solito 30 secondi, non sufficienti per poter controllare i processi e definire esattamente la causa. Per l'esattezza compare di solito una finestra che dice: lsasser.exe ha causato un errore il computer sarà riavviato entro 30 sec. (conto alla rovescia) In questo modo il trojan horses si camuffa da virus sasser anche se non lo è ed inganna il sistema e l'utente che cercherà di disinstallare il virus sbagliato, non capendo quale sia la vera natura del problema. Fig. 2.4 Non tutti i trojan horses però sono uguali a quello precedente, alcuni possono solo ingrandire i caratteri della workstation utilizzando al posto della visualizzazione di una finestra (MessageBoxA) la funzione assembler IsZoomed impostando a 0 il valore in modo da ingrandire i caratteri. Altri, invece, possono solo creare intasamento sulla memoria utilizzando direttamente le funzioni VirtualAlloc e VirtualFree entrambe bloccano la memoria ed interrompono il processo della library kernel32.dll, oppure soltanto mandandola in overflow sovraccaricandola con spazi, unit o caratteri speciali. Di solito i nostri antivirus sono in grado di riconoscere la maggior parte dei trojan horses in circolazione5, ma in alcuni casi è possibile che il nostro antivirus riconosca il virus ma non lo possa identificare poichè la casa produttrice non ha ancora una cura per quella specifica infezione. In questo caso prima di passare ad eliminare il virus manualmente con la chiave di registro è possibile utilizzare l'utility di sistema HiJackThis, anche denominato (HJT), la quale visualizza tutte le chiavi del registro in un log in modo da rendere più veloce e più semplice il riconoscimento delle varie infezioni, e non solo, e la loro relativa eliminazione. A volte, però, il trojan horses non ci permette di far girare sul sistema HiJackThis o anche l'antivirus poichè il computer si spegne molto velocemente per evitare ulteriori danni al sistema operativo, in questo caso per evitare che si spenga il pc e ci lasci lavorare sul sistema in modo da eliminare le infezioni è possibile eseguire quest'operazione: Start -> Pannello di controllo -> sistema -> Avanzate -> Impostazioni a questo punto cliccare sulla scheda Avvio e ripristino ed eliminare la spunta su Riavvia automaticamente In questo modo il computer non si riavvierà più e ci concederà di concludere il lavoro, è sempre consigliato mantenere l'opzione di Riavvio automatico attiva, questo per evitare che nel momento in cui alcuni file di sistema si corrompano causino ulteriori danni al sistema. 5 lo Stinger della McAfee è un'utility molto valida per eliminare i w32 in aggiunta al nostro antivirus. 2.6 I malware I malware sono una nuova generazione di trojan horses, molto più complessi dal punto di vista infettivo del sistema operativo, molto più volubili e modificabili tanto da renderli molto più pericolosi che il semplice trojan horses questo perchè aggredendo più parti del sistema operativo o di programmi a lui correlati rende inutilizzabile l'intera macchina. Una delle particolarità dei malware è che assomigliano molto ai trojan horses ed è facile scambiarli per loro, poichè la prima cosa che si nota è che la memoria è intasata ed il computer ha un livello prestazionale molto inferiore rispetto al solito. C'è, però, una sostanziale differenza tra un semplice trojan horses ed un malware, il primo agisce su un file legato generalmente alla memoria, mentre il secondo è l'associazione di più infezioni sullo stesso programma virus. Infatti, essi vengono chiamati trojan a vite infinita, perchè l'installazione sul sistema operativo del programma infettivo avvia una prima infezione che ne genera centinaia di altre a catena proprio come se fosse una vite infinita. In questo caso, l'infezione può essere eliminata solo nel momento in cui il ceppo scatenante è disinstallato dal sistema operativo, ciò significa che se si elimina un file infetto ma è un file generato successivamente la prima installazione, l'infezione sarà ancora attiva ed in alcuni casi al riavvio il file primario scatenante l'infezione rigenererà i file mancanti. Uno dei malware più conosciuti come ZOTOB dopo aver caricato la library kernel32 ne traccia la matrice e la mantiene in memoria con il comando GetProcAddress, successivamente con viene richiamato UPackDwing che richiama il comando del programma Upack per spacchettizzare tutti i virus contenuti nel suo interno (fig. 2.5). In questo caso la memoria viene sovraccaricata dai piccoli programmi che tentano di accedervi e non più da spazi, unit o numeri; ossia, il virus si spacchettizza e comincia ad installare altri software che accedono alla memoria intasandola, in questo caso è facile scambiare un malware per un trojan horses. Di solito i malware non intasano solo la memoria, ma come nel caso di ZOTOB influiscono sul file iexplorer.exe impedendo così la navigazione in internet con il browser Internet Explorer. E' possibile però, incorrere in diversi tipologie di malware poichè sono infezioni decisamente mutevoli, per cui ogni malware può interagire con una parte diversa del sistema operativo e dei vari software installati, per esempio può utilizzare la library mzkernel32.dll (che non è la stessa di kernel32.dll) che interagisce con il file di sistema svchost.exe. Alcuni malware, infatti, bloccano l'apertura delle finestre di alcuni software di maggiore utilizzo come Outlook Express o il pacchetto Ms Office impedendogli di essere aperto, o a volte di poter registrare, salvare i dati o formattare il testo digitato, viene per cui impossibilitata alcuna operazione ordinaria, come vedremo descritto meglio nel paragrafo dedicato ai rootkit. Alcuni tipi di malware possono creare l'illusione di nascondere le library o i file di sistema, questo perchè i lamer danno un'impostazione che li maschera agli occhi dei vari software antivirus/malware e alle utility come HiJackThis, ma non al sistema, ciò per evitare che l'utente o l'amministratore possa eliminare il malware con i consueti metodi tradizionali. Fig. 2.5 Nonostante i nostri antivirus/malware riconoscano la maggior parte di queste infezioni alcune si modificano così velocemente che gli è impossibile metterle in quarantena (per es. il malware Combo), oppure non si riesce ad individuare l'esatto file che ha scatenato l'infezione o, ancora, è impossibilitato l'accesso ad internet e non è possibile ottenere i log di HJT; in questi casi si può agire direttamente sulle chiavi di registro utilizzando la funzione regedit.exe o reg32.exe e ricercando la chiave nei processi in esecuzione sotto HKLM/HKCU ed eliminando la chiave infetta, che di solito è in forma binaria. Negli ultimi anni si sono verificate alcune infezioni da parte di malware più complesse e più specifiche rispetto alle precedenti. Uno di questi malware, può bloccare l'intero sistema e rendere inutile un qualunque tentativo di ripristino, bloccando anche l'hardware e rendendo impossibile l'eliminazione sia da utente, sia da amministratore sia da shell, l'unica soluzione è cambiare lo hardisk. Fig. 2.6 Come si può vedere, nel momento in cui il malware entra in funzione comincia ad inviare messaggi di errore all'utente, blocca l'accesso ad internet in modo che non possa controllare l'origine del malware online né possa utilizzare tool per la rimozione dei malware online. Esso blocca anche l'accesso alla shell o al registro di sistema, una qualunque cosa l'utente faccia avrà un messaggio di errore specifico. Una volta spento il computer non sarà più in grado di riavviarsi correttamente e sarà necessario cambiare lo hardisk, il malware impedirà anche la formattazione di basso livello. 2.7 I rootkit Le nuove generazioni di infezioni si chiamano rootkit, ossia un pacchetto (kit) che gestisce le informazioni dell'amministratore del sistema (root). Esistono molte forme di rootkit, ci sono rootkit semplici che aprono una semplice backdoor sulla porta FTP 21 in ingresso così che i lamer possano accedere alla macchina infetta e ci sono rootkit complessi che non si soffermano solo ad aprire backdoor ma che gestiscono un'intero pacchetto di malware e chiavi di amministrazione di sistema. Questo tipo di infezione può essere scritto in diversi linguaggi, il linguaggio più utilizzato è VisualBasic, ma i più nuovi sono scritti in XML, linguaggio molto più malleabile per questo tipo di prodotto. Molti rootkit possono essere scambiati molto facilmente per dei malware perchè in realtà essi utilizzano le stesse library e agiscono esattamente nello stesso modo, ciò che però li differenzia in modo molto evidente è l'apertura di una backdoor e l'utilizzo dei servizi internet da parte di una persona esterna alla rete; ciò è molto importante poiché se si individua l'infezione sbagliata si può compromettere la rete interna e la sicurezza del proprio lavoro e nel momento in cui un'infezione apre una backdoor e permette l'utilizzo di servizi esterni alla propria rete è identificabile solo come un rootkit. In questo paragrafo analizzerò solo alcuni dei rootkit complessi più famosi in questo periodo e quelli che hanno una rilevanza maggiore sulla sicurezza della propria macchina e del proprio lavoro. Come si vede nel rootkit analizzato nella figura 2.6, l'infezione si propaga prima per la memoria intasandola tramite le library kernel32.dll e user32.dll, successivamente viene richiamata la funzione GetKeyboardType che viene impostata per registrare tutte le lettere che l'utente digita, poi carica la library advapi32.dll che controlla Outlook Express e con una query legge tutti gli indirizzi di posta registrati sul programma e si autoreplica inviandosi a tutta la rubrica postale; infine, blocca la library oleout32.dll che gestisce le finestre di Internet Explorer e tutti i collegamenti internet impedendo così all'utente di accedere a internet o di aprire il browser. Sempre nello stesso rootkit (fig. 2.6) si può notare che esso carica tramite la library urlmon.dll un file, in questo caso denominato FileA, da un sito predefinito nel rootkit stesso, successivamente esegue la procedura ShellExecuteA per eseguire il file appena scaricato e modificando la library shell32.dll cerca di inviare i dati registrati precedentemente con la procedura GetKeyboardType ad un computer remoto aprendo una backdoor sulla porta 21. Una volta che il rootkit apre la backdoor non solo invia i dati ad una macchina remota, ma da la possibilità al lamer di impossessarsi della macchina e di sottrarre tutti i file di cui necessita o di iniettare nuovi malware o virus o utility non desiderate all'utente infetto. Fig. 2.7 Altri tipi di rootkit agiscono solo a livello di memoria e di rete intranet o internet, come quello analizzato nella figura 2.7 il quale, accede alla memoria tramite la library kernel32.dll e user32.dll, bloccandola ed intasandola, successivamente interagisce con le library advapi32.dll, oleout32.dll, che come detto precedentemente si autoreplica ed si reinvia automaticamente a tutta la rubrica telefonica, inoltre tocca la library version.dll registrando la versione corrente di shell, kernel e sistema operativo in cui è esploso, con una query tocca la library gdi32.dll la quale gestisce tutta la grafica del sistema operativo Microsoft con la procedura UrealizeObject e la library comctl32.dll con la relativa procedura ImageList_StIconSize modificano la struttura delle icone, molte volte facendole scomparire agli occhi degli utenti. Inoltre, il rootkit, utilizzando la library wininet.dll e la procedura InternetGetConnectedState, può rendere inaccessibile internet oppure può dare la possibilità ad una macchina remota di appropriarsi della connessione internet del computer infettato, in questo modo il lamer può disconnettere l'utente nel momento in cui più gli aggrada, chiudergli le finestre del browser, modificargli le indicazioni dei siti nella barra di ricerca del browser, o modificare le sue conversazioni mentre le sta scrivendo, inducendo un finto attacco MITM. In ultimo, utilizzando la library wsock32.dll la quale gestisce tutte le connessioni tramite socket e la procedura WSACleanup, cancella tutti i socket registrati. Fig. 2.8 Nel rootkit della figura 2.8 si può notare come dopo aver caricato la library svbvm60.dll la quale serve per poter caricare file scritti in VisualBasic, installi i trojan XTray e ABox, quest'ultimo è appunto un file in Visual Basic come si può notare dalla directory richiamata per l'installazione \valentina\Installer\ABoxInst.vbp. Il programma viene installato sulla directory c:\Programmi\VisualStudio\VB98\VB6.OLB, come si può notare dalla fig. 2.9, nel momento in cui viene installato a differenza dei più comuni rootkit che intasano la memoria questo la manda "a dormire" con il comando kernel 32 sleep, la differenza è sostanziale poiché in questo modo la memoria non blocca nessun programma ma la rende comunque inutilizzabile e il sistema non riesce a rilevare il problema e nemmeno l'infezione, come se tutto fosse normale all'interno del sistema operativo. Utilizzando la procedura GetConnectState esso carica la library wininet.dll così da gestire la connessione internet e le API sfruttando una falla su Internet Explorer 6 (nella figura 2.9 identificato con I6). Successivamente, il rootkit si collega alla chiave API advapi32, ne registra il valore con la procedura RegOpenKeyExA, richiama una query sul valore della chiave API con la procedura RegQueryValueExA chiudendola successivamente con la procedura RegCloseKey, inoltre collegandosi alla library advapi32.dll con la procedura RegSetValueExA modifica il valore della chiave API creandone una nuova con la procedura RegCreateKeyA, diversa da ExA, ne cancella il valore precedente con RegDeleteValueA, inserendogli il valore sotto scritto "SOFTWARE\Valentina" facendo un redirect alla pagina web vale.gamentw.com/get_pub.asp? pub_id=. Fig. 2.9 A questo punto il rootkit alla prossima connessione internet si collegherà al sito denominato precedentemente aprendo una finestra di browser, proprio come se fosse un dialer, nello stesso istante verrà inviata un'e-mail, con il comando send mail situato nella library sendmail.dll, con tutti i riferimenti del sistema operativo, del proprietario, della macchina, dei suoi driver e della connessione internet (ip o se è DSL oppure un dial up). Successivamente il programma rootkit richiederà una nuova installazione, con il comando NEW_INSTALL nella directory SOFTWARE\Microsoft\Windows\CurrentVersion\Run (per cui le chiavi da eliminare saranno posizionate per quanto riguarda questo tipo di rootkit in questo settore del sistema operativo HKCU\Run) i seguenti pacchetti: winmsg windir ed il software winmsg.exe Con i primi 2 comandi il rootkit installa il software Winmsg.exe nella directory windir; esso è un'utility per windows che permette di utilizzare una rete lan anche senza essere collegati ad essa materialmente, non solo permette di chattare con chat multiutente come messangers o gtalk senza essere collegati al proprio messangers ed ha molti altri usi che verranno specificati nel prossimo capitolo. Fig. 2.10 La caratteristica dei due file winmsg.exe e dispacther.exe, viene di solito abbinata al trojan Lexob, in questo caso come vedremo più avanti nella spiegazione, esso fa si parte del rootkit ma non è solo il trojan Lexob. Il rootkit installa un altro software nei file temporanei \Temp\w, questo software MS.ftp il quale serve per recuperare le password di accesso agli utenti, o ai router, o qualunque tipo di password utile per la connessione ftp. Con questo metodo scarica sul pc infetto che chiameremo per comodità client, i vari software installandoli nelle loro directory, esso installerà anche mswinsck.ocx, questo file è una copia della vera library del sistema operativo Windows, essa infatti comanderà gli ActiveX in modo da interrompere le ricerche internet su alcuni siti, è possibile anche che gli vengano assegnati alcuni siti di default per evitare che si acceda solo a quei siti. Successivamente installa il file Abox.bup, questo file serve per controllare il download dei file scaricati in ftp e viene installato nella directory (system32\ nel file ftp.exe); in questo modo mantiene il controllo sui file scaricati in ftp, questo programma lavorerà in accordo con winmsg.exe, una volta che il download di questi programmi è terminato, verranno installati con un comando da una macchina remota sulla macchina infettata. Dopo aver scaricato tutti questi file ed averli installati sul sistema, il trojan comincia a lavorare sulle libraries caricando la library A e utilizzando la funzione CreateThread (fig.2.10) la quale serve per creare una finestra che visualizza un messaggio; con la funzione WaitForSingleObject6, solo in questo caso, si impedirà alla finestra creata di chiudersi in qualunque modo, bloccherà il processo legato alla finestra che rimarrà perennemente aperta sia che si clicchi sulla X per chiuderla, sia che si blocchi il suo processo da Task Manager, in questo caso verrà visualizzato per almeno tre o quattro volte "la procedura non risponde, impossibile termirare il processo". Con la funzione GetExitCodeThread si richiama la library kernel32.dll così da sovraccaricarne la memoria, con la procedura ExitThread si chiude la funzione precedentemente aperta. In ultimo il rootkit viene impostato per la gestione delle chat messangers e per la gestione delle reti intranet o internet. 6 questo rootkit è scritto in Visualbasic anzichè C o VisualC come molti altri, questo indica che è stato scritto su una macchina con sistema operativo Windows. Fig. 2.11 Per eliminare un rootkit non è sufficiente utilizzare HiJackThis, ma è necessario utilizzare prodotti appositi come Rootkit Revealer, il loro utilizzo verrà spiegato nel capitolo successivo. 3. Come vengono inviati i file infetti 3.1 Il floppy disk Le prime infezioni venivano inviate tramite floppy disk, il file infetto veniva copiato all'interno del floppy e nel momento dell'installazione copiato su hard disk e a seconda della programmazione del virus seguiva ordini, stampava o modificava file interni del sistema. La sua peculiarità era che i file principali del sistema non venivano toccati e riuscire a percepire esattamente dove era il file infetto era problematico, per cui una volta che il software era installato era impossibile eliminare solo la parte infetta, doveva essere eliminato il software intero. Con l'avvento di internet e dei compact disk il sistema di infezione tramite floppy fu messo da parte poichè risultava molto lento, mentre più veloce è sicuramente utilizzare la rete internet. 3.2 La rete internet e intranet Il passo successivo fu quello di utilizzare le reti intranet per l'invio di file infetti, da un floppy si faceva partire il virus che si diffondeva tramite pacchetti inviati nella rete lan. Se pensiamo che le reti Lan hanno firewall che bloccano le porte esterne, di solito filtrano pacchetti che vengono inviati in entrata su alcune porte definite dall'amministratore di sistema, come per esempio la porta 21 (ftp) o la porta 25 (smtp) e 110 (pop3) se non si deve ricevere posta da internet, ma di solito queste porte possono essere aperte all'interno della rete intranet, se però un pc risulta essere infetto è possibile che si sposti tramite e-mail internet, magari con le classiche e-mail spam divertenti o con riferimenti di bufale (per esempio gira ancora oggi una bufala su una bambina malata di leucemia caso medico degli anni '80, questa bambina è guarita da almeno 20 anni), presentazioni simpatiche o con riferimenti sociologici; oppure, possono inviare un pacchetto di dati della rete infetto ed in questi due casi è possibile infettare molte macchine in una volta sola. Un altro modo per inviare pacchetti infetti è quello di utilizzare la porta 80 (www), metodo ancora oggi utilizzato per l'invio di virus7, in questo modo il pacchetto infetto raggiunge il pc che se non ha firewall che instradano il pacchetto lo installa direttamente sul pc. 3.3 Le e-mail Al giorno d'oggi e dopo svariati anni l'unico metodo rimasto ancora in voga e quello che sembra anche essere il più efficace per inviare e-mail, in quanto non esiste nulla di migliore del vecchio metodo del convincere una persona a scaricarsi da se l'infezione. Infatti utilizzando i servizi pop e smtp, riescono a far passare il file che non viene bloccato poichè di solito le porte 25 e 110 sono aperte per poter utilizzare i software più comuni di posta, come Outlook express o Evolution, in questo modo basterà aprire l'e-mail per infettare il sistema operativo. 7 vedi paragrafo 2.1 4. PROGRAMMI ED ESTENSIONI UTILIZZATE NORMALMENTE 4.1 I programmi più comuni utilizzati per creare una macchina zombie I programmi che vengono utilizzati più comunemente dai lamer per inviare le varie infezioni sono dei comunissimi sniffer attivi, ossia sniffer modificati appositamente dai lamer per controllare altre reti e non quella interna come tutti gli sniffer comunemente lavorano, o anche strumenti di controllo della rete amministrativa, tipo ssh. In questo modo, essi possono controllare le varie porte aperte e inviare direttamente all'interessato il pacchetto infetto (virus); oppure possono controllare la password ed entrati nel computer della vittima si installa direttamente i programmi infettivi. Uno dei programmi infettivi più utilizzati in questo periodo è appunto winmsg.exe, esso è un programma multifunzione che può essere molto pericoloso se usato malamente come nel caso di chi lo invia per poter prendere possesso di un computer. Questo è un programma che viene comunemente utilizzato dagli esperti informatici per poter controllare la rete intranet o internet di un proprio cliente anche dal proprio ufficio8; invece questo programma è più famoso tra i lamer come un software che permette di prendere il possesso completo del computer infetto. Infatti una volta installato, esso da pieno accesso non solo al sistema operativo ma a tutta la rete abbinata a quel determinato nodo interno (intranet), per cui se per esempio quella macchina è un server potrà controllare tutta la rete di quel server. Chi lo usa potrà vedere all'interno del computer infetto, potrà spostare, cancellare, modificare files a suo piacimento senza che il proprietario se ne accorga; potrà inviare e-mail semplicemente utilizzando il programma di posta (se esso è impostato per inviare e ricevere e-mail) cancellandole subito dopo per evitare che l'utente se ne accorga; può accedere ai file protetti e segreti aziendali; nonché a password di casella di posta o siti a cui si accede regolarmente se vengono tenute in un file salvato sull'hard disk. Esso, dà inoltre la possibilità di accedere alle chat messagers, come MSN Messangers, senza essere collegati per cui al lamer basterà soltanto collegarsi al computer tramite la sua rete, aprire il messangers e chattare liberamente con i contatti di colui che ce l'ha installato sulla macchina. Come si può vedere winmsg.exe può essere molto pericoloso se non utilizzando per ciò che è stato creato e può creare seri problemi alla sicurezza. 8 è un programma tipo Hamachi ma con una pluralità di funzioni in più. 4.2 Le varie estensioni delle infezioni informatiche La maggior parte delle varie infezioni informatiche9 è costruita per girare su sistemi win32, come visto nella figura 2.2, per cui tutti i sistemi che girano su questo tipo di piattaforma saranno infettati indipendentemente dal fatto che siano stati costruiti per windows 98 o windows Vista10; per cui il software non potrà che essere concepito per essere installato sullo stesso sistema operativo per cui deve girare, quindi verranno utilizzate le estensioni .exe per i file infettivi. Invece, è possibile che i file in cui vengono nascosti trojan, malware e rootkit siano di origine diversa, è molto probabile che oggi venga utilizzato OpenOffice per poter raggiungere molti più macchine, poichè molti utilizzano un doppio sistema operativo soprattutto chi ha Linux, in questo caso si troveranno i file con estensione .sxw se il file che nasconde il trojan è un file di testo, in altre estensioni se il file che nasconde l'infezione è per esempio una presentazione o un file audio/video (v. rootkit delle figure 2.9 e 2.10). Per cui se una volta venivano utilizzati solo file per windows, ora il mercato si è ampliato e viene utilizzato un campo più vasto per infettare i computer. 9 Naturalmente si intende quelle che mi sono arrivate via e-mail direttamente e che ho potuto controllare e decrittare. 10 Entrambi girano su piattaforma Win32 5. COME ELIMINARE LE INFEZIONI E I PRIMI ELEMENTI DI PREVENZIONE 5.1 Il copyright e le infezioni informatiche Molti sono convinti che le infezioni informatiche non abbiano una patria potestà, purtroppo non è così. Molte infezioni vengono create in alcune aziende per poter testare alcuni software da loro stessi creati (fig. 5.1), così mettono sotto copyright molti dei loro virus credendo di mettere al sicuro non solo il codice sorgente ma anche il virus da occhi e mani insicure in realtà sembra che qualcuno dei loro dipendenti od ex dipendenti; infatti la maggior parte delle infezioni informatiche parte dalle aziende e non da reti domestiche come invece molti credono, naturalmente all'insaputa del proprio datore di lavoro, molte volte sono infatti i sistemisti e chi lavora nella sezione amministrativa che invia infezioni informatiche. Questo però può creare non pochi problemi a livello legale e informatico, infatti una volta che l'infezione è legalizzata (messa sotto una qualunque licenza) è come darne il libero consenso all'utilizzo e alla diffusione senza però darne l'effettiva autorizzazione morale nell'utilizzo. 5.2 La prevenzione Una delle cose più comuni è prevenire un'infezione, ma è realmente possibile prevenire al 100% un'infezione informatica? No, non è possibile prevenire totalmente un'infezione poichè prima viene creata l'infezione e solo successivamente ci sarà una cura per tale infezione, ma si possono attuare alcune precauzione che ci renderanno più sicuri. Come già enunciato nel capitolo 2, ogni volta che chiudete la connessione internet ripulite la cache del browser che avete utilizzato e i file temporanei, se non siete sicuri di aver eliminato tutto entrate nella cartella /temp ed eliminate manualmente i file all'interno. Utilizzate un buon antivirus, quello con cui vi trovate meglio l'importante è che il vostro antivirus sia in grado di eliminare i virus quando li riconosce e non solo metterli in quarantena o dichiararvi la loro presenza, AdAware SE e Spybot Search and Distroy, utilizzateli almeno una volta a settimana e se non siete sicuri dei siti visitati appena chiudete la connessione. CCleaner è un programma che elmina molti file in disuso nel pc, per cui ogni tanto è meglio utilizzarlo. Per eliminare i rootkit è meglio usare Rootkit Revealer o Avg Rootkit, ma quest'ultimo è ancora in beta. Fig. 5.1 Utilizzare sempre un firewall, questo riesce a bloccare la maggior parte degli adware e degli spyware se impostato correttamente, inoltre è possibile settare il firewall in modo da evitare che alcuni software come winmsgr.exe vengano installati da macchina remota tramite una delle porte aperte. Mantenete sempre aggiornato il vostro sistema operativo. 5.3 Come eliminare i virus La maggior parte dei virus viene eliminata direttamente dagli antivirus che lo permettono, per cui scansionare il proprio computer una volta a settimana e mantenerlo sempre aggiornato. Alcuni malware e rootkit però non sono eliminabili solo con l'antivirus per cui è meglio utilizzare prodotti tipo HiJackThis, ma solo se siete realmente esperti e sapete che chiavi di registro eliminare o se siete ancora più esperti potete eliminarli manualmente da modalità provvisoria, rimuovendo direttamente le chiavi di registro dal sistema utilizzando l'utility Regedit.exe. Virus per video, non possono girare direttamente in dos e su shell, appena aperto, imposta un timer entro il quale l'utente deve agire altrimenti si blocca tutto, solitamente un tempo limite di 30 secondi. Questo malware non solo blocca il sistema per un overflow del buffer, ma successivamente blocca anche la navigazione, l'apertura della shell e qualunque attività per tentare di eliminare il malware da windows. L'utente in questo caso vede che il video non si carica e molti messaggi di errore tra cui anche quello che indica come possibilità del blocco del sistema il download a metà del file. Ma in realtà il malware è stato perfettamente scaricato su un video completo ma che sembra a metà. (immagini da vi1 a vi11). Una volta che questo malware è installato non è più possibile rimuoverlo o accedere al computer, è necessario cambiare l'hd.