Vous êtes sur la page 1sur 8

ClamAV : le modle de

la moule appliqu la
Pratique
virologie informatique...
Tomasz Kojm

orients voler
les donnes ou
transformer
l'ordinateur de la Degr de difficult
victime en une
machine sous,
sont une ralit Le problme du courriel non souhait nous concerne tous, que
quotidienne. La lutte ce soit les administrateurs systmes ou les simples utilisateurs
contre ce type de Internet ; ce courriel est devenu ces dernier temps, un outil de
courriel a dmontr marketing tentant pour certaines socits et toute sorte de
que la meilleure criminels, intresss principalement par les numros de nos
stratgie consiste cartes bancaires. Les attaques du type phishing ou les vers
liminer directement
les menaces au
niveau des serveurs
de messageries

L
lectroniques. Les e projet Clam AntiVirus (ClamAV) est un Clamscan
ensemble d'outils antivirales, destins aux Clamscan est un outil pratique permettant d'ana-
logiciels Open systmes Unix. Il est dvelopp par une lyser les fichiers et les rpertoires directement
Source nous quipe internationale de plusieurs dveloppeurs en ligne de commandes. Dans le cas le plus
viennent en aide et disponible en licence GNU GPL v2. J'attire ici simple, son utilisation se limite indiquer le nom
en proposant un votre attention sur le fait que, contrario d'autres du fichier ou du rpertoire scanner. Grce
programmes Open Source, ce logiciel ncessite l'option qui permet d'appeler des programmes
ventail de solutions
des mises jours rgulires : aussi bien le code externes, il est capable de contrler les archives
pour lutter contre les que la base des signatures de virus. En ce qui non supportes par la bibliothque libclamav.
spams et au moins concerne les programmes anti-virus, ces l- Clamscan peut tre utilis pour effectuer des
un programme pour ments, logiciels et services, jouent un rle clef. tches de routine, par exemple, scanner les
lutter directement Le mot clam signifie en anglais une moule. rpertoires d'utilisateurs ou s'intgrer aux autres
Les lecteurs se rappellent peut-tre que les
contre les logiciels
moules se nourrissent via une mthode de
malveillants ; nous filtrage : pour survivre, elles doivent filtrer l'eau Cet article explique...
le dcrirons dans cet pour trouver des particules de nourriture. Cette
Comment est constitu Clam AntiVirus,
article. brve explication devrait rpondre aux ques- Comment utiliser la bibliothque libclamav,
tions concernant le nom du programme. Comment crer votre propre signature du virus
pour ClamAV.
Outils de base
Le logiciel ClamAV s'adapte un principe Unix Ce qu'il faut savoir...
connu, KISS (en anglais Keep it Simple, Single)
donc l'ventail des programmes fournis dans le Vous devriez avoir des connaissances de base
paquet source contient des applications spcia- sur les menaces en provenance de Internet,
lises, simples d'emploi, en ligne de commande Vous devriez connatre les systmes Unix et
et qui peuvent servir de base aux systmes com- les services qu'ils proposent.
plexes d'analyse.

2 hakin9 N 2/2007 www.hakin9.org


ClamAV

programmes afin de les doter de


l'option de protection antivirale. Il faut
Manager Classification
toutefois souligner que clamscan doit du scannage du type du fichier
charger les bases compltes de si-
gnatures chaque dmarrage, ce qui
Donnes
prend du temps et de la mmoire vive Ordination
OUI
doivent etre
supplmentaire. Pour cette raison, il prordinnes?
ne doit pas tre utilis dans le cadre NON
d'oprations ncessitant de scanner Choix de la
Scannage
de nombreux fichiers sparment et mthode
des signatures
du scannage
simultanment, tels que le courriel au
niveau du dmon SMTP.
Dtection
algorithmique
Clamd
Clamd est un dmon conu pour OUI
les oprations o l'efficacit est
Donnes doivent NON
importante. Le programme est multi- Dtection
etre toujours
du virus
thread et il est donc capable d'utiliser scannes?
les processeurs supplmentaires OUI OUI
dans les systmes SMP. Ceci garan-
tit galement une utilisation efficace Manque
Infection
de la dtection
de la base de signatures : elles sont
charges au dmarrage et aprs une
mise jours, puis ensuite, partages Figure 1. Schma simplifi du fonctionnement de la bibliothque libclamav
par tous les threads. Aprs le d-
marrage, clamd s'excute en tche lorsque le dmon FTP ne supporte base de signatures, ce qui rduit consi-
de fond et attend des commandes pas le scannage anti-virus. drablement le temps de dmarrage et
(comme SCAN, PING, RELOAD, l'utilisation de la mmoire. Clamdscan
STREAM) en indiquant le socket Clamdscan ne contient aucune procdure de scan-
Unix et/ou TCP dans le fichier de Clamdscan est l'un des outils permet- nage et repose uniquement sur clamd,
configuration. En ce qui concerne tant d'utiliser les fonctionnalits du d- en lui envoyant les noms de fichiers et
les systmes Linux et FreeBSD, il est mon clamd. Le nom suggre qu'il a t de rpertoires, les flux de donnes et
capable en plus de travailler avec le cr d'aprs le premier outil dcrit et les descripteurs scanner. Une restric-
module Dazuko, permettant de scan- c'est effectivement le cas. Clamdscan tion importante en rsulte : lors de la
ner les ressources slectionnes est capable de remplacer clamscan de vrification de fichiers ou de rpertoi-
lorsqu'on y accde. Cette solution manire efficace dans de nombreux res, clamdscan est capable de vrifier
permet notamment de suivre les res- cas. De manire efficace parce qu'il n'a uniquement ceux qui sont accessibles
sources des rpertoires publics FTP pas besoin de charger chaque fois la au dmon clamd.

Listing 1. Dtection algorithmique du virus utilisant une simple cryptanalyse

/* W32.Parite.B */
if(SCAN_ALGO && !dll && ep == EC32(section_hdr[nsections - 1].PointerToRawData)) {
lseek(desc, ep, SEEK_SET);
if(cli_readn(desc, buff, 4096) == 4096) {
const char *pt = cli_memstr(buff, 4040, "\x47\x65\x74\x50\x72\x6f\x63\x41\x64\x64\x72\x65\x73\x73\x00", 15);
if(pt) {
uint32_t dw1, dw2;
pt += 15;
if(((dw1 = cli_readint32(pt)) ^ (dw2 = cli_readint32(pt + 4))) == 0x505a4f &&
((dw1 = cli_readint32(pt + 8)) ^ (dw2 = cli_readint32(pt + 12))) == 0xffffb &&
((dw1 = cli_readint32(pt + 16)) ^ (dw2 = cli_readint32(pt + 20))) == 0xb8) {
*ctx->virname = "W32.Parite.B";
free(section_hdr);
return CL_VIRUS;
}
}
}
}

www.hakin9.org hakin9 N 2/2007 3


Pratique

Freshclam Sigtool Dterminer le type du fichier


Le paquet ClamAV contient un pro- Le dernier outil dcrit est destin Pour des raisons de scurit et le
gramme appel freshclam, charg avant tout aux personnes travaillant travail direct sur les descripteurs,
d'automatiser compltement le pro- sur les signatures de virus et libclamav analyse le contenu du
cessus d'actualisation des bases de l'actualisation des bases dans le fichier et non son nom dans le sys-
signatures des virus. Le programme projet ClamAV. Sigtool permet de tme de fichiers pour dterminer le
propose une srie d'options : il peut dcompresser, de vrifier et de crer type du fichier. Des choses banales
tre lanc la demande ou travailler des bases de signatures signes de en apparence peuvent tre parfois
en tche de fond en tant que dmon, manire numrique, de gnrer les trs difficiles rsoudre. Autant la
il est capable d'utiliser un serveur fichiers diffrentiels (*.cdiff), de rcu- reconnaissance d'un fichier excu-
proxy, il permet d'excuter des prer le code des macros depuis les table ELF ne pose aucun problme,
programmes externes en fonction fichiers Office ou de normaliser les fi- autant dterminer si un fichier donn
d'vnement (actualisation des ba- chiers HTML, en facilitant la cration est une archive tar demande plus d'ef-
ses, erreur, dtection d'une nouvelle des signatures correctes. fort. Puisque le succs du scannage
version du logiciel). Afin de contrler dpend directement du rsultat de ce
la disponibilit d'une nouvelle version LibClamAV processus, il doit tre le plus exact
de la base de signatures, freshclam La bibliothque libclamav est l'l- possible. Pour ce faire, la bibliothque
se sert du protocole DNSet plus pr- ment responsable de dtecter les libclamav utilise trois techniques :
cisment d'un enregistrement texte virus. Elle est thread-safe et pro-
spcial : pose une API simple (en anglais les tests standards qui vrifient
Application Programming Interface) les nombres magiques (en
$ host -t txt current.cvd.clamav.net permettant aux programmes d'ac- anglais magic numbers) : les
current.cvd.clamav.net TXT cder aux fonctions de scannage valeurs uniques l'intrieur du
"0.88.4:39:1640:1155043741:1" universelles. La Figure 1 prsente un fichier, caractristique pour un
schma gnral du fonctionnement type donn,
Cet enregistrement contient ga- de la bibliothque et nous dcrirons la dtection algorithmique, base
lement l'information sur la version toutes les tapes ci-aprs. L'article sur l'analyse structurelle ou le
stable actuelle de ClamAV, ce qui se concentre sur la version actuelle contenu du fichier,
permet freshclam d'informer l'ad- du logiciel dans le repository CVS, le scannage du fichier en fonction
ministrateur d'une nouvelle sortie du qui remplacera prochainement la des fragments caractristiques
programme. version stable 0.8x. de donnes (par exemple, les
fragments du code HTML).
Tableau 1. Tableau des caractres de remplacement
Caractre de remplace- Sens de correspondance Gestion des fichiers spciaux
ment Lorsque le type du fichier est dter-
min, il faut dcider comment le g-
* N'importe quel nombre de n'importe quel
rer. Les fichiers spciaux, comme les
caractre
archives ou les documents, nces-
?? N'importe quel caractre sitent une prparation pralable qui
{n} n de n'importe quels caractres consiste extraire les donnes. La
{-n} Au plus n de n'importe quels caractres bibliothque est dote de la gestion
{n-} Au moins n de n'importe quels caractres des types suivants :

(a|b|c) a ou b ou c
archives : zip, RAR, CHM (en an-
glais Compiled HTML), cabinet,
Tableau 2. Tableau des caractres de remplacement OLE2, tar, SIS (paquets d'instal-
Code du fichier Type du fichier lation pour le systme Symbian),
cible fichiers compresss : gzip, bzip2,
0 Libre compress,
1 Portable Executable fichiers de la messagerie lec-
tronique : tous les formats Unix
2 Composant OLE2 (par exemple, le script VBA)
populaires, TNEF (winmail.dat),
3 HTML normalis PST,
4 De messagerie lectronique documents : HTML, PDF, MS Of-
5 graphique fice,
fichiers excutables : PE (ainsi
6 ELF
que la gestion des compresseurs

4 hakin9 N 2/2007 www.hakin9.org


ClamAV

ou protecteurs UPX, FSG, Petite, mav utilise deux algorithmes : Aho- modifications ncessaires de l'tat
PESpin, WWPack32, Y0da Cryp- Corasick et un algorithme tendu pour chaque caractre du texte
tor), ELF, de Boyer-Moore. Il s'agit des algo- d'entre. Dans l'exemple dcrit, la
d'autres : JPEG, GIF, RIFF (ana- rithmes de correspondance multi- recherche du texte se droule en
lyse des fichiers en fonction de modles, permettant de parcourir temps linaire chaque caractre
prsence des exploits). les fichiers l'aide de nombreuses du texte d'entre n'est vrifi qu'une
signatures simultanment. seule fois. L'implmentation de
Les modules de gestion des fichiers De plus, la bibliothque supporte l'algorithme en ClamAV ne garantit
ont t crs de sorte dtecter les les acclrateurs matriels qui ac- pas ce temps de fonctionnement de
irrgularits qui pourraient tre utili- clrent donc considrablement le l'automate parce que des restrictions
ses induire en erreur le scanneur. scannage. de profondeur de l'arbre A-C ont t
titre d'exemple, les procdures de L'algorithme Aho-Corasick cr ajoutes pour limiter l'utilisation de
gestion des fichiers zip sont capables un arbre spcial d'aprs un ensem- la mmoire. L'efficacit est toutefois
de dtecter une manipulation dans ble de modles (dans notre cas, un satisfaisante. De plus, l'algorithme
les en-ttes locaux des archives, ensemble de signatures de virus) ; bnficie d'une gestion des cartes
les entres fausses ou caches. Un cet arbre sera ensuite transform en gnriques (en anglais wild cards)
lment supplmentaire de protec- un automate fini. dcrites dans le prochain point.
tion sont des limites, lies au niveau La Figure 2 prsente un exemple L'algorithme de Boyer-Moore
de rcursivit, au nombre et la d'un arbre et d'un automate lui cor- tendu utilise, de mme que la ver-
taille des fichiers dcompresss, qui respondant, crs pour un ensemble sion originale, l'ide de la table de
constituent une protection contre les de modles P = {GAT, GC, TGCT}. dcalage (en anglais shift table),
attaques du type Denial of Service, Les tats de l'automate, marqus permettant d'omettre une partie du
utilisant les bombes d'archives (pe- de couleur verte, sont des tats finis texte d'entre dans lequel la corres-
tites archives contenant un grand lorsque l'automate se trouve en cet pondance ne peut pas avoir lieu. La
nombre de fichiers compresss). Les tat, l'un des modles a t correc- partie essentielle de l'algorithme ne
informations supplmentaires places tement adapt. Les flches noires travaille pas sur les caractres indivi-
dans les archives (mta-donnes) (bords de l'arbre) reprsentent une duels mais sur les hachages calculs
sont galement utiles ; libclamav les fonction de transfert et permettent de partir de trois caractres conscu-
scanne l'aide des signatures spcia- modifier l'tat lorsque le caractre de tifs. Ces caractres servent d'index
les, permettant ainsi de dtecter dans sortie n'est pas accept. Les flches du tableau de dcalage et d'un ta-
certains cas un logiciel malveillant au rouges reprsentent en revanche bleau spcial de suffixes. Pour cette
sein des archives codes. une fonction d'chec et permettent raison, l'algorithme n'est utilis que
de modifier l'tat lorsque ceci est pour les signatures statiques (qui
Scannage l'aide des impossible faire via la fonction de ne contiennent pas de caractres de
signatures transfert. L'automate commence remplacement).
Afin de scanner les fichiers de ma- fonctionner dans l'tat zro (qui est Le processus de scannage
nire efficace la recherche des une racine de l'arbre et le premier l'aide des signatures peut tre
dizaines de milliers de virus, libcla- tat de l'automate) et effectue les acclr au moyen d'un acclra-
teur matriel. ClamAV supporte la
Tableau 3. Tableau des dcalages acceptables
plate-forme NodalCore de Sensory
Dcalage Lieu de correspondance Networks qui propose les cartes PCI
* N'importe quel endroit dans le fichier dont le dbit s'lve 2 Gb/s. Leur
n n-me octet utilisation acclre le scannage
proprement parler et en plus rduit
EOF-n n-me octet depuis la fin du fichier
la charge CPU, ce qui est important
EP+n (ce dcalage et les dca- n-me octet depuis Entry Point pour les systmes de filtrage des mil-
lages ci-aprs ne fonctionnent liers ou des millions des fichiers quo-
qu'avec les fichiers excutables tidiens. Vous trouverez les donnes
PE et ELF) techniques et les prix des cartes sur
EP-n n-me octet avant Entry Point les sites Web des producteurs.
Sx+n n-me octet depuis le dbut de la
section portant le numro x Types des signatures des
Sx-n n-me octet avant le dbut de la sec- virus
tion portant le numro x Libclamav supporte plusieurs types
de signatures, permettant de dcrire
SL+n, SL-n Comme ci-dessus o L correspond
le logiciel malveillant de plusieurs
la dernire section du fichier
manires.

www.hakin9.org hakin9 N 2/2007 5


Pratique

Le fragment du code qui identifie plus en dtails. Dans le premier cas, Elles permettent d'indiquer le type
le but est un lment essentiel des il s'agit des signatures places dans du fichier et l'endroit o la corres-
signatures standards. Afin d'viter les bases *.db au format suivant : pondance de la signature doit avoir
les fausses alertes et de permettre lieu. Les Tableaux2 et 3 prsentent
de stocker les entres dans les fi- NomDuVirus=SignatureHexadcimale les valeurs possibles pour le deuxi-
chiers textes, il est cod sous forme me et troisime champ.
d'une entre compose des nombres Les signatures sous forme dve- En ce qui concerne les logiciels
hexadcimaux ; il peut galement loppe se trouvent dans les fichiers malveillants qui ne modifient pas leurs
contenir des caractres de remplace- *.ndb et se prsentent de manire fichiers, tels que la plupart de simples
ment dcrits dans le Tableau 1. Ces suivante : chevaux de Troie, il est possible d'opter
caractres permettent d'augmenter la pour les signatures utilisant des som-
souplesse de la signature. NomDuVirus:CodeDeLobjectif:Offset: mes MD5. Elles sont places dans les
Les signatures standards peu- SignatureHexadcimale[: fichiers *.hdb et ont le format suivant :
vent avoir deux formes : simplifie VersionMinimaleDuMoteur:
et celle qui permet de dcrire le but [WSMaximal]] MD5:TailleDuFichier:Nom

T T
2 3 3 4
A !=T A

1 1
C C
G G
!=G, T
4 !=A,C
4
0 0

!=EOF
T T
5 5
!=G !=T

G G !=C

6 7 8 6 7 8
C T C T

!=EOF

Figure 2. Exemple d'arbre et d'automate Aho-Corasick

Metastructures
Structures RAR
MDS
Structures
MDS

Metastructures
Zip

Signatures
standard

Communs PE ELF HTML Bote Graphisme OLE2

A-C B-M A-C BM A-C B-M A-C B-M A-C B-M A-C B-M A-C B-M

Figure 3. Arbre de signatures en mmoire

6 hakin9 N 2/2007 www.hakin9.org


ClamAV

Listing 2. Exemple d'utilisation de la bibliothque libclamav

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <clamav.h> /* fichier en-tte de la bibliothque libclamav */
int main(int argc, char **argv) {
int fd, ret;
unsigned long int size = 0;
unsigned int sigs = 0;
long double mb;
const char *virname;
struct cl_engine *engine = NULL;
struct cl_limits limits;
if(argc != 2) {
printf("Usage: %s file\n", argv[0]);
exit(2);

}
if((fd = open(argv[1], O_RDONLY)) == -1) {
printf("Can't open file %s\n", argv[1]);
exit(2);
}
/* charger toutes les bases depuis le rpertoire par dfaut */
if((ret = cl_load(cl_retdbdir(), &engine, &sigs, CL_DB_STDOPT))) {
printf("cl_load: %s\n", cl_strerror(ret));
close(fd);
exit(2);

}
printf("Loaded %d signatures.\n", sigs);
if((ret = cl_build(engine))) { /* Compiler le moteur */
printf("Engine compilation error: %s\n", cl_strerror(ret));;
cl_free(engine);
close(fd);
exit(2);
}
memset(&limits, 0, sizeof(struct cl_limits)); /* paramtrer les limites des archives*/
limits.maxfiles = 1000; /* nombre maximal des fichiers dcompresser */
limits.maxfilesize = 10 * 1048576; /* taille maximale du fichier archiv */
limits.maxreclevel = 5; /* niveau maximal des rcursivits */
limits.maxratio = 200; /* rapport maximal entre la taille du fichier compress et l'original */
/* scanner le descripteur indiqu */
if((ret = cl_scandesc(fd, &virname, &size, engine, &limits, CL_SCAN_STDOPT)) == CL_VIRUS) {
printf("Virus detected: %s\n", virname);
} else {
if(ret == CL_CLEAN) {
printf("No virus detected.\n");
} else {
printf("Error: %s\n", cl_strerror(ret));
cl_free(engine);
close(fd);
exit(2);
}
}
close(fd);
/* calculer une taille approximative des donnes scannes */
mb = size * (CL_COUNT_PRECISION / 1024) / 1024.0;
printf("Size of scanned data: %2.2Lf MB\n", mb);
cl_free(engine); /* librer la mmoire occupe par le moteur */
exit(ret == CL_VIRUS ? 1 : 0);
}

www.hakin9.org hakin9 N 2/2007 7


Pratique

Grce cette solution, les utilisa- dant leur type et ensuite, l'aide Je vous invite lire davantage les
teurs peuvent crer facilement leurs des signatures communes et MD5. sources si vous vous intressez aux
propres signatures, il suffit d'utiliser exemples plus complexes.
l'option --md5 du programme sigtool Fichiers CVD
Les fichiers CVD constituent un sup- Exemple d'utilisation de la
:sigtool --md5 evil.exe > evil.hdb port de base pour les signatures de bibliothque
ClamAV ; ces fichiers sont en ralit La bibliothque libclamav permet
et dplacer ensuite le fichier evil.hdb des archives tar compresses et si- d'ajouter facilement un scannage anti-
dans le rpertoire des bases de si- gnes de manire numrique. Deux virus au logiciel existant. Le Listing 2
gnature de ClamAV. fichiers sont distribus : daily.cvd et prsente un exemple complet d'utilisa-
Le dernier type de signatures main.cvd. Le premier d'entre eux est tion de la bibliothque un simple outil
est destin dcrire les fichiers une base qui sert la mise jour quo- permettant de scanner des fichiers
contenus dans des archives et pour tidienne, le second est une archive individuels depuis la ligne de comman-
ce faire, il se sert des mta-donnes principale de signatures dans laquelle des. Les fonctions lmentaires y ont
susmentionnes contenues dans une partie d'entres est dplace tous t utilises : cl _ load() charge une
les archives. Il est utilis avant tout les 45 jours en moyenne depuis le fi- base ou toutes les bases depuis le r-
pour les vers Internet qui se servent chier daily.cvd. Les bases contiennent pertoire indiqu, cl _ retdbdir() retour-
des archives codes en tant que les fichiers de texte avec les signa- ne le chemin du rpertoire par dfaut
support et dont les fichiers gardent tures aux formats dcrits ci-dessus. avec les bases, cl _ build() compile
une proprit caractristique, telle Afin de rduire la charge des miroirs, le moteur, cl _ scandesc() scanne le
que le nom, la taille ou la somme de un systme d'actualisations diffren- descripteur indiqu, cl _ strerror()
contrle. Ces signatures sont stoc- tielles a t labor (grce auquel il traduit le code d'erreur en message
kes dans les fichiers .zmd et .rmd, n'est plus ncessaire de charger les en anglais et enfin, cl _ free() libre
respectivement pour les archives zip fichiers complets de la base de signa- la mmoire occupe par le moteur. Le
et RAR, au format suivant : tures). la place, freshclam charge un programme retourne le code 1 s'il d-
script spcial avec les dernires mo- tecte une infection, 0 s'il ne la dtecte
NomDuVer : cod(0,1) : difications et effectue les mises jour pas et 2 s'il y a une erreur.
nom du fichier : appropries dans les fichiers locaux.
taille originale : Infrastructure rseau
taille aprs la compression : Dtection Le projet ClamAV est dot d'une in-
crc32 : mthode de compression : algorithmique des virus frastructure avance de miroirs, d-
numro de srie du fichier dans Certains virus avancs ncessitent veloppe depuis plusieurs annes.
l'archive:nombre maximal une approche spciale. Ce point Elle est finance par des entreprises,
des archives intgres concerne notamment les virus poly- des organisations et des organismes
morphiques qui rendent impossible ducatifs qui rendent disponibles
Si certains paramtres changent, il est la dtection directe l'aide des signa- leurs connexions Internet pour les
possible d'utiliser un astrisque pour tures. Une partie des scanneurs anti- besoins de distribution de bases
ignorer leurs valeurs. Worm.Padowor.A, virus essayent d'utiliser une approche
Worm.Kimazo.A et les variantes du ver universelle base sur l'mulation du
Bagle sont des exemples des vers d- code pour les dtecter mais avec les propos de l'auteur
Tomasz Kojm est concepteur et leader
tects avec le succs l'aide de cette virus modernes utilisant des astuces
du projet Clam AntiVirus. Il est diplm
mthode spcifique. avances ou les nouvelles extensions
de la facult d'informatique de l'Univer-
Afin de les utiliser de manire de processeurs, cette solution peut
sit Mikoaj Kopernik Toru ; c'est
optimale lors du dmarrage, les bases s'avrer inefficace. ClamAV propose un enthousiaste des logiciels Open
de signatures se divisent en groupes une dtection prcise base sur les Source et des tortues.
appropris, en crant un arbre pr- algorithmes ddis. Cette mthode
sent sur la Figure 3. Dans un premier prend plus de temps mais elle permet
temps, les donnes sont scannes de dtecter prcisment et rapide-
l'aide des signatures correspondant ment un virus. Actuellement, tous les
Sur Internet
leur type et ensuite, l'aide des algorithmes doivent tre placs direc-
http://www.clamav.net/ site offi-
signatures communes et MD5. Les tement dans les sources du program- ciel du projet Clam AntiVirus,
signatures utilisant les mta-donnes me mais il sera bientt possible de les http://www.dazuko.org/ site offi-
sont contrles au moment de d- distribuer sous forme de code d'octets ciel du projet Dazuko,
compresser les archives. (en anglais bytecode) avec les signa- http://www.sensorynetworks.com/
En ce qui concerne les fichiers, tures standards. Le Listing 1 prsente site du producteur des acclra-
dans un premier temps, on les scan- un court fragment du code charg teurs matriels.
ne l'aide des signatures correspon- de dtecter le virus W32.Parite.B,

8 hakin9 N 2/2007 www.hakin9.org


ClamAV

avec les signatures de virus. Plus


de cent vingt serveurs dans une
quarantaine de pays garantissent
une actualisation rapide et sans pro-
blmes des bases. Pour un accs
optimal aux mises jour, il faut se
rfrer aux adresses suivantes :

db.XY.clamav.net indique les


miroirs disponibles dans le pays
dont le code est XY,
db.local.clamav.net essaie de
rediriger le client l'ensemble de
miroirs le plus proche en vrifiant
son adresse dans la base GeoIP,
database.clamav.net l'enre-
gistrement round-robin indique
l'ensemble des miroirs les plus
rapides et les plus disponibles.

En ce qui concerne la France, la con-


figuration recommande consiste
placer deux entres suivantes dans
le fichier freshclam.conf :

DatabaseMirror db.fr.clamav.net
DatabaseMirror database.clamav.net

Si la connexion avec les miroirs natio-


naux choue, freshclam utilisera auto-
matiquement la deuxime entre.

Applications possibles
Bien que ClamAV ait t conu avant
tout pour scanner les courriels, il se
prte bien aux autres applications. Le
site officiel du projet, dans la section
Third-party software, vous propose
une liste d'une centaine de program-
mes qui utilisent ClamAV, permettant
de filtrer les courriels au sein des pro-
tocoles SMTP, POP3 et les lecteurs de
messages lectroniques, de scanner
le systme de fichiers, les flux HTTP,
les ressources FTP et d'autres.

Conclusion
Un scanneur anti-virus constitue un
des outils lmentaires que se doit de
disposer les administrateurs rseau.
Clam AntiVirus est un logiciel souple,
offrant de larges fonctionnalits et ap-
plications ; grce sa licence et ses
mises jours rgulires, les adminis-
trateurs peuvent dcouvrir que la pro-
tection anti-virus ne doit pas forcment
tre onreuse. l

www.hakin9.org hakin9 N 2/2007 9

Vous aimerez peut-être aussi