Virus e Sicurezza informatica
Introduzione ai virus
Fino ad alcuni anni fa, nessuno si era mai preoccupato che il proprio computer potesse essere infettato da un virus.
Certo, esistevano, ma nella maggior parte dei casi se ne parlava senza troppa convinzione; gli unici che facevano
attenzione a questi programmi nefasti erano coloro che scambiavano software pirata o che utilizzavano i dischetti per
spostare file dal computer dell’ufficio a quello di casa.
Oggi la situazione è purtroppo ben diversa: grazie alle e-mail, ad Internet e soprattutto grazie alla facilità con la quale si
può creare un virus, questi pericolosi parassiti sono entrati a far parte della nostra vita di tutti i giorni.
I malicious code
Solitamente si tende ad utilizzare il termine virus per indicare una generica intrusione nel computer da parte di un
programma; ciò non è, però, esatto, dal momento che il termine “virus” indica solo una delle categorie di programmi
che rientrano sotto il nome di “malicious code” (codice maligno): si definiscono malicious code tutti quei programmi
che sono stati creati per invadere un altro computer per scopi fraudolenti. Questa denominazione raggruppa quindi non
solo i virus, ma anche programmi come i trojan e i worm.
I soggetti che dedicano il proprio tempo a creare questi programmi, possono essere distinti in craker e script kiddies: i
primi sono persone tecnicamente competenti che cercano soprattutto il brivido della sfida, i secondi, invece, sono figure
con competenze scarse, ma sufficienti per consentir loro di modificare il codice di un virus già esistente o per scaricare
uno di questi programmi per la creazione di virus accessibili su Internet (così è stato, ad esempio, per il famigerato
Anna Kournikova).
I diversi tipi di codice si sono classificati in base a come si comportano e si diffondono. All’inizio era abbastanza
semplice distinguere un virus da un worm o da un Trojan, mentre ora, l’evoluzione dei sistemi operativi e la diffusione
di Internet e della posta elettronica ha favorito la nascita di programmi molto pericolosi che non possono essere
classificati così facilmente.
I virus
Un virus è un programma che, ad insaputa dell’utente, si introduce nel computer e si replica, infettando dei file. Molti
virus (non tutti, per fortuna) includono anche un cosiddetto “payload”, ovvero una serie di azioni di disturbo, nocive o
fastidiose, che il codice del virus esegue sui sistemi che infetta.
La diffusione dei virus è legata alla copia dei file infetti.
- Virus da boot sector.
E’ il tipo più vecchio di virus: non infetta i singoli file, ma il settore di avvio dei dischi fissi e dei dischetti. Il settore di
avvio di un disco contiene alcune procedure di sistema eseguite automaticamente ogni volta che si utilizza quel disco
per avviare un computer; se il settore di avvio di un disco è infettato, il codice del virus sarà mandato in esecuzione ogni
volta che si utilizza quel disco per avviare un sistema, si caricherà automaticamente nella memoria di quel sistema e si
replicherà infettando tutti i dischi che saranno utilizzati su quel sistema. Se un floppy infetto è utilizzato per avviare un
altro computer, anche quel computer sarà contaminato.
Il primo virus che si è diffuso sui sistemi MS-DOS, nel 1986, è stato proprio un virus di boot sector, chiamato “Brain”; i
suoi successori più noti furono “Stoned” (1987) e Michelangelo (1991). Stoned non eseguiva alcuna azione pericolosa e
si limitava a visualizzare un fastidioso messaggio, mentre Michielangelo era distruttivo in quanto conteneva una
procedura che ogni 6 marzo cercava di sovrascrivere il contenuto di tutto il disco C con dei caratteri casuali.
- Virus da file.
Sono anche chiamati “virus parassiti” o “da contagio”: essi, infatti, infettano e sostituiscono i file eseguibili,
replicandosi ogni volta che il file infetto è mandato in esecuzione, cercando altri file da infettare e, molto spesso,
eseguendo anche alcune azioni distruttive.
Lo scenario più frequente di diffusione di questi virus è il seguente: un cracker crea il virus ed infetta un programma
freeware o shareware che pubblica su Internet; tutti gli utenti che scaricano il programma sul proprio computer e lo
mandano in esecuzione, consentono inconsapevolmente al virus di infettare alcuni dei file eseguibili e di caricarsi in
memoria in modo da infettare gli altri programmi che saranno mandati in esecuzione. Ogni qual volta, poi, l’utente
copia alcuni dei programmi residenti sul suo Pc (e quindi infetti) ad altri utenti, incrementa la diffusione del virus. La
catena descritta va avanti almeno fino a che il virus non rilascia il proprio payload sui computer che ha infettato: solo in
questo momento l’utente inizia a riscontrare tutta una serie di problemi sulla macchina.
Un esempio molto noto in ambito informatico, e non solo, è Chernobil, del 1998. Oltre a diffondersi infettando gli altri
file eseguibili di sistema, questo virus contiene un payload programmato per attivarsi il 26 di ogni mese, che prima
sovrascrive il primo megabyte del disco fisso e poi tenta di sovrascrivere anche il BIOS del sistema: anche per i meno
esperti, non è difficile comprendere come, dopo un simile trattamento, un computer sia praticamente inutilizzabile.
- Virus macro.
Una macro è un determinato insieme di istruzioni che permette di automatizzare l’esecuzione di una funzione di routine
all’interno di un’applicazione; le macro sono componenti comuni dei modelli e dei documenti prodotti e utilizzati da
alcune applicazioni di Microsoft Office, come Word ed Excel, e questo le rende un obiettivo molto allettante per gli
sviluppatori di virus.
Un virus macro è appunto una macro che contiene un insieme di istruzioni dannose, creata utilizzando i linguaggi di
programmazione per le macro, come Visual Basic di Microsoft, e inserita all’interno di un documento o di un modello,
aprendo il quale si manda in esecuzione i codice del virus macro, che per prima cosa infetta il modello di base utilizzato
da tutti i documenti di quell’applicazione e quindi esegue il suo payload.
La portata del payload di un virus macro non è limitata ai soli documenti dell’applicazione colpita, ma è la stessa delle
azioni consentite alle funzzioni di quell’applicazione; grazie alla forte integrazione che oggi esiste tra sistemi operativi e
applicazioni, poi, questi virus possono fare di tutto e possono arrivare a danneggiare anche il file di sistema.
I virus macro si differenziano dai virus da file perché non colpiscono i file eseguibili, ma i file di dati.
Il primo virus macro per Microsoft Word, chiamato “W.M.Concept”, è stato scoperto alla fine del 1994. Entro la fine
del 1995, i virus macro per Word ed Excel si erano diffusi in tutto il mondo. All’inizio del 1999, su uno dei newsgroup
di Usenet un utente pubblicò un messaggio che conteneva in allegato un documento Word 97. Senza saperlo, tutti gli
utenti che scaricarono e aprirono l’allegato furono infettati da un nuovo tipo di virus ibrido, diventato tristemente noto
come Melissa, che iniziò rapidamente a diffondersi in tutto il mondo utilizzando come vettore i sistemi di posta
elettronica. Nel giro di tre giorni, furono infettati più di 100.000 computer e da allora sono apparsi centinaia di virus che
nascevano come una semplice variazione di Melissa. Melissa è un ottimo esempio di virus macro, ma implementa un
meccanismo di diffusione tipico dei worm in quanto riesce ad aprire Microsoft Outlook e ad inviarsi automaticcamente
a tutti gli indirizzi contenuti nella rubrica.
I worm
Un worm è un programma dotato di un proprio payload, che si replica e si diffonde senza infettare altri file,
propagandosi attraverso le connessioni di rete, le e-mail e altri meccanismi di Internet. Molti worm si possono
diffondere anche senza l’intervento dell’uomo.
- Script worm
Sono creati utilizzando un linguaggio di scripting, come per esempio VBScript. Il propagarsi di questo tipo di worm ha
inizio, normalmente, da un allegato ricevuto per posta elettronica: aprendolo, l’utente attiva lo script ed infetta il
computer. Lo script sovrascrive tutti i file con una certa estensione (ad esempio, .jpg, .vbs, .mp3) e si duplica su un file
che gli permetta di essere eseguito automaticamente a ogni riavvio del sistema.
Oltre ad eseguire l’eventuale payload, il worm avvia Microsoft Outlook e si trasmette automaticamente come allegato email a tutti gli indirizzi contenuti nella rubrica.
- Worm Internet
Si diffondono attraverso i messaggi di posta elettronica, proprio come gli script worm, ma in più riescono ad
autoattivarsi e a diffondersi sfruttando le falle di sicurezza dei sistemi operativi, delle reti e di Internet. In questo modo,
si possono diffondere senza che nessuno li debba attivare.
Trojan
In perfetta analogia con il loro precedente mitologico, i cavalli di Troia sono programmi dall’apparenza innocente, che
nascondono intenzionalmente la loro natura maligna camuffandosi da giochi o da utilità. Diversamente dai virus , però,
i Trojan non si copiano all’interno di altri file o del settore di avvio e non possiedono un meccanismo di replica e di
diffusione.
- Backdoor Trojan
Sono programmi che modificano la connessione ad Internet o alla rete del computer sul quale sono installati e
consentono ad un cracker di accedere al sistema per caricare altri programmi ancor più pericolosi.
- RAT (Remote administration Trojan)
Sono una particolare categoria di backdoor Trojan, dai quali si differenziano per la loro capacità di fornire ai cracker il
completo controllo di un computer, permettendo loro di effettuare quasi tutte le operazioni possibili. Un buon esempio
di questi programmi è Subseven che utilizza la posta elettronica o i canali IRC per comunicare al cracker le coordinate
del computer permettendogli di accedere a più di cento funzioni amministrative.
Nella maggior parte dei casi, i cracker usano le macchine infettate dai loro Trojan come trampolino di lancio per
infettare o attaccare altre macchine, catturare password e altri dati e avviare attacchi DoS (Denial of Service), che
tentano di soprafare un particolare server attraverso il ripetuto invio di una gran quantità di richieste errate da parte di
più sistemi.