Un virus è un piccolo programma informatico posto nel corpo di un altro che, quando lo si esegue, si carica nella memoria ed esegue le istruzioni che il suo autore ha programmato. La definizione di un virus potrebbe essere la seguente: «Qualsiasi programma per computer capace di infettare un altro programma per computer modificandolo affinché possa riprodursi a sua volta ».
Il vero nome dato ai virus è CPA ossia Codice Auto-Diffondibile, ma per analogia al settore medico, gli è stato dato il nome di "virus". I virus residenti (detti TSR in inglese per Terminate and stay resident) si caricano nella memoria viva del computer per infettare i file eseguibili lanciati dall'utente. I virus non residenti infettano i programmi presenti sul disco rigido alla loro esecuzione.
Il campo di applicazione dei virus va dalla semplice pallina da ping-pong che attraversa lo schermo al virus distruttore di dati, forma più pericolosa. Così, dato che esiste una vasta gamma di virus con azioni diverse, i virus non sono classificati secondo i loro danni ma secondo la loro modalità di diffusione e infezione. Si distinguono differenti tipi di virus:
Gli worm sono dei virus capaci di diffondersi attraverso una rete;
I cavalli di Troia (trojan) sono dei virus che permettono di creare una falla in un sistema (generalmente per permettere al suo ideatore di introdursi nel sistema infetto per assumerne il controllo);
Le bombe software sono dei virus capaci di scatenarsi in seguito ad un evento particolare (data di sistema, attivazione a distanza, ecc.).
Da qualche anno è comparso un altro fenomeno, si tratta degli hoax, cioè di annunci ricevuti per mail (ad esempio l'annuncio della comparsa di un nuovo virus distruttore oppure la possibilità di vincere un telefono cellulare gratuito) accompagnati da una nota che precisa di inoltrare la notizia a tutti i conoscenti. Questa procedura ha lo scopo di ingorgare la rete, nonché di disinformare.
Un antivirus è un programma capace di rilevare la presenza di virus su un computer e, se possibile, di disinfettarlo. Si parla allora di sradicamento del virus per designare la procedura di pulizia del computer. Esistono più metodi di sradicamento:
L'eliminazione del codice corrispondente al virus nel file infetto;
L'eliminazione del file infetto;
La messa in quarantena del file infetto, che consiste nello spostarlo in un luogo dove non può essere eseguito.
I virus si riproducono infettando delle «applicazioni host», cioè copiando una porzione di codice eseguibile all'interno di un programma esistente. Ora, per non avere un funzionamento caotico, i virus sono programmati per non infettare più volte lo stesso file. Questi si integrano quindi nell'applicazione firma virale. Gli antivirus si basano quindi su questa propria firma ad ogni virus per rilevarli. Si tratta del metodo di ricerca della firma (scanning), il metodo più vecchio usato dagli antivirus.
Questo metodo è affidabile soltanto se l'antivirus ha una base virale aggiornata, cioè con le firme di tutti i virus conosciuti. Tuttavia questo metodo non permette il rilevamento dei virus non ancora repertoriati dagli editori di antivirus. Si tratta di «virus polimorfi».
Alcuni antivirus usano un controllore di integrità per verificare se i file sono stati modificati. Il controllore di integrità costruisce quindi un database con le informazioni sui file eseguibili del sistema (data di modifica, dimensione ed eventualmente una somma di controllo). Così, quando un file eseguibile cambia le caratteristiche, l'antivirus avverte l'utente della macchina. Il metodo euristico consiste nell'analizzare il comportamento delle applicazioni per rilevare un'attività simile a quella di un virus conosciuto. Questo tipo di antivirus può quindi rilevare dei virus anche quando la base antivirale non è aggiornata. In cambio, essi rischiano di far scattare falsi allarmi.
In realtà, la maggior parte dei virus sono dei cloni, o meglio dei «virus mutanti», cioè dei virus riscritti da altri utenti per modificarne il comportamento o la firma. Il fatto che esistano più versioni (si parla di varianti) di uno stesso virus lo rende ancora più difficile da reperire dato che editori di antivirus devono aggiungere queste nuove firme ai loro database.
Dato che gli antivirus rilevano soprattutto i virus grazie alla loro firma (la successione di bit che li identifica), alcuni creatori di virus hanno pensato di dare loro la possibilità di modificare automaticamente il loro aspetto, come un camaleonte, chiamato «virus polimorfo» (parola di origine greca che significa «che può assumere diverse forme»).
Viene chiamato «retrovirus» o «virus filibustiere» (in inglese bounty hunter) un virus con la capacità di modificare le firme degli antivirus per renderli innocui.
Viene chiamato «virus del settore di avvio» (o virus di boot) un virus capace di infettare il settore di avvio di un disco rigido (MBR, ossia master boot record), cioè un settore del disco copiato nella memoria all'avvio del computer, poi eseguito per far avviare il sistema operativo.
Con il moltiplicarsi dei programmi che usano delle macro, Microsoft ha messo a punto un linguaggio di script comune che può essere inserito nella maggior parte dei documenti con macro, si tratta di VBScript, un sotto insieme di Visual Basic. Questi virus arrivano attualmente ad infettare le macro dei documenti di Microsoft Office, cioè un virus simile può essere messo all'interno di un banale documento Word o Excel, e eseguire una porzione di codice all'ape. Ora, dato che sempre più applicazioni supportano visual Basic, questi virus possono così essere immaginabili su numerose altre applicazioni che supportano il VBScript.
L'inizio del terzo millennio è stato segnato dalla comparsa di script Visual Basic diffusi via mail in file in allegato (individuabili grazie all'estensione .VBS) con un titolo del messaggio che spinge ad aprire il regalo avvelenato. Questo ha la possibilità, una volta aperto su un client di messaggeria Microsoft, di accedere all'insieme della rubrica e di autodiffondersi sulla rete. Questo tipo di virus è detto ver o worm.
Foto: © Martial Red – Shutterstock.com