I VIRUS I VIRUS 1. INTRODUZIONE 2. IN CHE MODO UN SISTEMA SANO DIVENTA INFETTO 3. STORIA DEI VIRUS 4. I VIRUS: BOOT, CODE INFECTOR, STEALTH, POLIMORFICI 5. COME AGISCONO I VIRUS 6. ANTIVIRUS 7. COSA NON E’ UN VIRUS Tesina di Sistemi II Elaborata da Castronuovo Emanuele matricola n° 211203 INTRODUZIONE Cos’è esattamente un virus? La sicurezza e l’integrità dei dati gestiti mediante l’uso del personal computer è stata messa molto in discussione negli ultimi anni a causa della nascita, e poi da una continua crescita, di piccoli programmi definiti virus, che sicuramente hanno creato una serie di problemi più o meno seri a qualunque possessore di un personal computer. Un virus è un programma informatico come qualunque altro. Si distingue perché la sua funzione primaria è riprodursi, ossia generare un certo numero di copie di se stesso. Dato che queste copie sono programmi, devono essere eseguite o non entreranno mai in funzione. E’ evidente che nessun utente eseguirebbe mai un programma se sapesse che è un virus. Quindi un virus deve fare in modo da farsi eseguire all’insaputa dell’utente. I metodi per fare ciò sono vari: Il virus può SOSTITUIRSI ad un programma legittimo, cancellando il codice legittimo e sostituendo il proprio. Si parla allora di “overwriting virus”. Il virus può AGGIUNGERSI ad un programma legittimo, cosicché, a meno di particolari incompatibilità il programma legittimo continui a funzionare ma attivi anche il virus. Questi sono definiti “appending virus”. 1 Il virus può SOSTITUIRE una delle aree di sistema che il PC deve eseguire all’accensione (boot). Si parla quindi di “boot virus”. Il virus può fare in modo che il sistema operativo esegue codice virale, al posto di un codice legittimo; il codice virale poi eseguirà il codice legittimo, in modo che l’utente non si possa accorgere dell’accaduto. Sono questi i “ companion virus”. Tipico virus companion è quello che crea, per ogni file .EXE, un file, con estensione “.COM”, contenente il virus ma nascosto. Lanciando il programma, ad esempio: (“PROVA”) il DOS non esegue PROVA.EXE, ma PROVA.COM. Esistono altri modi e mezzi di realizzare un “companion”. Esistono poi i virus multipartito, che possono infettare ad esempio i file .EXE ma anche il boot sector, oppure che agiscono come overwriting virus su alcuni file e come appending su altri. 2 In che modo un sistema sano diventa infetto. Con riferimento alla classificazione suddetta, diremo che ci si infetta: Con un overwriting virus, eseguendo un file infetto, fermo restando che il file non funzionerà perché è stato sostituito dal virus. Il contenuto del file è perduto. Questo virus viene detto “ovvio” perché chiunque, lanciando un applicazione e non vedendola funzionare, si insospettirebbe. Con un appending virus, il file non è perduto, può essere quindi “disinfettato” con tecniche o programmi appositi. A differenza del caso precedente, il file infetto funzionerà, e l’utente non si accorgerà che qualcosa non va. Con un boot virus, facendo il boot da un disco infetto; non è necessario che il PC parta davvero, ovvero potrebbe anche comparire la fatidica frase “non-system disk”, cionondimeno, anche un inizio di boot (il classico dischetto dimenticato nel drive dopo uno spegnimento) è sufficiente per l’infezione. Con un virus companion, eseguendo un file infetto (cioè un file che in realtà è un virus, e che, dopo l’installazione, eseguirà il file “vero” per evitare che l’utente si accorga di cos’è successo). 3 Con un virus companion dando un comando per eseguire un file non infetto: se non si è specificata l’estensione (es. “A:\INSTALL” anziché “A:\INSTALL.EXE”), il DOS cercherà prima i file, anche nascosti, con quel nome ma estensione .COM; se questi sono virus, possono installarsi, ed eseguire il file .EXE a scopo mimetico. In oltre su alcuni DOS, i comandi specifici (nome ed estensione) vengono trattati come non specifici (l’estensione è ignorata) e il DOS cerca un file di quel nome ed estensione nell’ordine .COM .EXE e .BAT. Così su un dischetto che contenga “INSTALL.EXE” e “INSTALL.COM” (quest’ultimo nascosto), il comando DIR farà vedere solo il file INSTALL.EXE ma “A:\INSTALL.EXE” eseguirà prima il file .COM, infettando il sistema. 4 Cosa può fare un virus. I virus possono far si che il sistema li “svegli” in concomitanza ad eventi particolari, per esempio: ad ogni clock dell’orologio, ad ogni partenza di programma, ogni volta che si cambia modo video, ecc.. Tutti questi eventi sono associati ad “interrupts”. Un virus residente può usare solo e soltanto gli interrupts. Ne consegue che, manipolando il sistema a basso livello, e evitando di generare interrupts, e possibile fare in modo da mantenere il virus addormentato (dato che solo una particolare serie di interrupts lo sveglierà) e contemporaneamente verificare se c’è. Un virus può fare tutto quello che fa un normale programma o driver, residente o meno.In più, per sua natura, modifica delle informazioni di sistema. Il virus è normalmente composto da codice molto piccolo e semplificato, per poter viaggiare veloce e leggero. I danni intenzionali possono essere: Scritte sullo schermo. Suoni dallo speaker. Rallentamento del PC. Cancellazione di file. Danneggiamento di file. Danneggiamento dell’hard disk. Blocco totale del sistema con necessità di formattazione a basso livello. 5 Storia dei virus. I primi virus comparvero agli inizi degli anni ’70, parallelamente al diffondessi dei computers, in assoluto il primo virus conosciuto fu il Creeper. Diffondendosi, faceva apparire il messaggio “I’m the Creeper catch me if you can”. Per contrastarlo fu creato un altro virus (il Reaper) che aveva il compito di stanarlo e rimuoverlo. Negli anni ’80 la diffusione e nascita di nuovi virus veniva in modo sistematico Il Brain fu sviluppato da due fratelli pakistani e fu poi scritto nel 1986 da Basit Alvi per punire i turisti che acquistavano copie pirata di software. E’ uno dei pochi che riporta il nome e l’indirizzo del creatore ed è il primo virus in ambiente DOS. Era un infettore del Boot di un floppy con codice eseguibile, che all’avvio da A si installava in memoria; infettava solo floppy da 360 KB. Da Tel Aviv arrivo il Suriv 1.00, un virus residente in memoria che poteva infettare ogni .COM su tutto il disco. Il secondo virus della famiglia , Suriv 2.00, poteva infettare solo i .EXE (era il primo in grado di farlo). Il Suriv 3.00 infettava, ma solo il quarto della serie si sparse ovunque con il nome di Jerusalem (fu trovato all’Università ebraica di Gerusalemme da Yisrael Radai) o Friday 13th, invece di infettare i file li distrugge ogni venerdì 13. 6 All’Università di Wallington, Nuova Zelanda, apparve un virus che ogni otto volte si effettuava un Boot, faceva apparire il messaggio“ Your PC is now Stoned legalized marijuana”. Da qui il nome (Stoned). All’Università di Torino vide la luce un altro virus di Boot (Italian o Bouncing ball) che raggiunto un certo valore di clock faceva apparire una pallina sullo schermo che cancellava i caratteri, ma poteva girare solo su 8088 o 8086 per via di una istruzione che conteneva. Un programmatore tedesco scrisse il Cascade, un troiano di 1701 byte. Ha un bug che non gli consente di infettare i BIOS IBM. Una volta che infetta un computer assistiamo alla caduta di tutti i caratteri dallo schermo, ma la sua caratteristica peculiare è l’uso di un algoritmo di codifica introdotto per renderne più ardua la scoperta. Apparve un nuovo virus “Dark Avanger”, molto infettivo (il primo “fast infector”); causava dei danni sovrascrivendo in modo causale settori del disco. Dark Avanger mandò molti virus alle BBS, tra cui alcuni non circolanti in Bulgaria e spesso inseriti in programmi regolari. Nel Marzo del 1989 apparve in Olanda il Datacrime, virus non residente. Ogni giorno dal 12 Ottobre al 31 Dicembre tenta di formattare a basso livello il cilindro zero dell’Hard Disk. 7 Solo alla fine degli anni ’80 nascono e furono diffusi i primi antivirus. Pochi pensarono alla prevenzione dando così modo a Stoned, Cascade e Jerusalem di diffondersi. Agli inizi degli anni ’90 Mark Washburn da Vienna creò il primo virus polimorfico. Per detectare i virus di questa serie (1260,V2P1,V2P2 e V2P6) fu necessario scrivere un algoritmo particolare che testasse il file per vedere se vi potessero essere decriptatori. Non tutte le case Antivirus ne erano in grado, ed alcune non ne sono in grado tuttora poiché si limitano a cercare stringhe di 24 byte. In questi anni molti virus di Dark Avanger arrivarono e portarono due nuove idee: i “fast infector”(se il virus è in memoria, tutti i file letti possono essere infetti) e la casualità (occasionalmente settori casuali del disco fisso vengono soprascritti). A Dicembre (con un totale di ormai 200-300 virus) i ricercatori Antivirus costituirono l’EICAR (European Institute for Computer Antivirus Research) di Amburgo. La Symantec lancia il “Norton Antivirus” nel Dicembre 1990 e la Central Point il “CPAV” nell’Aprile 1991. 8 Ma il problema, oltre ai falsi allarmi, è l’aggiornamento: nel Dicembre 1991 esistono ormai 1000-1500 virus;uno scanner deve caricare le stringhe di codice da cercare in memoria, ma si hanno solo 640 KB di memoria in DOS ed inoltre alcuni riducono la velocità all’aumentare del numero dei virus. Una difficoltà oggettiva consiste nella corretta identificazione, in conseguenza del fatto che molti virus sono simili; ciò può essere causa di un’errata riparazione. In Aprile nacque lo Svizzero Tequila, completamente Stealth e polimorfico. Da Maggio si iniziò a detectarlo ma solo a Settembre lo vedevano i principali Scanner. A Settembre abbiamo da Hacker Twins di Malta, il Maltese Amoeba. Alla fine dell’anno qualche altra dozzina di polimorfi mettevano in difficoltà i ricercatori. Dark Avenger annuncia l’arrivo di un suo nuovo virus con 4000000000 di differenti forme di mutazioni, che poi apparve a Gennaio 1992: il Self Mutation Engine oMtE. Nello stesso anno comparve “Starship” un virus del tutto polimorfico capace di bypassare i Checksum e di infettare solo i file che erano copiati dal disco fisso al dischetto. Si dispone sul disco fisso senza cambiare il codice degli eseguibili ma cambia la tavola delle partizioni creandone una nuova che poi richiama quella vecchia. 9 A causa del Michelangelo, un residente basato sullo Stoned, il 6 Marzo saltarono 5000-10000 PC. Nel 1993 in Olanda nacque il gruppo Trident, un suo autore, Masouf Khafir (autore del primo virus per Windows: Win-Vir), scrive il “T.P.E.” (Trident Polymorphic Engine) e rilascia il virus polimorfo compresso autoistallante Girafe subito seguito da un aggiornamento del T.P.E. Nel Maggio del 1994 circola per le BBS il Junkie del Dr. White e si diffonde così capillarmente anche perché dichiara di essere una utilità per pirati informatici. Nel Gennaio del 1996 appare il Burglar che attacca i .EXE ed usa tecniche anti-euristiche, evita inoltre di attaccare programmi Windows e quelli che iniziano con le lettere V ed S. Appare il primo virus per Windows 95 : il Boza. Durante questi ultimi mesi vi sono state molte infezioni via Internet anche presso siti ufficiali e non solo da parte di programmi pirati postati illegalmente nelle News. 10 TIPOLOGIE DI VIRUS. I virus Boot. A questa categoria appartengono i virus che infettano il primo settore della prima traccia del disco, detta boot sector o partition table, nel caso in cui si tratti di un hard disk. Il boot sector è presente in ogni disco di MS-DOS anche se non si tratti di un disco di sistema; ricordiamo che il boot sector contiene un piccolo programma, che viene caricato dal BIOS e successivamente eseguito. Il virus si sostituisce a questo programma, spostandolo in un altra zona del disco, in modo da effettuare lui la vera fase di boot, in modo apparentemente normale per l’utente. Nella maggioranza dei casi, una volta che il virus viene attivato rimane residente in memoria, probabilmente infetterà la partition table dell’hard disk e tutti i floppy che verranno successivamente utilizzati senza la protezione da scrittura. E’ importante notare che il sistema operativo viene caricato dallo stesso virus, che è visto dal sistema addirittura come una estensione della rom bios. 11 I virus CODE INFECTOR. In generale questa classe di virus, utilizza come zona in cui memorizzarsi, i file di codice eseguibile, questi file hanno una struttura ben definita nella quale oltre al codice vero e proprio sono presenti una certa serie di informazioni, tra cui una, detta entry-point. L’entry-point indica al sistema operativo in quale punto del file, il programma, ha la sua prima istruzione, questa informazione è sfruttata dal virus sia nel momento dell’infezione sia durante l’esecuzione del programma infetto. Quando un virus si installa in un file, compie una serie di operazioni definite operazioni di infezione: 1) Allunga il programma da infettare in modo da contenere sia il codice del programma virus sia una copia del valore dell’entry-point. 2) Copia il codice del virus nella zona del file appena allungata. 3) Legge il valore dell’entry-point e lo memorizza nel suo apposito spazio. 4) Modifica il valore dell’entry-point in modo che questo, invece di indicare la prima istruzione del programma, indichi la prima istruzione del virus! Sarà poi il virus stesso a fare eseguire il vero programma, effettuando un salto alla prima istruzione, cosa sicuramente possibile, visto che il virus ha memorizzato il valore del vecchio entry-point. 12 I virus code infector possono a loro volta essere divisi in due classi: 1) System infector 2) Application infector I virus system infector si nascondono nei file di sistema (*.sys) e quindi vengono attivati durante la procedura di caricamento del sistema operativo, in generale questi virus si rendono residenti in memoria infettando altri file. I virus application infector si installano in un qualsiasi programma eseguibile. In questo caso il virus prende il controllo della macchina: la cpu esegue le istruzioni del programma virus, solo se il file eseguibile viene richiamato dall’utente; il programma virus, può rendersi residente in memoria, oppure infettare altri file prima di mandare in esecuzione il programma applicativo in cui è nascosto. Il meccanismo di infezione sopra esposto, è valido per la classe dei virus code infector che non sovrascrive il codice del programma in cui il virus si cela. Infatti la modifica del codice del programma applicativo porta sicuramente a strani malfunzionamenti che possono svelare la presenza del virus. 13 I virus STEALTH I virus stealth utilizzano delle tecniche particolari, in modo da essere invisibili all’utente o ai programmi anti-virus. Rappresentano una prima chiusura dell’anello che esiste tra gli autori del virus e i programmi antivirus, infatti alla nascita di un antivirus, segue sicuramente un lungo lavoro di ricerca da parte degli autori di virus, in modo da crearne un nuovo, magari più distruttivo, capace di eludere tutti i vari controlli del programma antivirus. Il virus di tipo stealth presenta le seguenti caratteristiche: 1) Quando il virus è attivo in memoria, riesce a nascondere tutte le modifiche apportate al sistema, come l’incremento della lunghezza del codice dei programmi eseguibili, l’alterazione del boot sector o della partition table. 2) Il virus usa un metodo di codifica dei file infetti in modo da ripristinarne l’originale valore ogni volta che si effettua un accesso a quel file, questo permette di eludere i programmi antivirus che effettuano una ricerca a scansione del codice del programma prima di mandarlo in esecuzione, oppure un test sulla lunghezza o qualunque altra operazione che ha come input il file eseguibile, in quanto questo, malgrado sia stato alterato dal virus, viene riportato nella sua forma originale ad ogni accesso tramite il sistema operativo. 14 3) I virus di tipo stealth si diffondono molto velocemente in quanto infettano i file ad ogni operazione effettuata su di essi e non solo durante la loro esecuzione. 4) Il fatto che i virus di tipo stealth riescano ad effettuare una traduzione “on-line” delle zone infettate, è subordinato al fatto che il virus sia attivo in memoria; utilizzando per la fase di boot un disco di sistema integro tutte le modifiche operate dal virus diventano visibili. 15 I virus POLIMORFICI. Questa classe di virus rappresenta un valido meccanismo per eludere i controlli dei programmi antivirus, basati sulla scansione del codice alla ricerca di pattern ben definiti. Infatti usando tecniche di crittografia, il virus ad ogni fase di duplicazione crea una copia di se stesso con un pattern di codice solo sequenzialmente diverso dagli altri: il risultato delle istruzioni è sempre il medesimo; per esempio, si aggiungono delle istruzioni che non hanno effetto sul programma, come: sommare zero ad un registro, moltiplicare una variabile per uno, sommare e poi sottrarre lo stesso valore o addirittura creare degli algoritmi di calcolo più complessi che non generano dei cambiamenti nel risultato. Tutte le categorie di virus precedentemente illustrate, possono appartenere o meno alla classe dei virus multi-attacco, a questa appartengono quei virus che attaccano più di una componente eseguibile dal sistema, infettando tipicamente i file .COM e .EXE, il boot sector e/o la partition table. 16 COME AGISCONO I VIRUS Un virus può essere logicamente suddiviso in tre parti : Il replicatore, l’occultatore, la bomba. Il replicatore Il lavoro del replicatore è quello di diffondere il virus attraverso il sistema, facendo ciò non distrugge i file che infetta. Un generico algoritmo di funzionamento del replicatore è il seguente: 1) Trovare un file da infettare. 2) Controllare se il file è già infetto. 3) Se il file è infetto torna al punto 1. 4) Infetta il file. 5) Se si sono infettati abbastanza file esci, altrimenti 6) Torna al punto 1. Il reperimento del file da infettare si ottiene mediante le chiamate Findfirst Findnext del DOS, mentre per controllare se il file è già infetto basta accertarsi che i primi byte di esso non siano diversi da quelli usualmente inseriti dal virus.Per quel che riguarda la vera e propria infezione vi sono diversi metodi: infettare i file .EXE, .COM o entrambi. 17 Il più semplice tipo di replicatore è quello che attacca il codice del virus ai file di tipo.COM. +--------------------+ | P1 | P2 | +--------------------+ File.COM +--------------------+ | V1 | V2 | +--------------------+ Virus La prima operazione è la copiatura della prima parte del file (di dimensione uguale alla prima parte del virus) in coda al file stesso. Quindi si procede copiando V1 al posto di P1 e V2 in coda al file. +----------------------------------------+ | V1 | P2 | P1 | V2 | File infetto +----------------------------------------+ V1 al momento dell’esecuzione trasferisce il controllo a V2, non essendo altro che un’istruzione di JMP. V2 esegue il suo compito di virus e quindi copia P1 sopra V1 (in memoria) e trasferisce il controllo a P1 che eseguirà il file come se nulla fosse accaduto. Prima di effettuare tali operazioni, il replicatore provvede a salvare gli attributi originali del file (data/time, dimens, etc.) per poterli ripristinare ad infezione avvenuta. 18 L’occultatore Il più semplice metodo per nascondere un virus consiste nel crittografarne il codice. Molto utilizzata in questo caso è la crittografia tramite XOR, in quanto permettere di scrivere un’unica procedura per la crittazione e la decrittazione del codice. L’occultatore provvede a crittografare una parte del virus, con una nuova chiave prima di appenderla al file. In pratica la parte crittografata del virus sta in V2 e la prima operazione che V2 effettua quando va in esecuzione, è la decrittazione del resto del suo codice. L’utilizzo della crittografia rende più ardua il compito degli Scanners antivirus, che vanno alla ricerca della stringhe particolari contenute nel codice. Esistono altri metodi più avanzati di occultamento, come abbiamo visto per i virus stealth. In alcuni casi il virus residente in memoria riesce a falsare le risposte del sistema operativo in modo da eludere i controlli sia sulle dimensioni dei file che sullo stato della memoria. 19 La bomba E’ la parte cattiva del codice. I creatori di virus si sono sbizzarriti nel creare procedure di danneggiamento, che vanno dalla semplice visualizzazione di messaggi o animazioni di suoni più o meno divertenti, al rallentamento della macchina, alla cancellazione di file ed alla cancellazione o alterazione della partition table, del boot sector o della FAT. Caratteristica comune della bomba è quello di non entrare in azione ogni volta che si esegue il virus, ma solo sotto certe condizioni: particolari date, eventi interne alla macchina, etc. 20 COME UN VIRUS INFETTA UN FILE IN TESTA ED IN CODA Vediamo le operazioni che compiono: 1) File Begin: Vi sono tre modi di infettare un file all’inizio, il primo consiste nel riscrivere l’inizio del file in coda ed inserire il codice del virus nello spazio liberato; il secondo consiste nel creare una copia del virus in RAM ed appendervi il file da infettare, riscrivendo il tutto sul disco; il terzo, più distruttivo, consiste semplicemente nel sovrascrivere il virus all’inizio del file, perdendo le informazioni precedentemente in esso contenute. 2) File end: In questo caso si pone il problema di controllare se il file è di tipo .COM o .EXE, le procedure di infezione sono infatti differenti in quanto differententemente sono strutturati i due tipi di file. Alcuni virus controllano semplicemente l’estensione del nome, altri controllano l’header del file. Un file di tipo .COM, viene infettato appendendo in coda il codice del virus e modificando i suoi primi tre, o più, byte con una istruzione di salto locale al virus. In file di tipo .EXE invece, dopo aver appeso il codice del virus, si modifica nell’header il valore dell’indirizzo di start, in modo da far iniziare l’esecuzione partendo dal virus. 21 ANTIVIRUS. Esistono fondamentalmente tre tipi di antivirus, gli Scanners,i Monitors e i Checkers. Scanners. Sono programmi che analizzano gli oggetti eseguibili ( file e boot sectors ) alla ricerca di sequenze di codici presenti nei virus conosciuti. Attualmente essi sono i più popolari antivirus in commercio. In genere uno scanner è costituito da una searching engine e da un database, facilmente aggiornabile, contenente le cosiddette “code sequens” (o anche virus signature o scan string ) presenti nei virus conosciuti. Gli scanners presentano degli svantaggi legati al loro funzionamento. Innanzitutto bisognerebbe mantenere il proprio database sempre aggiornato, per evitare che un virus nuovo possa eludere i controlli, e ciò spesso non è possibile vista la velocità con la quale si presentano nuovi virus in circolazione. Infine l’avvento dei virus polimorfi, ha causato diversi problemi ai produttori di scanners, proprio perché basati sulla scansione di una stringa fissa. 22 Monitor. Sono programmi residenti in memoria, che memorizzano costantemente alcune funzioni del sistema operativo, utilizzabili dai virus. A differenza degli scanner non necessitano di aggiornamenti, ma presentano altri problemi, in quanto possono facilmente essere bypassati dai virus ed inoltre causano, come è ovvio, molti falsi allarmi dovuti alla rilevazione di richieste che se pur caratteristiche dei virus, sono del tutto legittime per altri programmi. Checkers. In base alla definizione di virus che abbiamo dato (programma autoriproducente) i checkers sono programmi che controllano se un file eseguibile è stato modificato (infettato). Per far ciò essi effettuano una rilevazione sui file presenti sul disco e salvano i dati relativi in un database, controllando in seguito periodicamente che non siano sopravvenute modifiche sospette. Secondo gli esperti, tale tipo di antivirus è forse il più sicuro, ma presenta anch’esso degli inconvenienti. Innanzitutto è ovviamente necessario che al momento della installazione il sistema sia virus-free, altrimenti immagazzinerà i dati di oggetti già infettati. Anche in questo caso si verificano dei falsi allarmi (ad esempio con l’aggiornamento di certi software), infine i checkers non prevengono l’infezione, si limitano solo a diagnosticarla. 23 Cosa non è un virus ? La maggior parte dei comportamenti un po' misteriosi dei computer non sono causati solo dai virus. Inspiegabili interruzioni del sistema o il danneggiamento di alcuni file che si risolvono in perdita di dati, possono verificarsi per eventi che non nascono da alcun meccanismo di auto replicazione. Bachi (bugs). Software molto complessi che adoperano un sistema operativo altrettanto complesso, qualche volta possono provocare malfunzionamenti generali, danneggiare file, provocare perdita di dati o addirittura bloccare il sistema. Anche se si tratta di un brutto problema non ha niente a che fare con i virus. Malfunzionamenti. L’hardware ed il software che guidano la macchina non sono affidabili al 100 percento in ogni situazione. Quando il mouse improvvisamente non risponde ai comandi o il sistema si blocca, oppure compaiono a video degli strani messaggi, non è detto che ci sia un virus. Generalmente si può dire che il nostro hardware talvolta può avere dei micro collassi. 24 Cavalli di Troia. L’infame cavallo di Troia, nella storia, ha distribuito qualcosa che i destinatari non si aspettavano. Lo stesso capita con i programmi chiamati cavalli di Troia che contengono di solito un’azione distruttiva nei confronti del computer su cui si trovano a funzionare. Tecnicamente non sono dei virus perché non si duplicano, ma sono lo stesso “cattivi”. Un esempio: Il dischetto informativo sull’AIDS, inviato a circa 20000 persone nel 1989, ha danneggiato i dischi fissi invece di dare informazioni sulla salute. I cavalli di Troia non si diffondono velocemente poiché non si replicano e questo li rende piuttosto rari. Scherzi pratici. Alcuni pirati, proprio per divertimenti, scrivono programmi che modificano la maniera in cui lavora il nostro sistema. Altre persone propagano leggende urbane come quella dell’E-Mail “Good Time”, che avvertiva di un mitico virus che viaggiava con il messaggio di posta elettronica “Good Time” e poteva infettare il proprio computer se quel messaggio di posta veniva letto. In entrambi i casi gli effetti possono essere irritanti ma per fortuna sono innocui. 25