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


Capitolo 389.   Clamuko

Clamav può utilizzare le funzionalità offerte dal modulo Dazuko per controllare al volo i file a cui si sta per accedere (attraverso il sistema operativo). Il nome Clamuko rappresenta una funzione contenuta nel demone clamd, specializzata in questa comunicazione con Dazuko.

389.1   Preparazione di Dazuko

Nel capitolo 387 è descritto il procedimento necessario a compilare, installare e attivare il modulo Dazuko per un kernel Linux.

Naturalmente, il modulo Dazuko deve essere attivo prima che il demone clamd sia messo in funzione.

389.2   Preparazione del demone «clamd»

È probabile che il demone clamd sia stato compilato per la propria distribuzione GNU/Linux escludendo Clamuko. In pratica, potrebbe essere stato usato lo script configure con l'opzione --disable-clamuko. Se le cose stanno così, è necessario ricompilare clamd nel modo appropriato.

A titolo di esempio vengono sintetizzati i passaggi necessari a ricompilare il pacchetto clamav della distribuzione GNU/Linux Debian (si veda il capitolo 64 per una descrizione più dettagliata).

  1. Si acquisiscono temporaneamente i privilegi dell'amministratore:

    su[Invio]

  2. Si installano gli strumenti di sviluppo:

    apt-get install fakeroot build-essential[Invio]

    apt-get build-dep clamav[Invio]

  3. Si torna a operare in qualità di utente comune:

    exit[Invio]

  4. Si acquisiscono i sorgenti nella directory corrente:

    apt-get source clamav[Invio]

  5. Si modifica il file debian/rules:

    cd clamav-versione[Invio]

    vi debian/rules[Invio]

    Ovviamente si può usare qualunque altro programma per la modifica di file di testo. Ciò che va modificato sono le righe in cui si fa riferimento allo script configure, dove va eliminata l'opzione --disable-clamuko.

  6. Si ricompila e si riassembla un nuovo pacchetto binario:

    dpkg-buildpackage -rfakeroot -uc -us[Invio]

  7. Si installa:

    cd ..[Invio]

    su[Invio]

    dpkg -i clamav-daemom_*.deb[Invio]

389.3   Configurazione del demone «clamd»

La configurazione del demone clamd richiede l'uso di direttive speciali, oltre al fatto che deve funzionare necessariamente con i privilegi dell'utente root. L'esempio seguente mostra le direttive salienti del file /etc/clamav/clamd.conf:

...
#User clamav
...
ClamukoScanOnAccess
ClamukoScanOnOpen
ClamukoScanOnClose
ClamukoScanOnExec
ClamukoIncludePath /
ClamukoExcludePath /proc
ClamukoExcludePath /sys
ClamukoExcludePath /dev
#ClamukoMaxFileSize 5M
#VirusEvent echo found virus %v | mail root@localhost &
VirusEvent logger found virus %v &

Per cominciare si vede che la direttiva User è commentata, in modo da mantenere i privilegi dell'utente root durante il funzionamento del demone. La direttiva ClamukoScanOnAccess attiva le funzionalità Clamuko, mentre le tre direttive successive attivano la scansione nelle varie fasi di accesso ai file. Le direttive ClamukoIncludePath servono a indicare i percorsi a partire dai quali eseguire il controllo (si intendono anche le sottodirectory), così come le direttive ClamukoExcludePath servono a escludere dei percorsi. Si osservi che di norma è bene limitare i percorsi da controllare all'indispensabile, per evitare di appesantire troppo il funzionamento del sistema operativo:

...
ClamukoIncludePath /home
ClamukoIncludePath /var/spool/mail
ClamukoIncludePath /var/mail
ClamukoIncludePath /var/tmp
ClamukoIncludePath /tmp
...

Il demone clamd si limita a far impedire l'accesso ai file che risultano o sembrano essere infetti, annotando il fatto nel proprio registro (quello che si definisce con la direttiva LogFile). Per fare in modo che il fatto venga percepito anche in altro modo, si può usare la direttiva VirusEvent, che nell'esempio si limita a copiare l'informazione nel registro del sistema, attraverso il programma logger. Si può intuire che %v sia una variabile che si espande automaticamente nel nome del virus individuato.

389.4   Sequenza di attivazione e verifica del funzionamento

Come accennato all'inizio del capitolo, prima di avviare il demone clamd, è necessario che sia già attivo il modulo dazuko. A titolo di esempio, l'avvio di Clamuko potrebbe avvenire nel modo seguente:

rmmod capability[Invio]

modprobe dazuko[Invio]

modprobe capability[Invio]

clamd[Invio]

Naturalmente, per verificare che Clamuko sia attivo effettivamente si può dare un'occhiata al registro tenuto da clamd (dovrebbe essere il file /var/log/clamav/clamav.log):

...
Sun Jul  2 10:45:40 2007 -> Clamuko: Correctly registered with Dazuko.
Sun Jul  2 10:45:40 2007 -> Clamuko: Scan-on-open mode activated.
Sun Jul  2 10:45:40 2007 -> Clamuko: Scan-on-close mode activated.
Sun Jul  2 10:45:40 2007 -> Clamuko: Scan-on-exec mode activated.
Sun Jul  2 10:45:40 2007 -> Clamuko: Included path ...
...
Sun Jul  2 10:45:40 2007 -> Clamuko: Max file size limited to 5242880 bytes.
...

Inoltre, tentando di leggere un file contenente un'impronta virale conosciuta, come nel caso del file clam.exe di esempio, purché sia collocato in uno dei percorsi previsti, si deve ottenere un errore dovuto all'impossibilità di portare a termine l'operazione di accesso:

cat clam.exe[Invio]

cat: clam.exe: Operation not permitted

Poi, nel registro di clamd, si deve vedere l'esito della scansione:

...
Sun Jul  2 11:34:44 2007 -> Clamuko: /home/tizio/clam.exe: \
  \ClamAV-Test-File FOUND ...

389.5   Problemi

Il sistema di protezione di Clamuko può essere efficace, ma crea rallentamenti eccessivi ogni volta che un programma deve aprire un file di dimensioni abbastanza grandi. Di conseguenza, è un sistema poco pratico e spesso anche inutilizzabile, a meno di ridurre la protezione ai file molto piccoli.

Un altro problema significativo riguarda l'uso del sistema NFS per la condivisione dei file attraverso la rete: se si utilizza il servizio gestito internamente al kernel Linux, il controllo avviene in modo intermittente.

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


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

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

Valid ISO-HTML!

CSS validator!