TIPI DI VIRUS
Si possono classificare i virus in base alle loro caratteristiche
e al modo in cui operano, di seguito sono presi in considerazione i principali
tipi di infezioni.
Virus di programma
Attaccano i file di programma, con estensioni .COM e .EXE, possono inoltre
infettare file che non sono programmi, ma che quando sono richiamati
eseguono applicazioni specifiche, per esempio file con estensioni .SYS,
.DLL, .OVL o .SCR. I programmi che vengono attaccati più comunemente
sono quelli DOS.
Come tutti i programmi, anche i virus devono essere creati per un sistema
operativo specifico, per cui sono in grado di infettare quel sistema
e non gli altri.
Sottoclassi di questa categoria sono i com infettori, gli exe infettori
e i sys infettori.
Virus "residenti" in memoria
Si installano nella memoria RAM infettando i file eseguiti, oppure aspettando
che siano soddisfatte determinate condizioni. Possono essere soprascrittori
o non soprascrittori. I soprascrittori modificano i file (“scrivono
sopra”) creando vari problemi di esecuzione.
Virus di file
Possiamo suddividere un file eseguibile in tre parti: header, date e
instructions. L’header è l’intestazione del file, dove si trovano
informazioni generali relative al file e un salto (jump) all’inizio
del codice, cioè alle istruzioni che costituiscono il programma
vero e proprio. Le istruzioni (instructions) sono eseguite dal sistema
operativo utilizzando i dati (date). Questo tipo di virus aggiunge il
proprio codice a quello del programma e modifica l’header, in modo che
le istruzioni eseguite siano quelle del virus. Una volta eseguite le
istruzioni infette, viene lanciato un altro salto che rimanda al codice
originale del programma. Quest’ultimo accorgimento serve affinché
l’utente non si accorga di ciò che è successo. Infatti,
all’utente sembra che il programma sia eseguito normalmente.
Fig. 01
Fig. 02
Boot Virus
Copiano i dati contenuti nel master boot record del disco fisso in altre
posizioni e inseriscono il proprio codice all’interno dell’MBR stesso.
In questo modo, ad ogni avvio del PC il virus viene eseguito automaticamente.
Alla fine del codice si trova un’istruzione che manda il controllo alla
copia del MBR (cioè a quello originale), in modo che il PC si
avvii in modo “normale”.
Virus companion
In una cartella del disco possono coesistere due file con lo stesso
nome, ma con estensione diversa. Per esempio, potremmo creare due file
programma con lo stesso nome, uno con estensione .EXE, l’altro con estensione
.COM. Quando viene chiamato il programma, il sistema operativo cerca
il file e ne trova due, la precedenza viene data al file con estensione
.COM. I virus companion sfruttano questa precedenza: cercano programmi
con file eseguibili .EXE e creano, nella stessa cartella, un file .COM
con lo stesso nome, con l’attributo nascosto (hide). Quando l’utente
richiama il programma, viene eseguito il file del virus (.COM), che
subito dopo richiama il vero programma (.EXE).
Virus del file system
Ogni disco, per essere utilizzato, ha bisogno di un file system. Il
file system è una tabella che rappresenta l’intero disco e nella
quale viene rappresentato ogni file registrato. Quando il sistema operativo
cerca un file, non controlla tutta la superficie del disco, ma verifica
la presenza del file nella tabella iniziale. Ogni riga della tabella
memorizza, tra le altre informazioni, il nome del file, il percorso
e la posizione “fisica” sull’hard disk. I virus del file system modificano
la tabella facendo puntare i file in posizioni diverse da quelle originali,
dove invece si trova il codice virale. Quando il sistema operativo cerca
di aprire un file, controlla nella tabella e legge la posizione (modificata
dal virus), legge i dati nella posizione indicata, quindi esegue il
codice del virus. Alla fine del codice si trova l’indirizzo originale
del file, in modo che questo venga caricato in memoria e l’utente non
si accorga di quello che realmente accade.
Virus di macro
Le macro sono procedure scritte in linguaggi di programmazione per eseguire
comandi di un programma, di solito sono utilizzate per eseguire operazioni
lunghe e ripetitive al posto dell’utente. Possono essere scritte direttamente
in un linguaggio di programmazione, di solito Visual Basic, oppure create
utilizzando strumenti dei programmi stessi (registrazione di macro).
Sono molto comuni nei programmi dell’Office (Word, Excel e Access).
Utilizzando le istruzioni del linguaggio di programmazione, è
possibile fare eseguire alle macro operazioni non volute e nascoste
all’utente, per esempio modifiche dei dati. Sono il tipo di virus più
facile da creare, ma anche il più facile da rimuovere.
Trojan
Consistono in file nascosti all’interno di programmi di utilizzo comune
e largo utilizzo per gli utenti. Per esempio, si potrebbe trovare un
gioco gratuito disponibile in rete che, una volta scaricato ed eseguito,
installa un programma client nel PC, comandato da un server remoto.
L’utente riesce a giocare, gratuitamente, e non si accorge del lavoro
sottostante: il client si connette al server remoto che può fargli
eseguire operazioni dannose, come cancellare i dati, formattare i dischi
o altre. Il client è il virus.
Bombe ANSI
Modificano il file config.sys, assegnando a tasti comunemente utilizzati,
o a combinazioni di tasti, stringhe di comandi che potrebbero risultare
dannose (per esempio format c:, del *.*).
Bombe logiche
Si tratta di routine, piccoli programmi, che sono eseguiti al verificarsi
di alcune condizioni prestabilite, come per esempio ad una data e un’ora
stabilite.
Worm
Si tratta di programmi che si riproducono rapidamente nella rete, cercando
tutti i sistemi connessi in rete, infettandoli. Lo scopo è quello
di saturare la rete, generare tanto traffico, in modo da degradare le
prestazioni o bloccare i sistemi stessi. Un worm famoso è
quello che si diffuse in Internet nel novembre 1988, diffondendosi in
poche ore su oltre 6.000 computer.
Residenza in memoria
I Terminate and Stay Resident sono programmi che si caricano in memoria
RAM, dove eseguono il loro codice. Devono essere eseguiti automaticamente
al boot del PC, oppure dall’utente. Quando il codice viene eseguito,
è in grado di prendere il controllo del sistema e di sfuggire
agli antivirus: una delle operazioni che di solito viene eseguita è
di terminare l’esecuzione degli antivirus, in modo da evitare la scansione.
Prendendo il controllo del sistema, sono in grado di “comandare” l’intero
PC.
Mimetizzazione (Stealth)
Sono virus che cercano di nascondersi alle rilevazioni, usando tecniche
quali l'intercettazione delle operazioni di lettura sul disco per fornire
informazioni corrette dei file infetti. Per esempio, quando un file
viene “contagiato”, le sue dimensioni in byte aumentano. Un modo per
verificare se il file è infetto è quello di controllarne
le dimensioni. È qui che intervengono questi virus, quando un
programma controlla le dimensioni del file, il codice del virus intercetta
il comando e risponde con le dimensioni precedenti all’infezione.
Alcuni virus, dopo aver infettato un file, ne modificano la voce corrispondente
nella FAT, in modo da far apparire inalterata la sua lunghezza; alcuni
virus di boot, in caso di controllo, restituiscono l’MBR originale,
nascondendo l’infezione.
Ad esempio, il virus Whale è un virus a stealth parziale. Esso
infetta i file di programma .EXE e altera le voci delle cartelle dei
file infetti quando altri programmi tentano di leggerle. Il virus Whale
aggiunge 9216 byte a un file infetto. Poiché i cambiamenti delle
dimensioni dei file sono indice della presenza di un virus, il virus
sottrae successivamente lo stesso numero di byte (9216) dalle dimensioni
di file indicate nella voce di directory/cartella per indurre l'utente
a credere che le dimensioni del file non sono cambiate.
Virus con cifratura del codice
I virus sono caratterizzati da stringhe di codice, che sono sempre uguali.
Gli antivirus possono cercare la stringa di codice corrispondente e,
di conseguenza, trovare ed eliminare il virus.
Per evitare di essere scoperti, alcuni virus cifrano il codice, in modo
che gli antivirus non possano trovare la stringa di codice. Questi virus
sono costituiti da una procedura di decifrazione e dal codice crittato.
Quando devono essere eseguiti, prima viene decifrato il codice, utilizzando
la procedura, poi viene eseguito il codice in chiaro. Nella fase di
infezione, il codice viene nuovamente crittato all’interno di nuovi
file.
Polimorfismo
Presentano caratteristiche simile ai precedenti, con l’aggiunta di una
procedura che modifica in modo casuale la routine di decrittazione,
dopo ogni infezione. Sono codificati il corpo del virus e il mutation
engine (generatore casuale degli algoritmi di codifica). Quando viene
eseguito un programma infetto, la routine di decrittazione (sempre in
chiaro) decodifica le parti cifrate del virus, permettendo l’infezione
di nuovi file. Durante il processo di infezione viene copiato, oltre
al codice, anche il mutation engine, che genera casualmente una nuova
procedura di cifratura.