Successivo: Struttura del Boot virus
Su: Classificazione e Struttura dei
Precedente: Classificazione e Struttura dei
I virus possono essere suddivisi con riferimento ai seguenti attributi [Kas95]:
- il media di residenza del virus;
- il metodo di infezione;
- le capacità di distruzione;
- le caratteristiche dell'algoritmo del virus;
A seconda del media di residenza i virus possono essere divisi in network virus, file virus e boot virus. I network virus si diffondono attraverso le reti, i file virus nei file, i boot virus nei Boot Sector o nei Master Boot Record (MBR). Ci sono anche combinazioni di queste caratteristiche, per esempio, i virus multipartiti [Hof96] infettano sia i file che i boot sector. Inoltre, spesso questi virus attuano delle tecniche dette di polimorfismo e di stealth.
I metodi di infezione sono differenti a seconda che il virus è di tipo residente o di tipo non residente. I virus residenti in memoria dopo aver infettato il computer lasciano nella RAM la loro porzione residente che in seguito intercetterà le system call che manipolano il file system ed i dischi. I virus residenti stanno in memoria e sono attivi finché il computer non viene spento o riavviato. I virus non residenti in memoria non infettano la RAM poiché sono attivi solo durante il lancio di un programma infetto.
In accordo alle loro capacità distruttive, i virus possono essere divisi in [Kas95]:
- innocui, sono quei virus che non affligono le operazioni del computer, come risultato della loro propagazione si ha solo una diminuzione dello spazio libero sul disco;
- non dannosi, sono quei virus la cui influenza si manifesta solo con una diminuzione dello spazio libero sul disco, col mostrare grafici, suoni o altri effetti;
- dannosi, sono quei virus che possono causare dei problemi alle normali operazioni del computer;
- molto dannosi, sono quei virus il cui unico scopo è fare dei danni difficilmente recuperabili come: la distruzione dei programmi, la cancellazione di informazioni vitali per il sistema (formattazione di porzioni del disco);
Inoltre, i virus sono come gli altri programmi: un errore nella loro programmazione può causare danni al sistema anche se l'autore del virus non li ha previsti esplicitamente. Ad esempio, un virus fondamentalmente innocuo come ``DenZuk'' [Hof96] lavora correttamente con dischetti da 360K, ma può cancellare alcune informazioni su dischetti più grandi rendendoli di fatto inutilizzabili.
Analizzando le caratteristiche algoritmiche si possono distinguere i gruppi di virus seguenti:
- companion, sono file virus che non cambiano la grandezza dei file. L'algoritmo di lavoro di questi virus è creare dei file ``compagni'' dei file eseguibili con estensione EXE, che hanno lo stesso nome, ma con estensione COM. Per esempio, per il file XCOPY.EXE è creato il file XCOPY.COM. Il virus scrive se stesso come file COM e non cambia il file EXE in questo modo infettato. Quando l'utente lancia il programma dalla linea di comando, scrivendone semplicemente il nome, il DOS cerca ed esegue il file COM, cioè il virus, che a sua volta lancerà il file EXE. Il virus non fa altro che sfruttare la caratteristica del DOS che cerca dapprima il file che abbia quel nome con estensione COM, poi se non esiste un tale file lo cerca con estensione EXE ed infine con estensione .BAT [Wil93].
- parasistic, sono tutti i virus che non sono companion e che diffondendo le loro copie cambiano i contenuti dei file o delle aree di sistema.
- stealth, sono quei virus che sembrano invisibili, che cioè usano delle tecniche
raffinate per nascondere la loro presenza sia all'utente sia ai programmi antivirus. Inoltre,
non infettano i file servendosi delle system call del sistema operativo. Alcuni virus di questo genere,
quando sono residenti in memoria, sono capaci di alterare l'output del comando DIR in modo
che la dimensione dei file infetti non risulti aumentata. Chiaramente se il virus non è residente,
utilizzando il comando precedente si rilevano dei file che hanno una dimensione più grande di
quella originaria (cfr. 5.4).
- polymorphic, sono quei virus che sono abbastanza difficili da rilevare, poiché non hanno una firma, cioè non contengono blocchi costanti di codice. In molti casi due istanze dello stesso virus non hanno blocchi di codice simili. Ciò è ottenuto cifrando le routine principali del virus e modificando l'aspetto, ma non la funzionalità, della routine di decifratura.
Per infettare un file, un virus deve eseguire alcune azioni atte a mascherare e velocizzare la
sua diffusione. Una di queste azioni è la gestione dell'attributo read-only, che si
deve resettare prima dell'infezione e ripristinare dopo. Molti file virus leggono la data
dell'ultima modifica del file, la conservano e dopo l'infezione la ripristinano. Per mascherare la
loro diffusione alcuni virus agganciano un interrupt del DOS, chiamato quando si tenta di scrivere
su un disco protetto da scrittura (INT 24h), in modo da evitare la stampa del avviso
``Disco protetto dalla scrittura''. La velocità di propagazione di un virus può anche essere
una sua caratteristica algoritmica, infatti, un virus può scegliere di infettare un file solo
quando viene eseguito, di infettare un file quando viene aperto, rinominato o quando il sistema operativo
gli cambia data, ora, o attributi.
Successivo: Struttura del Boot virus
Su: Classificazione e Struttura dei
Precedente: Classificazione e Struttura dei
Aniello Castiglione e Gerardo Maiorano < anicas,germai@zoo.diaedu.unisa.it >