Cos'è un virus informatico?

(di Alessandro Rugolo)
06/06/22
Qualcuno sostiene che quando si fa divulgazione nel settore della cyber, tutto va bene per far passare il messaggio dei pericoli che dobbiamo affrontare oggigiorno. Con il "tutto va bene" però spesso si giustifica l'incompetenza di chi scrive, spesso attribuendo la colpa all'ignoranza del lettore.

Io non la penso così.

Ecco dunque che, dopo il pezzo del mese scorso con cui ho cercato di spiegare in modo semplice ma corretto il significato di DDoS (leggi articolo "DDoS e virus"), mi accingo a spiegare cosa sia un virus informatico

Sono sicuro che in tanti sanno di che si parla, per cui potrebbero trovare l'articolo troppo semplice o banale, ma sono altrettanto sicuro che saranno in tanti a trarne beneficio o, spero, a rigirarlo a qualche amico o giovane che si sta avvicinando alla materia e potrebbe quindi trovarlo utile.

Cominciamo dalle basi: la definizione!

Sembra una cosa semplice, non è vero? Dovrebbe essere sufficiente aprire il browser e trovare un buon vocabolario o enciclopedia che ci possa fornire quanto chiesto. Eppure non è così. Chiunque abbia utilizzato internet, magari per lavoro, sa bene che il problema non è non trovare le cose ma al contrario, trovarne troppe. Allora occorre imparare a fare delle ricerche mirate e ad utilizzare dei siti di riferimento di cui possiamo avere la ragionevole certezza che siano affidabili.

Come ho già detto in altre occasioni, una delle fonti che mi ha sempre dato soddisfazione è il sito del NIST (National Institute of Standards and Technologies del Dipartimento del Commercio degli Stati Uniti d'America).

Naturalmente anche il NIST, producendo normativa per scopi differenti, utilizza spesso delle definizioni aventi diverso livello di approfondimento. Quindi si può trovare che un virus è semplicemente "A program that replicates itself by attaching to other programs or files, where it hides until activated"1oppure, con un maggior livello di dettaglio: "A hidden, self-replicating section of computer software, usually malicious logic, that propagates by infecting (i.e., inserting a copy of itself into and becoming part of) another program. A virus cannot run by itself; it requires that its host program be run to make the virus active"2

Se siete curiosi, a fine articolo ho inserito un link alla pagina del NIST in cui sono riportate tutte le definizioni di virus.

Per lo scopo che mi prefiggo con questo articolo la seconda definizione è quella che prenderò in considerazione.

Dunque, un virus è un pezzo di software generalmente malevolo, capace di replicarsi, che si attacca o sostituisce ad un software che lo ospita e che lo attiva alla sua esecuzione

Un po' di storia

Sono convinto che la sola definizione non sia sufficiente a capire cosa sia un virus per cui penso sia sempre interessante leggere qualche articolo sulla storia dei virus informatici.

Ve ne segnalo due. Il primo articolo è pubblicato sul sito di Kaspersky con il titolo di "A brief history of Computer Viruses & what the future holds". Scopriamo così che i virus hanno un padre che è sicuramente noto a tutti coloro che come me hanno studiato informatica. Si tratta di John von Neumann che nel 1966 pubblicò un testo in cui discuteva la possibilità per un organismo artificiale (come per esempio un pezzo di codice) di riprodursi e essere potenzialmente dannoso come un virus biologico. Qualche anno dopo un giovane chiamato Bob Thomas creò un programma chiamato Creeper, con lo scopo di verificare la teoria della possibilità di autoreplicarsi di un codice informatico. Creeper non era malevolo e non si propagava infettando un programma ospite, per cui a ben guardare non si tratta propriamente di un virus ma di un'altra categoria di codice che si chiama Worm e che al momento non è oggetto della nostra attenzione. In ogni caso sono in tanti a considerare Creeper come il primo virus.

Nel 1974 viene sviluppato Rabbit (conosciuto anche come Wabbit), un programma malevolo capace di autoreplicarsi e assorbire le risorse del computer infetto, rallentandolo e causandone il blocco. Il primo virus per computer IBM si chiamava "Brain". Fu sviluppato nel 1986 (trentasei anni fa!) e agiva infettando il settore di avvio dei floppy disk facilitando così il contagio con lo scambio dei floppy tra utilizzatori.

Il secondo articolo invece è intitolato "A short history of computer viruses" ed è interessante notare che, tra l'altro, parla del primo malware capace di diffondersi molto velocemente su internet, conosciuto come il worm di Morris. Anche in questo caso devo dire che in effetti si trattava di un worm che nel giro di poche ore infettò circa 15.000 computer.

Un altro virus abbastanza conosciuto è "Melissa". Si tratta di un virus rilasciato nel 1999 che si diffondeva attraverso l'uso di un allegato word inviato per email con outlook. Una volta attivo, prendeva i primi cinquanta indirizzi della rubrica della vittima e gli inviava il documento word infetto.

Credo che sia opportuno riassumere le cose essenziali da ricordare:

- in primis, molto spesso si fa confusione tra virus e worm, che vengono spesso accomunati anche se tecnicamente si tratta di due cose differenti. I virus, che come detto infettano un file che li ospita, si trasmettono quando il file che li ospita viene scambiato o inviato, magari via email, whatsapp o altro. I worm si diffondono senza la necessità di un file ospite;

- i virus sono generalmente malevoli.

Detto ciò, un semplice avvertimento: fate sempre attenzione ai file che ricevete e se non state aspettando niente non aprite i documenti allegati!!!

La storia dei virus è molto più vasta di quanto scritto in queste poche righe ed è, a mio parere, molto interessante ma lascio a voi l'onere di approfondire.

Cosa ci aspetta in futuro

Senza dubbio niente di buono. Il numero di virus o di altre categorie di software malevoli è in aumento vertiginoso e spesso non è facile neppure categorizzare le minacce. Il mercato del lavoro richiede sempre più esperti in cyber security ma gli istituti scolastici non riescono a coprire le esigenze. In molti paesi il lavoro di un esperto in cybersecurity è spesso sottopagato e, peggio, assolutamente incompreso. Ciò è causa di molti problemi nelle piccole e medie aziende ma anche in tutta la pubblica amministrazione. È opportuno ricordare che quando parliamo di virus ci riferiamo non solo a quelli dei personal computer ma anche ai dispositivi di altro genere, dagli smatphone a IoT (dispositivi connessi in rete tipo le telecamere di sorveglianza...) e a tutto il mondo dei dispositivi industriali, della domotica e a breve delle interfacce uomo-macchina impiantate direttamente sull'uomo.

Infine il miglior investimento che si possa fare è quello nelle persone. Ogni tecnico informatico preparato, ogni dipendente addestrato e istruito può fare la differenza tra un attacco riuscito e uno fallito. La cultura della sicurezza informatica e l'addestramento di base è di fondamentale importanza per prevenire danni spesso irreparabili, ed il costo è sicuramente inferiore ai danni provocati da un incidente informatico. 

Cerchiamo di ricordarlo per tempo, invece che piangerci sopra quando è troppo tardi!

P.S. Ringrazio tutti gli amici di SICYNT per suggerimenti e revisioni.

1NIST SP 800-28 rev 2. Trad: Un programma che replica se stesso attaccandosi ad altri programmi o files, che utilizza per nascondersi fino a quando verrà attivato.

2NIST SP 800-82 rev 2. Trad: Una sezione nascosta di software, autoreplicante, generalmente malevola, che si propaga per infezione (per esempio inserendo una copia di se stesso e diventando così parte) di un altro programma. Un virus non può eseguirsi da solo, per essere attivato richiede che il programma ospite sia eseguito.

Per approfondire:

virus - Glossary | CSRC (nist.gov)

A Brief History of Computer Viruses & What the Future Holds (kaspersky.com)

A short history of computer viruses (sentrian.com.au)

The very first viruses: Creeper, Wabbit and Brain. (infocarnivore.com)

Virus:W32/Melissa Description | F-Secure Labs