22746 Letture

Scansione virus e malware con più motori diversi senza inviare nulla a VirusTotal

È sempre importante sottoporre a scansione virus tutti i file che si scaricano sul personal computer, specie quelli provenienti da fonti sconosciute. Prima di avviarli od aprirli è bene verificarne la "bontà". Come più volte rimarcato, gli antivirus che utilizzano metodologie di scansione virus basate sull'analisi delle firme virali potrebbero non riuscire a riconoscere sempre tutte le minacce, specie quelle di più recente fattura. I database delle firme virali, che debbono essere mantenuti costantemente aggiornati, infatti, vengono quotidianamente ampliati da parte dei tecnici che lavorano nei laboratori delle software house produttrici di soluzioni antivirus ed antimalware. È cosa piuttosto comune, quindi, che talvolta alcuni motori di scansione antivirus riconoscano come nocivo un file quando altri prodotti non rilevano alcunché.
Ecco perché, prima di avviare un file, soprattutto se sospetto o comunque qualora si nutrissero dubbi sulla sua vera "identità", è cosa ragionevole sottoporlo ad una scansione virus simultanea con più motori antivirus. Uno dei più noti ed apprezzati servizi che offre tale interessante ed utilissima opportunità è VirusTotal.

VirusTotal consente di ricevere in ingresso file di dimensioni massime pari a 32 MB: gli elementi da porre sotto esame dovranno essere manualmente caricati online, uno per uno, trasmettendoli al sito www.virustotal.com.
La società spagnola che ha realizzato VirusTotal ha poi messo a disposizione degli interessati uno strumento (VirusTotal Uploader) che dà modo di caricare uno o più file sul servizio attingendo direttamente al contenuto del proprio sistema o ad un URL remoto. Scaricabile cliccando qui, VirusTotal Uploader effettua comunque il caricamento, uno per uno, di ciascun file indicato quindi provvede ad aprire il browser web predefinito per mostrare il responso di ogni analisi.

Nell'articolo "controllare automaticamente con VirusTotal tutti i file che vengono scaricati", che vi invitiamo comunque a rileggere, avevamo presentato un approccio differente. Facendo leva sul fatto che VirusTotal tiene traccia delle firme digitali di ciascun file, avevamo sviluppato un semplice script che si occupa di calcolare la firma MD5 di ogni elemento e di trasmetterla a VirusTotal verificando se fosse già disponibile un resoconto prodotto al termine di una precedente analisi del medesimo file. Così facendo, senza caricare alcun file, si ha la possibilità di effettuare rapidamente una scansione virus e controllare se un file possa ritenersi "pulito" oppure sospetto.
Dal momento che VirusTotal è un servizio utilizzato mensilmente da milioni di utenti in tutto il mondo, le probabilità che i file coi quali si ha a che fare siano stati già oggetto di scansione sono molto elevate. Per effettuare velocemente un controllo su un insieme di file, allora, perché non utilizzare il ricco database delle scansioni costantemente aggiornato da VirusTotal e conservato sui server dell'azienda iberica?


Sottoporre a scansione virus un insieme di file senza inviarli a VirusTotal

Se nell'articolo "controllare automaticamente con VirusTotal tutti i file che vengono scaricati" avevamo spiegato come realizzare uno script capace di "sorvegliare" costantemente il contenuto di una cartella ed esaminare i file in essa memorizzati mano a mano che essi vengono salvati nella directory, questa volta vi proponiamo un ottimo software che permette di avviare una scansione antimalware "su richiesta" (on demand).

L'idea è venuta ad un nostro lettore (wargus), che ringraziamo sentitamente. Il meccanismo alla base del funzionamento dello script VBS qui presentato ha funto da base per lo sviluppo di uno script AutoIt, successivamente compilato sotto forma di file eseguibile.
AutoIt è una sorta di linguaggio di scripting che eredita e fa propria gran parte della sintassi BASIC. Distribuito gratuitamente attraverso il sito web ufficiale, AutoIt permette di sviluppare applicazioni Windows anche piuttosto complesse e di automatizzare insiemi di attività.

Il software che vi offriamo gratuitamente calcola la firma SHA1 (hash) di ogni elemento e la trasmette a VirusTotal. In questo modo, è possibile verificare se il file dotato della medesima firma SHA1 sia stato precedentemente già analizzato su VirusTotal stabilendo, quindi, se sia da ritenersi "pulito" oppure dannoso.
VirusTotal è un servizio utilizzato mensilmente da milioni di utenti in tutto il mondo: le probabilità che i file coi quali si ha a che fare siano stati già oggetto di scansione virus sono quindi molto elevate.

L'applicazione sviluppata da wargus utilizzando AutoIt, come illustrato in questa discussione, riceve in input da uno a n file (è possibile specificare anche intere cartelle), ne calcola la firma SHA1, quindi provvede ad interrogare VirusTotal verificando per quali oggetti gli oltre 40 motori antivirus implementati abbiano precedentemente segnalato la presenza di un'infezione.

La procedura da seguire in tre passi per utilizzare il software di controllo antimalware e scansione virus

Il software che vi offriamo per il controllo automatizzato di più file e cartelle su VirusTotal consta di una comoda interfaccia grafica: insiemi di file e cartelle possono essere controllati dalla shell di Windows (cliccando con il tasto destro del mouse e scegliendo Invia a, Invia l'Hash del file a VirusTotal) oppure dalla finestra principale del programma stesso.
Una volta completata la procedura di scansione virus interfacciandosi con VirusTotal, il software visualizza una finestra che funge da riepilogo degli oggetti analizzati. Per impostazione predefinita vengono immediatamente mostrati i file sospetti insieme con la corrispondente firma SHA1 (colonna Hash) ed il numero di report positivi (il numero dei motori di scansione antivirus che hanno rilevato come dannoso il file indicato). Agendo sul menù a tendina, si possono mostrare i file noti come legittimi, quelli che non sono stati trovati nell'archivio di VirusTotal nonché la lista completa degli elementi posti sotto esame.


Il primo passo da compiere consiste nell'effettuare il download del software AutoIt che permette di automatizzare l'interrogazione di VirusTotal. Il software da prelevare è pubblicato online a questo indirizzo.

Il contenuto della cartella virustotal, ospitata all'interno del file compresso virustotal_ilsw.zip, dovrà essere estratto e memorizzato in una cartella di propria scelta (per esempio c:\virustotal) L'altra cartella contenuta nel file Zip (source propone l'intero codice sorgente dell'applicazione.

Dopo essersi portati nella cartella c:\virustotal, facendo doppio clic sul file VirusTotal.exe, si accederà immediatamente alla finestra principale del programma.

Da qui, cliccando sul menù Opzioni quindi sulla voce Aggiungi al menù contestuale di Windows, il programma provvederà ad inserire automaticamente il comando “Invia l'Hash del file a VirusTotal” nel menù “Invia a” di Windows. Ciò significa che selezionando uno o più file e cartelle da Esplora risorse, cliccandovi con il tasto destro del mouse, quindi selezionando Invia a, Invia l'Hash del file a VirusTotal, si avvierà immediatamente il controllo antimalware:

Qualora si volesse rimuovere la voce dal menù contestuale del sistema operativo, basterà, successivamente, selezionare nuovamente il menù Opzioni quindi cliccare su Rimuovi dal menù contestuale di Windows.


Via a via che i file saranno analizzati su VirusTotal, il programma informerà l'utente sullo stato di avanzamento dell'operazione di controllo:

Anziché utilizzare il menù “Invia a” di Windows, è sempre possibile avviare una scansione di file e cartelle servendosi del menù File quindi dei comandi Aggiungi file ed Aggiungi cartelle.

Dopo alcuni secondi di attesa (suggeriamo di aspettare pazientemente soprattutto se i file da controllare sono molti), si otterrà il responso finale:

Nella schermata principale vengono mostrati tutti i file posti sotto la lente. Per visualizzare solo quelli sospetti, basta selezionare Mostra solo i file positivi dall'apposito menù a tendina.
È bene tenere presente che alcuni file potrebbero essere segnalati come potenzialmente nocivi quando, in realtà, non lo sono affatto. Tale comportamento non è riconducibile alla scansione virus effettuata dall'applicazione che vi abbiamo presentato quanto alle firme virali rilasciate dai vari produttori di software antivirus. Può capitare infatti, soprattutto con alcune utilità shareware e freeware, con alcune tipologie di software per la gestione remota, con taluni programmi distribuiti usando particolari strumenti di compressione, che un elemento sia erroneamente riportato come potenzialmente dannoso ("falso positivo"). In questi frangenti è sempre opportuno effettuare una nuova scansione virus su VirusTotal, leggere i commenti spesso presenti in calce all'analisi e svolgere qualche verifica in Rete in modo tale da assicurarsi della bontà dell'oggetto.
Situazioni simili sono generalmente riconoscibili: quando sono solo uno o due i motori antivirus a rilevare come dannoso un file, è altamente probabile che si tratti di un errore in fase di riconoscimento.


Agendo sul menù a tendina, si può ottenere l'elenco di tutti i file analizzati, degli elementi riconosciuti come legittimi e di quelli non trovati nel database mantenuto costantemente aggiornato da parte di VirusTotal.

I pulsanti Copia e Salva consentono, rispettivamente, di copiare o memorizzare su disco – sotto forma di file di testo – il resoconto finale prodotto dal software. Cliccando con il tasto destro del mouse su un qualunque elemento in elenco quindi scegliendo il comando Mostra il report dal sito per il file selezionato, verrà immediatamente aperta la pagina web contenente l'analisi più aggiornata conservata su VirusTotal.

Il funzionamento dell'applicazione è personalizzabile aprendo, con un normale editor di testo, il file virustotal.ini:

Le opzioni contenute nel file di configurazione sono "autoesplicative": per impostazione predefinita, il software prende in considerazione i file dotati di qualunque estensione, fatta eccezione per le tipologie indicate con il parametro ESCLUDI_FILE.
Per default, inoltre, il programma esamina ricorsivamente (parametro RICORSIVO impostato a "1") il contenuto di tutte le sottocartelle eventualmente presenti in una stessa directory.

Ci preme ricordare che il programma proposto in quest'articolo è interamente frutto di una realizzazione autonoma dei nostri lettori: essa non è in alcun modo correlata o correlabile con la società Hispasec Sistemas, sviluppatrice ed amministratrice del servizio VirusTotal.

Lista delle modifiche applicate (“changelog”):


Versione 1.2.0:
- L'interfaccia grafica (gui) si apre all'inizio dell'analisi (e non alla fine, come nelle versioni più vecchie, cosa che costringeva a un'attesa fiduciosa prima di veder comparire i risultati).
- Possibilità di accedere al programma non solo via menù contestuale ma anche direttamente con un doppio clic sull'eseguibile.
- Possibilità di caricare file o cartelle via drag&drop.
- Aggiunta di menù alla gui (i.e. il menu Opzioni che adesso contiene solo la voce per l'aggiunta al menù contestuale di Windows ma che nelle prossime versioni permetterà di personalizzare diversi parametri).
- Aggiunta automatica del link nella cartella "Invia a" di Windows per la creazione della voce nel menù contestuale.
- Stabilito un limite sulle dimensioni del file log raggiunte le quali esso viene cancellato (di default è fissato a 1 MB, può essere modificato inserendo il valore preferito in KB nel file .ini alla voce LOG_MAXDIMENSION).

Versione 1.2.1:
- Alcune correzioni e ottimizzazioni del codice. In particolare, l'opzione per l'aggiunta della voce nel menu "Invia a" di Windows adesso funziona anche in Windows XP. Il programma "ricorda" la dimensione della gui (nel caso in cui venisse ridimensionata) e la posizione relativa sullo schermo.
- Ricommentato completamente il codice sorgente (per coloro a cui dovesse interessare).

Versione: 1.2.2
- Corretti alcuni piccoli bug.
- Eliminata la funzione che permetteva al programma di memorizzare le dimensioni della gui ridimensionata (così come era stata implementata portava più svantaggi che benefici). Ogni volta che la gui viene richiamata, a prescindere da un precedente ridimensionamento, le dimensioni tornano ad essere quelle di default.

Versione 1.2.3:
- Corretto un bug che su Windows XP mandava in crash il programma. In conseguenza di ciò si è reso necessario:
- riscrivere parzialmente il loop di analisi (quello che nel sorgente è indicato come _MainLoop) per renderlo libero da rischi di crash. Tale riscrittura ha probabilmente reso leggermente più lenta l'analisi (in realtà dovrebbe trattarsi di un tempo generalmente impercettibile).
- cambiare il modo in cui veniva catturato il sorgente della pagina html con i risultati della scansione di VirusTotal. Allo stato attuale non viene più utilizzata la funzione nativa di AutoIt che apriva un'istanza nascosta di IE (questa funzione, o quella immediatamente dipendente, è responsabile del crash su XP) ma si utilizza direttamente un oggetto "winhttp.winhttprequest.5.1" che sostanzialmente ottiene lo stesso risultato e sembra immune da problemi.


Un sentito ringraziamento va all'autore, wargus, per aver sviluppato il programma e per lo svolgimento della costantemente opera di ottimizzazione ed aggiornamento.

La versione più aggiornata dell'applicazione per il controllo di file e cartelle su VirusTotal senza il bisogno di effettuarne l'upload, è scaricabile facendo riferimento a questo link.


  1. Avatar
    Leg@l4s
    22/04/2012 15:59:04
    ciao ragazzi ;) anche per me sarebbe molto utile la possibiltà di una notifica in caso di report negativi .... grazie per il lavoro svolto :asd:
  2. Avatar
    mac89
    21/04/2012 19:45:16
    volevo segnalare che nel mio pc se il browser maxthon portable v3.3.7.2000 e avviato l'applicazione per il controllo dei virus apre una pagina internet con il risultato della scansione seguita da un messaggio di errore "linea 3014 (file"c:\...."): Error: subscript used with non-Arry variable", potrebbe essere un mio problema ma ci tenevo a segnalarlo.
  3. Avatar
    Michele Nasi
    19/04/2012 10:36:32
    Ancora non avevo verificato ma quanto segnali "mi torna" :wink: Per ridurre "la dimensione" del message box, wargus ha già predisposto una nuova versione dello script che usa una GUI: viewtopic.php?p=661776#p661776 A breve la proverò ed invierò qualche commento.
  4. Avatar
    Lettore anonimo
    19/04/2012 10:20:57
    mi sono accorto di un piccolo problema relativo al suggerimento di inserire una voce nel menu contestuale se si utilizza la voce nel menu contestuale il paramentro che viene passato (il percorso del file) alla fine produce più message box di risposta in quanto vengono aperte più istanze dello script, una per ogni file selezionato mentre questo non succede se si invia l'hash utilizzando il collegamento nella cartella SendTo evidentemente SendTo passa i parametri (percorso del file) ad una singola istanza che poi gestisce il tutto tramite il ciclo for, ricordo però che autoit (così dice il manuale) permette solo 63 parametri alla variabile $cmdline certo difficile che uno seleziona oltre 60 file da far analizzare anche perché il rusltato sarebbe una message box mostruosa :D
  5. Avatar
    Michele Nasi
    18/04/2012 14:52:30
    Citazione: Ottima applicazione, (per chi utilizza gestori per i dawnload può inserirlo come motore di scansione), unica pecca per quanto mi riguarda è l'assenza di messaggi in caso di responsi negativi.
    La visualizzazione dei responsi negativi è stata eliminata proprio per contenere il numero di messaggi visualizzati dall'applicazione AutoIt. Con una GUI "essenziale" si dovrebbe comunque risolvere anche questo problema: viewtopic.php?p=661755#p661755
  6. Avatar
    Michele Nasi
    18/04/2012 13:42:46
    Bravo Sbronzo di Riace, ottimo suggerimento! Provvederò di sicuro ad implementarlo a breve ringraziando sempre wargus per la prima versione dello script. :approvato:
  7. Avatar
    mac89
    18/04/2012 13:10:38
    Ottima applicazione, (per chi utilizza gestori per i dawnload può inserirlo come motore di scansione), unica pecca per quanto mi riguarda è l'assenza di messaggi in caso di responsi negativi.
  8. Avatar
    Sbronzo di Riace
    18/04/2012 11:16:06
    mi permetterei un suggerimento per lo script di autoit aggiungere una voce nel registro di windows per avere nel menu contestuale la voce invia hash a VirusTotal If $CMDLine[0] = 0 Then $ask=MsgBox(4+262144,"Vuoi aggiungere una voce nel menu contestuale?","Vuoi aggiungere una voce nel menu contestuale?") if $ask=6 then regwrite ("HKEY_CLASSES_ROOT\*\shell\Virus Total","","REG_SZ","Invia Hash a VirusTotal") regwrite ("HKEY_CLASSES_ROOT\*\shell\Virus Total\command","","REG_SZ",@ScriptFullPath & " " & '"%1"') endif endif dopo aver compilato lo script basta copiare l'eseguibile dove si vuole ed eseguirlo una prima volta e rispondere Sì per avere la voce nel menu contestuale se l'eseguibile viene spostato basta lanciarlo di nuovo con il doppio click per correggere il percorso nel registo di Windows un altro miglioramento sarebbe quello di settare per le message box l'attributo top most in modo tale da averel in primo piano rispetto alle altre finestre
Scansione virus e malware con più motori diversi senza inviare nulla a VirusTotal - IlSoftware.it