White Paper
Title:
INTRODUZIONE AL MALWARE E MALWARE DETECTORS
Status:
DRAFT
Contact:
Giovanni Squillero
[email protected]
http://www.cad.polito.it/
Version
Version
Date
Author
Change Description
1.0
Sep-10
Gianni Zizzi
Document created
WP20100925 - Zizzi.docx
Saved on: 9/25/2010 1:07:00 PM
Printed on: 9/25/2010 1:07:00 PM
Introduzione al Malware e Malware Detectors
TABLE OF CONTENTS
1. INTRODUZIONE AI MALWARE .............................. 4
1.1.
Spam ............................................ 4
1.2.
Bugs ............................................ 4
1.3.
Denials of Service .............................. 5
1.4.
Malicious Software .............................. 5
2. CLASSIFICAZIONE ...................................... 6
2.1.
Tipi di malware ................................. 6
2.1.1.
Virus ....................................... 6
2.1.2.
Worm ........................................ 7
2.1.3.
Trojan Horse ................................ 8
2.1.4.
Logic Bomb .................................. 9
2.1.5.
Rabbit ...................................... 9
2.1.6.
Spyware .................................... 10
2.1.7.
Adware ..................................... 10
2.1.8.
Malware ibridi ............................. 11
2.2.
Classificazione per tipo di infezione .......... 11
2.2.1.
Malware del settore di boot ................ 11
2.2.2.
File Infectors ............................. 12
2.2.3.
Macro Virus ................................ 14
2.3.
Classificazione per metodo di occultamento ..... 14
2.3.1.
Criptaggio ................................. 15
2.3.2.
Virus Stealth .............................. 15
2.3.3.
Oligomorfici ............................... 16
2.3.4.
Polimorfici ................................ 16
2.3.5.
Metamorfici ................................ 16
3. DAGLI ALBORI ALLO STATO ATTUALE ..................... 17
4. LE MINACCE ODIERNE .................................. 28
White Paper
Page 2
9/25/2010
Introduzione al Malware e Malware Detectors
4.1.
Le tipologie di malware più diffuse ............ 28
4.2.
I vettori di infezione ......................... 29
5. INTRODUZIONE AI MALWARE DETECTORS ................... 31
5.1.
Metodi statici ................................. 32
5.1.1.
Scanners ................................... 32
5.1.2.
Euristiche statiche ........................ 34
5.1.3.
Integrity Checkers ......................... 35
5.2.
Metodi dinamici ................................ 36
5.2.1.
Monitor del comportamento .................. 36
5.2.2.
Emulazione ................................. 37
5.3.
Rilevazione tramite database ................... 38
6. I PASSI PER L'ELIMINAZIONE DEL MALWARE .............. 40
6.1.
Verifica ....................................... 40
6.2.
Quarantena ..................................... 40
6.3.
Disinfezione ................................... 40
White Paper
Page 3
9/25/2010
Introduzione al Malware e Malware Detectors
1. Introduzione ai malware
Sin dall'antichità le necessità primarie dell'uomo sono
state molto semplici: acqua, cibo, un riparo e la
possibilità di assicurare la sopravvivenza della specie.
Con il passare del tempo i nostri bisogni di base sono
sempre gli stessi ma sono cambiate le modalità con cui
abbiamo accesso ad essi. Il cibo è diventato un prodotto
commerciale e viene prodotto e smistato grazie a sistemi
computerizzati;
l'acqua
è
distribuita
da
sistemi
informatici che gestiscono la fornitura; le parti che
compongono le case e le altre infrastrutture provengo da
diversi fornitori che usano i computer per organizzarsi
ed inoltre le vecchie e le nuove case vengono vendute
grazie
a
sistemi
informatici
per
la
vendita.
La
produzione e la trasmissione di energia per tenere in
piedi questi sistemi è controllata dai computer, che allo
stesso
tempo
controllano
la
gestione
finanziaria
attraverso pagamenti e transazioni elettroniche.
E' facile quindi affermare che tutta l'infrastruttura
della
nostra
società
si
basa
sui
computer
ma
sfortunatamente questo significa che un problema ai
computer si traduce in un problema nella società.
Attualmente
le
minacce
informatiche
che
possono
compromettere il regolare sistema informatico globale
vengono classificate in quattro categorie principali:
1.1. Spam
Questo termine sta ad indicare le indesiderate email che
ogni giorno riempiono le caselle di posta elettronica
degli utenti di Internet. Le statistiche sono molto
preoccupanti: si conta infatti che il 70% del traffico
email non sia altro che spam.
1.2. Bugs
I Bugs sono errori nel software, causati dalla scorretta
gestione di situazioni inaspettate o da errori di
programmazione. Possono portare al blocco momentaneo del
software stesso e nei casi peggiori al blocco di tutto un
sistema.
White Paper
Page 4
9/25/2010
Introduzione al Malware e Malware Detectors
1.3. Denials of Service
Gli attacchi Denials of Service, o attacchi DoS, mettono
in difficoltà l'uso legittimo dei servizi e delle risorse
di un sistema. Per esempio, un attacco DoS può far si che
venga consumato tutto lo spazio del disco fisso di un
sistema, in modo tale che quel sistema non riesca più ad
erogare in maniera efficiente il suo servizio. Oppure
ancora, in un attacco DoS può essere generato talmente
tanto traffico di rete che il traffico legittimo
dell'utente non sia più in grado di arrivare a
destinazione.
1.4. Malicious Software
La vera guerra è condotta verso i Malicious Software
(“programmi malvagi”), o più brevemente malware. Sono una
categoria di programmi creati con lo scopo di causare
danni più o meno gravi al computer su cui viene eseguito.
I malware assumono un ruolo di primaria importanza
nell'analisi dei problemi di sicurezza dei sistemi poiché
sono strettamente connessi con le altre minacce appena
elencate. I malware infatti possono essere propagati
grazie allo spam e possono anche essere usati per inviare
spam. La loro diffusione avviene sfruttando alcuni bugs
dei sistemi ed inoltre possono essere usati per mettere a
punto attacchi DoS.
E' quindi facile intuire che attorno ai malware ruotano
la maggior parte dei problemi di sicurezza delle
infrastrutture su cui si basa la nostra società.
White Paper
Page 5
9/25/2010
Introduzione al Malware e Malware Detectors
2. Classificazione
Sarebbe
interessante
presentare
una
chiara
classificazione dei malware, che cataloghi ogni tipo con
il suo corrispettivo gruppo di appartenenza. Purtroppo
però una classificazione assoluta potrebbe risultare poco
corretta.
In primo luogo perché non c'è nessuna base scientifica
riguardo la classificazione dei malware e lo dimostra il
fatto
che
non
c'è
una
definizione
universalmente
accettata per termini come “virus”, “worm”, ecc...
In
secondo
luogo
perché
i
malware
presentano
caratteristiche che influiscono su vari aspetti della
loro
natura,
come
ad
esempio
la
struttura,
il
comportamento o l'obbiettivo per il quale sono stati
creati.
E' opportuno quindi classificare i malware sotto diversi
punti di vista, tenendo sempre ben presenti quali sono le
caratteristiche di base che danno vita ad una determinata
classificazione.
2.1. Tipi di malware
I malware possono essere bruscamente catalogati in base
alle modalità in cui operano. Ci sono tre caratteristiche
principali che contraddistinguono i tipi elencati di
seguito: la capacità di autoreplicarsi, la forza della
loro propagazione e la necessità di appoggiarsi su un
altro programma per esistere.
2.1.1.
Virus
Un virus è un malware che una volta eseguito tenta di
copiare se stesso in altri codici eseguibili, che di
conseguenza vengono dichiarati infettati. I programmi
infettati a loro volta, quando vengono eseguiti possono
infettare altri programmi e così via.
L'autoreplicazione all'interno di un altro programma
eseguibile, unita alla capacità di propagarsi tramite
supporti hardware rimovibili come memorie USB, CD-ROM e
DVD, sono le caratteristiche principali dei virus.
Il termine virus a volte viene usato impropriamente per
riferirsi a qualsiasi tipo di malware in grado di
White Paper
Page 6
9/25/2010
Introduzione al Malware e Malware Detectors
autoreplicarsi ma è importante notare che non usano la
rete per propagare l'infezione; in questo caso parliamo
infatti di “worm” che appartengono ad un'altra tipologia
di malware.
I virus possono essere scoperti in varie fasi del loro
ciclo di vita. Un germe è la forma originaria del virus,
prima cioè che il suo codice venga inserito in un altro
eseguibile. Un virus che non porta a termine il processo
di autoreplicazione è chiamato intended. Questo può
accadere in seguito ad un bug all'interno del virus
oppure perchè il virus viene eseguito su un sistema
operativo che non supporta.
2.1.2.
Worm
Un worm ha molte caratteristiche in comune con il virus
ma il suo sistema di autoreplicazione è differente in due
punti principali. In primo luogo i worm sono standalone:
questo significa che sono indipendenti e non hanno
bisogno di altri programmi eseguibili per propagarsi. In
secondo luogo i worm si propagano da computer a computer
grazie alla rete e non tramite supporti rimovibili; di
conseguenza la propagazione dei worm mira ad una maggiore
estensione geografica.
L'infezione viene quindi portata a termine per mezzo di
diverse
risorse
e
servizi
che
la
rete
mette
a
disposizione. Tra i più comuni possiamo ricordare:
• worm di servizi “bacati” - Analizzano sulle reti alcune
porte di computer scelti a caso e, se un attacco è
possibile, utilizzano i punti deboli dei protocolli
(es.
IIS)
o
la
relativa
implementazione
per
diffondersi. I worm conosciuti di questo tipo sono
Lovesan/Blaser e CodeRed. Sasser utilizza un errore di
overflow del buffer nel servizio Local Security
Authority Subsystem Service (LSASS) e infetta i
computer durante la connessione a Internet.
• Worm di email - Nella diffusione per e-mail, il worm è
in grado di utilizzare i programmi di posta esistenti,
come Outlook o Outlook Express, o un proprio motore di
posta SMTP. A prescindere dal traffico di rete presente
e dalle risorse del sistema elevate, i worm possono
contenere
funzioni
ancora
più
dannose.
Esempi
rappresentativi di questo tipo di worm sono Beagle e
Sober.
White Paper
Page 7
9/25/2010
Introduzione al Malware e Malware Detectors
• Worm di Peer-to-Peer - I worm di P2P copiano se stessi
nelle condivisioni Peer-to-Peer di siti di scambio come
Emule, Kazaa, ecc. Qui attraggono le proprie vittime
con nomi allettanti di software recenti o di persone
famose.
• Worm di Instant Messaging - I worm di messaggistica
istantanea si diffondono utilizzando i programmi per
chat. Per il trasferimento dei file inviano alla
vittima un messaggio contenente una copia del worm
stesso oppure un link a una pagina web dannosa.
2.1.3.
Trojan Horse
Questo tipo di malware si ispira alla battaglia tra achei
e troiani raccontata nella mitologia greca. Gli achei
infatti, per conquistare la città di Troia, fecero finta
di ritirarsi lasciando dietro di se, come dono degli dei,
un grande cavallo di legno nel cui ventre vennero
nascosti alcuni guerrieri achei. Credendo ormai di aver
vinto i troiani abbandonarono ogni prudenza e portarono
tra le mura il cavallo come trofeo. Ma la notte mentre
tutti dormivano, gli achei uscirono dal cavallo e
aprirono ai compagni le porte della città che venne
prontamente conquistata.
Nel contesto dei malware, un cavallo di troia è un
programma che ha apparentemente uno scopo utile e
innocuo, ma segretamente implementa una funzione dannosa
che rende totalmente vulnerabile il computer infettato
senza che l'utente neanche se ne accorga.
I trojan non si diffondono autonomamente come i virus o i
worm,
quindi
richiedono
un
intervento
diretto
dell'aggressore per far giungere l'eseguibile maligno
alla vittima tramite email o instant messaging..
I metodi utilizzati dai trojan per nascondersi sono
praticamente infiniti. Possono nascondersi nei comandi
della riga di comando per gli amministratori di sistemi
UNIX come passwd, ps, netstat (semplici rootkit) o come
RAT (Remote Access Trojan) meglio noti come backdoor.
I backdoor, una volta eseguiti, aprono una porta TCP/IP
permettendo un accesso secondario al computer infettato.
Generalmente sono composti da due file:
White Paper
Page 8
9/25/2010
Introduzione al Malware e Malware Detectors
• il file server, che viene installato nella macchina
vittima;
• il file client, usato dall'aggressore per inviare
istruzioni che il server esegue;
In questo modo un aggressore è in grado di controllare il
computer in modalità remota permettendogli di sniffare
password, installare ulteriori malware o usare il
computer come “zombie” per un attacco DoS.
2.1.4.
Logic Bomb
Le logic bomb sono formate da due parti principali:
1. il Payload che implementa una funzione “maligna” da
eseguire;
2. il Trigger che rappresenta una condizione che deve
essere soddisfatta affinché il Payload possa essere
eseguito. Esempi di Trigger sono il raggiungimento
di una data specifica, il tipo di sistema operativo
o il login di un determinato utente.
Le logic bomb possono essere inserite all'interno del
codice di un programma eseguibile o possono essere
standalone. Un esempio di logic bomb “parassita” è
illustrato di seguito:
legittimate code
if date is Friday the 13th:
crash_computer();
legittimate code
Le logic bomb possono essere composte anche da pochissime
righe di codice che facilmente si confondono nelle
migliaia di righe legittime e per questo motivo sono
molto difficili da individuare.
2.1.5.
Rabbit
Rabbit (spesso chiamati anche batteri) è il termine usato
per descrivere i malware che crescono molto rapidamente.
Attualmente vengono classificati in due tipi principali:
La prima tipologia di rabbit tenta di consumare tutte le
risorse di un sistema (memoria e cicli di CPU). Vengono
anche chiamati “fork bomb” proprio perchè creano copie di
se stessi che “ciclano” all'infinito.
White Paper
Page 9
9/25/2010
Introduzione al Malware e Malware Detectors
La seconda tipologia di rabbit acquisisce qualche
caratteristica dai worm poiché sono programmi standalone
che si replicano tra le reti. Hanno però l'importante
caratteristica di cancellare la vecchia copia di se
stessi subito dopo la replicazione in maniera tale che ci
sarà in circolazione solo una copia del programma.
2.1.6.
Spyware
Gli spyware sono programmi che collezionano una serie di
informazioni dal computer vittima e le trasmettono
all'aggressore.
Le informazioni che controllano gli spyware sono molto
varie
ma
fondamentalmente
hanno
tutte
una
certa
importanza:
• username e password: possono essere estrapolate dai
file presenti nel computer vittima o catturati da
particolari programmi chiamati keylogger che sono in
grado di registrare passivamente tutti i tasti premuti
sulla tastiera;
• indirizzi email: possono essere usati per inviare spam;
• numeri di conto correnti e carte di credito;
• license key di software originali;
Anche i virus e i worm possono maneggiare queste
informazioni ma gli spyware differiscono da questi ultimi
perchè non hanno nessun meccanismo di autoreplicazione.
Possono arrivare ad infettare i computer vittima in
diversi
modi,
nascondendosi
all'interno
di
altri
pacchetti software o sfruttando alcuni bugs dei server
web.
2.1.7.
Adware
Gli adware sono molto simili agli spyware poiché
anch'essi maneggiano le informazioni dell'utente e non
sono in grado di autoreplicarsi. Hanno però uno scopo
puramente commericiale e meno maligno. Sono in grado
infatti di collezionare una serie di informazioni
riguardanti
i
gusti
dell'utente,
per
poi
aprire
automaticamente
finestre
pubblicitarie
di
pop-up
personalizzate.
White Paper
Page 10
9/25/2010
Introduzione al Malware e Malware Detectors
2.1.8.
Malware ibridi
L'esatta tipologia di malware che si incontra nella
realtà non è così facile da determinare e spesso non
possono essere associati a nessuna delle definizioni
appena descritte. E' molto più facile invece incontrare
malware che uniscono le caratteristiche di diverse
tipologie.
Per esempio un worm può propagarsi depositando dei trojan
in ogni computer che infetta al suo passaggio oppure un
virus può aprire una backdoor ogni volta che viene
eseguito.
Questa
tecniche
ibride
permettono
ai
malware
di
raggiungere un livello di pericolosità molto elevato,
rendendo ancora più difficile la loro rilevazione con i
Malware Detector.
2.2. Classificazione per tipo di infezione
Un altra utile classificazione dei malware si può
ottenere prendendo in considerazione cosa esattamente
vanno ad infettare. Di seguito vengono descritte le
infezioni a tre differenti tipi di entità del computer:
il settore di boot, i file eseguibili e i dati utente
(Macro Virus).
2.2.1.
Malware del settore di boot
Ogni volta che accendiamo il computer vengono eseguiti i
seguenti passi:
1. Appena premuto il tasto di accensione, viene letta
una memoria ROM, contenente le istruzioni di
inizializzazione e riconoscimento dell'hardware. Tra
l'hardware riconosciuto c'è anche un device di boot
contenente un blocco di avviamento (Master Boot
Record) che tipicamente si trova nella parte
iniziale della memoria del device. Questa fase viene
chiamata “primary boot”.
2. Il codice presente nel MBR esegue a sua volta un
altro
programma
più
complesso
in
grado
di
identificare la struttura del filesystem di boot.
Questa fase viene chiamata “secondary boot”.
3. Durante il secondary boot il kernel del sistema
operativo viene caricato in memoria e avviato.
White Paper
Page 11
9/25/2010
Introduzione al Malware e Malware Detectors
Un virus del settore di boot (boot-sector infector) è in
grado di infettare la macchina copiando se stesso nel
MBR, mantenendo il blocco di boot originale all'interno
del filesystem per poi eseguirlo e completare il processo
di boot.
Spesso però le dimensioni del virus sono più grandi del
MBR (512 byte) e quindi è costretto ad usare blocchi
aggiuntivi per effettuare correttamente la copia di se
stesso.
In generale l'infezione del settore di boot è vantaggiosa
in quanto il codice del virus viene lanciato prima che
vengano eseguiti il sistema operativo e gli antivirus.
Al giorno d'oggi però questo tipo di virus è diventato
abbastanza raro poiché c'è un minor uso di supporti
rimovibili di boot come i floppy disk ed inoltre le
tecniche di prevenzione da questo tipo di malware sono
state perfezionate, come ad esempio la protezione della
scrittura del MBR da parte del BIOS o del sistema
operativo stesso.
2.2.2.
File Infectors
Un file infector è un tipo di malware che infetta i file
visti
dal
sistema
operativo
o
dalla
shell
come
“eseguibili” cioè composti da una serie di istruzioni.
Tra gli eseguibili possiamo incontrare anche file batch e
script di shell ma gli eseguibili binari rappresentano
comunque il bersaglio più comune.
Nell'analisi
di
questo
tipo
di
malware
il
punto
principale da considerare è dove viene copiato il codice
maligno all'interno del file vittima. Possiamo elencare i
seguenti casi di infezione:
• inizio del file – Dopo averlo lanciato, l'eseguibile
viene copiato in memoria e viene eseguita la prima
istruzione presente all'inizio del suo codice. E'
proprio in questo punto del codice che il virus
inserisce una copia di se stesso facendo in modo che la
sua esecuzione preceda quella dell'eseguibile vittima.
• fine del file – l'inserimento del virus alla fine del
codice del file eseguibile è altrettanto semplice.
Questo tipo di infezione può avvenire in due modi:
◦ all'inizio
dell'eseguibile
viene
introdotta
un'istruzione di jump che punta all'indirizzo del
White Paper
Page 12
9/25/2010
Introduzione al Malware e Malware Detectors
codice del virus presente alla fine del file. Una
volta che il codice del virus è stato eseguito viene
usata una seconda jump che permette di riprendere
l'esecuzione normale dell'eseguibile.
◦ molti
tipi
di
eseguibili
contengono
nelle
intestazioni
un
indirizzo
relativo
alla
prima
istruzione
da
eseguire.
Questo
indirizzo
viene
sostituito con l'indirizzo di partenza del virus che
successivamente ritorna il controllo all'indirizzo di
partenza originale.
• sovrascritto nel file – invece di aggiungere il suo
codice all'interno del file, il virus sovrascrive il
codice legittimo. Questo evita che il file cambi in
maniera spropositata le sue dimensioni ma allo stesso
tempo
compromette
il
corretto
funzionamento
del
programma originale, rendendo la rilevazione del virus
molto immediata. Una variante di questo meccanismo
permette di allocare il virus in una porzione di
memoria allocata per il file ma effettivamente non
utilizzata dal file. In ogni modo sovrascrivere un
virus su un file è una tecnica usata solo per codici
virali di dimensioni ridotte.
• fuori dal file – questo è il caso dei virus companion.
Non infettano realmente il file eseguibile ma riescono
ad essere eseguiti sfruttando delle vulnerabilità del
sistema operativo. Consideriamo un esempio che sfrutta
le vulnerabilità del sistema operativo MS-DOS: la shell
infatti è stata programmata per eseguire prima i file
con estensione .COM e in alternativa i file con
estensione .EXE. Questo significa che un virus avente
lo stesso nome di un programma legittimo ma con
estensione .COM verrà eseguito al posto del programma
legittimo.
indirizzo
indirizzo
prima dell'infezione
White Paper
Page 13
codice del
virus
dopo l'infezione
9/25/2010
Introduzione al Malware e Malware Detectors
Figura 1 – Meccanismo di infezione di un File Infector
all'inizio del file vittima
header
header
vecchio
indirizzo
indirizzo
nuovo
indirizzo
codice del
virus
prima dell'infezione
dopo l'infezione
Figura 2 – Meccanismo di infezione di un File Infector
alla fine del file vittima
2.2.3.
Macro Virus
Alcune applicazioni, come per esempio i word processor,
permettono ai file dati di avere al loro interno delle
“macro”. Con il termine macro si intende piccoli pezzi di
codice scritte in un linguaggio che tipicamente è
interpretato dall'applicazione, un linguaggio abbastanza
potente per eseguire le stesse funzionalità di un virus.
Una volta che il documento contenente la “macro malevola”
viene aperto, la macro viene automaticamente eseguita,
nonostante alcuni messaggi di warning che possono essere
facilmente ignorati.
L'evoluzione dei macro virus prevede che l'infezione di
estenda ad un insieme di macro globali che vengono
richiamate ogni volta che viene eseguita una normale
macro. In questo modo una sola infezione è sufficiente
per compromettere tutti i file dati contenenti delle
macro legittime.
2.3. Classificazione per metodo di occultamento
Un altro modo per classificare i malware è considerare la
tecnica utilizzata per nascondersi dai software antivirus
e dal sistema operativo.
White Paper
Page 14
9/25/2010
Introduzione al Malware e Malware Detectors
2.3.1.
Criptaggio
L'idea che sta alla base di questa tecnica prevede che il
corpo del virus venga criptato in modo che il codice
virale possa difficilmente essere rilevato. Il codice
criptato non può quindi essere eseguito se prima non
viene eseguita l'operazione di decriptaggio. Questa
operazione viene effettuata all'inizio dell'esecuzione
del malware grazie ad un pezzo di codice relativamente
piccolo che costituisce quindi l'unico pezzo visibile dai
software di rilevazione. Il corpo del virus può essere
decriptato sovrascrivendo la stessa area di memoria
oppure utilizzando dei blocchi nuovi. Di seguito vengono
elencate le tecniche di criptaggio più comuni:
• criptaggio singolo – non viene usata nessuna chiave di
cifratura ma semplicemente un delle operazioni base sui
parametri
come
l'incremento,
il
decremento,
la
rotazione e la negazione.
• criptaggio con chiave statica – viene utilizzata una
chiave
costante
che
non
cambia
da
un'infezione
all'altra. Vengono utilizzati operatori aritmetici come
la somma o operatori logici come XOR. E' importante
notare che in questo tipo di criptaggio vengono usati
solamente operatori reversibili.
• criptaggio con chiave variabile – la chiave parte da un
valore costante e cambia man mano che avanza il
processo di decriptaggio.
• criptaggio tramite libreria di cifratura – questo
metodo offre un livello di criptaggio molto elevato dal
momento che usa direttamente le librerie di cifratura
presenti nei moderni sistemi operativi.
• criptaggio a chiave random – in questo caso la chiave
di criptaggio cambia ad ogni infezione e di conseguenza
deve essere anche aggiornato il pezzo di codice
relativo al decriptaggio in modo da incorporare la
nuova chiave. Questo metodo fa si che da un'infezione
all'altra cambia anche il codice criptato del corpo del
virus.
2.3.2.
Virus Stealth
I
virus
stealth
sono
in
grado
di
nascondersi
completamente non solo dai software antivirus ma dal
sistema
operativo
e
dall'utente.
Alcune
tecniche
utilizzate da questa tipologia di malware prevedono il
White Paper
Page 15
9/25/2010
Introduzione al Malware e Malware Detectors
ripristino del campo timestamp di un file infetto per
evitare i controlli sulla modifica. In alcuni casi,
vengono
ripristinate
nel
file
infetto
tutte
le
informazioni relative al momento prima dell'infezione ma
solo quando il virus si rende conto della presenza di un
controllo istantaneo da parte di un software di Malware
Detector.
2.3.3.
Oligomorfici
Assumendo che un virus criptato cambi la sua chiave da
un'infezione
all'altra,
l'unica
parte
che
rimane
invariata è il pezzo di codice che si occupa del
decriptaggio.
I virus oligomorfici sono una tipologia di virus criptati
che hanno un insieme finito di routine di decriptaggio a
loro disposizione. Viene quindi scelta una differente
routine ad ogni infezione.
2.3.4.
Polimorfici
Un virus polimorfico ha le stesse caratteristiche di un
virus oligomorfico ma ha un insieme infinito di routine
di decriptaggio. Questa tecnica rende molto più difficile
la rilevazione e allo stesso tempo rende anche complicato
per il virus stesso il processo di infezione poiché
diventa difficile capire se un file è già stato infettato
oppure no. Per ovviare a questo inconveniente i virus
polimorfici lasciano delle tracce nel timestamp e nei
dati infettati, come ad esempio una particolare sequenza
di caratteri o la ripetizione dello stesso valore
numerico.
2.3.5.
Metamorfici
Questa tipologia di malware ha la caratteristica di
essere polimorfici all'interno del corpo. Non sono cioè
virus criptati ma hanno un corpo diverso per ogni
infezione. Questo risultato può essere ottenuto inserendo
ad ogni infezione del codice “spazzatura” tra le
istruzioni originali del virus. Le istruzioni aggiunte
non devono però alterare la corretta esecuzione del
codice originale.
White Paper
Page 16
9/25/2010
Introduzione al Malware e Malware Detectors
3. Dagli albori allo stato attuale
1949 - Le elaborazioni teoriche sui virus per computer
risalgono addirittura al 1949. John von Neumann (19031957) sviluppa la teoria degli elementi artificiali che
si autoriproducono. Ai tempi non era però ancora
pensabile un'attuazione tecnica.
1970 – Nasce il gioco di programmazione Core Wars in cui
vari programmi combattono tra loro per contendersi l'area
di memoria. Sono in grado di insinuarsi nella memoria,
cancellare gli indirizzi in maniera casuale e riprodursi.
In questo contesto hanno origine i virus per computer.
1982 – Il termine “virus” viene usato per la prima volta
dal professor Leonard M. Adleman nel corso di una
conversazione con Fred Cohen. Negli stessi anni nascono i
primi virus per Apple II e DOS 3.3: si diffondono tramite
dischetto e spesso si limitano solo a visualizzare del
testo invertito o giochi di parole in rima.
Nel Centro di ricerca Xerox a Palo Alto, Jon Hepps e John
Shock programmano i primi worm. Venivano utilizzati per
calcoli ripartiti e si diffondevano autonomamente in rete
ma a causa di un errore di programmazione, si verificò
una diffusione incontrollata, che dopo poco tempo
paralizzò i computer.
1984 - Fred Cohen pubblica il primo articolo relativo a
“Esperimenti con i virus per computer”, che citerà poi
nella pubblicazione del suo lavoro di dottorato “Computer
Viruses - Theory and Experiments” del 1986. La sua
definizione, piuttosto matematica, di un virus per
computer viene ancora oggi riconosciuta e non comprende
la sfumatura negativa che il concetto di virus ha assunto
oggi.
1985 – I virus cominciarono a diventare sempre più
dannosi. Vale la pena citare Surprise creato in BASIC che
provvedeva a cancellare tutti i file raggiungibili
tramite il comando kill.
Il fenomeno dei virus esplode nelle comunità hacker e
nelle riviste specializzate vengono pubblicati i primi
articoli completi di codice sorgente. Tuttavia, i virus
sono
considerati
un
grosso
pericolo
solo
per
i
megacalcolatori.
White Paper
Page 17
9/25/2010
Introduzione al Malware e Malware Detectors
1986 - I fratelli Basit e Amjad Farooq Alvi sono i
gestori di un piccolo negozio di informatica chiamato
“Brain Computer Services” a Lahore, Pakistan. Per punire
gli autori delle copie illegali del loro software, creano
il primo virus del settore di avvio per il sistema
operativo DOS. Tramite gli studenti pakistani questo
virus si diffonde come un'epidemia anche nei licei
americani. Il programma, tuttavia, era relativamente
innocuo dato che l'unica azione eseguita era rinominare
in Brain i dischetti colpiti.
Nello stesso anno nascono il primo virus per file Virdem
ed il primo cavallo di troia PC-Write.
1987 - Sempre più spesso compaiono virus che colpiscono i
file (inizialmente solo i file .COM). Lehig è il primo
virus che desta l'interesse del pubblico: attacca il file
command.com e, dal punto di vista tecnico, rappresenta il
primo virus residente in memoria. Ha un'azione molto
distruttiva che lo porta di conseguenza ad estinguersi
rapidamente.
In contemporanea alla comparsa di Lehigh, viene fondata
la mailing list e il newsgroup VIRUS-L/comp.virus, che
presto
assumono
il
ruolo
di
importante
fonte
di
informazioni sui virus.
Dopo la comparsa dei primi virus per Macintosh, nVir e
Peace, Apple ha deciso di dotare ogni computer del
programma antivirus Virus-Rx.
A dicembre, un onesto studente americano blocca il
traffico di posta elettronica e di rete a livello
mondiale con un worm molto potente, Tannenbaum. Disegna
un albero natalizio sullo schermo mentre in background
provvede a spedire se stesso a tutti gli indirizzi di
posta elettronica che riesce a trovare nel sistema.
Nella rivista C'T compare un articolo sui virus per Atari
ST, in cui viene pubblicato anche un elenco di codici
sorgente permettendo anche ai neofiti di adattare il
virus in modo semplice. L'ondata di nuovi virus che ne
segue scatena la discussione sulla pubblicazione dei
codici sorgente.
1988 - Venerdì 13 maggio a Gerusalemme scoppia Jerusalem,
la prima bomba logica. Il meccanismo di diffusione è
simile a quello di Lehigh, ma più efficace, dato che non
attacca soltanto i file .COM, ma anche i file .EXE.
White Paper
Page 18
9/25/2010
Introduzione al Malware e Malware Detectors
Robert T. Morris jr., figlio dell'esperto in sicurezza
informatica della NSA, rilascia Internet-Worm che, grazie
ad un piccolo elenco di password, ottiene l'accesso a
moltissimi computer UNIX (2000-6000) e da qui, con la
stessa
modalità
del
virus
Tannebaum,
si
propaga
provocando il blocco del traffico di rete e della posta
elettronica.
Viene creato il primo kit per la produzione di virus per
Atari ST, che permette anche ai principianti di costruire
virus con determinate caratteristiche.
In reazione al generale aumento delle attività da parte
degli sviluppatori di virus, e in particolare in reazione
a Internet-worm, negli Stati Uniti è stato fondato il
CERT/CC (Computer Emergency Response Team / Coordination
Center ), il quale offre tutt'oggi consigli e interventi
per la protezione e la sicurezza dei dati. Attualmente
esistono alcuni centri CERT anche in Germania.
1989 – Viene creato Vienna, il primo virus polimorfo.
Questo virus si codifica autonomamente con chiavi
variabili, modificando anche la forma delle routine di
decodifica. Per questo motivo può essere individuato dai
software antivirus solo tramite algoritmi complessi,
facilmente inclini a falsi allarmi. Per molti produttori
di antivirus ha significato la fine delle attività.
In luglio viene pubblicata la prima edizione del Virus
Bulletin. Da allora si è sviluppata diventando una delle
più rinomate riviste specializzate per i ricercatori di
virus.
In Bulgaria l'hacker Dark Avenger scrive il codice di
Fast
Infector
introducendo
due
importanti
novità
tecniche: 1. è in grado di colpire, oltre che i file
eseguibili, anche i file aperti per la lettura o copiati.
2. Ad intervalli di tempo irregolari vengono sovrascritti
singoli settori del disco fisso. I backup, che vengono
creati spesso come protezione dagli attacchi dei virus,
diventano così assolutamente inefficaci.
Ad Haifa, in Israele, è stato scoperto Frodo, il primo
virus invisibile che infetta i dati. Dopo il 22 settembre
di un qualsiasi anno dovrebbe rovinare il disco rigido
del PC.
Un cavallo di Troia viene diffuso dalla società PC
Cyborg, con sede a Panama, su dischetti camuffati come
White Paper
Page 19
9/25/2010
Introduzione al Malware e Malware Detectors
fonti di informazioni sull'AIDS. AIDS sostituisce il file
autoexec.bat e dopo un numero specificato di nuovi avvii
(90)
inizia
a
codificare
il
disco
rigido.
Successivamente, il malcapitato viene chiamato a pagare
una fattura per ottenere il codice di decodifica.
1990 - 4096 byte è la dimensione dell'omonimo virus che
fa la sua apparizione in gennaio. Si attaccava a file di
dati eseguibili e aperti. Il meccanismo che cercava di
nascondere questo comportamento portava spesso alla
distruzione
degli
stessi
file.
Il
tentativo
di
visualizzare il messaggio “Frode Lives” provocava il
crollo del sistema.
L'associazione tedesca degli amanti dei virus diffonde il
primo kit per la produzione di virus per DOS. In questo
modo, anche i principianti possono sviluppare virus su
misura.
A dicembre viene fondato l'EICAR (European Institute for
Computer Antivirus Research) che ancora oggi riveste un
ruolo importante nella lotta contro i virus e i loro
sviluppatori.
1991 - Michelangelo è un virus del settore di avvio che
il 6 marzo, giorno del compleanno di Michelangelo,
sovrascrive i primi 256 settori del supporto dati,
rendendo di conseguenza il computer inutilizzabile.
I virus polimorfi diventano sempre più
è il primo virus polimorfo ad ampia
Maltese Amoeba sovrascrive in due
dell'anno il primo settore del supporto
frequenti: Tequila
diffusione mentre
specifici giorni
dati.
Il virus Saddam Hussein codifica sui computer Amiga
alcune parti del supporto dati, in modo che questo possa
essere leggibile solo quando il virus è in memoria.
1992 – L'hacker Dark Avenger, pubblica MtE
(Self
Mutating Engine), un toolkit per la creazione di virus
polimorfi. Inoltre nello stesso hanno crea
Commander
Bomber, un virus che utilizza un innovativo metodo di
mimetizzazione:
non si attacca come blocco unico ad un
file ma distribuisce invece il suo codice su più
frammenti connessi tra loro attraverso dei collegamenti.
Questa tecnica rende più problematico il riconoscimento.
WinVir 1.4 è il primo virus per Windows ed Involuntary è
il primo ad infettare i file SYS.
White Paper
Page 20
9/25/2010
Introduzione al Malware e Malware Detectors
1993 - Compaiono nuovi toolkit basati su MtE per la
creazione di virus polimorfi: TPE
(Trident Polymorphic
Engien), NED (Nuke Encryption Device) e DAME (Dark
Angel's Multiple Encryption).
In MS-DOS 6 viene incluso per la prima
(mediocre) programma di scansione antivirus.
volta
un
Fa la sua comparsa il cavallo di Troia Fuck per Amiga che
viene distribuito mimetizzato da programma di test del
modem. Sostituisce per prima cosa il file di sistema
loadWB ed al riavvio del sistema, viene eseguito il
codice del virus. Dopo un certo lasso di tempo,
determinato
dalla
frequenza
di
aggiornamento
dello
schermo,
l'intero
disco
rigido
viene
completamente
scritto con la parola F..., provocando la distruzione di
tutti i dati.
A luglio Joe Wells pubblica la prima Wildlist, contenente
l'elenco dei virus ancora in circolazione. Da questo
elenco è nata più tardi la Wildlist Organization.
1994 - Compaiono i primi virus multipartita. Questi virus
utilizzano
più
meccanismi
di
infezione
e
possono
contemporaneamente attaccare, oltre ai file, anche i
settori di avvio o le tabelle delle partizioni.
Il giovane hacker Black Baron diffonde in Inghilterra
Smeg.Pathogen e Smeg.Queen, in grado di sovrascrive 256
settori del disco rigido. Questo virus ha provocato
ingenti danni ad alcune aziende e per questo, l'anno
successivo, il suo creatore viene condannato ad una pena
detentiva.
Kaos4 si è diffuso attraverso un newsgroup specializzato
in foto erotiche. Da allora questa strategia è stata
utilizzata sempre più frequentemente.
1995 - Con DMV, Nachtwächter e Concept 1995 compaiono i
primi
macrovirus.
Hunter.c
è
il
primo
macrovirus
polimorfo.
Wm.Concept è stato il primo macrovirus per Word.
Conteneva solo il messaggio “That's enough to prove a
point.” e in poco tempo è diventato il virus più diffuso
su scala mondiale. Wm.Concept ha fondato la categoria dei
virus “Proof of Concept” che hanno l'unico scopo di
dimostrare come sia possibile sfruttare un determinato
punto debole, senza però provocare veramente dei danni.
White Paper
Page 21
9/25/2010
Introduzione al Malware e Malware Detectors
La rilevazione dei macrovirus richiede notevoli sforzi ai
programmi di scansione antivirus, se non altro per i
formati in continua evoluzione dei linguaggi degli script
e dei file di Office.
1996 - Compaiono i primi generatori di macro per
macrovirus in inglese e in tedesco. I macrovirus non si
limitano più a Word, bensì sono progettati anche per i
file Excel e AmiPro. Inoltre superano i confini tra
sistemi operativi e colpiscono indifferentemente PC e
MAC.
Boza è il primo virus che attacca il formato PE-EXE dei
file Windows 95.
1997 – Fanno la loro comparsa i primi script mIRC che si
diffondono sotto forma di worm tra gli utenti della
Internet Relay Chat.
Fa la sua apparizione
operativo GNU/Linux.
il
primo
virus
per
il
sistema
1998 - Strange Brew è il primo virus per Java.
Il worm Autostart.9805 partendo da Hong Kong infetta
innumerevoli macchine MAC. Autostart.9805 sfrutta il
meccanismo di avviamento automatico di Quicktime e copia
se stesso sul disco rigido e su altri supporti dati.
Determinati file vengono sovrascritti con dati spazzatura
e quindi resi inutilizzabili.
Con Netbus e Back Orifice compaiono i backdoor, che
permettono di sorvegliare e controllare in remoto un PC
senza che l'utente si accorga di nulla. La comparsa di
Back Orifice scatena varie discussioni sul fatto che si
tratti di un software di manutenzione o di controllo a
distanza. Poiché le funzioni di comando in remoto possono
essere eseguite all'insaputa dell'utente, Back Orifice
può anche essere definito un cavallo di Troia. Tramite BO
un hacker è stato in grado, alla metà del 2000, di
penetrare nella rete aziendale di Microsoft.
A giugno è comparso CIH, contenente uno dei payload a
maggiore diffusione nella storia dei virus, in grado di
attaccare per la prima volta anche l'hardware della
macchina vittima. Infatti quando si attivano le sue
funzioni nocive (il 26 aprile), sovrascrive il Flash-BIOS
e la tabella di partizione del disco rigido; in questo
modo il computer non può più essere avviato. Su alcune
White Paper
Page 22
9/25/2010
Introduzione al Malware e Malware Detectors
schede madri è addirittura necessario sostituire i
chipset
del
Flash-BIOS
oppure
procedere
con
una
riprogrammazione. Ma in ogni caso, anche dopo il
ripristino del sistema, i dati sono persi. L'autore, lo
studente cinese Chen Ing-Hau, non è stato perseguito
legalmente.
VBS.Rabbit è stato il primo a utilizzare WSH (Windows
Scripting Host). È scritto in Visual Basic e attacca
altri file VBS.
HTML.Prepend dimostra che è possibile infettare i file
HTML con VBScript.
1999 - A marzo il worm Melissa infetta nel giorno della
sua
comparsa
centinaia
di
migliaia
di
computer,
diffondendosi in maniera vertiginosa in tutto il mondo.
Melissa invia e-mail ai primi 50 indirizzi della rubrica
di Outlook e i server di posta coinvolti crollano sotto
il carico dei messaggi in entrata.
A
giugno
ExploreZip
si
mimetizza
come
archivio
autoinstallante che viene inviato come risposta ad una email ricevuta. Si diffonde sulle condivisioni di rete e
può infettare un computer collegato in rete solo se un
altro utente della rete agisce incautamente. La funzione
dannosa ricerca sul disco rigido i file di programmi in C
e C++, Excel, Word e Powerpoint e li elimina.
Oltre che tramite e-mail, il virus Pretty Park si
diffonde anche mediante le Internet Relay Chat. Questo
worm
è
dotato
di
meccanismi
di
mimetizzazione
e
protezione
molto
efficaci
che
ne
impediscono
l'eliminazione. Durante la successiva scansione antivirus
il worm viene riconosciuto come legittimo. A volte anche
la scansione antivirus viene bloccata. Grazie a una
manipolazione del registro, Pretty Park viene eseguito
dai file EXE, provocando la segnalazione che tutti i file
EXE sono infetti.
Per gli utenti di Outlook, a novembre si verifica con
Bubbleboy la visione di “Good-Times”, in cui un virus
riesce a infettare un computer con la sola apertura di
una e-mail (anche in modalità di anteprima). Bubbleboy
sfrutta un errore nella libreria del programma.
2000 - Nonostante tutte le profezie, non esiste un worm
del
millennio
degno
di
tale
nome.
Palm/Phage
e
White Paper
Page 23
9/25/2010
Introduzione al Malware e Malware Detectors
Palm/Liberty-A sono rari ma
palmari dotati di Palm OS.
in
grado
di
infettare
i
Lo script VBS/KAKworm sfrutta i punti deboli in Scriplet
e Typelib di Internet Explorer. In modo simile a
BubbleBoy, si diffonde con l'apertura di una e-mail
(anche in anteprima).
A maggio un worm invia una valanga di e-mail dalla
rubrica di Outlook con l'oggetto “I love you” e crea
danni per miliardi soprattutto alle reti delle grandi
aziende. Anche in questo caso, le reti sono state
completamente
sovraccaricate
in
poco
tempo.
Dalla
versione sviluppata da uno studente filippino Onel de
Guzman nascono moltissime varianti. Gli esperti USA
parlano del virus più maligno della storia informatica.
L'autore di W95/MTX si è preso la briga di eliminare gli
ibridi di worm/virus dal computer, inviando tramite email un file PIF con doppia estensione del file. Ciò
blocca l'accesso del browser ad alcuni siti web di
produttori antivirus, infetta i file con il componente
del
virus
ed
alcuni
file
vengono
sostituiti
dai
componenti del virus.
Dopo Loveletter e le sue molteplici varianti, i gateway
di posta filtrano semplicemente le e-mail aventi le righe
dell'oggetto incriminate. Stages of Life varia la riga
dell'oggetto
ed
in
questo
modo
riesce
a
passare
attraverso la rete.
A settembre in Svezia viene creato Liberty, il primo
cavallo di Troia per palmari. Si trasmette durante la
sincronizzazione
con
il
PC
e
cancella
tutti
gli
aggiornamenti.
2001 - A febbraio gira un worm di posta elettronica che
apparentemente contiene un allegato con una foto della
tennista russa Anna Kournikova. Chi apre il messaggio
installa il worm, il quale poi invia se stesso a tutti
gli indirizzi della rubrica di Outlook.
Anche Naked si è diffuso per posta elettronica. Dichiara
di essere un'animazione Flash di una donna nuda. Dopo
l'apertura del messaggio, il virus si installa e si
propaga a tutti gli indirizzi di Outlook. Poiché elimina
anche le directory di Windows e del sistema, rende il
computer inutilizzabile. Per usare nuovamente il PC è
necessario reinstallare il sistema operativo.
White Paper
Page 24
9/25/2010
Introduzione al Malware e Malware Detectors
A luglio Code Red sfrutta un errore di overflow del
buffer nella DLL Indexing Service di Internet Information
Server (IIS) di Windows NT, 2000 e XP. Il virus effettua
una scansione degli indirizzi IP originali sulla porta
standard per la connessione Internet e trasmette un
cavallo di Troia il quale tra il 20 e il 27 di un mese
avvia un attacco Denial of Service (DoS) al sito web
della Casa Bianca. La rimozione del virus è molto
impegnativa e divora miliardi.
A luglio tramite le reti e via Outlook Express si è
diffuso
SirCam,
il
quale
ha
introdotto
alcune
innovazioni. Ad ogni avvio, provoca l'attivazione di un
file EXE. È il primo worm dotato di un proprio motore
SMTP. Ma non invia solo se stesso, bensì anche file
personali che trova sul computer.
Con Nimda a settembre si è diffuso un worm Internet che
non necessita di alcuna interazione dell'utente. Oltre
alle e-mail, utilizza per diffondersi anche le falle
nella protezione dei programmi. Numerosi server Web
vengono sovraccaricati e i sistemi di file infetti
possono essere letti dal mondo intero.
A novembre il worm residente in memoria Badtrans sfrutta
una falla nella protezione di Outlook e Outlook Express
per propagarsi. Si installa come servizio, risponde alle
e-mail, spia le password e registra le sequenze di tasti.
2002 - Il worm MyParty mostra all'inizio dell'anno che
non tutto ciò che termina con “.com” è un sito web.
Coloro
che
effettuano
un
doppio
clic
su
“www.myparty.yahoo.com” al posto dell'immagine attesa
ricevono un worm con un componente backdoor.
In primavera e in estate Klez utilizza le falle nella
sicurezza IFRAME in Internet Explorer per installarsi non
appena viene visualizzata una e-mail. Il virus si propaga
per e-mail e in rete e si attacca ai file eseguibili. Il
13 dei mesi pari (nelle versioni successive i giorni
cambiano),
tutti
i
file
presenti
sulle
unità
raggiungibili vengono sovrascritti con contenuti casuali.
I contenuti possono essere ripristinati solo da backup.
A maggio si diffonde Benjamin come primo worm sulla rete
KaZaA. Il virus si auto-copia assumendo nomi diversi in
una cartella della rete. Sui computer infetti viene
visualizzata una pagina Web con una pubblicità.
White Paper
Page 25
9/25/2010
Introduzione al Malware e Malware Detectors
Lentin è un worm che approfitta dell'ignoranza di molte
persone che non sanno che i file SCR non sono solo dei
salvaschermo, ma anche file eseguibili. Se confrontato
con Kletz, il suo effetto visivo come funzione nociva è
solo irritante. Anche la sua diffusione non riesce a
raggiungere quella di Kletz.
Alla fine di settembre scoppia l'epidemia Opasoft. Sulla
porta 137 effettua la scansione di un computer in rete e
verifica se su questo si trovano condivisioni di file e/o
stampanti. Dopodiché prova ad autocopiarsi sul computer.
In presenza di una protezione da password, il virus
consulta un elenco di password sfruttando un punto debole
nell'archiviazione delle password.
BugBear è il primo worm che a primavera soffia il primo
posto a Kletz. Il worm si propaga per e-mail e in rete,
installa un componente spyware ed invia registrazioni
delle sequenze di tasti.
2003 - A gennaio SQL-Slammer infetta in una sola ora
almeno 75.000 server SQL e blocca Internet per ore.
Sfrutta un punto debole, già noto da 6 mesi, di Microsoft
SQL-Server per neutralizzare i server dei database.
Poiché SQL-Slammer è composto solo da una richiesta
errata e non viene caricato come file in memoria, resta
sconosciuto alla maggior parte dei programmi antivirus.
Le conseguenze: a Seattle si guastano i numeri di
emergenza di polizia e vigili del fuoco, i bancomat della
Banca d'America non funzionano, 14.000 uffici postali in
Italia restano chiusi, la borsa online soffre in modo
drammatico, la Corea e la Cina rimangono a tratti
temporaneamente scollegate dalla rete, con un conseguente
crollo degli indici di borsa a causa dei volumi di
scambio estremamente ridotti.
Ad agosto si è diffuso Lovesan (alias Blaster). Utilizza
una falla del servizio RPC/DCOM ed infetta tramite gli
indirizzi IP di PC scelti a caso. In pochissimo tempo
centinaia di migliaia di computer erano infettati (la
stima è di 570.000). Poco dopo Welchia (alias Nachi) ha
cominciato a rimuovere Lovesan/Blaster dai computer e a
chiudere la falla di protezione in RPC/DCOM. A fine
agosto del 2003 è stato arrestato il diciottenne Jeffrey
Lee Parsons, autore di Lovesan.
Il worm di invio in massa di posta elettronica Sobig.F ha
stabilito un nuovo record per la sua straordinaria
White Paper
Page 26
9/25/2010
Introduzione al Malware e Malware Detectors
velocità di propagazione. Si è diffuso in maniera 10
volte più rapida rispetto ai worm esistenti fino a quel
momento.
2004 - I virus diventano armi nelle mani della
criminalità organizzata. Numerosi trojan intercettano
password,
carte
di
credito
e
altre
informazioni
personali. I backdoor permettono di controllare un
computer in modalità remota e di integrarlo nelle
cosiddette reti Bot. Durante i campionati europei di
calcio, vengono organizzati attacchi Distributed Denialof-Service alle agenzie di scommesse online. I gestori,
costretti dalle circostanze, pagano quanto richiesto
dagli estorsori.
Rugrat è il primo virus per Windows a 64 bit.
Cabir, il primo virus per telefoni cellulari con sistema
operativo Symbian ed interfaccia Bluetooth, è stato
sviluppato dal Gruppo 29A, già noto per i suoi virus
Proof of Concept. Poco dopo, dallo stesso gruppo viene
creato WinCE.4Dust.A, il primo virus PoC per Windows CE.
2005 - Il primo worm per gli smartphone dotati di Symbian
è stato CommWarrior.A per MMS. I messaggi MMS vengono
integrati con testi di accompagnamento variabili di
antivirus, giochi, driver, emulatori, software 3D o
immagini interessanti e inviati a tutti i nominativi
della rubrica.
White Paper
Page 27
9/25/2010
Introduzione al Malware e Malware Detectors
4. Le minacce odierne
Dopo aver descritto le tappe fondamentali della storia
dei malware, passiamo ora ad analizzare quali sono le
minacce
degli
ultimi
anni,
rivolgendo
particolare
attenzione alla tipologia delle minacce e alla loro
natura.
4.1. Le tipologie di malware più diffuse
I
dati
riportati
di
seguito
sono
stati
forniti
dall'azienda spagnola Panda Security che ogni anno
pubblica un report sull'entità delle minacce e la loro
evoluzione. Secondo Panda Security verrebbero prodotti
una media di 55.000 nuovi sample al giorno, 38.000 dei
quali risulterebbero essere nuove infezioni. Il numero
dei
malware
quindi
sta
aumentando
in
maniera
esponenziale; basti pensare che attualmente il database
delle signatures dell'azienda spagnola contiene la firma
di più di 40 milioni di malware, cifra che ovviamente è
destinata ad aumentare molto velocemente.
La minaccia in assoluto più persistente sono i trojan che
rappresentano il 64% dei nuovi malware scoperti negli
ultimi anni. Le ultime generazioni di questa tipologia di
malware sono molto versatili e implementano funzionalità
sempre più svariate, permettendo di installare backdoors,
rubare dati sensibili, partecipare ad attacchi DoS e
scaricare altri malware dalla rete.
Le altre categorie di malware includono gli adware (17%),
i virus (7%), gli spyware (6%) e i worm (4%).
Queste
tipologie di malware, insieme ai trojan, rappresentano il
98%
delle
minacce
totali
e
vengono
utilizzati
principalmente per incrementare il fenomeno dello spam,
creare botnet per attacchi DoS, mettere appunto attacchi
di phishing e truffe ai danni degli utenti.
White Paper
Page 28
9/25/2010
Introduzione al Malware e Malware Detectors
4%
2%
6%
Trojan
7%
Adware
Virus
Spyware
17%
Worm
64%
Altro
Figura 3 – le tipologie di malware più diffuse
4.2. I vettori di infezione
Per quanto riguarda la natura delle infezioni è utile
prendere in considerazione i dati raccolti da Trend
Micro, una società con sede a Tokyo, leader nel campo
della sicurezza informatica.
Trend Micro ha stilato la classifica dei vettori di
attacco utilizzati dai 100 malware più diffusi negli
ultimi 2 anni ed i risultati non lasciano adito a dubbi:
tra tutti i possibili mezzi di infezione, Internet è in
assoluto quello più usato da trojan, worm ed altre
tipologie di malware per compromettere i sistemi degli
utenti.
Le infezioni contratte navigando su siti malevoli o
sconosciuti e attraverso i link presenti nelle mail di
spam rappresentano il 53% del totale del campione preso
in oggetto. Al secondo posto, con il 43% dei casi, si
piazza il download eseguito da malware già presente sul
sistema vittima. Il terzo posto è occupato dalle mail
contenenti allegati malevoli (12%), seguito dai supporti
rimovibili
come
le
memory
stick,
sopporti
USB
e
quant'altro (10%).
Un certo numero dei 100 malware presi in considerazione è
stato contato più volte durante l'analisi, in virtù della
caratteristica di versatilità dei malware: uno stesso
trojan ad esempio
può essere ospitato su un sito
malevolo o può essere scaricato da altri malware o
White Paper
Page 29
9/25/2010
Introduzione al Malware e Malware Detectors
dall'utente
una mail.
stesso
durante
l'apertura
dell'allegato
di
Condivisioni P2P
2
Applicazioni di Instant
Messaging
Vulnerabilità software
2
5
Supporti rimovibili
10
E-mail
12
43
Download da altri malware
53
0
20
40
Download da Internet
60
80
100
Figura 4 – I vettori di infezione più comuni
L'analisi di Trend Micro non rappresenta e non può
rappresentare un quadro completo ed esauriente di tutti i
sample di malware oggi in circolazione ma solo uno
spaccato molto significativo della situazione negli
ultimi anni.
White Paper
Page 30
9/25/2010
Introduzione al Malware e Malware Detectors
5. Introduzione ai Malware Detectors
Un Malware Detector (o più comunemente antivirus) deve
essere in grado di eseguire i seguenti compiti:
Rivelazione – è lo scopo primario di questo tipo di
software. Dato un file da analizzare in ingresso, il
Malware Detector deve dare in uscita un risultato
booleano: si, è un file infetto oppure no, non è un file
infetto.
Il compito della rivelazione, sopratutto negli ultimi
anni, è diventato molto difficoltoso. Infatti i creatori
di malware, oltre che sull'aspetto funzionale, lavorano
molto sull'aspetto dell'occultamento: il loro prodotto
deve essere in grado di sfuggire ai controlli da parte
dei software antivirus.
Al fine di comprendere al meglio il problema della
rivelazione, è doveroso fare una breve introduzione sugli
aspetti
tecnici
dei
Malware
Detector.
L'attuale
tecnologia antivirus prevede l'uso di due risorse
principali: i metodi basati su database e gli algoritmi
statici/dinamici per il riconoscimento zero-day.
I metodi basati su database prevedono l'uso di un
database (che dovrebbe essere aggiornato quotidianamente)
contenente le firme di tutti virus al momento conosciuti.
In questo modo diventa semplice, dato un malware in
ingresso, estrapolarne la firma e confrontarla con quelle
presenti nel database.
Questo metodo introduce un problema fondamentale nella
rivelazione dei malware, il problema zero-day: lo stesso
giorno in cui malware viene messo in circolazione, esso
non sarà ancora presente nel database dei software
antivirus, di conseguenza non sarà riconosciuto e sarà in
grado di danneggiare liberamente tutti i sistemi da lui
raggiungibili.
Questo problema viene risolto nei giorni seguenti alla
pubblicazione del malware: le case produttrici dei
software antivirus metteranno a disposizione dei propri
utenti l'aggiornamento del database che sarà ora in grado
di riconoscere correttamente il malware.
Rimane quindi il problema ti proteggere il sistema dagli
attacchi che vanno dal giorno del rilascio del virus fino
all'aggiornamento del database in grado di riconoscerlo.
White Paper
Page 31
9/25/2010
Introduzione al Malware e Malware Detectors
Per
questo
motivo
è
necessario
implementare
dei
meccanismi alternativi all'uso del database e che siano
in grado di rilevare un nuovo malware con un alto livello
di affidabilità.
Inoltre questi metodi devono poter rilevare il malware
sia durante la sua fase non attiva (metodi statici) che
durante la sua esecuzione (metodi dinamici).
Identificazione – Una volta che il virus è stato rivelato
è necessario identificarlo e catalogarlo in una macroarea
di
appartenenza.
Questo
processo
permettere
di
individuare
il
tipo
di
minaccia
ed
eventualmente
facilitare il processo di disinfestazione.
Disinfestazione – La disinfestazione è il processo di
rimozione del malware dal computer infettato. Spesso
questa fase viene chiamata pulitura proprio perchè
pulisce il sistema e i file dal codice virale. La
procedura di identificazione è molto importante per il
processo di disinfestazione in quanto ad ogni tipologia
di malware corrisponde un metodo generale per la sua
rimozione.
I prossimi paragrafi faranno particolare riferimento alle
tecniche di rivelazione, che possono essere considerate
la chiave della protezione dei sistemi. In particolare
vanno messe in rilievo le tecniche per risolvere il
problema dello zero-day, un tema oggigiorno molto
discusso ed oggetto di numerose ricerche.
5.1. Metodi statici
Le tecniche statiche degli antivirus portano a termine la
rilevazione senza eseguire il codice del malware. Di
seguito
vengono
esaminate
tre
differenti
tecniche
statiche: gli scanner, le euristiche e gli integrity
checkers.
5.1.1.
Scanners
Lo scanner è una parte fondamentale del
antivirus e vengono classificati in base
utilizzo:
software
al loro
• on-demand – lo scanner viene lanciato manualmente
dall'utente per verificare la presenza di malware su
White Paper
Page 32
9/25/2010
Introduzione al Malware e Malware Detectors
tutto l'hard-disk o in una particolare cartella. Spesso
viene lanciata una nuova scansione automaticamente dal
software antivirus ogni volta che viene aggiornato il
database oppure in seguito al riconoscimento di un
nuovo supporto rimovibile.
• on-access – lo scanner viene eseguito continuamente in
modalità “silenziosa”, con lo scopo di controllare
costantemente i file sul disco. Naturalmente questa
scansione va a discapito delle performance del sistema
operativo che potrebbe diventare più lento e meno
reattivo.
Lo scanner quindi si occupa di trovare una corrispondenza
tra un file presente all'interno del disco ed un virus
già noto al software antivirus. Il virus infatti viene
rappresentato da una o più stringhe, detti signatures,
che identificano univocamente un determinato virus. Le
signatures non hanno bisogno di essere necessariamente
delle costanti e possono contenere infatti anche dei
simboli “don't care”, chiamati wildcards, in grado di
fare il matching con byte arbitrari, con parti di byte,
con zero o più byte. In questo modo l'uso delle
signatures per controllare la presenza di virus può
essere esteso non solo ai normali file ma anche al
settore di boot, ai pacchetti di rete e agli streaming di
byte.
Il problema principale è l'enorme quantità di dati da
elaborare.
Sono
infatti
centinaia
di
migliaia
le
signatures presenti nei database dei software antivirus
ed è quindi indispensabile usare un algoritmo efficiente
che permetta di lavorare su patterns multipli, in modo da
facilitare il processo di identificazione del malware.
Di seguito vengono descritte le principali tecniche usate per migliorare le performance
degli scanner:
• riduzione dei dati del file – la scansione di un intero
file è un processo molto lento, soprattutto se il file
in questione ha dimensioni molto elevate. Detto ciò, è
possibile sfruttare la conoscenza delle caratteristiche
comportamentali di un virus per ridurre le dimensioni
della ricerca in modo da controllare solo alcune
caratteristiche del file vittima. Alcune di queste
caratteristiche sono la posizione che il virus occuperà
all'interno del file vittima (generalmente si tratta
White Paper
Page 33
9/25/2010
Introduzione al Malware e Malware Detectors
della prima o dell'ultima porzione del file vittima), i
puntatori
che
modificherà
all'interno
delle
intestazioni della vittima e le dimensioni generiche di
un virus.
• riduzione dei dati del disco – anche in questo caso
controllare ogni singolo file del
sistema operativo
può diventare un processo molto lento. Si può quindi
restringere la scansione solo ai file che generalmente
vengono attaccati da virus, come ad esempio i file
eseguibili, oppure scansionare solo i file che sono
stati modificati dall'ultima scansione completa.
• uso ottimale delle signatures – scegliendo signatures
troppo corte si può incorrere in falsi positivi
(rilevazioni errate di virus) ma allo stesso tempo
signatures troppo lunghe rallenterebbero la scansione e
risulterebbero poco scalabili per la ricerca di
varianti virali. E' necessario quindi trovare il giusto
compromesso tra accuratezza della scansione e uso delle
risorse computazionali.
5.1.2.
Euristiche statiche
Gli attuali prodotti antivirus implementano al loro
interno anche un sistema che sfrutta le euristiche
statiche. In questo modo è possibile identificare file
eseguibili sospetti e virus sconosciuti con un alto
livello
di
accuratezza
e
senza
avvalersi
delle
signatures. Ricordiamo che si tratta comunque di una
analisi statica perciò il codice analizzato non viene
eseguito ma solo visionato staticamente.
L'analisi viene
fondamentali:
portata
a
termine
seguendo
due
passi
1. raccolta dati – in questa fase viene utilizzato un
certo numero di euristiche statiche per esaminare in
maniera dettagliata il file da scansionare. Ogni
singola euristica fa riferimento ad una particolare
caratteristica virale:
• presenza di codice “spazzatura”
• presenza di codice criptato
• uso di librerie non usuali
• manipolazioni del vettore delle interruzioni
• uso di istruzioni che non vengono di solito
generate dai compilatori
White Paper
Page 34
9/25/2010
Introduzione al Malware e Malware Detectors
• stringhe contenenti banali etichette, come ad
esempio le parole “virus” o “infect”
• particolari dimensioni delle intestazioni o del
payload
2. analisi dei dati – ad ogni euristica viene associato
un hit o un miss ed in seguito viene stilato un
report
globale
che
raccoglie
le
statistiche
riguardanti
il
file
scansionato.
Se
queste
statistiche
raggiungono
dei
valori
soglia
prestabiliti
dall'aggressività
della
scansione,
allora il file viene classificato come pulito,
infetto o, meglio ancora, “sospetto”.
5.1.3.
Integrity Checkers
Partendo dal presupposto che la maggior parte dei virus
di propagano modificando altri file, gli integrity
checkers nascono allo scopo di controllare periodicamente
l'integrità dei file del disco. Un software antivirus che
usa un integrity checkers deve essere installato su un
sistema sicuro e pulito al 100%. Questa caratteristica
diventa un requisito fondamentale poiché durante la fase
di installazione l'integrity checkers calcola e memorizza
una checksum per ogni file del sistema. Periodicamente le
checksum vengono ricalcolate e se differenti dalle
originali, diventano un campanello di allarme che sta ad
indicare l'azione riproduttiva di un virus.
Esistono tre tipi differenti di integrity checkers:
 offline
–
le
checksum
vengono
ricolcolate
solo
periodicamente (ad esempio una volta alla settimana)
 self-checking – i file eseguibili vengono modificati
per effettuare un checking di se stessi prima di essere
eseguiti. Questa operazione può anche essere resa più
leggera
aggiungendo
pezzi
di
codice
che
fanno
riferimento a librerie condivise.
 integrity shells – la checksum di un eseguibile viene
calcolata appena prima dell'esecuzione dell'eseguibile.
Si può accelerare questa procedura integrandola nelle
kernel del sistema operativo.
White Paper
Page 35
9/25/2010
Introduzione al Malware e Malware Detectors
5.2. Metodi dinamici
I metodi dinamici si occupano di verificare la presenza
di malware eseguendone il codice o controllando il suo
comportamento.
5.2.1.
Monitor del comportamento
Il monitor del comportamento è una parte dell'antivirus
che controlla in real-time un programma in esecuzione
alla ricerca di comportamenti sospetti. In tal caso
potrebbe bloccare l'operazione corrente, terminare il
programma sospetto o chiedere all'utente l'appropriata
azione da eseguire.
Più in dettaglio, un monitor
operazioni in tre categorie:
1
2
3
classifica
le
possibili
le azioni permesse o anche chiamate positive detection
le azioni non permesse o anche chiamate negative
detection
una qualche combinazione delle due, esattamente come
avviene nel caso delle euristiche statiche. Questo per
evitare falsi positivi, poiché una serie di azioni non
permesse non indicano necessariamente la presenza di
un virus.
Le azioni esaminate dal monitor non devono essere
necessariamente prese in considerazione singolarmente ma
possono
essere
raggruppate
come
una
sequenza
di
istruzioni, classificate successivamente come sospette o
meno. Per esempio, supponiamo di avere un eseguibile
contenente le seguenti istruzioni:
open ...
open ...
read ...
write ...
read ...
write ...
read ...
write ...
close ...
close ...
supponendo una finestra pari a 3 otterremo il seguente
insieme di sequenze:
White Paper
Page 36
9/25/2010
Introduzione al Malware e Malware Detectors
open open read
open read write
read write read
write read write
read write close
write close close
Così come accade con le euristiche statiche, anche in
questa
caso
si
può
sfruttare
la
conoscenza
del
comportamento
di
un
virus
per
determinare
quali
potrebbero essere le sequenze sospette. Naturalmente la
scelta della dimensione della finestra è un elemento
chiave nel trovare il giusto compromesso tra accuratezza
della rilevazione e velocità della stessa.
5.2.2.
Emulazione
Il monitor visto sin ora permette di effettuare la
rilevazione di un codice sospetto all'interno di una
macchina reale. Al contrario, altre tecniche antivirus
usano l'emulazione per controllare il comportamento di un
malware all'interno di un ambiente virtuale, così da
evitare eventuali danneggiamenti del sistema reale,
rilevando comunque la natura maligna dell'eseguibile.
L'emulazione permette
meccanismi principali:
la
raccolta
dati
usando
due
• euristiche dinamiche – sono pressoché simili alle
euristiche statiche ma differiscono nel modo di
raccogliere
le
informazioni
chiave
riguardo
l'eseguibile. In questo caso infatti le informazioni
vengono raccolte in seguito all'emulazione del codice e
successivamente
elaborate
prima
dell'effettiva
esecuzione nella macchina reale.
• decriptaggi generici – si occupano di rilevare i virus
polimorfici. Il descriptor loop del virus polimorfo
decripterà il corpo del malware all'interno del sistema
virtuale in modo tale da metterlo in chiaro facilitando
la sua rilevazione con i normali metodi di scanning.
Durante l'emulazione l'antivirus può contemporaneamente
controllare
la
memoria
virtuale
alla
ricerca
di
signatures già note, in maniera da integrare più
meccanismi di rilevazione allo stesso tempo.
White Paper
Page 37
9/25/2010
Introduzione al Malware e Malware Detectors
Concettualmente
principali:
un
emulatore
è
composto
da
5
parti
• emulatore della CPU, in grado di eseguire le istruzioni
• emulatore della memoria, indispensabile per osservare
il codice decriptato
• emulatore dell'hardware e del sistema operativo - per
motivi di velocità e dimensione viene avviata una
versione molto ridotta del sistema operativo con
l'hardware minimo e indispensabile
1. controller dell'emulatore – si occupa di controllare
la corretta esecuzione del processo di emulazione,
limitandone soprattutto la durata. Spesso infatti il
codice eseguito durante l'emulazione richiede troppe
risorse che vengono naturalmente sottratte alla
macchina reale. In controller si avvale delle
euristiche
e
delle
altre
tecniche
viste
in
precedenza per portare a termine il suo compito.
2. analizzatori extra – si occupa di analizzare tutti i
dati raccolti in seguito al processo di emulazione
5.3. Rilevazione tramite database
Concettualmente un database di virus è un database
contenente un record per ogni virus conosciuto. Ogni
record rappresenta un identificatore univoco del malware
e contiene le seguenti informazioni:
• un
nome
identificativo
del
malware
da
mostrare
all'utente
• una stringa identificativa del malware
• un insieme di istruzioni per la rimozione del malware
La regola chiave per un buon database è quello di essere
sempre aggiornato. Ogni volta che viene scoperto un nuovo
malware la casa produttrice dell'antivirus dovrebbe
inserire il record relativo al nuovo malware e mettere a
disposizione dell'utente l'aggiornamento.
Questo sistema
sicurezza:
però
può
portare
a
numerosi
falle
di
• la macchina server responsabile della distribuzione
dell'aggiornamento potrebbe essere attaccata;
• il database aggiornato potrebbe essere compromesso
prima che raggiunga gli utenti;
White Paper
Page 38
9/25/2010
Introduzione al Malware e Malware Detectors
• la macchina dell'utente potrebbe essere compromessa in
modo tale che scarichi l'aggiornamento dalla macchina
di un attaccante piuttosto che dalla macchina server
responsabile dell'aggiornamento.
• può essere montato un attacco “man-in-the-middle”:
l'attaccante intercetta la comunicazione tra utente e
server
di
distribuzione,
usando
il
canale
di
comunicazione per modificare il legittimo aggiornamento
C'è
anche
il
problema
di
cosa
trasmettere
nell'aggiornamento. Infatti la trasmissione dell'intero
database aggiornato è poco fattibile per le sue grandi
dimensioni e poiché le differenze tra la nuova e la
vecchia versione non sono tante. Quindi i produttori di
antivirus
scelgono
sempre
di
trasmetterne
solo
i
cambiamenti
(chiamati
deltas)
che
vengono
comunque
compressi e talvolta anche criptati.
Il meccanismo di aggiornamento può a volte includere
anche l'aggiornamento dell'engine (il motore interno
dell'antivirus) per evitare bugs ed aggiungere nuove
funzionalità per la rilevazione di nuovi malware.
White Paper
Page 39
9/25/2010
Introduzione al Malware e Malware Detectors
6. I passi per l'eliminazione del malware
Una volta che il malware è stato rilevato, l'immediato
passo successivo è la sua rimozione che viene portata a
termine attraverso i seguenti passi: verifica, quarantena
e disinfezione.
6.1. Verifica
Dopo il processo di rilevazione ogni antivirus effettua
una verifica dell'effettiva infezione per evitare falsi
positivi, errori di rilevazione o strane coincidenze
relative alla sovrapposizione delle signatures. Inoltre
la verifica viene anche utilizzata per identificare
esattamente il virus, classificarlo accuratamente per poi
inibire il suo comportamento maligno.
6.2. Quarantena
Una volta verificata l'infezione, il software antivirus
mette il file infetto in quarantena, isolandolo quindi
dal resto del sistema. La quarantena è solo una misura
temporanea fino al momento in cui l'utente non decida
cosa fare del virus.
La quarantena
passi:
viene
implementata
secondo
i
seguenti
• il file infetto viene copiato in una cartella di
“quarantena”;
• viene cancellata la copia originale del file infetto
• vengono cambiati i permessi della copia in modo tale
che non possa mai essere eseguito
• la cartella di quarantena e tutti i file in essa
contenuti vengono criptati in modo tale che solo
l'antivirus possa accedere a essi.
6.3. Disinfezione
La disinfezione non significa necessariamente che un
sistema infetto torni al suo stato originale, nonostante
il processo abbia avuto esito positivo. In molti casi
infatti, soprattuto quando si parla di virus overwriting,
non è possibile ripristinare i contenuti originali.
Ogni
antivirus
può
implementare
disinfezione in modi differenti:
White Paper
Page 40
il
processo
di
9/25/2010
Introduzione al Malware e Malware Detectors
ripristinare i file infetti attraverso una copia di
backup – il software antivirus può occuparsi di fare il
backup dei dati periodicamente per poi ripristinarne i
contenuti in seguito ad un'infezione. Questo metodo però
è molto oneroso in termini di spazio sul disco e tempo
necessario alla copia.
usare le specifiche sui virus – all'interno del database
dei virus sono contenute una serie di informazioni
riguardanti la corretta rimozione di ogni singolo virus.
Inoltre alcuni virus hanno metodi di rimozione identici
perciò è possibile usare routine condivise cambiandone
solo i parametri di ingresso.
usare le specifiche sui comportamenti dei virus –
piuttosto che utilizzare metodi personalizzati per ogni
singolo virus, è possibile sfruttare la conoscenza dei
comportamenti per usare dei metodi generici per la loro
corretta rimozione. Un esempio di applicazione di tale
tecnica è la rimozione dei virus prepending e appending.
In questo caso infatti vengono subito ripristinate le
intestazioni del programma originale e spostati i
contenuti originali nelle apposite locazioni.
White Paper
Page 41
9/25/2010