Anlan Blog

Un posto per scrivere quello che sento
Options:

Anche il Mac soffre per i Virus ?

Da circa due settimane AVG ha annunciato il rilascio del suo LinkScanner per Mac con l’espresso obiettivo di “garantire sicurezza agli utenti Mac contro l’aumentato numero di sempre più sofisticati attacchi web”. Molto probabilmente i fanatici Mac non l’hanno presa molto bene … tant’è che la stessa AVG si è sentita in dovere di rilasciare le seguenti dichiarazioni :

E’ noto che la maggior parte degli utenti Mac credono di essere in qualche modo immuni da tutti i possibili rischi derivanti dal malware che si propaga tramite web. Questa convinzione è talmente forte per costoro da portarli a non installare qualsiasi software antivirus sui loro computer. Tuttavia i tempi stanno cambiando e il 2009 si è rilevato essere un anno piuttosto complicato per i rischi di sicurezza che coinvolgono le piattaforme Apple, compresi Mac OSX e l’iPhone. Durante l’ultimo anno i Mac sono stati oggetto dell’attacco del trojan iServices A, che ha comportato, per oltre 20.000 utenti, al download di un file infetto da un sito di software pirata.

AVG continua dichiarando che il successivo trojan iServices B ha già colpito altre 5000 macchine ed ha sottolineato come altri virus (tra cui Tored-A e Jahlav-C) sono già causa di preoccupazione nella comunità Apple.

Sono state scoperte delle vulnerabilità nel browser Safari, in iTunes e nel programma per la lettura dei PDF. Tra l’altro è da notare il fatto che lo scorso mese sono stati evidenziati dei report relativi a vulnerabilità non ancora corrette nel browser Safari 4.0. Sembra dunque che i Mac non siano più sicuri come un tempo.

Ovviamente gli utenti Mac sono ancora molto lontani dall’incidenza pesantissima di malware esistente per la piattaforma Windows. Tuttavia è bene, a mio avviso, non sottovalutare troppo il problema. Sono stato sempre convinto del fatto che non esiste un sistema operativo intrinsecamente inattaccabile e che la distribuzione di virus e malware per un determinato OS è diretta conseguenza della sua popolarità. In fondo è anche logico: dal momento che scrivere codice malevolo non è (spesso) un’operazione banale ed in considerazione del fatto che il virus-writer punta a massimizzare l’effetto della propria opera, ovviamente si cercherà di colpire, preferenzialmente, la piattaforma di maggiore diffusione. E se le alternative a Windows iniziano ad aumentare le loro quote di diffusione è lecito attendersi anche una evoluzione del malware per computer.

E se qualcuno ancora vi dice che i Mac sono immuni dai virus … ecco qua un bel video istruttivo:

Alla prossima.

Virus e malware : come rafforzare la propria sicurezza

Gli autori di codice malevolo fanno di tutto, con eccellenti risultati in verità, per eludere difese e protezioni messe a guardia del pc. Il loro obiettivo primario, a dispetto di quello che si può immaginare, non è creare danni immediati al computer quanto piuttosto quello di intrufolarsi all’interno del computer e stare ben nascosti cercando di svolgere attività poco lecite come ad esempio fregarvi dati personali, usare la vostra macchina come base di lancio per attacchi ad altri computer o server, sfruttare le vostre connessioni di rete locale per propagarsi agli altri computer dell’azienda o di casa. Insomma … cercare di fare i loro comodi con il minimo impatto sulla vostra percezione di qualcosa che non va’. Infatti, più è il tempo che passa senza che voi vi accorgiate di nulla, più è il tempo che il malware ha a disposizione per compiere i suoi misfatti.

Come sempre amo ricordare, affidarsi solo ad un buon antivirus/antimalware, non è sufficiente. La tecnologia alla base della rilevazione di virus e malware in genere è, concettualmente, vecchia di anni: i grandi produttori dei noti marchi di antivirus dispongono di laboratori di analisi che passano il tempo a studiare nuovi esempi (sample) di codice malevolo raccolto da macchine infette o segnalato dai loro utenti, compilano elenchi di nuove impronte da rilasciare in aggiornamento (siamo alla data attuale nell’ordine delle migliaia al giorno) e le distribuiscono tramite il web. I rovesci della medaglia sono presto detti: delle centinaia di migliaia di impronte virali che il vostro antivirus o antimalware è istruito a riconoscere più del 97% non è e non sarà mai di alcun interesse per il vostro computer – con evidenti ripercussioni sulle prestazioni del computer -, gli aggiornamenti arrivano – inevitabilmente – con un ritardo di qualche ora che, per infezioni a rapidissima diffusione, potrebbero essere fatali e, da ultimo, l’intero sistema di protezione si regge sull’assunto che il pc funzioni correttamente per poter ricevere gli aggiornamenti via web. Specialmente in questo ultimo caso è facile intuire come molti codici malevoli abbiano come obiettivo da colpire la risoluzione dei nomi internet all’interno del computer in modo che l’antivirus non sappia più dove andare a richiedere i propri aggiornamenti.

Ma in definitiva, come ci si può accorgere se la macchina è stata in qualche modo infettata ? Elevando la propria percezione di qualcosa che non va come dovrebbe. E l’unico modo per farlo è quello di imparare a conoscere cosa c’è nel computer e come funziona per potersi accorgere di cosa non dovrebbe esserci. Per questo è essenziale crearsi una “base” di partenza dalla quale poter partire nell’analisi dei possibili casi di infezione a cui il vostro antivirus o antimalware non ha potuto/saputo porre rimedio.

Ma quali strumenti utilizzare ? Ve ne sono molti, anche alcuni che sicuramente mi sfuggono, che possono aiutarvi ad individuare eventuali ospiti non invitati.

Microsoft Process Explorer (uno degli strumenti di SysInternals)

Con Process Explorer è possibile elencare quali processi siano attualmente in esecuzione sul computer e descrive le funzione di ogni processo. Ma la cosa più importante è che con Process Explorer potete salvare una “situazione base” dello stato dei processi del pc e, nel caso in cui iniziate a rilevare comportamenti anomali, confrontare una nuova analisi con una precedentemente salvata per cercare di individuare cosa c’è di nuovo che non dovrebbe esserci. Ogni differenza rilevata può essere un punto di partenza per iniziare ad investigare sulla eventuale presenza di malware.

HiJackThis (Trend Micro)

HiJackThis è una sorta di Process Explorer con funzionalità aggiuntive e l’indubbia eccellente caratteristica di essere facilmente utilizzabile anche da chi non sia particolarmente esperto di sistemi operativi. La creazione di una situazione di base (ottenuta quando si è sicuri che il computer stia funzionando al meglio) è estremamente facile ed utilissima per individuare le differenze che, nel tempo, si possono verificare. Nel caso in cui non siate in grado di interpretare il risultato dell’analisi di HiJackThis, niente paura: vi sono dei siti che possono interpretarlo per voi dandovi immediatamente evidenza di cosa c’è di buono e cosa di cattivo in esecuzione sul computer. I due più famosi sono HiJackThis.de e Networktechs.com: semplicemente copiate l’esito dell’analisi nella casella della pagina web, date invio e aspettate il risultato.
Se, invece, desiderate ottenere il parere di un esperto potete sempre consultare il forum di HijackThis (in lingua inglese) o, se non avete dimestichezza con la lingua, rivolgervi ad uno dei tanti forum in lingua italiana che possono darvi assistenza come ad esempio pc-facile.com.

Attenzione : la rimozione dei processi o delle chiavi di registro suggerite dall’applicazione potrebbe non sempre essere la soluzione adatta ai vostri problemi. E’ importante disporre di una buona base di conoscenza per capire quali effetti produrrà il vostro intervento soprattutto sul registro di sistema. Nel dubbio … chiedete, chiedete, chiedete !!!!

Questi due strumenti costituiscono già una buona base di partenza, ma come è intuibile, esprimono tutta la loro utilità quando ci stiamo accorgendo che c’è qualcosa che non funziona a dovere, quindi quando verosimilmente il codice malevolo si è già installato nel computer.
Come si può allora evitare di lasciare troppe porte aperte alle infezioni ? La risposta sta nei frequenti aggiornamenti che Microsoft rilascia di continuo per i propri sistemi operativi e per le proprie applicazioni. Si tratta di aggiornamenti importanti che nella stragrande maggioranza dei casi hanno lo scopo di mettere delle pezze (patch) alle vulnerabilità via via rilevate nel tempo. Sono proprio queste vulnerabilità che, se non corrette adeguatamente, diventano autostrade aperte alle infezioni. Emblematico è il caso della recente infezione di Conficker (altrimenti noto come Downadup): i computer regolarmente aggiornati con tutte le patch di sicurezza hanno resistito all’infezione mentre quelli NON aggiornati se la sono beccata con un indice di infezione altissimo.

Il consiglio quindi è sempre lo stesso : eseguite gli aggiornamenti del sistema operativo con regolarità, anche tutti i giorni. Obiezioni del tipo “non monto la service pack x perchè se no mi rallenta il computer” sono semplicemente sciocche e potrebbero farvi rimpiangere di non essere intervenuti prima. In termini di sicurezza è molto meglio avere un sistema operativo aggiornato con tutte le patch di sicurezza piuttosto che aggiornare quotidianamente l’antivirus. Ricordate sempre che uno dei fattori su cui fanno leva gli autori del codice malevolo è proprio il fatto che sanno perfettamente che molta parte dei computer non è aggiornata e quindi vi sono vulnerabilità da sfruttare.

Per cercare di capire a quali rischi di vulnerabilità sia esposto il vostro computer, e ovviamente metterci le opportune pezze di protezione, potete usare questi strumenti:

Microsoft Baseline Security Analyzer (MBSA)

Microsoft Baseline Security Analyzer è uno scanner di vulnerabilità che rileva le impostazioni di configurazione non sicure e verifica, in tutti i prodotti Microsoft installati sul pc (incluso il sistema operativo Windows ovviamente) quali patch di sicurezza non siano state applicate e che quindi sono necessarie. Purtroppo è disponibile solo in lingua inglese.

Secunia Inspector Scanners

Come per MBSA anche gli scanner di Secunia ricercano le vulnerabilità non corrette all’interno del computer, ma a differenza del prodotto Microsoft, includono nella scansione anche prodotti software di terze parti (ovvero non Microsoft), il che li rendono ovviamente più completi. Sia gli scanner on-line che quelli client offrono un’interfaccia intuitiva su cosa ci sia che non va e sul modo per porvi rimedio. Quando possibile indicano anche il collegamento diretto alla pagina del produttore il cui software deve essere corretto per il download degli aggiornamenti.

Tuttavia le cose non sempre facili come sembrano. A questo punto non fatevi trarre in inganno dall’assunto “nessuna vulnerbilità … nessun punto di accesso per il malware”: esiste del malware particolarmente insidioso che ricade nelle classi comunemente chiamate zero-day. Un’attacco di questo tipo sfrutta vulnerabilità ancora sconosciute, soprattutto al produttore del software e che, ovviamente, non vengono rilevate dai precedenti scanner come vulnerabilità da correggere. E’ a questo punto che entra in gioco la scelta di un buon antivirus specialmente se in grado di offrire una protezione euristica.

Ultimamente gli antivirus stanno perdendo molto della loro rispettabilità a causa della intrinseca impossibilità di raggiungimento del 100% di rilevazione delle infezioni conosciute e non conosciute. Tuttavia non è una buona idea tenere un computer senza antivirus: è troppo rischioso. Personalmente ho optato per TrustPort che offre una soluzione di scansione basata su diversi motori : quello che non trova l’uno, si spera, trova l’altro. Non voglio comunque accendere le solite frequenti e violente discussioni su quale antivirus sia il migliore.

Anche qui, comunque, l’antivirus non è sufficiente dal momento che la loro tecnica di rilevazione si basa su collezioni di impronte virali e su una analisi euristica dalle limitate capacità di indagine. I writers di virus e di codice malevolo in genere utilizzano tecniche di morphing (mascheramento) del loro codice, rendendo impossibile il confronto delle impronte virabile e confondendo l’analisi euristica. Scegliete dunque con cura il vostro antivirus/antimalware prestando moltissima attenzione e senza cadere nelle facili trappole di malware che si fingono degli antivirus (come ad esempio antivirus 2009).

A coadiuvare l’attività del vostro antivirus potrete comunque adottare anche altri tipi di programmi letteralmente chiamati Antimalware Enforcers (rafforzatori).

Microsoft Malicious Software Removal Tool (MSRT)

Malicious Software Removal Tool è in generale un buon strumento per la rilevazione e rimozione del malware se non altro per il fatto che è prodotto dalla stessa Microsoft: in linea di principio almeno loro sanno quale codice, di windows o delle loro applicazioni, è legittimo o è malware. Gli aspetti salienti di questa applicazione sono principalmente da ricondursi al fatto che il processo di rimozione dell’eventuale malware è completamente automatico, ed i suoi aggiornamenti vengono rilasciati tramite Windows Update.

Microsoft Windows Defender

Windows Defender è uno strumento, gratuito, di protezione dallo spyware. In generale non gode di un’ottima reputazione, ma secondo me questa cattiva fama gli è stata appioppata a torto. Sicuramente non è uno degli strumenti più efficaci nella rimozione del malware ma dispone di una caratteristica saliente che lo fa apprezzare da un’utenza poco esperta: la notifica immediata delle modifiche in corso in importanti chiavi di registro oltre a strumenti per l’analisi dei programmi in esecuzione. Potrebbe essere validamente inserito anche nel primo gruppo di applicazioni (vedi in cima all’articolo).

ComboFix

Questo strumento fornito da BleepingComputers è veramente impressionante per quanto delicato da utilizzare. L’ho testato in diverse occasioni con ottimi successo. Piuttosto che fornire il link diretto al download preferisco rimandarvi alla pagina di spiegazioni all’uso perchè, come consiglia lo stesso sito, non dovrebbe essere utilizzato senza l’assistenza di un esperto.

Malwarebyte’s AntiMalware

Sicuramente Malwarebyte’s AntiMalware (MBAM) è tra gli strumenti di maggiore successo, forse il migliore, nella rilevazione e rimozione del malware di ultima generazione.

GMER

GMER è un tool per la rilevazione di un malware particolare : i rootkit. Nonostante la rimozione dei rootkit sia operazione particolarmente complessa, GMER ha ottenuto ottimi risultati in questo delicatissimo campo.

In conclusione, con gli strumenti indicati, e mantenendo sempre viva la curiosità e la voglia di farsi aiutare, riuscirete ad aumentare notevolmente la vostra sicurezza specialmente se avrete SEMPRE l’accortezza di mantenere i vostri sistemi aggiornati.

Un buon modo per testare programmi di varia natura, navigare “allegramente” o comunque effettuare qualsiasi tipo di operazione per la quale non si desidera avere impatti sul proprio pc vero, è quello di utilizzare un virtualizzatore per crearsi un nuovo pc dentro il pc. I due sistemi di virtualizzazione più usati dagli utenti Windows sono VirtualBox e VirtualPc di cui ho già detto in precedenti post.

I sistemi di virtualizzazione hanno il pregio di “isolare” completamente il computer virtuale dal computer vero e, in linea di principio, qualsiasi eventuale infezione che potrebbe beccarsi il computer virtuale, non verrebbe automaticamente trasmessa al computer vero. Tuttavia abbassare completamente la guardia potrebbe non essere una buona idea: ci sono alcune considerazioni da fare che possono aiutarvi a comprendere se e quando decidere di installare un software antivirus anche all’interno del computer virtuale.

Il sistema virtuale è un computer a tutti gli effetti: semplificando un po’ (ma non troppo) è come se avessimo installato un nuovo computer fisico accanto al nostro e li avessimo collegati in rete. E’ facile intuire che se prevediamo di trasferire file dal computer virtuale a quello vero (mediante ad esempio la funzionalità di cartelle condivise) dovremo preoccuparci di quanto siano sicuri i file e se siano stati o meno già sottoposti a scansione antivirus. In questo caso potremmo anche fare a meno di installare un antivirus sul computer virtuale ma certamente non potremmo prescindere da averne installato uno (costantemente aggiornato) sul computer vero.

Questa impostazione tuttavia ha un limite ovvero la tecnica con cui si propagano le infezioni: è sempre più raro infatti che i virus si propaghino tramite il classico passaggio di file. Come insegna la recentissima infezione di Conficker / Downadup il malware può inserirsi direttamente nel computer da infettare tramite connessioni di rete non protette sfruttando vulnerabilità note e non corrette del sistema operativo. In questo caso il nostro computer virtuale non protetto potrebbe essere la classica “porta lasciata aperta ai ladri”  e diventare il punto iniziale di propagazione dell’infezione che potrebbe estendersi al computer vero e, se ce ne sono, agli altri computer presenti nella LAN. Contro questi tipi di infezione un antivirus classico (basato sulla ricerca di impronte virali all’interno dei file) non è quasi mai sufficiente: è sempre consigliabile disporre di un firewall (che impedisca l’accesso alle comunicazioni non desiderate) oltre a mantenere sempre aggiornato il sistema operativo “virtuale” (WindowsUpdate).

Il discorso non cambia molto anche se il sistema virtuale che desideriamo installare è Linux: se da un lato è vero che le possibili infezioni per Linux sono quasi zero è altrettanto vero che file infetti possono essere scaricati e passati al sistema Windows ospitante creando quindi un pericoloso punto di infezione.

Insomma, una corretta protezione antivirus deve sempre tenere conto dell’intero ambito in cui decidiamo di operare, della qualità dei file che intendiamo manipolare, di come cerchiamo di evitare di distribuire file infetti (anche se per noi innocui) ecc. E sempre tanto buon senso.

Quale futuro per antivirus e antimalware ?

Il rapporto tra produttori di software antivirus basati su impronte virali e i virus-writers è quasi comico. Uno rilascia qualcosa al quale l’altro risponde con un altro rilascio e così via, avanti e indietro. E’ come una piccola rincorsa agli armamenti senza fine.”

Questo il pensiero di Greg Shipley, Chief  Technical Officer di Neohapsis, al quale, nel mio modestissimo piccolo, non so dar torto in alcun modo. E’ evidente che il desiderio è quello di potersi liberare quanto prima delle forme tradizionali di antivirus. Ma il problema è : come ?

L’industria degli antivirus ha costruito il proprio successo sul modello del sistema di immunizzazione umano: assegna un’etichetta ad ogni agente infettante in modo da poterlo riconoscere ed eliminare la prossima volta che viene incontrato (esattamente come gli anticorpi). Anche se i moderni antivirus si sono spinti oltre al semplice riconoscimento di impronte virali note (implementando l’analisi euristica o il sand-boxing che permettono di analizzare, almeno in parte, il comportamento del codice malevolo), la ricerca di impronte note è sempre alla base del sistema di prevenzione e ha visto quasi raddoppiare nel solo 2007  il numero di samples da rilevare rispetto agli anni precedenti ed il rateo di crescita è in continuo aumento. Naturale chiedersi allora quale impatto possa avere una tale crescita nei database di aggiornamento e nelle performance di calcolo dei nostri computer: ricercare all’interno dei file infettabili centinaia di migliaia di possibile impronte virali non è uno scherzo.

La nuova tecnica di analisi e blocco comportamentale (vedi anche qui) potrebbe non essere sufficiente ad eliminare la ricerca per impronte: anche se un software fosse in grado di bloccare le azioni non desiderate o non autorizzate da parte di codice malevolo, dovrebbe pur sempre essere in grado di riconsocere il codice da rimuovere dal computer per evitare che tali azioni si riverifichino alla prossima esecuzione.  E questo riconoscimento può avvenire solo tramite il riconoscimento per impronte.

Perchè allora non cambiare la prospettiva ? E’ quello che si chiedono (ed a cui tentano di rispondere) aziende come Bit9. Anzichè basare la propria protezione su un sistema di tipo negazionale (ovvero basato su una lista nera – black list – molto lunga) potrebbe risultare più efficace adottare una logica di autorizzazioni basata su white-list ovvero : tutto quello che è presente nell’elenco delle applicazioni autorizzate può essere eseguito, il resto no. L’idea non è priva di ottime ragioni ma le difficoltà di implementazione ed i possibili effetti di impatto sul mercato non sono trascurabili.

Il mantenimento di un elenco di applicazioni “lecite” all’interno di un ambito ristretto (singolo pc) o mediamente vasto (piccole lan, reti aziendali, wan ecc) non è cosa facile come ben sanno i responsabili IT che cercano disperatamente di combattere con l’ottusità degli utenti e la miopia di molti manager.  Scendendo poi nel mondo del piccolo utente privato le difficoltà, soprattutto dovute ad una scarsa competenza tecnica, aumentano a dismisura: perchè dovrebbe autorizzare un’applicazione ? perche non dovrebbe farlo ? e’ sicura ? ecc. Esattamente come le finestre di dialogo dei personal firewall: alla fine molti cliccano sempre su autorizza rendendo il firewall completamente inefficace e senza una esatta comprensione di ciò che avviene dietro le quinte.

Oltre a ciò va considerato un altro fatto: il white-listing delle applicazioni ha sicuramente il pregio di ridurre pesantemente il rischio di infezione sul pc che lo adotta ma non garantisce assolutamente che l’eventuale file infetto possa essere trasmesso all’esterno (per esempio inviando un allegato email) e quindi possa infettare a sua volta altri computer che non adottano il white-listing. Un mail server, ad esempio, potrebbe essere protetto da sistemi di blocco comportamentale o di white-listing, ma le email (e relativi allegati) che passano attraverso il servizio non vengono eseguiti e quindi non potrebbero rivelare comportamenti anomali da bloccare. Dovere del mail server, al contrario, è quello di ricercare all’interno dei file che passano tramite email, possibili impronte virali da rimuovere o bloccare per prevenire possibili infezioni ai computer client che riceveranno quelle email.

Prepariamoci dunque a dover sopportare, e a far sopportare ai nostri computer, un numero sempre più alto di strati (layer) di protezione che interagiranno gli uni con gli altri per cercare di offrire garanzie di protezione sempre più alte.

E per ora tenetevi stretto il vostro antivirus classico e tanto buon senso.

Quelli che, con termine generico e non più completamente appropriato, vengono definiti virus per computer sono oggi una moltitudine varia ed articolata. Alcuni vendor di prodotti software per la sicurezza hanno coniato, e utilizzano, il termine malware per classificare in un unico gruppo qualsiasi tipo di codice malevolo che abbia come proposito quello di installarsi a bordo del nostro computer senza autorizzazione e di compiere azioni che noi non vogliamo e non vorremmo autorizzare. Tentare di creare classificazioni più precise è piuttosto difficile anche perchè gli aspetti qualificanti spesso si mischiano o si combinano creando nuove categorie.  A questo si aggiunga il fatto che il mondo dei malware è in rapida evoluzione e alcune delle categorie che tenterò di proporre sono ormai pezzi da museo.

Classificazione in base ai sintomi rilevabili dall’utente.

  1. Senza sintomi visibili. La maggior parte dei codici malevoli cerca di mostrarsi il minimo possibile: quanto più l’azione del malware resta nascosta, occultando all’utente del computer ogni anomalia, tanto più tardiva sarà l’eventuale azione intrapresa dall’utente per cercare di rimuovere l’infezione. Per questo motivo il programmatore che ha progettato e scritto il virus, avrà anche studiato un modo per ridurre al minimo indispensabile gli effetti immediatamente visibili sulle funzionalità o sui dati del computer;
  2. Sintomi visibili sullo schermo. Se l’autore del codice malevolo decide di dare una manifestazione visibile del proprio software, generalmente sceglie la strada di un’immediata visualizzazione sullo schermo: potrebbe trattarsi di frasi ad effetto che appaiono sullo schermo e che non riusciamo ad eliminare (es. Stop alla vivisezione, Salviamo le Balene ecc.). A volte tuttavia questa tecnica è più subdola e non fine a se stessa: potrebbe infatti nascondere la vera attività del virus o far credere all’utente che sia necessario intraprendere determinate azioni mostrando per esempio immagini grafiche montate ad arte che simulano finestre di sistema che invitano a scaricare fantomatici aggiornamenti o indispensabili antivirus per rimuovere infezioni rilevate e che in realtà non avete. Questa tecnica occulta l’installazione del vero virus ( o meglio di un altro virus ) che farà ulteriori danni;
  3. Sintomi curiosi. Se il programmatore del codice malevolo (il cosiddetto virus-writer) è un mattacchione potrebbe anche divertirsi ad inventare, come è successo in passato, un codice che faccia andare all’indietro l’orologio di sistema. Divertente ? Non tanto se si pensa che poi diventa un problema capire quale è la versione più recente di un backup.

Classificazione in base alla modalità di diffusione.

  1. Virus veri e propri. Si tratta di piccole porzioni di codice che sono in grado di replicarsi autonomamente all’interno del computer ospite per il tramite di un file veicolo (generalmente un’applicazione). In altre parole il Virus è un programma che si diffonde all’insaputa e, spesso, contro la volontà dell’utente: non ha altre caratteristiche e non necessariamente causa danni: eventuali malfunzionamenti o danni sono effetti secondari del virus che il programmatore ha inserito per vari motivi;
  2. I cavalli di troia (trojans). In questa categoria rientrano i programmi malevoli che, come suggerisce il nome, contengono la sorpresina: da un lato eseguono esattamente quello che l’utente si aspetta, ma dall’altro eseguono anche tutta una serie di operazioni relativamente alle quali l’utente non potrebbe essere d’accordo in alcun modo. Un esempio può essere utile a chiarire il concetto: veniamo invitati a scaricare un codec video che dice di permettere la visualizzazione di un filmato con una bellissima danzatrice; scarichiamo e installiamo ed effettivamente vediamo il filmatino ma nel frattempo, segretamente e a nostra insaputa, il programma appena installato scrive nel registro dati che modificano l’avvio delle applicazioni oppure cambiano il modo in cui funziona la risoluzione DNS per cui al successivo riavvio veniamo continuamente mandati su siti che non vogliamo vedere;
  3. Backdoor. La traduzione letterale li vorrebbe definiti come “porta sul retro”: in realtà il concetto di “porta di servizio” è più adatto. Questi tipi di programmi, di fatto, aprono una porta nel nostro computer disponibile alla ricezione di comandi o dati dall’esterno. In realtà questa è più una caratteristica : le backdoors sono generalmente l’effetto di un virus o di un trojan;
  4. Worm. Esagerando un poco nella semplificazione possiamo dire che i Worm sono virus che utilizzano canali di rete (network-worms) o email (email worms) per la loro diffusione. Tuttavia esiste una differenza sostanziale: mentre i virus necessitano di una applicazione che li ospiti i Worm si inseriscono direttamente nella memoria del computer (sfruttando varie vulnerabilità) e solo in un secondo momento scrivono su file le istruzioni necessarie a ricaricarli in memoria al riavvio del computer.

Classificazione in base al tempo di manifestazione

  1. Ad attivazione immediata. Rientra in questa categoria la stragrande maggioranza dei codici malevoli in circolazione al giorno d’oggi: non appena entrano nel computer vengono attivati immediatamente cominciano da subito a produrre gli effetti indesiderati. Ciò è dovuto principalmente al fatto che anche le contromisure hanno tempi di pubblicazione e diffusione molto rapidi (grazie allo strumento Internet) e quindi i programmatori di questi “virus” cercano di sfruttare al massimo il tempo in cui un computer può rimanere infetto;
  2. Ad attivazione differita. “Attenzione … non avviare il computer il tal giorno, un virus sta per colpire. Possibile perdita di dati.” I tempi in cui questi messaggi e avvisi circolavano sono ormai lontani. Potevamo notarli agli inizi degli anni 90 quando accadeva che la protezione fosse agli albori e potevano volerci mesi prima di reagire ad un’infezione. Inoltre il virus non poteva affidarsi per la propria propagazione al canale internet (quasi inesistente) e quindi doveva fare affidamento sul classico scambio di file tramite supporti magnetici. Il virus-writer che voleva creare un’epidemia doveva pianificare una data per manifestare gli effetti del proprio lavoro: non troppo vicina per consentire una adeguata distribuzione dei file infetti, non troppo lontana per prevenire che anche le contromisure venissero distribuite;
  3. Ad attivazione condizionale. Anche questi sono (quasi) storia del passato. Alcuni virus erano programmati per attivarsi in determinate condizioni (come ad esempio ogni 3 riavvii del pc oppure dopo una specifica sequenza di tasti).

Classificazione in base alla gravità

  1. Non Distruttivi. La maggior parte dei codici malevoli dei giorni nostri appartengono a questa categoria. Per due ragioni principali. La prima è il fatto che i virus classici (quelli che si inseriscono in un file eseguibile e ne modificano il funzionamento) sono praticamente scomparsi. La seconda è ancora legata al tentativo di occultamento del virus da parte dei loro creatori: cancellare file o applicazioni a destra e a sinistra non è certo un buon modo per restare nascosti e l’utente si accorgerebbe subito di qualcosa che non funziona;
  2. Distruttivi. In questa categoria dovremmo inserire due sottocategorie: virus a distruzione volontaria e virus a distruzione accidentale. I primi sono stati espressamente progettati per distruggere i dati dell’utente mentre i secondi cancellano accidentalmente i file dell’utente principalmente a causa di errori di programmazione. Dal punto di vista dell’utente attaccato comunque non cambia molto: i dati vengono persi;

Classificazione in base all’area di infezione

  1. Boot virus. Questi tipi di virus infettano particolari aree di codice eseguibile memorizzato nell’area di sistema dei supporti magnetici cosiddetti di avvio. Nei settori di boot sono infatti memorizzate le istruzioni iniziali che il computer legge per caricare il sistema operativo e per passargli poi il controllo. Un virus che riesce ad inserirsi nei settori di boot verrà caricato in memoria ancora prima che venga avviato il sistema operativo;
  2. File virus. Bisognerebbe dividere questa categoria in tante sottocategorie quanti sono i tipi di file infettabili. Generalmente si tratta di file eseguibili ( i più comuni sono .com e .exe) perchè obiettivo del virus è quello di attivarsi non appena viene eseguita l’applicazione che lo ospita. In tutti i casi comunque il virus si comporta in modo simile: sovrascrive l’intestazione del file ospite (dove sono contenute le istruzioni per l’avvio del programma) inserendovi il codice che passa il controllo al blocco di codice del virus vero e proprio. Si tratta quasi sempre di virus della categoria distruttivi perchè l’operazione di innesto del codice malevolo all’interno dell’applicazione ospite danneggia l’eseguibile e il programma che vorremmo avviare smette di funzionare. In questa categoria si riconoscono poi due gruppi: i virus sovrascriventi e i virus estendenti.  I primi, come visto, si innestano nelle istruzioni di avvio dell’applicazione rendendola inservibile. I secondi invece sovrascrivono solo i primissimi byte dell’applicazione (che potrebbe continuare a funzionare) e aggiungono il loro codice alla fine del file eseguibile: ne consegue che l’effetto visibile dell’infezione è un aumento della dimensione del file infetto. I primi sono quasi impossibili da correggere da parte di un antivirus mentre per i secondi ci sono più probabilità di successo (ovvero l’applicazione può ricominciare ad essere usata, dopo averla disinfettata, senza dover reinstallare l’intero programma;
  3. Virus Companion. Non trovo purtroppo un termine italiano per tradurre esattamente questa categoria. Si tratta comunque di una estensione dei “file virus” che però adotta una caratteristica (debole) dei sistemi operativi DOS e Windows. In pratica il virus infettante crea un file “gemello” di quello buono e vi si inserisce cambiando anche l’estensione del file eseguibile (per esempio cambiandola da .exe a .com). In questo modo, dal momento che il sistema operativo “preferisce” gli eseguibili .com a quelli .exe, verrà preferenzialmente eseguito il file .com infetto;
  4. Cluster virus. Costituiscono una categoria molto interessante: modificano i puntamenti dell’albero delle directory in modo che un determinato percorso faccia puntare direttamente al codice eseguibile del virus anzichè all’area dati corrispondente.
  5. Macro Virus. L’aspetto più fastidioso di questa categoria è che è indipendente dal sistema operativo utilizzato anche se spesso i loro effetti dipendono dal sistema operativo. Le macro sono sequenze di codice scritto (o registrato da un utente) ed interpretato dall’applicazione ospite. Per esempio una Macro di Excel. I macro-virus sono sequenze di codice non desiderato dall’utente che infetta prevalentemente i file di dati, non le applicazioni.

Classificazione in base alla posizione in memoria

  1. Residenti. Come suggerisce il nome, i codici malevoli appartenenti a questa categoria, si installano in modo residente nella memoria del computer. Generalmente l’installazione in memoria viene attivata alla prima esecuzione del file infetto (file virus) oppure durante il caricamento iniziale del sistema operativo (boot virus). Il codice del virus rimane in esecuzione in memoria fino a quando il computer viene spento.
  2. Residenti TSR. Alcuni virus possono caricarsi in memoria utilizzando servizi DOS del tipo TSR (Terminate and Stay Resident). Si tratta di una sottocategoria dei virus Residenti con una differenza però importante. Questi tipi di virus utilizzano in genere tecniche di installazione in memoria analoghe a quelle di molti programmi legittimi motivo per cui la loro individuazione risulta più difficile.
  3. Non Residenti. Non sempre il virus ha bisogno di installarsi in memoria e rimanere attivo per compiere le sue malefatte. E’ sufficiente che vengano attivati alla prima esecuzione del file infetto, quindi prendono il controllo per eseguire il codice malevolo e terminano, ripassando, se possibile, il controllo all’applicazione ospite. Generalmente si tratta di file virus anche se la loro diffusione è molto diminuita: non potendosi installare in memoria non possono nemmeno eseguire tecniche avanzate di occultamento e non possono analizzare l’attività del sistema per lungo tempo.

Classificazione in base al comportamento

  1. Stealth e substealth. Il nome Stealth evoca il famoso bombardiere americano invisibile ai radar. Allo stesso modo i virus Stealth (quasi sempre del tipo Residente) riescono a nascondere la loro attività. In pratica monitorano costantemente l’attività del sistema quando richiede la lettura delle dimensioni dei file fornendo al sistema stesso risposte sbagliate: in questo modo, ad esempio, riescono a far credere al sistema, e all’utente, che le dimensioni di un file non siano cambiate allontanando il sospetto che sia presente un’infezione;
  2. Polimorfici. Un virus polimorfico cifra/codifica il corpo del suo codice per nascondere la sua impronta caratteristica al programma antivirus. In pratica continua a cambiare forma. Al momento dell’esecuzione del file infetto, il virus polimorfico attiva una routine di decodifica che riporta il codice del virus in formato eseguibile e quindi vi passa il controllo per l’esecuzione vera e propria. I primissimi virus codificati non erano polimorfici: in pratica la routine di codifica (o criptatura) che veniva utilizzata non modificava mai il risultato e l’impronta caratteristica del virus era individuabile sia nella sua forma in chiaro che in quella codificata. Oggi, invece, le tecniche utilizzate dai moderni virus polimorfici ne rendono molto più difficile l’individuazione perchè la routine di codifica utilizzata permette loro di modificare la loro impronta ad ogni esecuzione tramite un generatore di codice macchina detto Mutator (un generatore di codice che modifica l’impronta utilizzando una sequenza di numeri casuali ed un agloritmo matematico). Questo è il motivo perchè i vendor di antivirus pubblicano sempre nuovi aggiornamenti dei loro database delle impronte virali inserendo nuove varianti sempre dello stesso virus. Gli antivirus più sofisticati, tuttavia, anche se non riescono ad individuare l’impronta caratteristica del virus polimorfico, implementano algoritmi di decifratura/decodifica simili a quelli usati dal virus stesso in modo che l’antivirus possa “portare alla luce” il virus nella sua forma originale e quindi indivduarlo. Tutto ciò mette a dura prova sia il programma antivirus che le risorse del computer in quanto il lavoro da eseguire per individuare una possibile infezione fa aumentare di molto il tempo di occupazione della CPU da parte dell’antivirus;
  3. Retrovirus. La miglior difesa è l’attacco. I retrovirus sono programmi malevoli che cercano di sfuggire alla cattura attaccando direttamente il loro peggior nemico: l’antivirus. Alcuni esperti li definiscono a volte come gli anti-antivirus (attenzione a non confonderli). Creare un retrovirus può anche non essere particolarmente difficile. Qualsiasi virus writer può facilmente scaricare dal web una copia del software antivirus che intende attaccare tra tutti quelli disponibili sul mercato, e studiare un modo per renderlo inoffensivo. Tecniche di reverse-engineering consentono di trovare punti deboli o errori di programma. Semplificando di molto, per esempio, un retrovirus potrebbe trovare il modo di nascondere all’antivirus il suo database delle impronte virali: in questo modo l’antivirus non saprebbe più quali impronte ricercare e quindi considererebbe tutti i file che in realtà sono infetti come puliti;
  4. Armored Virus. I virus corazzati (armored) si proteggono con una speciale corazza che rende il tracing, il reverse-engineering e la lettura del codice malevolo particolarmente difficile per i programmi antivirus. Le tecniche di corazzatura possono essere diverse: dalla scrittura di istruzioni apparentemente in conflitto tra loro fino all’inserimento di istruzioni fuorvianti per l’antivirus che potrebbe andare a cercare il virus vero e proprio in una posizione dove in realtà il virus non risiede.
  5. Virus Multipartite. Questi virus utilizzano tecniche di infezione diverse a seconda delle necessità. Possono infettare i file o i settori di boot scegliendo di volta in volta l’operazione che riesce meglio.

Classificazione in base alla velocità di diffusione

  1. Infettanti rapidi. Rientrano in questa categoria i virus che non infettano solo i file eseguiti ma anche quelli aperti (per esempio per operazioni di lettura o copia).
  2. Infettanti lenti. Più difficili da individuare in quanto infettano i file solo durante le operazioni di manipolazione da parte del sistema operativo. Per esempio possono venire infettati i settori di boot di un floppy solo se l’utente esegue un comando FORMAT oppure SYS. Questi tipi di virus infettano sempre le copie dei file, mai l’originale.
  3. Infettanti occasionali (sparse virus). Rientrano in questa categoria generalmente i virus ad attivazione condizionale. Le probabilità di essere infettati da questi tipi di virus è piuttosto bassa.
  4. Zoo Virus. Così come lo zoo nella vita reale è un ambiente circoscritto anche nel modo cibernetico esistono gli zoo. Uno zoo-virus è un virus che non ha alcuna possibilità di diffondersi nel cyber-world e, anche se gli antivirus sono in grado di rilevarli, è praticamente impossibile incontrarli. Vengono creati per scopi di didattici o di studio oppure il numero di errori che contengono è tale da renderli inefficaci. Alcuni addirittura possono venire creati per scopi di gloria (“yuppieee … ho creato il primo virus per xyz”) anche al costo di non vederli mai funzionare come atteso (troppi errori). A volte gli zoo-virus vengono associati ai cosiddetti wild-virus: codice malevolo in cui ci si può imbattere solo con una buona dose di sfortuna.