Virus

Vengono chiamati virus dei programmi in grado di produrre una copia di se stessi, e soprattutto, contenenti istruzioni capaci di arrecare danni al sistema nel quale vengono eseguiti.

I virus si possono classificare in tre modi: a seconda di come si diffondono, di quando si attivano o dell’effetto che provocano. La cosa più interessante è studiare il modo in cui si diffondono, sia per difendersi meglio sia perché ci portano a capire parecchie cose sul funzionamento del computer

Virus di file

E’ stata la prima generazione di virus. Questi virus infettano i files eseguibili, come ad esempio quelli con estensione .EXE oppure .COM.
Un file eseguibile è un programma in linguaggio binario: è composto cioè da una serie di istruzioni scritte nel linguaggio della CPU

Ogni eseguibile e' composto più' o meno da tre parti: una intestazione (header), contenente informazioni sulla lunghezza del programma, la sua allocazione in memoria, ecc..., una zona per i dati, ed una parte contenente le istruzioni vere e proprie (codice).

L’ header contiene un rimando (una istruzione di salto) all' inizio del blocco di istruzioni. Il virus modifica questo rimando in modo di farlo puntare alla fine del file, dove vengono inserite le istruzioni del virus, e, alla fine di queste, il virus rimanda al punto di inizio del programma originale.

Per combattere questo tipo di virus, gli antivirus sono dotati di un motore di scansione che rileva la presenza di questi rimandi fittizi e ne controlla la destinazione, cercando la presenza di una stringa di identificazione, (impronta virale) cioè la sequenza di istruzioni caratteristica di un dato virus. A tale scopo posseggono un elenco (database) contenente tutte le stringhe dei virus conosciuti.

La conclusione ovvia e' che, per poter essere efficace, un antivirus deve essere aggiornato periodicamente. Solo così sarà in grado di individuare i nuovi virus man mano che vengono scoperti. Per questo al giorno d'oggi molti produttori di antivirus offrono abbonamenti tramite i quali è possibile scaricare periodicamente da Internet l'aggiornamento del database dei virus.

Virus TSR

Questo tipo di virus una volta attivato rimane presente nella memoria del computer (Terminate and Stay Resident) assumendo quindi il controllo del computer, e infettando tutti gli altri programmi che entrano in esecuzione.

Inoltre il virus può facilmente intercettare le azioni dell’ antivirus impedendogli di rilevare l’infezione in atto. Questi virus contagiano preferibilmente le componenti principali del Sistema Operativo (tipicamente il COMMAND.COM, interprete dei comandi in madalità carattere) perché sono quelle che vengono caricate per prime, ed agiscono intercettando alcuni tipi di interrupt del sistema: questi interrupt sono i segnali che la CPU riceve dalle altre componenti del computer per la sincronizzazione, e sono quindi indispensabili per il funzionamento del computer. Nei sistemi Intel, sono previsti 16 segnali di interrupt hardware, ad ognuno dei quali è associata la routine del sistema operativo adatta. Il virus residente in memoria può intercettare i segnali di interruzione e sostituire le sue routine a quelle originali, entrando in azione ogni volta che si verifica un determinato interrupt.

Se l'interrupt usato dal virus è associato ad un dispositivo periferico, ed il virus non provvede a richiamare la routine di sistema giusta dopo la sua esecuzione, la sua presenza può essere rivelata da un improvviso (e inspiegabile) malfunzionamento della periferica stessa. Questo non ha nulla a che vedere con l'azione dannosa che il virus eserciterà in seguito sul computer; è solo una conseguenza del contagio.

Anche molti antivirus sono di tipo TSR: vengono caricati in memoria per mezzo dei file di inizializzazione del sistema e sorvegliano le operazioni del computer. Di solito possiamo vederne l'icona nella systray, cioè la parte a destra della barra delle applicazioni di Windows, (dove c'è l'orologio) che segnala appunto la presenza delle utility caricate nella memoria del computer e pronte per essere richiamate. L'antivirus viene attivato da operazioni 'sospette' come la modifica dei file eseguibili, e provvede a bloccare tali operazioni lanciando messaggi di avvertimento.

La lotta tra virus e antivirus di questo tipo si risolve quasi sempre a favore del primo dei due che riesce a prendere il controllo del computer: questo può infatti facilmente intercettare o ingannare l’ altro programma. Per 'disinfettare' un computer affetto da questo tipo di virus è indispensabile riuscire ad eseguire l'avvio del sistema in maniera 'pulita', cosa in genere ottenibile mediante un dischetto di avvio.

Virus polimorfi

Questo tipo di virus (detto anche mutante) usa tecniche piuttosto sofisticate per modificare la propria impronta virale. Si parla quindi di ceppi di virus, che possono produrre centinaia o migliaia di varianti che dal punto di vista dell’esecuzione funzionano tutte nello stesso modo, ma sono però più difficilmente identificabili dagli antivirus.


Per identificarli, gli antivirus usano tecniche euristiche, (probabilistiche) cercano cioé di identificare una serie di istruzioni che, se si trovano in sequenza nello stesso programma sono sospette e vengono quindi segnalate. L' utente deve poi decidere come comportarsi se cioè ignorare l'avvertimento oppure cancellare il file che ha causato il problema.

Virus companion

I virus di tipo companion infettano i file eseguibili con una particolare tecnica: creano una copia di se stessi con lo stesso nome del file .EXE da infettare, ma con estensione .COM. In ambiente MsDos, infatti, se nella stessa directory sono presenti 2 file con lo stesso nome, uno con l' estensione .COM, e l' altro con l' estensione .EXE, il sistema esegue sempre il file con estensione .COM prima.

Quindi, se viene lanciato il file eseguibile PIPPO.EXE, il sistema utilizzerà il file PIPPO.COM (che non esisteva originariamente in quanto si tratta del virus). Questo a sua volta giunto al termine delle istruzioni, provvederà ad attivare il file giusto, in modo che l’utente non si accorga del trucco.

Inoltre spesso i file .COM creati dal virus hanno l’attributo di invisibilità in modo che la loro presenza sul disco non venga rilevata.

Ovviamente questo tipo di virus non si diffonde in ambiente Windows, dove l’utente clicca direttamente sull’icona del file che intende avviare, a meno che il programma non ne richiami altri con tecniche di tipo DOS

Una volta individuato, un virus di questo tipo è abbastanza facilmente riconoscibile dalla sua impronta virale: infatti lascia sul disco tante copie di se stesso. Un utente abbastanza esperto può facilmente rilevarne la presenza semplicemente controllando di tanto in tanto il contenuto del proprio disco fisso. Non sempre però è altrettanto facile liberarsene, perché spesso si tratta anche di virus di tipo TSR. Inoltre l'eliminazione del 'compagno' a volte causa un malfunzionamento nel programma originale, che è stato modificato dal virus.

Virus del file system

Questo tipo di virus modifica la F.A.T. (File Allocation Table) del sistema. La FAT contiene l' indice degli indirizzi dei files, e serve a creare una corrispondenza tra gli indirizzi come li vediamo noi (nomi e cartelle e di file) e la loro allocazione fisica (il posto che occupano) sul disco. Quando lanciamo un programma che è memorizzato sul disco, il computer consulta la FAT per vedere in quale settore del disco andare a leggere e caricare le istruzioni.

Il virus la modifica in modo da essere eseguito prima del programma originale, poi recupera l’indirizzo del programma ‘vero’ da una zona del disco o della memoria in cui conserva la copia della FAT originale. Nel frattempo riesce ad infettare qualunque dischetto impiegato sul PC.

Ogni comando che interroghi il sistema per la visione dello stato dei file e delle cartelle, viene intercettato dal virus che provvede a mostrare lo stato dei puntatori originali, nascondendo così la propria presenza.


Alla loro prima apparizione virus del genere fecero vere stragi di computer, ma una volta compreso il meccanismo dell'inquinamento gli antivirus riuscirono presto a bloccare l'infezione che stava dilagando. In effetti bastava controllare l'area di memoria RAM riservata al sistema operativo per intercettare la presenza di una copia pirata della FAT. L' antivirus può tentare di ripristinare la copia originale della FAT, e successivamente è consigliabile effettuare una scansione (scandisk) del disco infetto per rilevare e correggere eventuali errori. Non sempre l'operazione va a buon fine senza perdita di dati.

Virus di boot

Questo tipo di virus ha lo scopo di assumere il controllo del PC nel momento stesso in cui viene letto il disco di avviamento per caricare il sistema operativo.

Ogni disco o dischetto è suddiviso in tracce e settori. Nella traccia zero (quella più esterna) sono scritte le informazioni fondamentali del disco (MBR - Master Boot Record) e in uno dei suoi settori (record di avvio) risiedono anche le istruzioni di base per l'avviamento del PC con il relativo sistema operativo. Quando si accende il computer, la CPU cerca delle istruzioni da eseguire: queste si trovano nel BIOS (Basic Input Output System) registrate in maniera permanente.

Una volta completata la sequenza di avvio, il BIOS deve cedere il controllo al Sistema Operativo: quindi andrà a leggere innanzi tutto le istruzioni contenute nella traccia zero del disco o del dischetto (o del CDROM) indicato come unità di bootstrap (avviamento). Qui si può trovare il programma loader (caricatore) opure direttamente il nucleo del Sistema Operativo da caricare (nel caso di Windows, il file IO.SYS)

Il boot virus agisce spostando il blocco di istruzioni necessarie all' avvio del sistema operativo (record di avvio) in una zona diversa del disco. Successivamente copia se stesso nella zona che precedentemente conteneva il record di avvio. L' ultima istruzione del virus sarà quella che rende nuovamente disponibile il vero record di avvio al sistema.

In questo modo il virus viene attivato ad ogni avvio della macchina.

Il contagio avviene se si lascia un floppy disk infetto nel PC spento. Alla prossima accensione il computer avvierà il virus che rimarrà residente e infetterà immediatamente il disco fisso. Alle successive accensioni, sarà lo stesso disco fisso che, inquinato, porrà il virus residente in memoria, e infetterà a sua volta altri dischetti.

La presenza di tali virus è rilevabile dalla loro impronta virale, che si trova nel settore di avvio o in altra zona del disco. Se però il virus ha preso per primo il controllo del sistema sarà in grado di manipolare l’antivirus in modo da non essere identificato; prima di effettuare la scansione bisognerebbe aver avviato il computer con un dischetto ‘pulito’.

La maggior parte degli antivirus attua una politica di prevenzione di questo tipo di infezioni, intercettando tutti i tentativi di modificare la traccia zero del disco fisso; lo stesso tipo di protezione viene offerta anche a livello di BIOS. Ovviamente è necessario disattivarla qualora di desideri formattare l’ HD, partizionarlo o installare un aggiornamento del Sistema Operativo.

Liberarsi dal virus può essere facile: se sull' HD è presente una copia integra del MBR, può essere ripristinata con l'istruzione fdisk /mbr. Questa istruzione è però anche molto pericolosa: se la copia del MBR non è integra oppure non è aggiornata, verrà perso il contenuto dell'intero HD. Meglio ricorrere alle funzioni dell' antivirus, se quest'ultimo offre la possibilità di salvare e ripristinare il settore di avvio.

Virus multiparti


Di dicono virus multiparti, o multipartito i virus che usano più di una tecnica di duplicazione. La tecnica più diffusa è quella di infettare sia gli eseguibili che il settore di avvio, in modo da ottenere una diffusione più efficace

Senza entrare nei particolari è ugualmente evidente che l'intercettazione, l'individuazione e soprattutto la rimozione di virus del genere diventano più difficili e laboriose.

Cavalli di troia


Questo tipo di programma, detto in inglese Trojan Horse non è un vero e proprio virus, in quanto non è in grado di replicarsi, ma è abbastanza pericoloso. Non è infatti identificabile, perché è un vero e proprio programma e non ha istruzioni sospette dovute al tentativo di duplicarsi: semplicemente quando viene avviato procede ad operazioni di danneggiamento.

In genere viene distribuito su Internet o nelle BBS (Bullettin Board System) sotto mentite spoglie di utility o giochi shareware o freeware.

Virus di macro

Mentre tutti i virus che abbiamo visto precedentemente sono programmi, e quindi possono agire solo se in qualche modo vengono eseguiti, questa, che è una delle ultime generazioni di virus, si diffonde attraverso documenti di testo o fogli elettronici, sfruttando le caratteristiche di certi programmi come Word o Excel.

Questi pacchetti applicativi contengono un apposito linguaggio (Visual Basic per Application - VBA) che può' essere utilizzato per creare delle macro (gruppo di istruzioni) da associare ai documenti. Queste istruzini servovo ad eseguire automaticamente alcune operazioni, per agevolare l'utente.

Il virus in questo caso prende la forma di una macro contenente operazioni distruttive.

Un modo per combattere questi virus è disattivare le macro dai documenti, se non si ha intenzione di usarle. Se invece le macro servono, è necessario avere un antivirus aggiornato, perchè in genere questi virus si riconoscono dall'impronta virale.

Virus dei CMOS

Un tipo di virus pericolosissimo è quello che va a modificare i dati dei CMOS. (Complementary Metal-Oxide Semiconductor). Con la tecnologia CMOS vengono oggi simulate alcune memorie EPROM, cioè le memorie permanenti ma riscrivibili che servono a tenere memorizzati i dati essenziali per l'avviamento del PC.

P.ES: la quantità di RAM disponibile, il tipo di disco fisso, il tempo dell'orologio interno e anche la sequenza di avvio del S.O.
N.B.: Non si tratta del programma BIOS ma delle informazioni di cui il BIOS ha bisogno al momento dell' avvio.

Con la tecnologia CMOS le EPROM vengono sostituite da normali memorie alimentate a batterie ricaricabili di lunga durata. In questo modo le informazioni sono facilmente riscrivibili ma rimangono allo spegnimento del computer.

La lettura dei CMOS è un'operazione che precede l' accesso al disco fisso o ai dischetti per il caricamento del Sistema Operativo, quindi il virus assume un completo controllo del sistema.

Una tecnica di diffusione molto sottile è quella di modificare la sequenza di avvio in modo che il S.O. parta sempre dal disco fisso (ovviamente questo viene infettato con la stessa tecnica dei virus di boot).

In questo modo ad ogni accensione il BIOS legge il contenuto della memoria CMOS e avvia il PC attraverso il disco fisso. Appena il disco fisso viene letto, il virus ivi contenuto si pone TSR e controlla l'esistenza di un dischetto nel drive A: in questo caso procede con le normali operazioni di caricamento, ma a questo punto il virus è già padrone del sistema.

Così l’utente che esegue l'avviamento con un dischetto di sistema pulito, avrà l'impressione che tutto funzioni normalmente e sarà certo di aver impedito ogni possibilità d' installazione in memoria a un eventuale virus. Un esame del disco fisso, anche se effettuato dopo l’ avviamento col dischetto di sistema pulito, non rileverà nessuna anomalia; il virus infatti, già TSR, farà apparire la traccia zero originale e non quella infetta mentre, nei casi più sofisticati, farà addirittura apparire una mappa della memoria, quale sarebbe se non fosse residente.

Gli antivirus più evoluti, come abbiamo visto, riescono a rilevare le variazioni del Master Boot Record; inoltre anche nei BIOS più recenti è presente una opzione antivirus che inibisce questa operazione. In questo modo è possibile attivare una politica di prevenzione contro il contagio del computer fin dalla prima volta che viene a contatto col virus.
Qualora infatti questo virus prendesse possesso della macchina risulta tutt’altro che semplice rilevarlo a posteriori.

Per liberarsene è necessario disporre di un dischetto di avvio 'pulito' (come del resto in molti altri casi). Per prima cosa bisogna ripristinare le opzioni originali del BIOS, poi tentare di ripristinare l' MBR, come visto in precedenza.

A volte l' azione di danneggiamento del virus può essere rivolta alla cancellazione dei CMOS: azzerando i dati viene impedito il riconoscimento dell'esistenza stessa di un disco fisso; in questo caso il computer resterà bloccato alla partenza. Questa operazione, che può gettare nel panico un utente inesperto, non è in realtà molto dannosa: è sufficiente ripristinare i valori di default memorizzati nelle EPROM (di solito il BIOS offre questa possibilità) e modificarli eventualmente riadattandoli alla propria configurazione.

Virus extratraccia

I virus Extra Traccia si nascondono nelle tracce più centrali del disco, quelle che normalmente non vengono usate perché, essendo di circonferenza troppo piccola, richiedono una eccessiva densità di scrittura.

Questi virus tendono a provocare guasti hardware alle macchine. Poiché obbligano il computer ad andare a leggere oltre l'ultima traccia del disco a ogni esecuzione di programma o a ogni richiesta di scrittura, provocano lo sbattimento continuo delle testine sul meccanismo di fine corsa e dopo qualche tempo il driver risulterà danneggiato o comunque si avrà un blocco, rimovibile soltanto con un intervento manuale e specializzato sulle testine stesse del disco.

Questi virus non vengono rilevati alla scansione perché gli antivirus agiscono normalmente solo nell’area del disco che viene formattata dal S.O. e non esternamente; ovviamente l’antivirus non ha nessun interesse a danneggiare il computer.

Attualmente non mi risulta sia stata escogitata una politica soddisfacente per combatterli; inibire del tutto le operazioni extra-traccia non sembra una via praticabile, perché la geometria dell' HD può variare, ed inoltre viene trattata a livello di BIOS in maniera virtuale; inoltre alcune utility possono fare uso della riserva di spazio non formattato fornito dai settori extra-traccia. Infatti le letture o scritture occasionali non danneggiano le testine, a meno che la frequenza non sia volutamente anomala.

E' possibile naturalmente riconoscere l'impronta virale presente nella memoria RAM quando il virus è attivo, qualora non usi tecniche di polimorfismo per mascherarsi.


Virus di posta elettronica

Negli ultimi anni uno dei veicoli preferenziali dei virus è diventata la posta elettronica. Nel caso più semplice il virus diffuso con questa tecnica è semplicemente un programma eseguibile, che una volta attivato produce dei danni (di solito cancella il disco fisso). Una tecnica più raffinata consiste nello spedire virus di file o multipartito, che non si attivano subito ma diffondono il contagio nel computer infetto.
In questo caso si cerca di fare in modo che il computer a sua volta spedisca automaticamente il virus a tutti gli indirizzi di posta elettronica trovati nel guestbook: per gestire la situazione è necessario un virus di tipo TSR.

Un virus di questo genere è il famoso I love you: interessante da esaminate perchè usa tecniche di programmazione abbastanza nuove, legate a linguaggi di scripting e una buona conoscenza dell'ambiente Windows.

Per circolare insieme alla posta elettronica, che ha un formato ASCII standard, il virus, che invece ha formato binario, deve viaggiare come allegato: per questo motivo è sufficiente non aprire gli allegati dei messaggi per non prendere il contagio.

Alcuni virus riescono però ad interferire con i programmi di posta, facendo in modo che l' apertura dell' allegato sia automatica: questo è possibile particolarmente con OutLook, sfruttando una prerogativa del programma, che consente di inserire nelle intestazioni dei messaggi delle istruzioni che poi il computer esegue.

Una volta scoperto il problema, sono state create delle patch di correzione per OutLook: bisogna comunque tenere presente che questo è il programma di posta preferito da tutti gli autori di virus, dato che si trova già compreso nelle ultime distribuzioni di Windows e viene automaticamrente installato come client di posta per default.

L’attivazione

Il virus di solito ha interesse a rimanere nascosto per un certo periodo, in modo da poter diffondere l’infezione. Ovviamente il periodo di latenza non è illimitato, ad un certo punto deve scattare l’azione di danneggiamento.

Vi sono essenzialmente tre tecniche per l’attivazione: l’uso di un contatore o il controllo della data del computer, o l’attesa di una combinazione di eventi.

Nel primo caso (virus a contatore) il virus usa un contatore che scatta ogni volta che riesce a duplicarsi, oppure ogni volta che viene caricato se è TSR, oppure ogni volta che riesce ad infettare un nuovo dischetto se è un virus da boot; la scelta dipende ovviamente dal virus writer.

Quando il contatore arriva ad un determinato valore (ad esempio 100) scatta la seconda parte del programma, quella di danneggiamento

Altri virus si attivano invece in una determinata data, (virus a data) o ad una certa ora del giorno; sono noti con nomi pittoreschi come il virus di San Valentino, o quello di Chernobil (che è uno dei più distruttivi) ... Praticamente ce n’è più di uno per ogni giorno dell’anno, quindi è inutile cambiare la data del computer (cosa che andreabbe comunque fatta il giorno prima) per evitarli.

I virus a combinazione sono attivati invece da una determinata sequenza di eventi (lettura di un certo file e successivamente creazione di una nuova cartella ... la scelta è molto varia, ma si tratta di solito di operazioni sul disco o sui file.

Il danno

Finora sono stati trattati prevalentemente i modi in cui si sviluppa l'infezione, e solo accennato al danno finale per il quale è programmata una gran parte di virus. Esso può consistere nel semplice danneggiamento dei programmi infetti; nel progressivo o istantaneo deterioramento della F.A.T.; nella sovrascrittura di settori di disco più o meno importanti; nella progressiva crittografia del disco; nella distruzione del contenuto di memorie riscrivibili in genere; nella modifica minima (solo qualche byte) del contenuto del disco fisso, effettuata a ogni avviamento e così via.

Ogni azione è mirata a colpire secondo uno scopo preciso. Per esempio, la distruzione del contenuto di un disco fisso provocherà un danno spesso irreparabile a chi non fa uso di regolari backup: si tratta quindi di un'azione mirata a colpire mediamente i piccoli utenti finali e gli utilizzatori di singoli PC; la stessa distruzione invece provocherà un danno ingente, ma non irreparabile, a coloro che usano un regolare ciclo di backup, come le grandi aziende, gli istituti e comunque strutture o utenti singoli bene organizzati.

Per contro un'azione virale distruttiva che provochi la progressiva modifica minima del contenuto di un disco è mirabile e penalizzerà fortemente proprio costoro. Sarà difficilissimo risalire al momento in cui si sono avute le prime variazioni e l'integrità dei backup conservati sarà da considerare fortemente compromessa e comunque inaffidabile.
È evidente che, per quanti hanno necessità di una rigorosa sicurezza dei dati elaborati ogni giorno, virus del genere sono assai più nocivi di un inquinatore che si "limita" a distruggere all'istante un disco fisso.

Particolarmente pericolosi sono poi i virus extratraccia o i virus dei CMOS: possono infatti arrivare a causare l'arresto completo del computer, con un danno che può non essere riparabile solo con un intervento software: è possibile che il disco rimanga danneggiato anche fisicamente e sia necessario sostituirlo, oppure è possibile cancellare non solo i dati. Anche in questo caso il virus mira prevalentemente a colpire l'utente privato piuttosto che le grandi aziende, per le quali la spesa per la riparazione hardware non è lontanamente equiparabile a quella del recupero di ore di lavoro di numerosi impiegati.

Per quanto riguarda le grandi aziende bisogna anche ricordare che i computer di fascia più alta non usano in genere sistemi Windows (qualche eccezione per NT Server o Windows 2000 Server) ma sistemi Unix, che in genere sono meglio protetti ed anche meno attaccati da virus.

Precauzioni

In questa situazione è molto difficile evitare di venire a contatto prima o poi con qualche virus, specialmente per chi naviga in Internet o fa abitualmente scambio di programmi.

Alcune precauzioni ragionevoli da prendere sono:


Fonti:

Virus e Antivirus: gli sviluppi di un confronto

© 1998 Belluco Riccardo and Stefano Biella

All Rights Reserved.