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.