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:

  1. l'infezione deve essere identificata
  2. il processo di infezione deve essere bloccato in modo da non poter produrre alcun effetto pratico sul funzionamento del sistema
  3. 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.
  4. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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