Download - LinuxDay 2005: Computer Virus e rilevamento
© 2005 Simone Amati & Valerio Bruno
Computer Virus e rilevamento
1/10
CosCos’è’è un computer virusun computer virusSemplicemente un programma che si riproduce!
© 2005 Simone Amati & Valerio Bruno
Il frutto dell’opera di uno programmatore
Esistono in molte forme:
Commettere atti criminosi
Studiare le possbilitàdella vita artificialeStudiarli per proteggersi
da altri tipi di malwareInformation warfare
Virus polimorfici Worm
Trojan Virus stealthBoot Virus
2/10
Come Come sonosono fattifatti
© 2005 Simone Amati & Valerio Bruno
1. Search file
4. Execute host file
3. Write virus code in host file
2. Verify file infection and attributes
3/10
Come Come funzionanofunzionano• Incubazione: controllo del sistema e delle difese
© 2005 Simone Amati & Valerio Bruno
• Infezione: scrittura in altri file
• Propagazione
• Attivazione
4/10
Cosa significa rilevare un virusCosa significa rilevare un virus
© 2005 Simone Amati & Valerio Bruno
Riconoscere un’alterazione dei file del sistema o il codice virale attraverso opportune tecniche:
1. Integrity-checking function: confronto tra checksum2. Scanning function: confronto tra firme virali e stringhe di dati3. Heuristic scanning: testa i programmi in una “sandbox”
Batterio
DNA Firma virale
Computer virus
Impronta digitale
Criminale
5/10 © 2005 Simone Amati & Valerio Bruno
TecnicheTecniche didi rilevamentorilevamento .1.1Integrity-checking function:
1. I file da monitorare vengono dati in pasto a particolari algoritmi digest (tipo MD5);
2. Il risultato della digestione è unico e viene memorizzato in un DB;3. L’antivirus confronta i dati del DB con i digest calcolati on-the-fly.
File 1Hash
Digest1 =
File 1Hash
Digest1Memorizzazione
DBdigest
File 1 infettoHash
Digest2 ≠
6/10 © 2005 Simone Amati & Valerio Bruno
TecnicheTecniche didi rilevamentorilevamento .2.2Scanning function:
Ogni file è una sequenza finita di byte;
Ricerca di una determinata stringa nel file considerato;
L’antivirus confronta le firme contenute nel DB con i byte del file.
Algoritmi “famosi”:
Knutt-Morris-Pratt: al più M + N confronti;
Boyer-Moore: al più M + N ma in media N/M.
7/10 © 2005 Simone Amati & Valerio Bruno
TecnicheTecniche didi rilevamentorilevamento .3.3Firme dinamiche:
I virus polimorfici attraverso i loro motori di morfing alterano il codice binarioinserendo istruzioni no-op o salti tra le varie istruzioni. La firma in questomodo non è costante.
Heuristic scanning:
1. Eurustica statica: controlla le signature dei comportamenti per individuare comportamenti sospetti;
2. Euristica dinamica: esegue il programma in un computer virtuale (sandox) e ne analizza il comportamento.
8/10 © 2005 Simone Amati & Valerio Bruno
ProblemaProblema del del rilevamentorilevamentoÈ realmente possibile individuare sempre un virus?
È stato dimostrato che qualunque sia il tipo di CV, nessun programma può,contemporaneamente, testare il proprio input alla ricerca del virus ed esseresicuro di non diffonderlo.
9/10
Come posso fare per difendere il mio pc?Come posso fare per difendere il mio pc?Nessuna soluzione antivirus può proteggerti da te stesso!Nessuna soluzione antivirus può proteggerti da te stesso!
© 2005 Simone Amati & Valerio Bruno
• Non eseguire mai programmi che arrivano sotto forma di allegati in e-mail o da una qualsiasi altra fonte non affidabile!
• Assicurati di effettuare una navigazione web sicura
• Scarica i programmi solo da siti web sicuri e affidabili o dal sito del produttore
• Dotati di un antivirus e tenerlo sempre aggiornato
• Mantieni sempre aggiornato il Sistema Operativo e tutti i software di cui disponi
Dalla teoria alla pratica: installare un sistema antivirus
OpenSource su un desktop con Linux
● Perché?
●I virus per Linux sono pochi e poco dannosi.Oggi, e domani?
●Vogliamo essere portatori sani di epidemie?
● Scanner anti-virus
● Blocco all'apertura di file infetti● Comoda interfaccia graf ica per lo scanning
Caratteristiche del sistema
© 2005 Simone Amati & Valerio Bruno
Klamav
Clamav
Dazuko
Cos'è Clamav ?
Da www.clamav.net:
A GPL virus scanner featuring:● command-line scanner● fast, multi-threaded daemon● milter interface for sendmail● database updater with support for digital signatures● virus scanner C library● on-access scanning (Linux® and FreeBSD)● detection of over 40000 viruses, worms and trojans● built-in support for RAR (2.0), Zip, Gzip, Bzip2, Tar, MS OLE2,
MS Cabinet files, MS CHM (Compressed HTML), MS SZDD● built-in support for mbox, Maildir and raw mail files● built-in support for Portable Executable files compressed
with UPX, FSG, and Petite
Cos'è Dazuko?
Un modulo del kernel che:
1) Intercetta le chiamate alla funzione di apertura dei file.
2) Esegue del codice per determinare se queste operazioni sono autorizzate.
3) Se non sono autorizzate le blocca.
© 2005 Simone Amati & Valerio Bruno
www.dazuko.org
Cos'è Klamav?
● Un'interfaccia ad i comandi di Clamav.
● Contiene un motore di ricerca di informazioni sui virus.
● Permette scansioni programmate.● Gestisce la quarantena.
● Gestisce impostazioni di Kmail per la scansione della posta.
© 2005 Simone Amati & Valerio Bruno
klamav.sourceforge.net
© 2005 Simone Amati & Valerio Bruno
Installazione dei moduli softwarepacchetti precompilati o codice sorgente?
● Installazione del software tramite il proprio gestore di pacchetti
– Più facile e veloce
– Versioni non sempre aggiornate
– Non sempre possibile
● Ricompilazione dei sorgenti ed installazione manuale
– Operazione non proprio banale
– Scelta arbitraria della versione (ultima / ultimissima!)
– Operazione fattibile per tutte le distribuzioni
© 2005 Simone Amati & Valerio Bruno
Note [dolenti] per l'installazione di Dazuko
© 2005 Simone Amati & Valerio Bruno
● Richiede Different Security Model feature e Default Linux Capability
● I sorgenti installano il modulo in
/lib/modules/<<versioneKernel>>/extra
Note per l'installazione di Clamav
© 2005 Simone Amati & Valerio Bruno
● Se eseguite la compilazione “amanuense” vi conviene specificare i path:
./configure
–sbindir=/sbin
–sysconfdir=/etc
–enable-clamuko
● In /etc controllate i file di configurazione
– clamd.conf controlla il demone per la scansione automatica.
– freshclam.conf controlla il programma per l'aggiornamento del database dei virus.
Note per l'installazione di Klamav
© 2005 Simone Amati & Valerio Bruno
● Sul sito ci sono installer e sorgenti: la stessa cosa!
● Richiede le librerie Qt e quelle di KDE, sia codice della libreria che headers.
www.torlug.org
© 2005 Simone Amati & Valerio Bruno