TRAPANI E PROVINCIA TUNING STYLE

Virus e antivirus, l'eterna lotta fra il bene e il male

« Older   Newer »
  Share  
max gt turbo
view post Posted on 22/11/2008, 13:40     +1   -1




Virus e antivirus, l'eterna lotta fra il bene e il male


[EMAIL="[email protected]"] Marco Giuliani
“Virus e antivirus, temi caldi del panorama informatico fin dagli anni 80, giunti ai giorni nostri assumendo via via sempre più importanza e causando preoccupazioni molto spesso fondate. Analisi tecnica e breve cronistoria dell'eterna lotta fra il bene e il male all'interno dei nostri PC”

Introduzione


Microsoft Windows si sa, è il sistema operativo più utilizzato al mondo e come tale è spesso e malvolentieri vittima della maggior parte degli attacchi sferrati da chi tenta di utilizzare il computer per scopi maligni. É chiaro, se si vuole fare il peggior/maggior danno ad un folto gruppo, bisogna colpire ciò che è maggiormente e più comunemente sfruttato. Proprio per questo motivo possiamo contare ad oggi più di 150.000 virus informatici, la piaga informatica per eccellenza. Dagli anni '80 a seguire, con maggior picco proprio in questi ultimi anni, i virus informatici si stanno espandendo oltre ogni previsione, sfruttando soprattutto Internet, la rete globale.
Il cyberspazio è diventato infatti uno strumento fondamentale sia nel lavoro sia in un ambiente domestico, dove spesso la fanno da padrone i più giovani. Per utilizzare un computer ed avere accesso ad Internet oggi come oggi non vi è necessità di una preparazione culturale particolarmente elevata: bastano infatti alcuni semplici passaggi per entrare a far parte del mondo digitale.
Il problema è che spesso questa facilità permette di gustare solamente i lati positivi del web, lasciando all'oscuro gli ignari navigatori di quali siano i rischi che si possono correre e che si potrebbero evitare con un po' di conoscenza e di buonsenso. In alcuni casi infatti basterebbe un software antivirus aggiornato a proteggere il proprio pc dalla maggior parte dei rischi. Ma spesso molte persone neanche sanno cosa sia un antivirus, né capiscono perché debba essere aggiornato. Quali sono i meccanismi? Perché va aggiornato? Questo articolo si prende il compito di spiegare a tutti gli utenti, anche alle persone meno esperte, con le parole più comprensibili possibili, cosa sia un virus informatico, cosa sia un software antivirus e come funzionino.

Virus informatici: cosa sono?

Nel 1984 il matematico Dr. Frederick Cohen introdusse il termine di virus informatico. La definizione, rivista poi da Peter Szor nel proprio libro "The art of computer virus research and defense", è la seguente:
"Un virus informatico è un programma che ricorsivamente ed esplicitamente copia una versione possibilmente evoluta di sé stesso".
Dunque, un virus informatico è semplicemente un programma, come lo è MSN messenger, come lo è Mozilla Firefox o Internet Explorer.

image
Un virus informatico non è altro che un'insieme di righe di codice scritte in un linguaggio di programmazione, che può variare dal semplice BATCH (files .BAT) al Visual Basic o Delphi o C/C++, senza escludere tutti gli altri linguaggi di programmazione, per esempio PERL, Java, Python, PHP e tanti altri Ma che cosa differenzia un virus da tutti gli altri programmi? Diamo ora una spiegazione della definizione di virus informatico.
Vengono utilizzati i termini "ricorsivamente" ed "esplicitamente": certamente un virus non può limitarsi ad una copia di sé stesso in un altro file ma deve potersi diffondere ciclicamente senza mai fermarsi. Inoltre l'uso del termine "esplicitamente" serve a chiarire un concetto: un virus deve avere come intenzione esplicita quella di copiarsi in altri file o di diffondersi. Il suo scopo è quello di diffondersi e deve essere chiaro.
Se un vostro software tentasse un aggiornamento da Internet e per installare la nuova versione fosse richiesto di sovrascrivere il file eseguibile, questo potrebbe essere scambiato per il comportamento di un virus - sovrascrivere o modificare il codice di un programma. Eppure non lo è.
Semplicemente il programma non ha come scopo esplicito quello di sovrascrivere tutti i files eseguibili, ma esclusivamente di aggiornare il proprio ad una versione più attuale.
Questo è il primo punto fondamentale per poter etichettare un software come "virus".
Inoltre diamo una spiegazione della frase "copia una versione possibilmente evoluta di sé stesso".

image
Un virus non necessariamente deve copiare lo stesso suo codice di partenza in altri files, ma spesso alcuni virus polimorfici tendono a modificare il proprio codice in modo da avere forme differenti ma funzionalità simili. In questo paragrafo abbiamo quindi capito di cosa parliamo quando nominiamo un virus informatico, evitando così di chiedere a qualcuno che ce lo nomina se si tratti di un nuovo cibo vegetariano o una nuova invenzione delle case farmaceutiche ;)

Classificazione dei virus informatici
Vediamo ora quali sono le categorie principali in cui sono stati divisi durante questi anni i virus informatici:
VIRUS: abbiamo già espresso precedentemente la definizione di virus.
WORM: un worm è un particolare tipo di virus che non utilizza altri file da infettare per diffondersi, bensì utilizza la rete. Possono autoeseguirsi in alcuni casi, anche se spesso hanno bisogno dell'intervento dell'utente per poter iniziare il ciclo di infezione.
TROJAN: trattasi di un particolare tipo di malicious software (malware) che poco rispecchia la definizione di virus. Un trojan è un programma che, nascosto sotto le mentite spoglie di un software utile all'utente (un gioco per esempio o un crack), cela in realtà funzionalità che minano alla base la sicurezza del pc, eseguendo procedure all'insaputa degli utenti.
BACKDOOR: simile al trojan, nascondendosi a volte sotto mentite spoglie, permette, una volta eseguito nel sistema ospite, l'accesso da remoto da parte di un utente al pc infettato.

Breve storia dei virus informatici

Per poter comprendere meglio lo sviluppo dei virus informatici, dobbiamo tornare indietro nel tempo, precisamente intorno ai primi anni 80, quando venne coniato il termine "virus informatico" da Fred Cohen. Sebbene sia considerato all'unanimità questo il periodo ufficiale che sancisce la nascita dei virus informatici, dobbiamo precisare che concetti simili erano stati comunque studiati negli anni precedenti.
[LEFT]Per arrivare al primo virus informatico famoso nel mondo dobbiamo giungere al 1986, dove due fratelli pakistani, proprietari di un negozio di computer, creano il virus Brain per punire chi copiava illegalmente il loro software. Brain si diffonde in tutto il mondo, anche se in molto più tempo rispetto a quello a cui siamo abituati noi oggi. Fu il primo esempio di virus che infettava il settore di avvio.

image

Per poter vedere all'opera il primo file infector dobbiamo aspettare il 1987, quando il virus Lehigh fa la sua comparsa. Lehigh fu il primo virus che infettava i file - nel suo specifico caso solo il file "Command.com".[/LEFT]
Nel 1988 Robert Morris Jr. crea il primo worm della storia, sfruttando alcune falle di programmi e liste di password non sicure utilizzate da molti gestori di servizi. Solo un anno dopo, nel 1989, vediamo l'avvento dei primi virus polimorfi, con uno dei più famosi: Vienna. Nello stesso anno viene diffuso il trojan AIDS (conosciuto anche come Cyborg), molto simile ad un trojan dei nostri giorni, PGPCoder.Entrambi infatti codificano i dati presenti nel disco fisso e chiedono un riscatto per poter recuperare il tutto.
Dal 1989 c'è un rapido sviluppo di queste tipologie di virus ma per assistere al primo grande salto dobbiamo arrivare nel 1995, quando Concept, il primo virus veramente diffuso, introduce il concetto di macro virus, cioè virus che infettano i documenti di Microsoft Office. Nel 1998 vediamo la nascita di un altro dei virus storici, Chernobyl o CIH, diventato famoso per la capacità di sovrascrivere il BIOS della scheda madre e la tabella delle partizioni dell'hard disk ogni 26 del mese.
La fine degli anni 90 vede la diffusione di massa di Internet per come è intesa al giorno d'oggi, e molti virus writers videro che non era più necessario aspettare mesi e mesi affinché un floppy disk infetto potesse infettare il mondo intero: Internet collegava il mondo intero e il tutto a pochi secondi di distanza. Inizia a nascere quindi il periodo dei worm che si diffondono via e-mail, tutt'ora vivo. Tra i nomi di maggior spicco prima del 2000 possiamo ricordare 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.

image
Il 2000 viene ricordato come l'anno dell'amore, con il famoso I Love You che, a catena,a dà il via ad un breve periodo di script virus. Dal 2001 vediamo un incremento di worm che utilizzano falle di programmi o sistemi operativi per diffondersi senza nessun intervento dell'utente, fino a raggiungere l'apice nel 2003 e nel 2004: SQL/Slammer, il più rapido worm della storia e i due worm che tanto hanno fatto parlare di sé: Blaster e Sasser.
image

Virus, le minacce attuali

Al giorno d'oggi le maggiori minacce sono costituite dai worm, sebbene alcuni virus che utilizzano vecchie tecniche di infezione siano ancora diffusi. Di tecniche vecchio stile utilizzate dai virus per infettare i files ne esistono parecchie ma è inutile spiegarle tutte, visto che molte per i motivi più svariati non vengono più utilizzate. Alcuni virus tutt'ora in circolazione, quali il famoso Tenga.A o il più vecchio Parite.B sono virus del tipo file-infectors, o "infetattori" di files. Cosa significa "infettatori" di files?
Un file eseguibile tipico è composto all'interno da varie sezioni: un header - una sorta di presentazione del file - e le varie sezioni che contengono il codice eseguibile del programma. Un esempio di file infector può essere il vecchio virus Vienna: il virus inserisce subito dopo l'ultima sezione del file da colpire il proprio codice e modifica l'intestazione del file in modo da far eseguire il codice del virus prima e il programma subito dopo. Ecco che il file è stato dunque infettato.

image

Esistono numerose tecniche utilizzate dai virus per infettare i files, ma per rendere l'idea il concetto esposto in questo paragrafo è più che sufficiente. Parliamo ora del pericolo dei worm. Abbiamo già definito nei paragrafi precedenti un worm, vediamo ora quali sono i metodi e i veicoli più diffusi di infezione.
Come abbiamo detto, Internet entra ormai nelle case di chiunque e, alzi la mano chi non ha almeno una casella e-mail per ricevere la posta elettronica. Ecco dunque il mezzo più veloce per raggiungere il maggior numero di persone nel minor tempo possibile.
I cosiddetti mass-mailer worms sono infatti worms che utilizzano le e-mail per diffondersi, attaccando il proprio codice infetto in forma di file allegato alla posta elettronica. Questo tipo di worm solitamente necessita dell'intervento dell'utente per iniziare il proprio ciclo di infezione, cioè aspetta che l'utente inavvertitamente lanci il file eseguibile trovato nell'e-mail.
Una volta infettato il sistema comincia a collezionare le e-mail presenti all'interno del pc e ad autoinviarsi a tutti i contatti trovati. I worm di questo tipo sono solitamente facili da individuare e da rimuovere: non fanno altro che copiare il codice infetto all'interno della directory di sistema di Windows e aggiungere una chiave al registro per autoeseguirsi all'avvio. Rimosse queste due modifiche abbiamo quasi sicuramente fermato il worm.
Vi è da dire che anche l'individuazione di worm nelle e-mail è spesso facile, basta utilizzare un po' di testa e prestare attenzione ad alcuni particolari tra i quali:
- e-mail scritta in una lingua diversa dal solito (inglese, francese, tedesco...), anche se il mittente dovrebbe essere conosciuto;
- presenza di un allegato con un nome strano o comunque dalle dimensioni non superiori ai 90/100KB;
- il file allegato è compresso o ha una doppia estensione o, nel nome, ha una lunga serie di spazi che separano il nome del file dall'estensione;
- l'estensione del file (una volta decompresso se veramente compresso) varia da exe a com, a scr, a vbs, pif.
Se uno o più di questi particolari è presente nell'e-mail che avete ricevuto, molto probabilmente si tratta di un worm. Se riuscite ad afferrare questi piccoli ma allo stesso importanti particolari avrete già ridotto in modo drastico il rischio di minacce al vostro pc.
Esiste poi un'altra categoria di worm, quelli che sfruttano dei bug di sistema per poter automaticamente diffondersi tra i computer senza intervento alcuno da parte dell'utente. Tra questi worm possiamo citare appunto Blaster e Sasser, ma anche CodeRed, Slammer e il fratello Slapper (il primo worm della storia), il worm di Morris jr e tanti altri.

image

Per questi worm l'unico rimedio è quello di tenere costantemente aggiornato il proprio sistema operativo e tutti i software installati sul pc. É chiaro che con un firewall molti attacchi di worm che sfruttano exploit per buchi nel sistema possono essere evitati a priori, visto che il tentativo viene filtrato dal firewall prima che arrivi a contatto con il sistema operativo.
Ecco spiegato perché il firewall, per questo e tanti altri motivi, risulta essere una componente fondamentale per la sicurezza del proprio pc.

La difesa: i software antivirus

Dopo aver presentato i pericoli derivanti dai worm, vogliamo ora prendere in esame quali strumenti abbiamo per poterci difendere dalle insidie di Internet. Come tutti sapranno, lo strumento è un particolare software chiamato in gergo antivirus.
Un antivirus non è nient'altro che un programma specificatamente studiato per prevenire, individuare e rimuovere i virus dal proprio pc. Vedremo nei paragrafi successivi in modo più approfondito come un antivirus riesca a individuare i malware. Facciamo ora un breve riepilogo storico sulla nascita dei software antivirus.
Quando negli anni 80 iniziano a nascere i virus informatici, i più curiosi esperti e "smanettoni" non rimasero a guardare e un paio di anni dopo la comparsa di Brain, nel 1988 compaiono i primi tool di rimozione del virus.
Nello stesso anno a risposta per l'attacco del worm di Morris, venne fondato il CERT/CC - Computer Emergency Response Team/Coordination Center - una sorta di associazione che fornisce assistenza in caso di emergenze o epidemie. Negli anni a seguire vengono rilasciati i primi software antivirus, tra i quali Dr.Solomon Antivirus.
Nel 1989 viene rilasciata la prima edizione del Virus Bulletin, la rivista ad oggi più rinomata nel campo dei virus informatici, mentre nell'anno successivo, il 1990, viene fondato l'EICAR - European Institute for Computer Antivirus Research, cui consegue nel 1993 la pubblicazione della prima Wild List, cioè la lista dei virus più diffusi nel mondo.
Da quel momento ad oggi di passi avanti molti ne sono stati fatti e abbiamo tutt'ora a disposizione numerosi software antivirus capaci di difenderci, bene o male, dalla maggior parte dei pericoli del web.
Norton, Kaspersky, McAfee, PCCillin, Nod32, F-Secure...di nomi ce ne sono tanti e di pareri sull'efficienza altrettanti, ma spesso si ignora come veramente i software antivirus funzionino e perché ci sia bisogno di aggiornarli spesso, o addirittura si ignora il perché abbiano bisogno di aggiornarsi.
Scomponiamo dunque un software antivirus. Le parti fondamentali sono sostanzialmente due, il modulo di scansione on-access e il modulo di scansione on-demand. Il primo è il modulo che controlla in tempo reale cosa avviene sul pc, il secondo invece è il modulo che si occupa della scansione manuale del sistema, solo quando l'utente richiede una scansione.
Per i meno informati vogliamo quindi suggerire di controllare sempre che il controllo on-access, o controllo in real time sia attivo e funzionante, altrimenti il pc rischia di poter rimanere infettato anche se siete sicuri di aver installato un software antivirus.
Per controllarne l'effettiva attività è possibile navigare nel sito [url]www.eicar.org[/url] e scaricare il file di prova EICAR.COM. Se il vostro antivirus lancerà un allarme non preoccupatevi, è tutto ok: non è infatti un vero virus, ma solo un file di prova che i software antivirus riconoscono come virus. Ciò vi servirà per verificare le funzionalità e l'efficienza di individuazione del vostro antivirus.
Per la scansione on-demand due sono gli argomenti principali: la scansione per mezzo di firme digitali e per mezzo di tecnologia euristica. Nel prossimo paragrafo affronteremo dunque questi argomenti.

Antivirus: scansione on-demand - parte 1

Come accennato precedentemente possiamo considerare la scansione on-demand come la parte manuale di un software antivirus, la parte che richiede l'intervento dell'utente per poter funzionare. Due sono le tecniche per individuare un virus informatico: attraverso le firme digitali e attraverso l'euristica.
Analizziamo per prima quella che risulta essere la tecnica più datata ma comunque tuttora la più sicura, ovvero la scansione per mezzo di signatures, o firme virali. Abbiamo ormai capito che un virus non è nient'altro che un software come lo sono tanti altri, quindi un insieme di righe di codice che, compilato, diviene codice macchina. Per poter identificare un virus si è dunque pensato di cercare all'interno del file infetto una serie di bytes riconducibili con certezza la presenza di quel determinato virus.
Quindi un ricercatore di una società di antivirus deve prendere il file infetto dal virus, disassemblarlo (cioè leggerne il codice macchina interpretato, per una seppure lieve facilitazione nella comprensione) e cercare all'interno una sequenza di bytes che sia propria del virus, cioè che solo quel virus ha e nessun altro programma esistente al mondo.
Esempio: "Quella persona è un ladro perché ha il passamontagna!", cioè riconoscere il ladro per un segno caratteristico. Come è facile capire, non è un compito semplice quello di riuscire a trovare una sequenza di bytes tale da non incorrere in falsi positivi, cioè in programmi che hanno la stessa sequenza all'interno del proprio codice senza però essere dei virus informatici.
Non necessariamente infatti un tizio con il passamontagna e la pistola deve essere un ladro, bisogna anche considerare il contesto in cui si trova.
Quindi un software antivirus non controlla esclusivamente la presenza della sequenza di bytes all'interno dei file, ma prende in considerazione molti altri parametri, tipo la locazione di dove dovrebbe trovarsi la specifica sequenza. Molte signatures fanno dunque uso dei cosiddetti bookmarks, cioè forniscono al software antivirus non solo la sequenza di bytes da cercare ma anche la locazione dove cercare.

image

Per avere una certezza assoluta che il file sia infetto, alcuni ricercatori ricorrono a più di una sequenza per identificare un preciso malware, prese in zone differenti del file. Questo è il meccanismo che sta alla base della scansione attraverso le signatures, anche se in molti casi viene altamente ottimizzato per evitare di sovraccaricare troppo il pc o comunque per evitare ridondanze di codice o troppi accessi di lettura/scrittura nei files.
Di conseguenza si utilizzano dei filtri da applicare prima della scansione: è inutile cercare per esempio macro viruses in un file .EXE o .COM. Kaspersky Antivirus per esempio non fa uso di sequenze di bytes, ma di checksum calcolati in specifiche zone del file - solitamente due - che coprono uno l'intero codice del file mentre il secondo solo una piccola parte del codice. Se uno dei due è presente nei database di Kaspersky Antivirus e viene individuato, previo calcolo, in un file, scatta l'allarme WARNING - possibile file infetto - mentre se vengono riconosciuti entrambi i checksum il file è infetto.

Antivirus: scansione on-demand - parte 2

Ovviamente per poter fornire all'antivirus le firme digitali - o firme virali, o sequenze di bytes - necessarie all'individuazione del virus c'è bisogno che il malware sia prima stato isolato e analizzato dai laboratori di ricerca delle società produttrici di antivirus e che i ricercatori abbiano rilasciato gli aggiornamenti con le firme per il proprio software antivirus.
É questo il "grosso" limite dei software antivirus: non è possibile identificare un virus se prima non viene aggiornato il database di firme con la relativa firma digitale. Possono passare pochi minuti dalla diffusione della minaccia come possono passare diverse ore, giorni, senza che il software antivirus riesca a riconoscere un determinato malware. Vista la rapidità con la quale nascono ogni giorno nuovi virus, si è sentita la necessità di dover studiare qualche modo per poter prevenire nuovi virus.
In parte si è cercato di risolvere questo problema con firme generiche, cioè sequenze di bytes comuni a più varianti di virus, in modo da cercare di prevenire altre varianti della stessa famiglia di virus. In altre parole se si sa che dieci varianti di un virus hanno tutte in comune una stessa sequenza di bytes, invece di scrivere dieci diverse firme virali se ne scrive una sola che individua tutte le varianti conosciute del virus e, con un pizzico di fortuna, probabilmente anche le successive varianti di quella famiglia di virus potrebbero essere identificate con la stessa sequenza di bytes.

image

Dove però non bastano le firme generiche, perché magari quel tipo di virus non è ancora stato analizzato, si è fatto ricorso alla scansione euristica. Il termine euristica deriva dal greco "eurískein" che, tradotto, assume il significato di "scoprire". La scansione euristica si prende infatti il compito di scoprire nuovi virus analizzandone esclusivamente alcuni fattori e calcolandone la percentuale di pericolosità.
É chiaramente una tecnica che, se in teoria può apparire come la panacea di tutti i mali, in realtà poi può creare alcuni grattacapi se non sviluppata e utilizzata a dovere.
Molti sono ancora i problemi legati alla natura stessa della tecnologia euristica e tanti sono tuttora gli studi che riguardano questa tecnica, tanto che sono ancora pochi i software antivirus al mondo che si possono permettere il lusso di poter utilizzare un'euristica veramente efficace capace di isolare realmente nuovi malware senza segnalare troppi falsi positivi.
Umanamente parlando, quando pensiamo che una persona sia sospetta? Magari se vediamo il tizio di prima, sempre con il passamontagna, già potremmo pensare che sia sospetto (ovviamente se il tipo di passamontagna che usa è già conosciuto alle forze dell'ordine il tizio è sicuramente il ladro e viene arrestato), figuriamoci se poi si aggira pure spesso intorno alla nostra casa....allora è molto più che sospetto. Abbiamo quindi raccolto alcuni elementi che ci possono autorizzare a pensare che il tizio abbia intenzioni malevole.
La tecnologia euristica si comporta esattamente nello stesso modo: raccoglie quante più informazioni possibili sui dettagli di un file sospetto e giudica se ritenerlo sospetto oppure no. Banalizzando quello che in realta è un immenso lavoro di numerosi ricercatori e svariati mesi di programmazione, spiegheremo ora la modalità di raccolta informazioni della tecnologia euristica.
Facciamo innanzitutto una divisione tra euristica statica e dinamica, due modi diversi di raccogliere informazioni che tuttavia non si escludono a vicenda.
L'euristica statica - oltre che a far uso, come detto prima, di firme digitali generiche - non fa altro che tenere conto di un discreto numero di particolari che solitamente vengono alla luce dopo un'infezione.
Possiamo per esempio, in seguito ad un'infezione, notare modifiche all'intestazione del file, oppure vediamo dall'header che l'esecuzione del codice è spostata all'ultima sezione invece che alla prima, la presenza di più intestazioni del file (alcuni virus memorizzano il vecchio header prima di infettare un file, per sapere una volta finito il ciclo d'infezione dove dover andare per lanciare il programma), chiamate sospette a librerie di sistema o uso spropositato di procedure API per leggere/scrivere files, sezioni di codice all'interno del file collocate in modo sospetto (presenza di molti zeri tra una sezione e il resto del codice per esempio).
Se uno o più di questi dettagli vengono verificati nel file incriminato (è inutile specificare, come fatto prima, che la lista di dettagli da controllare è molto più lunga e tecnica dell'esempio che ho fatto sopra, con il quale si rischierebbe di incappare in falsi positivi) l'antivirus è autorizzato a segnalarlo come possibile infetto da un virus sconosciuto.
In contrapposizione a questa raccolta "passiva" di informazioni, esiste poi l'emulazione dinamica del codice.
L'antivirus predispone una zona di memoria nella quale simula un pc virtuale, in modo da poter eseguire il file sospetto e studiarne il comportamento. É sicuramente uno dei metodi più efficaci ma allo stesso tempo esoso in termini di risorse per il sistema ed è per questo che pochi antivirus lo utilizzano efficacemente. L'ottimizzazione da fare sta nel decidere fino a quale precisione il pc virtuale debba essere emulato e per quanto tempo il file debba essere eseguito per poter avere dati concreti in mano. Inoltre questo tipo di euristica non è efficace contro alcuni tipi di virus, sebbene l'intera tecnologia venga sviluppata ed adattata secondo le minacce che maggiormente possono arrecare disagi, in questo periodo worm e trojan.

image

I tre antivirus presenti sul mercato che utilizzano efficacemente una tecnologia euristica, principalmente dinamica, sono Norman Antivirus, Nod32 e ultimamente BitDefender. Norman è, dei tre, l'unico che emula completamente un pc virtuale e richiede infatti notevoli risorse di sistema, fornendo però dettagli precisi su cosa il file sospetto modifichi nella macchina virtuale. Nod32 e BitDefender hanno invece raggiunto ampi margini di ottimizzazione, riuscendo ad ottenere ottimi risultati e al contempo un sistema scattante.

Antivirus: scansione on-access

Il secondo modulo di scansione di un software antivirus è il modulo on-access, o scansione in real time (tempo reale). Detto in modo semplice per chi non segue con assiduità il settore, la scansione on-access è solitamente rappresentata dall'icona del software antivirus che compare sempre nella System Tray, quello spazio vicino all'orologio in basso a destra.
Quando sull'icona si può vedere una croce rossa, oppure l'icona non è più a colori ma in bianco e nero, oppure qualunque altro aspetto differente dall'originale, significa che la scansione in tempo reale è disattivata o non funzionante correttamente. Come abbiamo detto nei paragrafi precedenti, la differenza fondamentale tra la scansione on-access e la scansione on-demand sta proprio nel fatto che la prima comincia a proteggere il pc dell'utente da eventuali infezioni in modo automatico mentre la seconda viene attivata solo se espressamente richiesta.
Ma come funziona la scansione on-access? Come riesce a bloccare automaticamente i virus che tentano di entrare nel pc? Il modulo di scansione on-access è un modulo residente in memoria, che viene caricato nello stesso periodo in cui Windows si avvia. In alcuni software è solamente una semplice applicazione che, una volta attivata, prende il controllo di tutte le possibili vie di accesso al sistema - interrupts di lettura/scrittura files per esempio, come priorità.
In altri casi invece vengono sviluppati come drivers veri e propri che prendono il controllo dell'attività sui file system, controllando l'attività sui vari dischi. Per esempio in Windows NT/2000/XP/2003 spesso i monitor on-access vengono sviluppati in quest'ultima maniera. Quando un file viene aperto, letto, scritto, il modulo di scansione on-access controlla il file - più o meno con gli stessi metodi spiegati nel paragrafo precedente, e in caso di infezione blocca l'attività e segnala la presenza di un malware.
Oltre a questo tipo di scansione dei files molti software antivirus hanno aggiunto altre caratteristiche nel modulo on-access, tipo la scansione della posta in arrivo e in uscita - il modulo si mette in ascolto sulle porte TCP relative e controlla il traffico prima che venga scritto sull'hard disk; in caso il traffico sia infetto è possibile bloccare il trasferimento - e la scansione dei software di messaggistica istantanea quali MSN, ICQ e AIM.

Il problema dei runtime packers

Spesso si sente parlare nei forum o tra esperti del settore della capacità di alcuni software antivirus di analizzare file compressi con runtime packers. Non vi preoccupate, non sono parolacce né tantomeno qualche tipo di malattia da evitare come fosse la peste. Per cercare di ottimizzare lo spazio e le dimensioni dei files eseguibili alcuni sviluppatori hanno creato dei programmi, chiamato appunto runtime packers, che riescono a comprimere un file eseguibile senza però togliergli la capacità di esecuzione. In altre parole le dimensioni del file eseguibile diminuiscono ma il file rimane comunque eseguibile, un po' come il programma WinZip solo che non hanno bisogno di nessun altro programma per la decompressione.
Infatti questi files compressi, una volta lanciati, si autodecomprimono in memoria e iniziano l'esecuzione del codice del programma, il tutto in modo assolutamente indolore per l'utente che vede anzi ottimizzato lo spazio occupato.
Tra questi runtime packers possiamo nominare UPX, ASPack, PEProtect, UPack, PESpin, MEW, FSG e tanti altri ancora.

image

Ovviamente una volta che i files sono stati compressi non hanno più la forma precedente, il codice all'interno cambia, o meglio, è compresso con degli algoritmi.
Riassumiamo: un runtime packer permette di comprimere un file rendendolo più piccolo, lasciandolo sempre eseguibile e cambiando la struttura del file all'interno. Cosa c'è di meglio per camuffare un virus? Senza contare che alcuni gruppi che sviluppano questi runtime packers forniscono il programma che comprime ma non qualcosa che possa decomprimere il file riportandolo alla normalità...
Se un ricercatore riesce ad individuare una sequenza di bytes (firma digitale) di un virus per poterlo poi riconoscere ma il file del virus viene compresso con uno di questi programmi, ecco che l'antivirus non riconoscerà più il file come virus e il danno è fatto. Molti virus writers hanno colto la palla al balzo, visto che all'inizio non erano pochi i software antivirus incapaci di gestire questi tipi di files. Per questo le società sono corse ai ripari, sebbene molti scanner antivirus ancora non siano particolarmente addestrati per la gestione di determinati runtime packers.
Non è sicuramente facile riuscire a scrivere una routine da aggiungere al proprio software antivirus per poter decomprimere questi runtime packers, soprattutto per quelli che non mettono a disposizione nessuna informazione su come poter essere decompressi.
Inoltre è sorto anche il problema della velocità di scansione, sicuramente minore se un software antivirus deve decomprimere tutti i files che sono compressi. Si sono così venute a formare due correnti differenti di pensiero: sacrificare la velocità per una completa, o quasi, decompressione dei file o individuare firme nei file già compressi.
Possiamo prendere come esempio F-Prot antivirus e Kaspersky Antivirus. Mentre il primo ha scelto il secondo metodo, aggiungendo solo alcune routine per la decompressione dei runtime packers più utilizzati (UPX, ASPack per esempio) mantenendo però una velocità di scansione ottima, il secondo ha il più grande database al mondo di routine di gestione di questi runtime packers, riuscendo a decomprimerli praticamente quasi tutti, a scapito ovviamente di una velocità di scansione molto più modesta.
É chiaro che l'impossibilità per un software antivirus di decomprimere almeno i runtime packers più noti sia un grosso limite, perché come abbiamo detto basta che un virus venga compresso o ri-compresso (per esempio da UPX a ASpack) ed ecco che sfugge al controllo causando danni considerevoli.
Vista la difficoltà di poter disassemblare alcuni runtime packers, alcune società hanno sviluppato una sorta di emulazione del codice, senza nessuna necessità di routine scritte per decomprimere i files. Se infatti si ragiona sul fatto che un file compresso, una volta eseguito, DEVE decomprimere il proprio codice in memoria per poter avviare l'esecuzione, si può benissimo pensare alla possibilità di eseguire un "dump", salvare l'immagine del file una volta che è stato totalmente decompresso in memoria prima che inizi l'esecuzione. In questo modo si avrà il file totalmente decompresso senza fatica alcuna, se non quella di aver scritto un'ottima routine di emulazione da utilizzare nel software antivirus.
Abbiamo così capito cosa significa e cosa siano i runtime packers e perché sia alquanto importante che un software antivirus possa gestirne almeno i più famosi.

Conclusioni

Siamo arrivati al termine di questo lungo articolo. Le persone meno informate hanno avuto la possibilità di comprendere ed assimilare quali siano i rischi derivanti dall'uso di un pc in modo sconsiderato, i rischi che derivano da Internet, perché un software antivirus debba essere costantemente aggiornato e non basta che sia installato per poter salvaguardare il proprio pc e i propri dati informatici.
Per i più smanettoni invece abbiamo voluto mostrare in modo più approfondito come un software antivirus funzioni, quali siano le tecniche per poter individuare un virus e le possibili lacune per poter meglio scegliere il software antivirus che meglio venga incontro alle nostre esigenze.
In generale l'articolo è una panoramica generale sull'importanza di un software antivirus in questi giorni, con Internet alla portata di tutti, con il rischio di possibili infezioni da parte di virus e worm che possono, in alcuni casi, causare danni non solo morali ma spesso economici se si parla di aziende o di furto di dati personali. Chiaramente di argomenti tecnici su questi argomenti ce ne sono a bizzeffe e se ne potrebbe parlare per giorni interi, senza contare che le minacce si sono evolute e non riguardano più virus e worm, bensì spyware, adware, phishing per non parlare di veri e propri atti di terrorismo informatico.
Tuttavia il sentire spesso persone accanto a me ignorare l'importanza di aggiornare un software antivirus, vedere aziende ed enti pubblici infetti perché non hanno installato un software antivirus o non hanno rispettato le regole più banali, mi hanno spinto a dover scrivere un articolo, il più divulgativo possibile, che possa diventare una guida e trasmettere le nozioni principali sul come poter difendersi nel modo migliore e più semplice, usando la testa e un po' di buonsenso.
Perché Internet è sì un'arma a doppio taglio, ma lo è ancora di più se aggravata da una disinformazione di massa.

Guida tratta da hwupgrade.it, tutti i ringraziamenti vanno a Marco Giuliani che ha creato questa esauriente guida.

Questa guida la metterei fra le discussioni importanti ;)
 
Top
0 replies since 22/11/2008, 13:40   785 views
  Share