|
Il test di funzionamento degli antivirus
Premessa
Nel lavoro di tutti i giorni (nel nostro lavoro di informatici per
la precisione...) capita spesso di trovare qualcosa che non funziona.
Puo' essere un driver, un pezzo di un sistema operativo, un'applicazione
contabile, un database, un gioco, un firewall, un virus o anche, perche'
no, un antivirus!!
Ovviamente la causa del malfunzionamento puo' essere specifica dell'oggetto
che non funziona (difetto del prodotto, raggiunti limiti delle risorse,
etc) ma, con una frequenza molto piu' alta di quello che si pensa, la
causa puo' essere da tutt'altra parte e l'oggetto malfunzionante non
ha reali difetti, bensi' risente banalmente (ed innocentemente) solo
di problemi altrui.
Nel caso di oggetti che non concorrono direttamente all'erogazione di
un servizio ma che fanno operazioni "di contorno" (pensiamo
ai programmi che effettuano il backup dei dati, ad un firewall, all'antivirus)
se ci sono malfunzionamenti non necessariamente si ha una qualche esplicita
segnalazione di un problema. Dato che queste componenti possono non
funzionare correttamente senza un'immediata segnalazione di errore,
il problema puo' passare inosservato, con conseguenze gravi, anche fatali.
Poniamo il caso che qualcosa faccia lavorare male un antivirus e che
la cosa passi inosservata per un certo tempo. Fino a che non c'e' contatto
con un virus tutto procede tranquillamente. Peccato che, a fronte di
un contatto con un veicolo di infezione, il sistema si trovi del tutto
scoperto e il virus puo' fare il suo lavoro senza alcuna protezione,
senza alcun freno, senza alcuna segnalazione.
Un antivirus e' un programma complesso, spesso delicato nella sua attivazione
e configurazione. Se le impostazioni sono corrette, se il sistema su
cui si appoggia e' perfettamente operativo (e se l'aggiornamento del
sistema e dell'antivirus e' effettuato regolarmente e correttamente)
l'antivirus puo' operare nei limiti definiti da chi lo ha creato. Diversamente
"qualcosa non va".
Nella mia attivita' professionale mi e' capitato molte volte di trovare
sistemi infetti, nonostante fossero protetti da questo o quel prodotto
antivirus. Una precisa analisi ha portato nella maggioranza dei casi
a scoprire che l'antivirus era "buono", privo di difetti e
aggiornato adeguatamente. Il problema era (statistiche a spanne, ovviamente)
al 90% da qualche altra parte.
Mi sono quindi attrezzato ad affrontare queste situazioni, applicando
metodologie che permettessero efficaci diagnosi del corretto funzionamento
dello sbarramento antivirus.
La strategia
La strategia che ho elaborato e' grosso modo tarata sulla tipologia
di servizio erogato dall'antivirus. Generalmente l'antivirus serve per
intercettare tentativi di infezione in corso nel sistema. Ci si aspetta
dall'antivirus che, quale che sia il canale di ingresso, una determinata
infezione produca i seguenti effetti:
- l'infezione deve essere identificata
- il processo di infezione deve essere bloccato in modo da non poter
produrre alcun effetto pratico sul funzionamento del sistema
- l'infezione deve essere in un qualche modo segnalata tempestivamente
all'utente e/o all'amministratore del sistema, anche nel caso in cui
essa sia stata interrotta e non ci siano possibilita' di un qualche
danno al sistema.
- deve essere possibile avere una traccia temporale dell'evento (l'ora,
il veicolo di infezione, l'azione intrapresa dall'antivirus, etc)
oltre che magari poter disporre di un campione del file infettato
Ovviamente si tratta di uno schema minimale.
Come si puo' verificare che tutto cio' sia pronto e operativo? Difficile
trovare metodi di verifica validi al 100%. Certo e' possibile mettere
sotto controllo determinati parametri (lo stato di esistenza e attivita'
del/dei processi attivi nel sistema dell'antivirus, ad esempio) ma si
tratta sempre di verifiche complesse e non sempre esaustive.
Pertanto ho affrontato il problema in modo semplice, stabilendo che
l'unico modo per verificare il corretto funzionamento dell'antivirus
e' quello di infettare il sistema (nel modo che realmente potrebbe verificarsi)
e controllare se l'infezione passa o meno. Un metodo alla "San
Tommaso" che fara' sicuramente sorridere molti. I rischi di tale
condotta sono ovviamente alti. Nel caso l'antivirus non funzioni si
potrebbe perdere il sistema producendo chissa' quali conseguenze, anche
nella rete in cui il sistema sta operando, andando in pratica ad infettare
non solo un singolo sistema ma un'intera rete aziendale. Un po' troppo
per una pur doverosa verifica di corretto funzionamento di un elemento
(l'antivirus) pur importante e strategico.
Ho fatto quattro considerazioni.
Per chi come me ha una certa esperienza nelle problematiche virali,
non e' un grande problema avere "campioni" di virus (si devono
raccogliere i loro resti e traccie nel luogo del sinistro). Qualche
successivo intervento sul virus rende possibile modificare (o annientare)
le caratteristiche funzionalmente pericolose, trasformando il virus
in un veicolo sicuramente infettante ma altrettanto sicuramente privo
di reale capacita' di agire concretamente. In pratica un virus "inoffensivo"
o comunque devitalizzato.Cio' non sempre e' possibile, in quanto a volte
le caratteristiche peculiari del virus rendono di fatto non esattamente
riconoscibile un determinato virus se mancano determinate azioni note
dello stesso. Pertanto in alcuni casi la devitalizzazione non e' praticabile,
in quanto modifica il quadro dei meccanismi di riconoscimento del virus.
Sempre per chi ha pratica e' pure possibile utilizzare il virus originale
(senza alcuna manipolazione) ma farlo operare in condizioni in cui l'elemento
di pericolosita' dell'infezione sia impossibilitato a creare il danno
previsto..
Dall'avere dei campioni utillizzabili con tranquillita' alla pianificazione
di un test diretto del funzionamento dell'antivirus il passo e' breve.
A molti vedere questo tipo di operazioni fa una certa impressione ma,
se adeguatamente predisposto, tale test simile e' assolutamente normale,
privo di controindicazioni e, anzi, molto utile a determinare situazioni
di funzionamento non corretto del meccanismo di protezione (quale che
sia l'elemento difettoso che solo raramente e' il prodotto antivirus,
lo ripeto per chiarezza)
Il test in dettaglio
Ho prelevato dal "vivaio" alcuni campioni di virus.
Tra questi ne ho scelto uno che, per una serie di caratteristiche particolari,
ho ritenuto adatto ad effettuare test di una certa affidabilita', copertura
e sicurezza del "non danno". Si tratta del virus HAPTIME,
un virus che ha caratteristiche particolari, sia per tipologie di diffusione
che per le problematiche di "sicurezza" che un test del genere
richiede. Il virus HAPTIME infatti e' uno script (VBScript per la precisione),
cosa che ne permette la presenza anche in pagine web, in messaggi di
posta, eccetera. Inoltre, il fatto di essere uno script, rende estremamente
facile la sua lettura e analisi.
Occorre infatti considerare che un virus e' solitamente diviso in due
parti distinte: la componente di trasporto (quella che si preoccupa
di diffondere il virus) e la componente che si deve attivare sulle macchine
infette per eseguire la/le azioni previste dal virus (il cosidetto "payload"
o "carico pagante", un riferimento alle problematiche dei
voli in cui il veicolo ha specifici compiti indipendenti da quello che
viene trasportato che ne ha altri).
Una volta prelevato ho pensato bene di modificarne una specifica parte
facilissimamente verificabile in modo da rendere praticamente inoffensivo
il virus nel malaugurato caso in cui lo script entrasse in esecuzione.
Cio' naturalmente verificando che tale modifica non alterasse minimamente
le regole di riconoscimento del virus stesso. In pratica una modifica
incruenta ma nello stesso tempo fatale per le azioni che il virus vorrebbe
compiere.
Cio fatto ho realizzato (con tecniche semplici ma estremamente efficaci)
un ulteriore "veicolo" esterno, privo di alcuna specifica
pericolosita' (in pratica un programma eseguibile, che ho chiamato "intruder.exe").
Dentro tale veicolo ho "infilato" il nostro virus in una forma
a mio dire (verificata su grande scala, altrimenti non scriverei documenti
del genere...) non rilevabile da alcun antivirus. Con la semplice attivazione
del programma con specifici parametri, il "veicolo" intruder.exe
puo' "estrarre" il virus originale e immetterlo nel sistema,
secondo diverse vie. Ovviamente il "dove" e il "come"
permette da una parte di verificare il funzionamento dell'antivirus
e dall'altra permette di causare o meno infezioni esplicite del sistema
(anche se nel caso specifico l'infezione non avrebbe comunque alcun
effetto).
Lanciamo il test!
Una volta predisposto il virus, preparato il veicolo "esterno"
e predisposto i contorni organizzativi del test, e' giunto il momento
di andare a verificare se l'antivirus funziona su una determinata macchina.
E' sufficiente portare intruder.exe sul sistema da testare (che in questo
caso deve essere una macchina Windows con processore Intel ma predisporre
le stesse cose per altri sistemi e altri virus e' semplicissimo) e lanciarlo
con l'opzione "genera un file infetto nella cartella c:\provavirus
(per esempio), magari con un nome file che non corra mai il rischio
di andare in esecuzione, neanche per sbaglio. Essendo tale cartella
al di fuori di qualunque possibile luogo "delicato", se l'estrazione
del virus dalla "capsula" viene correttamente eseguita (e
ovviamente se l'antivirus funziona) avviene immediatamente l'identificazione
del virus, esso viene neutralizzato e comunque trattato secondo le regole
di ingaggio che sono state definite nell'antivirus.
Il test ha compiuto il suo dovere rivelando che l'antivirus e' perfettamente
funzionante. Dal punto di vista sistemistico il test e' reale e la modalita'
di creazione del file infetto e' concretamente simile al virus vero
e proprio.
Cosa fare
se il test segnala problemi
Puo' accadere (e accade molto piu' spesso di quello che si pensi)
che il test passi inosservato, cioe' che l'antivirus non riconosca l'infezione
e di conseguenza non intervenga in alcun modo.
Che fare? Beh, preoccuparsi innanzitutto, visto che il sistema non ha
una protezione ai virus. Dal punto di vista del virus inoculato per
eseguire il test non c'e' alcun problema di infezione. E' sufficiente
eliminare il file infetto dalla cartella (c:\provavirus). Non serve
altro in quanto l'infezione e' stata semplicemente depositata come file
sul disco e non e' entrata in esecuzione.
Per il mancato funzionamento dell'antivirus occorre fare una serie di
accertamenti per stabilire se si tratta di un problema "esterno"
al prodotto antivirus (condizioni di sistema non adatte a farlo lavorare
correttamente, sistema operativo non aggiornato, etc) o se e' "interno"
(ad esempio aggiornamenti non effettuati, cattivo funzionamento dell'antivirus
oppure antivirus infetto!).
In ogni caso ogni azione effettuata per risolvere il problema richiedera'
alla fine un ulteriore test di verifica.
Suggerisco fortememte di effettuare il test in modo completo, sia verificando
se l'antivirus "scatta" quando il programma infetto viene
"estratto" dall'intruder e depositato su disco (controllo
"realtime" dei virus) sia effettuando anche il test di "scansione"
del virus. Spesso i due test hanno infatti risultati opposti e cio'
permette di chiarire meglio la tipologia del problema (prodotto antivirus
o condizioni esterne).
Conclusioni
Abbiamo in mano una serie di fatti, su cui e' sempre bene meditare,
al di la' del risultato pratico del test:
- e' possibile realizzare un veicolo (intruder.exe in questo caso)
che "nasconde" in senso assoluto un virus. Pertanto occhio
a cio' che si installa. Potrebbe avere dentro chissa' cosa, anche
se il nostro antivirus l'ha dichiarato pulito. Una considerazione
piuttosto destabilizzante, ma la realta' e' questa: il nostro sistema
e' abbastanza scoperto, per quanto ci si attrezzi con strumenti raffinati,
c'e' sempre un margine di rischio da non sottovalutare.
- abbiamo visto come banali modifiche possano modificare e neutralizzare
il virus in questione (haptime). Altrettanto ho verificato (per questo
virus ma la cosa non e' certo isolata) che modificando alcune parti
del virus si riesce a renderlo "non identificato" dall'antivirus
pur riuscendo a fargli compiere esattamente le stesse operazioni di
infezione.
- Se il test ci ha dato indicazione che l'antivirus non funziona bene,
sappiamo che spesso questo stato di cattiva copertura non e' assolutamente
imputabile all'antivirus (ho testato quelli piu' blasonati e per questo
test hanno dato risultati omogenei) ma ad altri problemi. Cio' significa
che in futuro dobbiamo sempre evitare di porre il sistema nella stessa
condizione in cui il test ha dato esito infausto. Il sistema operativo
non correttamente aggiornato porta spesso a situazioni del genere.
Non e' colpa dell'antivirus.
- abbiamo elaborato il concetto della "verifica" sul campo
di quello che un prodotto fa o dichiara di poter fare. Con la possibilita'
di rieffettuare i test con la frequenza giusta a permetterci di operare
in condizioni di sicurezza.
Sono solo alcune banali considerazioni.
TEST ANTIVIRUS
Scaricate qui sotto il file "intruder.zip" (oppure fate "tasto
destro" + "salva").
Il file contiene (compresso) il veicolo "intruder.exe" e il
file intruder.hlp necessario al funzionamento dello stesso. Files che
dovrete trasportare nel modo migliore sulla macchina su cui effettuare
il test.
QUICK TEST ANTIVIRUS
In modo ancora piu' rapido e' possibile effettuare anche un quick test...
cliccate con il tasto destro del mouse su questo link e selezionate "salva"...
Se riuscite a salvare questo file e l'antivirus 'non scatta",
allora il vostro pc e' completamente privo di difese!!
Dovete quindi interrompere la navigazione, perche qualunque sito infetto
riesce a infettare il vostro pc....
Questo e' tutto.
|
Come valuti questo documento?
|
Il documento che hai letto ha scopo didattico/informativo/divulgativo
ed e' redatto da professionisti che operano in questo ed in
tanti altri settori.
Ci interessa avere un tuo giudizio,
capire quali sono i tuoi interessi e le tue esigenze.
Ogni tua necessita' puo' trovare risposta nei professionisti
di Digital Expert. Scrivici!
byartaigiechina
|
|