Blog Virus informatici

I Virus informatici

In Blog by gdimartino

I Virus informatici

Un virus, in informatica, è un software appartenente alla categoria dei malware che, una volta eseguito, infetta dei file in modo da fare copie di sé stesso, generalmente senza farsi rilevare dall’utente (da questo punto di vista il nome è in perfetta analogia con i virus in campo biologico).

Coloro che creano virus sono detti virus writer o hacker, che sfruttano le vulnerabilità di un sistema operativo arrecando danni al sistema, rallentando o rendendo inutilizzabile il dispositivo infetto.

I virus comportano comunque un certo spreco di risorse in termini di RAM, CPU e spazio sul disco fisso. Come regola generale si assume che un virus possa danneggiare direttamente solo il software della macchina che lo ospita, anche se esso può indirettamente provocare danni anche all’hardware, ad esempio causando il surriscaldamento della CPU mediante overclocking, oppure fermando la ventola di raffreddamento.

La parola virus è spesso erroneamente utilizzata in sineddoche per parlare di malware. Ne è un esempio il diffuso termine antivirus.

Un virus è composto da un insieme di istruzioni, come qualsiasi altro programma per computer. È solitamente composto da un numero molto ridotto di istruzioni, (da pochi byte ad alcuni kilobyte, per rendersi più difficile da individuare e facile da copiare), ed è specializzato per eseguire soltanto poche e semplici operazioni e ottimizzato per impiegare il minor numero di risorse, in modo da rendersi il più possibile invisibile. Caratteristica principale di un virus è quella di riprodursi e quindi diffondersi nel computer ogni volta che viene aperto il file infetto.

Tuttavia, un virus di per sé non è un programma eseguibile. Un virus, per essere attivato, deve infettare un programma ospite, o una sequenza di codice che viene lanciata automaticamente, come ad esempio nel caso dei boot sector virus. La tecnica solitamente usata dai virus è quella di infettare i file eseguibili: il virus inserisce una copia di sé stesso nel file eseguibile che deve infettare, pone tra le prime istruzioni di tale eseguibile un’istruzione di salto alla prima linea della sua copia ed alla fine di essa mette un altro salto all’inizio dell’esecuzione del programma. In questo modo quando un utente lancia un programma infettato viene dapprima impercettibilmente eseguito il virus, e poi il programma. L’utente vede l’esecuzione del programma e non si accorge che il virus è ora in esecuzione in memoria e sta compiendo le varie operazioni contenute nel suo codice.

Principalmente un virus esegue copie di sé stesso, ma può avere anche altri compiti molto più dannosi (cancellare o rovinare dei file, formattare l’hard disk, aprire delle backdoor, far apparire messaggi, disegni o modificare l’aspetto del video, installare altri malware, …)

Componenti di un virus

I virus informatici più semplici sono composti da due parti essenziali, sufficienti ad assicurarne la replicazione:

•             una routine di ricerca, che si occupa di ricercare dei file adatti ad essere infettati dal virus e controlla che gli stessi non ne contengano già una copia, per evitare una ripetuta infezione dello stesso file;

•             una routine di infezione, con il compito di copiare il codice virale all’interno di ogni file selezionato dalla routine di ricerca perché venga eseguito ogni volta che il file infetto viene aperto, in maniera trasparente rispetto all’utente.

Molti virus sono progettati per eseguire del codice estraneo alle finalità di replicazione del virus stesso e contengono dunque altri due elementi:

•             la routine di attivazione, che contiene i criteri in base ai quali il virus decide se effettuare o meno l’attacco (es. una data, o il raggiungimento di un certo numero di file infetti);

•             il payload, una sequenza di istruzioni in genere dannosa per il sistema ospite, come ad esempio la cancellazione di alcuni file o la visualizzazione di messaggi popup sullo schermo (gli adware sono malware che si specializzano nel far apparire banner pubblicitari su computer della vittima).

I virus possono essere criptati e magari cambiare algoritmo e/o chiave ogni volta che vengono eseguiti, quindi possono contenere altri tre elementi:

•             una routine di decifratura, contenente le istruzioni per decifrare il codice del virus;

•             una routine di cifratura, di solito criptata essa stessa, che contiene il procedimento per criptare ogni copia del virus;

•             una routine di mutazione, che si occupa di modificare le routine di cifratura e decifratura per ogni nuova copia del virus.

Modalità di diffusione

Ciò che distingue i virus propriamente detti dai worm è la modalità di replicazione e di diffusione: un virus è un frammento di codice che non può essere eseguito separatamente da un programma ospite, quindi si deve appoggiare ad un altro programma/eseguibile per essere attivato, mentre un worm è un software applicativo a sé, e nonostante sia più grande, non deve copiarsi in altri file, ma è sufficiente che sia eseguito. Inoltre, alcuni worm sfruttano per diffondersi delle vulnerabilità di sicurezza, e non dipendono quindi dal fatto di ingannare l’utente per farsi eseguire, infatti vengono eseguiti in automatico.

Prima della diffusione su larga scala delle connessioni ad Internet, il mezzo prevalente di diffusione dei virus da una macchina ad un’altra era lo scambio di floppy disk contenenti file infetti o un virus di boot (avvio). Il veicolo preferenziale di infezione è invece oggi rappresentato dalle comunicazioni e-mail e dalle reti di peer to peer (ad esempio e-Mule).

Ciclo di vita di un virus

I virus informatici presentano numerose analogie con quelli biologici per quello che riguarda il ciclo di vita, che si articola nelle fasi seguenti:

Creazione: è la fase in cui lo sviluppatore progetta, programma e diffonde il virus. Di solito i cracker per la realizzazione di virus utilizzano linguaggi di programmazione a basso livello (ad esempio l’assembly) in modo da ottenere codice virale di pochi centinaia di byte. La diffusione di pacchetti software che permettono anche ad utenti inesperti di creare virus pericolosissimi ha reso accessibile il procedimento di creazione anche a persone senza competenze.

Incubazione: il virus è presente sul computer da colpire ma non compie alcuna attività. Rimane inerte fino a quando non si verificano le condizioni per la sua attivazione;

Infezione: il virus infetta il file e di conseguenza il sistema

Attivazione: al verificarsi delle condizioni prestabilite dal cracker, il virus inizia l’azione dannosa.

Propagazione: il virus propaga l’infezione, riproducendosi e infettando sia file nella stessa macchina che altri sistemi.

Riconoscimento: l’antivirus riconosce un certo file come infetto. Tale riconoscimento può avvenire in più modi, a seconda di com’è fatto il virus e di quali algoritmi l’antivirus utilizza per la scansione del sistema e dei file che contiene. In casi particolari, se ad esempio il virus non è abbastanza diffuso, può non avvenire affatto, e quindi il virus può proliferare infettando sempre più file, e quindi diffondersi verso ulteriori PC.

Estirpazione: è l’ultima fase del ciclo vitale del virus. Il virus viene eliminato dal sistema: di solito questa fase non viene eseguita direttamente dall’utente, ma da un software antivirus che cerca di fermare in qualche modo l’infezione.