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

 

- trojan horse

- virus

- worm          

 

TROJAN

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.

 

WORM

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.

 

VIRUS

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.