[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 388.   Clamav

Clamav(1) è un sistema di individuazione di virus informatici abbastanza completo, che però non offre la possibilità di rimuovere il codice dannoso dai file infetti. In questo capitolo ne viene descritto l'uso più semplice.

388.1   Scansione manuale

Per la scansione manuale dei file, alla ricerca di virus o comunque di codice pericoloso noto, si usa il programma clamscan:

clamscan [opzioni] [file|directory]...

Come si vede dal modello sintattico, alla fine della riga di comando si annotano i file o le directory da scandire, ma in mancanza di tale indicazione, si ottiene la scansione della directory corrente. Si osservi però che la scansione delle directory non prevede la ricorsione nelle sottodirectory successive, a meno di usare espressamente l'opzione -r.

Tabella 388.1. Alcune opzioni.

Opzione Descrizione
--quiet
Fa sì che il programma funzioni in modo «silenzioso», mostrando solo i messaggi di errore.
-d file|directory
--database=file|directory
Indica di utilizzare un file particolare o il contenuto di una directory come elenco delle impronte virali di riconoscimento dei virus.
-l file
--log=file
Richiede di salvare una copia del rapporto di scansione nel file indicato.
-r
--recursive
Richiede si scandire in modo ricorsivo anche le sottodirectory.
--bell
Richiede di generare un segnale acustico al riconoscimento di un virus.
-i
--infected
Richiede di mostrare soltanto i file che risultano infetti.
--remove
Richiede di cancellare i file che sono o sembrano essere infetti.
--move=directory
Richiede di spostare nella directory indicata i file che sono o sembrano essere infetti.

Segue la descrizione di alcuni esempi.

388.2   Aggiornamento delle impronte virali

Un programma antivirus, per poter essere efficace, richiede di avere un aggiornamento frequente delle impronte virali, ovvero delle stringhe di riconoscimento dei virus o comunque del codice dannoso. In un'installazione normale di Clamav, i file che contengono tali informazioni vengono conservati nella directory /var/lib/clamav/.

La distribuzione dei file contenenti le impronte virali avviene attraverso una serie di elaboratori a cui si può accedere con il nome generico database.clamav.net, che di norma si trasforma automaticamente in un indirizzo abbastanza «vicino»:

host database.clamav.net[Invio]

database.clamav.net is an alias for db.local.clamav.net.
db.local.clamav.net is an alias for db.it.clamav.net.
db.it.clamav.net has address 213.92.8.5
db.it.clamav.net has address 159.149.155.69
db.it.clamav.net has address 193.206.139.37

Da questo indirizzo si possono prelevare i file main.cvd e daily.cvd, ovviamente quando questi risultano aggiornati:

<http://database.clamav.net/main.cvd>

<http://database.clamav.net/daily.cvd>

Come si può intuire, il file main.cvd è quello complessivo, di tutte le impronte virali conosciute, che viene aggiornato a cadenza mensile, mentre il file daily.cvd viene aggiornato ogni giorno, con le impronte virali nuove, che non sono ancora presenti nel primo file.

Questi due file vanno collocati nella directory /var/lib/clamav/, o nella directory equivalente prevista nel proprio sistema operativo.

Per automatizzare l'aggiornamento della propria copia di impronte virali, Clamav prevede il programma freshclam, a cui si associa il file di configurazione /etc/clamav/freshclam.conf:

freshclam [opzioni]

In condizioni normali, avviando il programma senza opzioni, si ottiene l'aggiornamento dei file delle impronte virali, nella directory predefinita (/var/lib/clamav/), ma ciò richiede che il file di configurazione contenga almeno la direttiva seguente:

DatabaseMirror database.clamav.net

Il programma freshclam non richiede privilegi particolari per funzionare, a parte quelli necessari a poter aggiornare i file delle impronte virali. Di solito si predispone l'utente fittizio clamav e si fa in modo che i programmi di Clamav funzionino con i privilegi concessi a tale utente.

Tabella 388.4. Alcune opzioni

Opzione Descrizione
--quiet
Fa sì che vengano emessi soltanto i messaggi di errore.
-l file
--log=file
Fa in modo di salvare il rapporto sullo scarico delle impronte virali nel file indicato.
--datadir=directory
Specifica esplicitamente la directory all'interno della quale salvare i file delle impronte virali aggiornate.
-u utente
--user=utente
Quando il programma viene avviato con i privilegi dell'utente root, questa opzione fa sì che i privilegi vengano ridotti a quelli dell'utente indicato.
-d
--daemon
Fa sì che il programma rimanga in funzione, come demone, ma richiede anche l'uso dell'opzione -c.
-c n
--checks=n
Questa opzione viene usata assieme a -d e specifica quante volte al giorno controllare per l'esistenza di aggiornamenti alle impronte virali.

Segue la descrizione di alcuni esempi.

Tabella 388.5. Alcune direttive di configurazione.

Opzione Descrizione
DatabaseMirror nome_di_dominio
Specifica il nome di dominio dell'elaboratore a cui rivolgersi per l'aggiornamento delle impronte virali. In generale, conviene scrivere il nome database.clamav.net.
DatabaseOwner utente
Quando freshclam viene avviato con i privilegi dell'utente root, fa in modo che i privilegi effettivi vengano ridotti a quelli dell'utente indicato.
DatabaseDirectory directory
Specifica la directory che deve contenere i file delle impronte virali.
UpdateLogFile file
Fa in modo di salvare il rapporto sullo scarico delle impronte virali nel file indicato.

388.3   Scansioni più o meno automatiche

Per facilitare la richiesta di una scansione esiste anche il demone clamd, il cui funzionamento viene controllato esclusivamente attraverso un file di configurazione: /etc/clamav/clamd.conf. Di norma, il demone viene avviato con i privilegi dell'utente root, salvo ridurli poi in base alla configurazione.

clamd [-c file_di_configurazione|--config-file=file_di_configurazione]

Come si vede dal modello sintattico, con l'opzione -c è possibile dichiarare un file di configurazione diverso da quello predefinito in fase di compilazione del programma.

Tabella 388.6. Alcune direttive di configurazione.

Opzione Descrizione
User utente
Fa sì che il demone funzioni con i privilegi dell'utente indicato. Di solito si tratta dell'utente clamav, salvo i casi in cui è proprio necessario mantenere i privilegi dell'utente root.
LogFile file
Specifica il file da usare per annotare le operazioni svolte. Di solito si tratta di /var/log/clamav/clamav.log.
DatabaseDirectory directory
Specifica la directory che contiene i file delle impronte virali.

In generale, clamd da solo non serve: lo si installa sempre solo per consentire ad altri programmi di interagire con il sistema di Clamav. Pertanto, anche la configurazione dipende dalle esigenze specifiche che si vengono a presentare.

388.3.1   Utilizzo di «clamdscan»

Per eseguire una scansione «manuale», sfruttando però il demone clamd, si può utilizzare il programma clamdscan, che funziona sostanzialmente come clamscan, con la differenza che il suo avvio è meno pesante:

clamdscan [opzioni] [file|directory]...

Alcune delle opzioni di clamscan sono prive di significato per clamdscan.

Tabella 388.7. Alcune opzioni.

Opzione Descrizione
--quiet
Fa sì che il programma funzioni in modo «silenzioso», mostrando solo i messaggi di errore.
-l file
--log=file
Richiede di salvare una copia del rapporto di scansione nel file indicato.
--remove
Richiede di cancellare i file che sono o sembrano essere infetti.
--move=directory
Richiede di spostare nella directory indicata i file che sono o sembrano essere infetti.

Il programma clamdscan, avvalendosi del demone clamd, risente dei permessi con i quali il demone stesso è avviato. In pratica, se clamd funziona con i privilegi di un utente fittizio che non ha accesso a certi file, non può controllarne il contenuto.

Segue la descrizione di alcuni esempi.

388.4   Verifica del funzionamento

Assieme a Clamav vengono distribuiti anche dei file innocui, che vengono rilevati come affetti da un virus. Di solito si collocano nella directory /usr/share/clamav-testfiles/:

clamscan /usr/share/clamav-testfiles[Invio]

/usr/share/clamav-testfiles/clam-error.rar: RAR module failure
/usr/share/clamav-testfiles/debugm.c: OK
/usr/share/clamav-testfiles/clam.cab: Unable to open file or directory
/usr/share/clamav-testfiles/clam.exe.bz2: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.exe: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.rar: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.zip: ClamAV-Test-File FOUND

----------- SCAN SUMMARY -----------
Known viruses: 60743
Engine version: 0.88.2
Scanned directories: 1
Scanned files: 7
Infected files: 4
Data scanned: 0.00 MB
Time: 2.601 sec (0 m 2 s)

388.5   Utilizzare Procmail per scandire automaticamente i messaggi di posta elettronica

Con l'aiuto di Procmail (capitolo 317) è possibile utilizzare Clamav, per scandire i messaggi prima del recapito finale all'utente. Si possono inserire nel file ~/.procmailrc le direttive seguenti:

#
# Scan for viruses
#
:0
VIRUS=|clamdscan --no-summary --stdout -

:0
* VIRUS ?? ^.*FOUND
virus

Nella prima fase viene avviato il programma clamdscan (con le opzioni che si vedono), inviandogli il messaggio di posta elettronica attraverso lo standard input. Il risultato della scansione è un testo descrittivo che viene emesso dal programma attraverso lo standard output, che così viene assegnato alla variabile VIRUS. Nella seconda fase viene preso in considerazione lo stesso messaggio di posta elettronica, verificando che la variabile VIRUS contenga la stringa FOUND alla fine: se c'è la corrispondenza, il messaggio viene messo nel file o nella directory virus.

Figura 388.10. Spiegazione dettagliata.

Procmail

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) Clamav   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome clamav.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!