Virus (informatica)
Nell'ambito dell'informatica un virus è un particolare software, appartenente alla categoria dei malware, che è in grado, una volta eseguito, di infettare dei file in modo da riprodursi facendo copie di se stesso, generalmente senza farsi rilevare dall'utente. I virus possono essere più o meno dannosi per il sistema operativo che li ospita, ma anche nel caso migliore comportano un certo spreco di risorse in termini di RAM, CPU e spazio sul disco fisso.
Nell'uso comune il termine virus viene frequentemente usato come sinonimo di malware, indicando quindi di volta in volta anche categorie di "infestanti" diverse, come ad esempio worm, trojan o dialer.
Coloro che creano virus sono detti virus writer.
| Indice |
Cosa è un virus, dove si trova e come funziona
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), 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.
Quindi un virus fa parte dei programmi che possono essere eseguiti da un computer, però la differenza principale è che raramente un virus si presenta come file eseguibile, anzi nella maggior parte delle volte il virus risulta non visibile nell'elenco dei file presenti sul proprio hd. Questo è possibile perché di solito un virus risiede in parti del disco non destinate ai file (per esempio nel boot sector) o nei file stessi.
La tecnica solitamente usata dai virus è quella di infettare i file eseguibili: il virus fa una copia di se alla fine del 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 in frazioni di secondo eseguito il virus e poi il programma, quindi l'utente si vede il programma caricato e non si accorge che il virus è ora in esecuzione in memoria e sta compiendo le varie operazioni contenute nel suo programma.
Si possono distinguere due fasi di un virus:
- quando è solo presente su un supporto di massa (disco fisso, floppy, CD, ...) il virus è inerte, anche se copiato sul proprio PC non è in grado di fare nulla fino a quando non viene eseguito
- quando è stato caricato in memoria RAM il virus diventa attivo ed inizia ad agire
Principalmente un virus esegue copie di se stesso spargendo l'epidemia, ma può avere anche altri compiti molto più dannosi come: cancellare o rovinare dei file, formattare l'hard disk, aprire della back door, far apparire messaggi, disegni o modificare l'aspetto del video, ...
Storia dei virus
Il termine "virus" venne usato la prima volta da Fred Cohen (1984) nel suo scritto Experiments with Computer Viruses (Esperimenti con i virus per computer), dove egli indicò Len Adleman come colui che aveva coniato di tale termine. Nella metà degli anni 1970 David Gerrold scrisse un romanzo di fantascienza: When H.A.R.L.I.E. was One, dove è presente una descrizione di un programma per computer chiamato "VIRUS" che fa esattamente le stesse cose di un virus. Nel 1975 John Brunner scrisse il romanzo The Shockwave Rider in cui sono descritti programmi chiamati "tapeworms" che si infiltrano nella rete con lo scopo di cancellare tutti i dati. Il termine "virus del computer" con il significato corrente è presente anche nell'albo a fumetti "Uncanny X-Men" n. 158, pubblicato nel 1982. Nel 1973 la frase "virus del computer" era stata usata nel film Il mondo dei robot (Westworld). Quindi si può dire che Cohen fece per primo uso della parola virus solo in campo accademico, dato che questa era già presente nella lingua parlata.
Un programma chiamato "Elk Cloner" è accreditato come il primo virus per computer apparso al mondo. Fu creato nel 1982 da Rich Skrenta sul DOS 3.3 della Apple e l'infezione era propagata con lo scambio di floppy disk. Nel corso degli anni 1980 e nei primi anni 1990 fu lo scambio dei floppy la modalità prevalente del contagio da virus informatici. Dalla metà degli anni '90, invece, con la diffusione di internet, i virus e i malware in generale iniziarono a diffondersi assai più velocemente, usando la rete e lo scambio di e-mail come fonte per nuove infezioni. Il bersaglio preferito di questi software sono prevalentemente le varie versioni di Windows. Da allora i sistemi operativi della Microsoft sono i più colpiti dai virus, seppure esistano pochi virus anche per altre piattaforme; soprattutto sui sistemi basati sul progetto GNU (GNU/Linux, GNU/Hurd, BSD, ...) la diffusione di un virus è molto improbabile se il sistema è gestito correttamente dal proprietario e su questi sistemi il virus molto difficilmente può riuscire a causare danni al sistema operativo.
In coincidenza con la diffusione della rete, alla metà degli anni 1990, i virus, che precedentemente infettavano direttamente i sistemi operativi, le applicazioni o i dischi, furono surclassati in quanto a diffusione dai macro-virus, macro scritte nel linguaggi di scripting di programmi di Microsoft come MS-Word ed Outlook. Anche questi virus infettano soprattutto le varie versioni dei programmi Microsoft attraverso lo scambio di documenti.
Ogni sistema operativo che permette l'esecuzione di programmi scritti da terzi è un potenziale sistema attaccabile da virus, però bisogna anche riconoscere che ci sono sistemi operativi meno sicuri di altri. I sistemi più sicuri sono quelli che permettono all'utente di eseguire programmi solo all'interno dello spazio di quell'utente sia per quanto riguarda la RAM che il disco fisso, lasciando il sistema operativo e gli altri utenti presenti su quel computer intatti dall'attacco del virus. In alcuni sistemi operativi di recente concezione (come MacOS X), i virus (con l'eccezione dei macrovirus) sono quasi del tutto sconosciuti agli effetti pratici.
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, in modo da evitare l'infezione ripetuta di uno stesso file;
- una routine di infezione, con il compito di copiare il codice del virus all'interno di ogni file selezionato dalla routine di ricerca in modo che 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 sullo schermo.
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.
Tipologie di virus
Alcuni virus vengono denominati in maniera particolare a seconda che possiedano a meno determinate caratteristiche:
- virus polimorfico
- è un virus che implementa una routine di mutazione, che gli permette di modificare il proprio codice ad ogni nuova infezione, in modo da rendere più difficoltosa l'individuazione da parte dei software antivirus
- exe virus
- virus che infettano i file eseguibili .EXE (ormai rari)
- com virus
- virus che infettano i file di comando .COM (ormai rari)
- companion virus
- virus che sfruttano la caratteristica dei sistemi ms-dos che consiste nell'eseguire prima un file di comando .COM e poi un eseguibile .EXE in caso abbiano lo stesso nome di file (es. tra PROGRAM.EXE e PROGRAM.COM se si avvia PROGRAM senza specificarne l'estensione verrà prima lanciato PROGRAM.COM), in questo modo i virus creano dei "gemelli" (companion) che sono copie del virus stesso che, dopo essere stati eseguiti, lanciano il relativo .EXE mascherandosi
- virus di boot
- un tipo di virus ormai poco diffuso, che infetta il boot sector dei dischi (floppy disk o hard disk) invece che i singoli file
- macrovirus
- può essere contenuto generalmente in un documento di Microsoft Word, Microsoft Excel o Microsoft PowerPoint e consiste in una macro; può diffondersi a tutti i documenti che vengono aperti con quella particolare applicazione. Questo tipo di virus può infettare i sistemi operativi su cui gira ms-office (windows e mac), anche se non è detto che possano funzionare correttamente sui sistemi operativi coinvolti.
- virus multipiattaforma
- ci sono stati vari tentativi per creare virus che infettassero più sistemi operativi funzionanti sotto la stessa architettura hardware e lo stesso processore; ma si sono rilevati degli insuccessi o hanno avuto un successo molto limitato. Un esempio è il virus winux [1] che in teoria può infettare sia i sistemi operativi della Microsoft che quelli unix-like (es: GNU/Linux) giranti sotto CPU x86. In generale questi tipi di virus multipiattaforma si possono difficilmente inserire su un sistema unix-like: di solito la diffusione avviene solo se l'utente esegue un allegato di una mail, cosa già di per se abbastanza remota, e perché un allegato, appena salvato, non può essere eseguito se non gli vengono assegnati i permessi di esecuzione, quindi si può scartare il caso che l'esecuzione sia accidentale; in altri casi addirittura deve essere l'utente root ad eseguire l'allegato, cosa ancora più improponibile per chi sa gestire un sistema di tale tipo. Il successo di questo tipo di virus è circoscritto al fronte dei sistemi operativi della Microsoft, dove invece è possibile quasi sempre eseguire un allegato, anche solo per errore.
Modalità di diffusione
Ciò che distingue i virus propriamente detti dai worm e dai trojan è la necessità di un intervento da parte dell'utente per avviare l'infezione. In realtà oggi il confine tra le varie categorie di malware è piuttosto sfumato, dato che molti virus usano Internet e le tecnologie ad essa legate per diffondersi al maggior numero possibile di computer.
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.
Uno dei primi virus diffusi sulla rete fu Internet Worm, creato dal figlio di un alto dirigente della NSA il 2 novembre 1988, quando internet era ancora agli albori. Tale virus riuscì a colpire oltre un terzo dei computer collegati a quel tempo in rete.
Il veicolo preferenziale di infezione è invece oggi rappresentato dalle comunicazioni e-mail e dalle reti di file sharing. I virus che spediscono copia di se stessi in allegato a messaggi e-mail impiegano sovente tecniche di ingegneria sociale per convincere l'utente ad eseguire l'allegato, che spesso non sembra neppure un file eseguibile. Tutti i virus recenti che si diffondono tramite la posta elettronica operano inoltre la falsificazione dell'indirizzo del mittente, in modo che non sia possibile avvisare l'utente infetto della presenza di un virus sulla sua macchina.
Falsi virus
La scarsa conoscenza dei meccanismi di propagazione dei virus e il modo con cui spesso l'argomento viene trattato dai mass media favoriscono la diffusione tanto dei virus informatici quanto dei virus burla, detti anche hoax: sono messaggi che avvisano della diffusione di un fantomatico nuovo terribile virus con toni catastrofici e invitano il ricevente ad inoltrarlo a quante più persone possibile. È chiaro come questi falsi allarmi siano dannosi in quanto aumentano la mole di posta indesiderata e diffondono informazioni false, se non addirittura dannose.
Collegamenti esterni
Servizio antibufala http://www.attivissimo.net/antibufala/index.htm
