Cos’è
un virus?
Cos'è un virus
informatico? Analogamente ai virus biologici, un parassita informatico è un
organismo capace di replicarsi tramite portatori sani e capace di causare
malfunzionamenti al sistema. E' ovvio che nel paragone con la parola organismo
si vuole intendere un blocco di codice, di istruzioni, fondamentalmente un virus
informatico è solo un programma, diverso da quelli “normali” - magari anche
un po' più intelligente- ma sempre un programma. Gli studi condotti sui virus
informatici finora hanno classificato e ripartito i parassiti in diverse specie:
la prima differenza è a livello generale, la seconda classificazione invece è
più specifica (riguarda il codice e le funzioni proprie del virus stesso).
I
CLASSIFICAZIONE
Un trojan non è
propriamente un virus, ma un programma distruttivo pronto
a esplodere. Con questo si
vuole intendere che, mentre lo scopo del virus è
cercare di restare nascosto
il più possibile e replicarsi, lo scopo del trojan è danneggiare
esplicitamente un sistema. Sono chiamati trojan perchè di solito vengono
distribuiti sotto false spoglie, magari fingendo di essere programmi ambiti o
molto ricercati dall'utenza. Famosi trojan horse furono quelli che reclamavano
il PKZIP300B.
Concetto più avanzato di
virus, si può definire come un virus che viaggia e si riproduce lungo le reti.
Il più famoso nella storia è quello di Robert Morris jr., giovane americano
che negli anni '80 riuscì a mandare in tilt migliaia di computer a causa della
duplicazione incontrollata del suo verme, che sfruttava un vecchio bug del
sendmail. Oggi non esistono ancora worm perfezionati a tal punto da propagarsi
così rapidamente, questo anche grazie ai numerosi e diversi sistemi presenti su
Internet, ma tuttavia Unix/Linux e Java sembrano
terreno fertile per lo
sviluppo dei worm.
I virus, studiati ormai da
anni, sono classificati in modo specifico in base al funzionamento.
II
CLASSIFICAZIONE
I- FLOPPY BOOT e MBR
VIRUS
Sono virus che infettano un
particolare settore dei dischi, quello iniziale, di avvio. Nei dischetti tale
settore contiene il codice che visualizza il famoso messaggio: "Disco non
di avvio / Sostituire il disco e
premere un tasto". Nel disco rigido invece si parla di Master Boot Record
(record di avviamento principale) meglio conosciuto come MBR. Furono i primi
virus ad essere creati e a diffondersi rapidamente, oggi in fase di estinzione a
causa dell'accesso 32-bit e 64-bit di Windows.
II- DOS-EXEC FILE VIRUS
Costituisce la stragrande
maggioranza dei virus, capaci di infettare i files eseguibili del
sistema operativo.
I loro bersagli preferiti
sono i file COM e EXE del DOS. Rientrano in questa categoria anche alcuni virus
che infettano i normali file BAT, facilmente scopribili. Oggi in via di
estinzione.
III- WIN-EXEC FILE VIRUS
Nuovi virus, che possono
infettare diversi tipi di oggetti:
NE-EXE
NewExecutable
File EXE per Windows 3.1 16-bit
SCR
ScreenSaver
File SCR per Windows 3.1 16-bit
PE-EXE
PortableExecutable
File EXE per Windows 95 32-bit
VXD
Device Driver
File VXD per Windows 95 32-bit
Esistono solo una
quindicina di virus di questo tipo, ancora non tanto perfezionati.
IV- MACRO VIRUS
La moda del momento, ovvero
i virus scritti in VBA (Visual Basic for Application). Sono virus
multipiattaforma (possono funzionare sia su sistemi Windows che su Macintosh) in
quanto non dipendono dal sistema operativo ma da una particolare applicazione
che consente l'uso di macro, cioè di comandi automatici. Ecco i programmi
suscettibili a questo tipo di infezione:
MS-WORD 6.0 - 95 - 97
File di tipo DOC
MS-EXCEL 5.0 - 95 - 97
File di tipo XLS
LOTUS AMIPRO
File di tipo SAM, SMM
esiste poi una categoria di
applicazioni "a rischio" ancora in fase di sperimentazione (Lotus
1-2-3) e in genere tutte le applicazioni che permettono l'uso di macro.
V- MULTIPARTITO
Quando un virus riesce ad
infettare diversi oggetti di quelli sopra elencati, si definisce multipartito.
Esempi:
Flip.2153
MBR + DOS-EXEC
Junkie.1027
FLOPPY + MBR + DOS-EXEC
Win.Apparition
WIN-EXEC + MACRO
Win.Ph33r
DOS-EXEC + WIN-EXEC
Esiste infine un'ultima
suddivisione, fatta in base alla tipologia di virus,
cioè guardando proprio le
funzioni e il codice interno del programma-virus.
III
CLASSIFICAZIONE
I- Virus COMPANION
Virus elementari, molto
facili da rimuovere che sfruttano un buco offerto dal DOS. Sotto DOS esiste una
grossa ambiguità quando si verifica una condizione simile: una directory
contiene 2 files (file.com e file.exe), lanciando il comando
"C:\>file" senza specificare null'altro, quale dei due files sarà
caricato prima? Ebbene il sistema Microsoft carica sempre prima i file COM
quando non viene specificata l'estensione, per cui è facile intuire come si
comportano i virus Companion:
- cercano un file .EXE
nella directory
- creano un secondo file,
con lo stesso identico nome ma con estensione .COM
- nascondono il file .COM
per ingannare l'utente (ATTRIB +H)
Quando l'utente digita
"file", crede di aver caricato "file.exe", mentre in realtà
non sa che è stato avviato il virus contenuto in "file.com" che di
certo avrà infettato un altro file.
II- Virus AZIONE DIRETTA
Si chiamano così perché
agiscono direttamente infettando i files delle directory. Ogni volta che un
programma infetto viene eseguito, il virus esegue una scansione dei files
presenti nella directory corrente (o in altre directory predefinite come C:\,
C:\WINDOWS) alla ricerca di possibili "vittime". Una volta trovato un
"ospite", il virus lo contagia e quindi passa ad eseguire il programma
originale per non destare i sospetti dell'utente.
III- Virus TSR
Categoria già più
complessa di virus, in quanto riesce a rimanere attiva, di nascosto, all'interno
del sistema operativo, sostituendo parti di esso. I virus TSR (Terminate and
Stay Resident) riservano una porzione di memoria per se stessi (solitamente
memoria alta) o sfruttano dei buchi di RAM non usati dal DOS dove potersi
copiare, quindi acquistano una priorità maggiore rispetto al sistema operativo
stesso per alcune operazioni "a rischio" come apertura di un file,
esecuzione di un file, rename, attrib, accesso a un dischetto, ecc.
Ognuna di queste operazioni
può essere intercettata dal parassita che prima di eseguire la vera procedura,
infetta l'oggetto in uso (file o dischetto).
IV- Virus STEALTH
Quando un virus è attivo
in memoria, può interferire col sistema operativo e può farlo anche bene. La
simbiosi può essere tale che il parassita prende il controllo totale su alcune
funzioni base del DOS. Tra le cose che un virus può fare ovviamente rientra la
capacità di far apparire tutto normale, cioè nascondere tutti i sintomi e i
segnali di allarme che possano farlo individuare. Questa tecnica è detta
"stealth" ed esistono varianti notevoli di questo furbo stratagemma:
SIZE HIDING
Se un virus “X” è
lungo 100 bytes, tutti i files infetti avranno la loro dimensione aumentata di
100 bytes. Un virus può intercettare il comando "DIR" e sottrarre il
valore 100 alla dimensione dei file infetti, facendoli sembrare non infetti
all'output del comando.
MBR STEALTH
Un virus che infetta l'MBR,
salva una copia del vecchio master boot record prima di sostituirlo con il
codice virale. Quando un antivirus va a leggere l'MBR, il parassita intercetta
la lettura e restituisce la copia originale salvata, mascherando l'infezione
presente.
CLEAN ON-THE-FLY
Il virus può intercettare
tutte le operazioni di lettura sui files e modificarne l'output. Se ad esempio
un programma prova a leggere un file infetto, il virus, attivo in memoria,
intercetta l'operazione e ripulisce il file prima della lettura, rendendolo
trasparente al controllo. Una volta finita l'operazione, il virus re-infetta il
file. E' questo uno dei metodi più efficaci, che riesce ad annullare anche i
controlli tramite CRC-checksum.
V- Virus ENCRYPTED
(cifrati)
Un virus è un programma
come tanti altri, quindi formato da righe di codice. Ogni virus viene infatti
identificato dall'antivirus attraverso una particolare sequenza di istruzioni in
linguaggio macchina (stringa) che è propria di ogni parassita. Questa stringa
non è altro che una serie di bytes, ognuno dei quali corrisponde ad una
istruzione assembler o a un testo particolare racchiuso nel virus. Ad esempio in
tutti i files infetti dal virus Tai-Pan.438 è possibile leggere questa stringa
"[Whisper presenterar Tai-Pan]", il che rende il virus
facilmente identificabile.
Meglio ancora è l'identificazione tramite il codice vero e proprio del virus:
tutti i files infetti dal virus Tai-Pan.438 infatti presentano le stesse
istruzioni.
Per evitare che il virus
sia riconoscibile tramite la stringa esadecimale presente nei files infetti,
questo si ricorre alla cifratura del codice.
Il virus non cifrato è
facilmente riconoscibile dalle istruzioni che lo compongono e anche dalla
stringa di testo presente al suo interno. Lo stesso virus, in forma cifrata,
diventa irriconoscibile, poiché ogni istruzione viene camuffata e trasformata
in un'altra totalmente diversa di significato; così anche il testo, diventa una
stringa incomprensibile. Inoltre il sistema di cifratura utilizza una chiave (di
solito 8/16-bit) che può essere fissa ma
anche variabile, cioè
mutevole ad ogni infezione. Questo significa che il corpo cifrato del virus
varia per ogni file infetto. Ovviamente in capo al virus deve esserci un
decifratore capace di riportare allo stato originale il codice del virus.
VI- Virus POLIMORFICI
Utilizzando la tecnica
della cifratura un virus diventa riconoscibile solo ed esclusivamente dal suo
motore crittografico, ma usando le opportune accortezze è possibile realizzare
dei parassiti che modificano questo motore cifrante ad ogni infezione. Così è
difficile che due files infetti dallo stesso virus risultino simili. Questa
tecnica, denominata polimorfismo, viene realizzata sia usando dei tools esterni
(MtE, TPE, DAME, DSCE, SMEG) che vengono collegati al corpo del virus, sia
scrivendo un proprio codice polimorfico all'interno
del virus.