Virus (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Sostituito Annullato Rimozione di avvisi di servizio Modifica visuale
Correggo link
 
(16 versioni intermedie di 12 utenti non mostrate)
Riga 1:
{{F|sicurezza informatica|giugno 2016}}
[[File:Computer virus code, x86-specific, ASM.png|thumb|Virus che ha infettato un file [[Portable Executable|PE]] in linguaggio [[assembly]] ]]
[[File:Stoned-virus-hexacode.png|thumb|Codice esadecimale del virus [[Stoned (MS-DOS)|Stoned]]]]
Un '''virus''', in [[informatica]], è un [[software]] appartenente alla categoria dei [[malware]] che, una volta eseguito, infetta dei [[file]] in modo da fare copie di se stesso, generalmente senza farsi rilevare dall'[[utente]]. Il termine viene usato per un programma che si integra in qualche codice eseguibile (incluso il sistema operativo) del sistema informatico vittima, in modo tale da diffondersi su altro codice eseguibile quando viene eseguito il codice che lo ospita, senza che l'utente ne sia a conoscenza.
 
I virus entrano nel computer sfruttando le vulnerabilità ([[exploit]]) dell'applicazione o del [[sistema operativo]] e arrecando danni al sistema, rallentando o rendendo inutilizzabile il dispositivo infetto. I virus comportano dunque 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 è spesso erroneamente utilizzata in [[sineddoche]] per parlare di [[malware]]. Ne è un esempio il diffuso termine ''[[antivirus]]''.
 
== Storia ==
=== I primi studi e la definizione ===
Nel 1949 [[John von Neumann]] dimostrò matematicamente la possibilità di costruire un programma per computer in grado di replicarsi autonomamente. Il concetto di programma auto-replicante trovò la sua evoluzione pratica nei primi anni '60 nel gioco ideato da un gruppo di programmatori dei [[Bell Laboratories]] della [[AT&T]] chiamato "''Core War''", nel quale più programmi si dovevano sconfiggere sovrascrivendosi a vicenda.<ref>{{Cita news | url=http://www.bloomriot.org/91/sicurezza-virus-worm-trojan.html | titolo=Sicurezza: virus, worm, trojan...| editore=www.bloomriot.org}}</ref>
 
Il termine ''virus'' venne adottato la prima volta da [[Fred Cohen]] ([[1984]]) della [[University of Southern California]] nel suo scritto ''Experiments with Computer Viruses'' (Esperimenti con i virus per computer), dove questi indicò [[Leonard Adleman]] come colui che aveva adattato tale termine dalla [[biologia]]. La definizione di virus era la seguente:
 
«Un virus informatico è un programma che ricorsivamente ed esplicitamente copia una versione possibilmente evoluta di sé stesso».<ref>{{Cita news|url=http://www.hwupgrade.it/articoli/sicurezza/1424/virus-e-antivirus-l-eterna-lotta-fra-il-bene-e-il-male_2.html| titolo=Breve storia dei virus informatici| editore=www.hwupgrade.it}}</ref>
 
Ma il termine era già stato utilizzato prima. Nel [[1972]] [[David Gerrold]] scrisse un romanzo di [[fantascienza]] ''[[La macchina di D.I.O.]]'' (''When H.A.R.L.I.E. was One''), dove è presente una descrizione di un programma per computer chiamato ''[[VIRUS]]'' che adotta il medesimo comportamento di un virus. Nel [[1975]] [[John Brunner]] scrisse il romanzo ''Codice 4GH'' (''The Shockwave Rider'') in cui sono descritti programmi chiamati ''tapeworms'' che si infiltrano nella rete con lo scopo di cancellare tutti i dati. Nel [[1973]] la frase "virus del computer" era stata usata nel film ''[[Il mondo dei robot]] (Westworld)''. Il termine ''virus del computer'' con il significato corrente è inoltre presente anche nell'albo a fumetti ''[[X-Men|Uncanny X-Men]]'' n. 158, pubblicato nel [[1982]]. Si può dunque affermare che Cohen fece per primo uso della parola virus solo in campo accademico, dato che questa era già presente nella lingua parlata.
 
=== I primi programmi famosi ===
Il primo [[malware]] della storia informatica è stato [[Creeper (worm)|Creeper]], un programma scritto per verificare la possibilità che un codice potesse replicarsi su macchine remote.<ref>{{cita web|url=http://virus.wikidot.com/creeper|titolo=Descrizione di Creeper|editore=Virus.wikidot|accesso=10 maggio 2015}}</ref> Il programma chiamato ''[[Elk Cloner]]'' è invece 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]]: il virus era presente nel settore di boot di un disco infetto e veniva caricato in memoria insieme al sistema operativo all'avvio del computer.<ref name=topten>{{cita web|url=http://www.pcauthority.com.au/News/143993,top-ten-worst-viruses.aspx|titolo=Top ten worst viruses|autore=Iain Thomson , Shaun Nichols|data=4 maggio 2009|accesso=7 maggio 2015|editore=PC & Tech Authority}}</ref><ref name=tech>{{cita web|url=http://searchsecurity.techtarget.com/definition/Elk-Cloner|titolo=Elk Cloner|editore=Tech Target|accesso=7 maggio 2015|autore=Margaret Rouse|urlarchivio=https://web.archive.org/web/20150429201017/http://searchsecurity.techtarget.com/definition/Elk-Cloner|dataarchivio=29 aprile 2015|urlmorto=sì}}</ref><ref name=info>{{cita web|url=http://www.infoniac.com/hi-tech/list-of-computer-viruses-developed-in-1980s.html|titolo=List of computer viruses developed in 1980s|editore=Info NIAC|data=7 settembre 2009|accesso=7 maggio 2015|dataarchivio=24 luglio 2011|urlarchivio=https://web.archive.org/web/20110724010543/http://www.infoniac.com/hi-tech/list-of-computer-viruses-developed-in-1980s.html|urlmorto=sì}}</ref>
Dalla metà degli anni novanta, con la diffusione di [[internet]], i virus ed i cosiddetti ''malware'' in generale, iniziarono a diffondersi assai più velocemente, usando la rete e lo scambio di [[e-mail]] come mezzo per nuove infezioni.
 
Il primo virus informatico che si guadagnò notorietà a livello mondiale venne creato nel 1986 da due fratelli pakistani proprietari di un negozio di computer per punire, secondo la loro versione, chi copiava illegalmente il loro software. Il virus si chiamava ''[[Brain (virus informatico)|Brain]]'', si diffuse in tutto il mondo, e fu il primo esempio di virus che infettava il settore di avvio del DOS.<ref name="hwupgrade.it">{{Cita news | url=http://www.hwupgrade.it/articoli/sicurezza/1424/virus-e-antivirus-l-eterna-lotta-fra-il-bene-e-il-male_3.html | titolo=Breve storia dei virus informatici| editore=www.hwupgrade.it}}</ref>
 
Il primo [[file infector]] apparve nel 1987. Si chiamava Lehigh e infettava solo il file ''command.com''. Nel 1988 [[Robert Morris Jr.]] creò il primo [[worm]] a diffondersi via internet, il [[Morris worm]]. L'anno seguente, nel 1989, fecero la loro comparsa i primi [[virus polimorfi]], con uno dei più famosi: Vienna, e venne diffuso il [[Trojan (informatica)|trojan]] [[AIDS (MS-DOS)|AIDS]] (conosciuto anche come Cyborg), molto simile al trojan dei nostri giorni chiamato [[PGPCoder]]. Entrambi infatti codificano i dati del disco fisso chiedendo poi un riscatto all'utente per poter recuperare il tutto.<ref name="hwupgrade.it"/>
 
Nel 1995 comparve il primo dei [[macrovirus]], virus scritti nel linguaggio di [[scripting]] di programmi di [[Microsoft]] come [[Microsoft Word|Word]] ed [[Outlook]] che infettano soprattutto le varie versioni dei programmi Microsoft attraverso lo scambio di documenti. Concept fu il primo macro virus della storia. Nel 1998 la nascita di un altro dei virus storici, [[Chernobyl (virus)|Chernobyl]] o [[CIH (virus)|CIH]], famoso perché sovrascriveva il [[BIOS]] della [[scheda madre]] e la tabella delle [[partizione (informatica)|partizioni]] dell'[[hard disk]] infettato ogni 26 del mese.
 
=== Internet e la diffusione ===
La diffusione di massa di Internet nella fine degli anni 90 determina la modifica delle tecniche di propagazione virale: in questa fase i [[worm]] si diffondono prevalentemente via e-mail. Tra i worm di maggior spicco antecedenti al 2000: [[Melissa (informatica)|Melissa]], [[Happy99]] e [[Bubbleboy]], il primo worm capace di sfruttare una falla di [[Internet Explorer]] e di autoeseguirsi da [[Outlook Express]] senza bisogno di aprire l'allegato.<ref name="hwupgrade.it"/>
 
Nel 2000 il famoso ''[[ILOVEYOU|I Love You]]'' che dà il via al periodo degli [[script virus]], i più insidiosi tra i virus diffusi attraverso la posta elettronica perché sfruttano la possibilità, offerta da diversi programmi come Outlook e Outlook Express di eseguire istruzioni attive (dette ''script''), contenute nei messaggi di posta elettronica scritti in [[HTML]] per svolgere azioni potenzialmente pericolose sul computer del destinatario. I virus realizzati con gli script sono i più pericolosi perché possono attivarsi da soli appena il messaggio viene aperto per la lettura. ''I Love You'' si diffuse attraverso la posta elettronica in milioni di computer di tutto il mondo, al punto che per l'arresto del suo creatore, un ragazzo delle Filippine, dovette intervenire una squadra speciale dell'[[FBI]]. Era un messaggio di posta elettronica contenente un piccolo programma che istruiva il computer a rimandare il messaggio appena arrivato a tutti gli indirizzi contenuti nella rubrica della vittima, in questo modo generando una specie di [[catena di sant'Antonio]] automatica che saturava i server di posta.<ref>{{Cita news | url=http://www.questotrentino.it/2000/11/I_love_you.htm| titolo=“I love you”: un virus targato Microsoft | editore=www.questotrentino.it}}</ref>
 
Dal 2001 si è registrato un incremento di ''worm'' che, per diffondersi, approfittano di falle di programmi o sistemi operativi senza bisogno dell'intervento dell'utente. L'apice nel 2003 e nel 2004: ''[[SQL Slammer|SQL/Slammer]]'', il più rapido worm della storia - in quindici minuti dopo il primo attacco, Slammer aveva già infettato metà dei server che tenevano in piedi internet mettendo fuori uso i bancomat della [[Bank of America]], spegnendo il [[numero unico di emergenza 911|servizio di emergenza 911]] a [[Seattle]] e provocando la cancellazione per continui inspiegabili errori nei servizi di biglietteria e check-in di alcune compagnie aeree<ref>{{Cita news | url=http://mobile.ilsole24ore.com/solemobile//esplosonews.jsp?uuid=cbbb3d5a-b6e1-11dd-bb4d-604737b5fe8c | titolo=Anche il virus ha un lato buono | editore=Il Sole 24ore.com | urlmorto=sì }}</ref>; ed i due ''worm'' più famosi della storia: ''Blaster'' e ''Sasser''.<ref name="hwupgrade.it"/> Nel giugno 2009 è nata una nuova tipologia di virus che ha come bersaglio sistemi informatici industriali, il primo virus di questa nuova tipologia è stato [[Stuxnet]] che ha preso di mira i sistemi [[SCADA]].
 
== Descrizione ==
{{Vedi anche|Virus polimorfo}}
Un virus è composto da un insieme di istruzioni, come qualsiasi altro programma per [[computer]]. È solitamente composto da un numero molto ridotto di istruzioni, 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 da prima 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]], ed altre attività minacciose per un [[sistema informatico]].
 
=== Componenti ===
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 crittografica|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à informatica|vulnerabilità]] di sicurezza, e non dipendono quindi dal fatto di ingannare l'utente per farsi eseguire, infatti vengono eseguiti in automatico.
 
=== 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]].
* ''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.<ref>{{Cita news| url=http://www.dia.unisa.it/~ads/corso-security/www/CORSO-9900/virus/| titolo=ciclo di vita di computer virus| editore=www.dia.unisa.it| urlmorto=sì}}</ref>
 
== Criteri di classificazione dei virus ==
I virus informatici possono essere suddivisi in categorie in base alle seguenti caratteristiche:
* ambiente di sviluppo
* capacità operative degli algoritmi
* nocività (possibili danni provocati).
 
=== Ambiente di sviluppo ===
I virus si sviluppano su diversi supporti fisici e per questo sono classificabili in:
* ''file virus'', che a loro volta si dividono in:
** parasitic virus;
** companion virus;
** virus link;
* ''boot virus'';
* ''macro virus'';
* ''network virus''.
Esistono poi combinazioni delle caratteristiche precedenti: ad esempio vi sono virus che sono contemporaneamente file virus e boot virus. In tal caso il loro algoritmo di infezione è più complesso, potendo eseguire attacchi differenti.<ref>{{Cita news| url=http://www.dia.unisa.it/~ads/corso-security/www/CORSO-9900/virus/classificazione.htm| titolo=classificazione computer virus| editore=www.dia.unisa.it| urlmorto=sì| urlarchivio=https://web.archive.org/web/20090522211440/http://www.dia.unisa.it/~ads/corso-security/www/CORSO-9900/virus/classificazione.htm| dataarchivio=22 maggio 2009}}</ref>
 
Si possono incontrare anche in versioni infette dei giochi che si scaricano gratis da Internet, come 4Story, Cabal e così via.
In qualche caso gli utenti hanno riscontrato particolari problemi di annidamento di virus nella cache di Java.
 
=== Capacità operative degli algoritmi ===
In base alle caratteristiche dei loro algoritmi, i virus si distinguono in:
 
* ''[[Terminate and Stay Resident|TSR virus]]'';
* ''[[virus polimorfo|virus polimorfi]]'';
* ''stealth virus''
 
In generale non esistono molti virus informatici che sono solo stealth, polimorfici o TSR, perché sarebbero facilmente individuabili. In realtà i computer virus sono formati da una combinazione dei precedenti.
 
=== Possibili danni ===
A seconda del tipo di danni causati, i virus possono essere:
* ''innocui'': se comportano solo una diminuzione dello spazio libero sul disco senza nessun'altra alterazione delle operazioni del computer;
* ''non dannosi'': se comportano solo una diminuzione dello spazio libero sul disco, col mostrare grafici, suoni o altri effetti multimediali.
* ''dannosi'': possono provocare problemi alle normali operazioni del computer (ad esempio, cancellazione di alcune parti dei file, modifica di file o apertura di applicazioni);
* ''molto dannosi'': Causano danni difficilmente recuperabili, come la cancellazione di informazioni fondamentali per il sistema (formattazione di porzioni del disco, modifica dei parametri di sicurezza del sistema operativo, ...).
 
== Sintomi più frequenti di infezione ==
* ''Rallentamento del computer'': il computer lavora molto più lentamente del solito. Impiega molto tempo ad aprire applicazioni o programmi. Il sistema operativo impiega molto tempo ad eseguire semplici operazioni che solitamente non richiedono molto tempo, questo segnale è il più comune e si manifesta quasi ogni volta che viene eseguito;
* ''Impossibilità di eseguire un determinato programma o aprire uno specifico file'';
* ''Scomparsa di file e cartelle'': i file memorizzati in determinate cartelle (di solito quelle appartenenti al sistema operativo o a determinate applicazioni) vengono cancellati (totalmente o in parte) o resi inaccessibili all'utente;
* ''Impossibilità di accesso al contenuto di file'': all'apertura di un file, viene visualizzato un messaggio di errore o semplicemente risulta impossibile aprirlo. Un virus potrebbe aver modificato la [[File Allocation Table]] (FAT) provocando la perdita degli indirizzi che sono il punto di partenza per la localizzazione dei file;
* ''Messaggi di errore inattesi o insoliti'': visualizzazione di finestre di dialogo contenenti messaggi assurdi, buffi, dispettosi o aggressivi;
* ''Riduzione di spazio nella memoria e nell'hard disk'': riduzione significativa dello spazio libero nell'hard disk; quando un programma è in esecuzione, viene visualizzato un messaggio indicante memoria insufficiente per farlo (sebbene questo non sia vero e ci siano altri programmi aperti);
* ''Settori difettosi'': un messaggio informa della esistenza di errori nella parte di disco sulla quale si sta lavorando e avverte che il file non può essere salvato o che non è possibile eseguire una determinata operazione;
* ''Modifiche delle proprietà del file'': il virus modifica alcune o tutte le caratteristiche del file che infetta. Di conseguenza risultano non più corrette o modificate le proprietà associate al file infettato. Tra le proprietà più colpite: data/ora (di creazione o dell'ultima modifica), la dimensione;
* ''Errori del sistema operativo'': operazioni normalmente eseguite e supportate dal sistema operativo determinano messaggi di errore, l'esecuzione di operazioni non richieste o la mancata esecuzione dell'operazione richiesta; in certi casi, l'errore può essere così serio da causare un riavvio spontaneo del computer.
* ''Ridenominazione di file'': un virus può rinominare i file infettati e/o file specifici, ad esempio di sistema;
* ''Problemi di avvio del computer'': il computer non si avvia o non si avvia nella solita maniera, oppure impiega molto tempo per caricarsi;
* ''Interruzione del programma in esecuzione'' senza che l'utente abbia eseguito operazioni inaspettate o fatto qualcosa che potrebbe aver provocato questo risultato;
* ''Tastiera e/o mouse non funzionanti correttamente'': la tastiera non scrive ciò che è digitato dall'utente o esegue operazioni non corrispondenti ai tasti premuti. Il puntatore del mouse si muove da solo o indipendentemente dal movimento richiesto dall'utente;
* ''Scomparsa di sezioni di finestre'': determinate sezioni (pulsanti, menu, testi etc…) che dovrebbero apparire in una particolare finestra sono scomparse o non vengono visualizzate. Oppure, in finestre nelle quali non dovrebbe apparire nulla, appaiono invece icone strane o con contenuto insolito (ad esempio nella [[barra delle applicazioni]] di Windows;
* ''Antivirus disattivato automaticamente'': Può capitare che un malware disattivi forzatamente un antivirus per poter essere eseguito senza correre il rischio di essere rilevato;
* ''Lentezza della connessione Internet'': il virus potrebbe usare la connessione per propagare l'infezione, o inviare dati a chi ha scritto il virus;
* ''Limitazioni nella visualizzazione di alcuni siti Internet'', soprattutto quelli dei produttori di antivirus: è un meccanismo di protezione da parte del virus, che in questo modo impedisce di adottare contromisure dopo l'infezione.
 
Si tenga comunque presente che i sintomi appena descritti potrebbero essere riconducibili a cause diverse da virus.
 
== Tecniche usate per il rilevamento di virus ==
Non esiste un metodo generale per individuare un virus all'interno di un sistema.
Le tecniche di rilevamento utilizzate dagli antivirus sono diverse: utilizzate contemporaneamente garantiscono un'ottima probabilità di rilevamento della presenza di un virus.
In base alle tecniche di rilevamento usate, gli antivirus si distinguono in tre tipi:
 
* ''programmi di monitoraggio'': mirano a prevenire un'infezione mediante il controllo di attività sospette (ad esempio, la richiesta di formattazione di un disco oppure l'accesso a zone privilegiate di memoria). Sono importanti perché rappresentano la prima linea di difesa (essi non rimuovono il virus; lo individuano e lo bloccano). Ma sono facili da bypassare attraverso la tecnica di [[tunneling]].
* ''scanner'': effettuano la ricerca dei virus attraverso due tecniche:
** il confronto tra le firme memorizzate in un database interno, con quelle, eventualmente, contenute nei file infetti;
** l'utilizzazione delle [[tecniche euristiche]] per i virus che sono cifrati o sconosciuti.
* ''programmi detection'': utilizzano due tecniche:
** verifica dell'integrità: calcolano l'hash dei file da confrontare successivamente coi nuovi valori risultanti da un nuovo calcolo per verificare che i file non abbiano subito modifiche nel frattempo.
** tecniche euristiche: salva le informazioni sufficienti per ripristinare il file originale qualora questo venga danneggiato o rimosso da un virus.<ref>{{Cita news| url=http://www.dia.unisa.it/~ads/corso-security/www/CORSO-9900/virus/| titolo=Tecniche usate per il rilevamento di computer virus| editore=www.dia.unisa.it| urlmorto=sì}}</ref>
 
== Virus ieri e oggi ==
Oggi sono ben pochi i codici malevoli ai quali si può attribuire, propriamente, il nome di virus.
Quando un tempo lo scambio dei file avveniva tramite supporti fisici, generalmente i floppy, erano questi ad essere veicolo delle infezioni e pertanto era importante, volendo creare un virus che si diffondesse, che questo fosse il più silenzioso possibile. Venivano scritti in [[assembly]] e questo li rendeva piccoli, performanti ed insidiosi seguendo la regola: se non sai cosa cercare figurati se sai come trovarlo.
 
Parlando oggi di virus, entrando nel particolare, si commette però un errore. Si intende quindi, con il termine virus, tutto il codice malevolo in grado di arrecare danno ad un utente. Lo scambio di file tramite dispositivi fisici quali il floppy, il quasi totale abbandono degli stessi per effettuare una procedura di boot e di ripristino, ha reso obsoleto il vecchio concetto di virus, un piccolo codice malevolo difficile da individuare.
Nondimeno le macchine sono sempre più performanti, gli utenti sempre di più e sempre meno preparati, la banda larga è disponibile a tutti. Le informazioni viaggiano da un capo all'altro del pianeta senza vincoli fisici ormai, e così anche il codice malevolo.
 
Il vecchio concetto di virus è stato sostituito con quello più moderno di [[worm]]. I worm non sono più scritti in assembly ma in [[linguaggi di programmazione]] di livello sempre più alto in stretta convivenza con il sistema operativo e le sue vulnerabilità. Tutto questo rende la stesura di un codice malevolo molto più semplice che in passato ed il gran numero e la diversità di worm con rispettive varianti ne è un esempio lampante. Questi nuovi tipi di infezioni penetrano nel sistema quasi sempre da soli sfruttando le vulnerabilità, non fanno molto per nascondersi, si replicano come vermi anziché infettare i file, che è un'operazione più complessa ed ormai in disuso.
 
Ultimamente vanno molto di moda [[payload (virus informatico)|payload]] altamente distruttivi o che espongono la vittima ad altri tipi di attacchi. La vita dei worm è generalmente più breve di quella di un virus perché identificarlo, grazie ad internet, è diventato un business ora più grande che in tempi passati ed è probabilmente questo che porta sempre più spesso gli ideatori a voler un ciclo di vita più breve anche per la macchina che lo ospita e qualche capello in meno all'utente. I worm agiscono sempre più spesso come retrovirus e, volendo correre più veloce delle patch che correggono le vulnerabilità che ne hanno permesso la diffusione, spesso ci si trova ad aggiornare l'antivirus quando il codice ha già preso piede nel sistema.
 
=== Scambio di virus ===
Molti programmatori di virus, soprattutto nel passato, si sono scambiati sorgenti di virus per capire nuove tecniche di programmazione. Molti scambi di virus sono avvenuti tramite siti web chiamati ''VX''. ''VX'' significa [[Virus eXchange|Virus exchange]].
 
=== 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.
 
== Altre minacce informatiche ==
{{vedi anche|Malware}}
All'inizio tutte le minacce informatiche erano virus come sopra definiti, successivamente sono comparse e si sono specializzate diverse altre minacce, anche se nel linguaggio comune continuano impropriamente ad essere chiamate "virus informatici", come [[Trojan (informatica)|trojan]], o [[adware]]. Nell'uso comune il termine virus viene frequentemente ed impropriamente usato come sinonimo di [[malware]], indicando quindi di volta in volta anche categorie di "infestanti" diverse, come ad esempio [[worm]], [[Trojan (informatica)|trojan]], [[dialer]] o [[spyware]].
 
== Note ==
<references />
 
== Bibliografia ==
* {{RivistaVG|mc|100|199-206|10|1990|Panoramica sui virus del computer}}
* {{RivistaVG|e2000|125|54-61|2|1990|I virus del computer}}
 
== Voci correlate ==
{{div col}}
* [[Antivirus]]
* [[Adware]]
* [[Backdoor]]
* [[Bootkit]]
* [[Denial of Service]]
* [[Exploit]]
* [[Firewall]]
* [[John von Neumann]]
* [[Keylogger]]
* [[Malware]]
* [[Macrovirus]]
* [[Phishing]]
* [[Ransomware]]
* [[Rootkit]]
* [[Spyware]]
* [[Sicurezza informatica]]
* [[Software]]
* [[Trojan (informatica)]]
* [[Virus polimorfi]]
* [[Worm]]
{{div col end}}
 
== Altri progetti ==
{{interprogetto|wikt=virus|preposizione=sui}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{en}} [https://web.archive.org/web/20100208101311/http://vx.netlux.org/ VX Heavens] sito con database e sorgenti di migliaia di virus.
 
{{Controllo di autorità}}
{{portale|sicurezza informatica|storia}}
 
[[Categoria:Virus informatici| ]]