Accueil » pyClamav : installation et utilisation

pyClamav : installation et utilisation

Document Actions

Par xael le 14/07/2006 00:42

pyClamav est un module pour Python qui permet d'utiliser l'antivirus libre Clamav. Vous apprendrez ici comment l'utiliser pour permettre à vos applications de lutter contre les virus.

Catégories : securite
Modules python : pyclamav
Version Python : 2.2+

pyClamav : installation et utilisation

Qu'est-ce ?

PyClamav est un module pour python qui permet d'utiliser l'antivirus libre Clamav.

Installer pyClamav

Prérequis

  • Avoir installé Clamav
  • Avoir installé la libclamav1
  • Avoir installé les fichiers de développement de Clamav

Si vous utilisez Debian Etch (testing) ou Sarge-backports

Vous avez de la chance, c'est le plus simple...

apt-get install python-clamav

Pour les autres (Linux/*BSD)

les sources sont ici : http://xael.org/norman/python/pyclamav/

Décompressez l'archive :

$ tar xzf pyclamav-0.3.3.tar.gz 
$ cd pyclamav-0.3.3

Lancez la compilation

$ make all
running build
running build_ext
building 'pyclamav' extension
creating build
creating build/temp.linux-i686-2.3
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include/python2.3 -c pyclamav.c -o build/temp.linux-i686-2.3/pyclamav.o
creating build/lib.linux-i686-2.3
gcc -pthread -shared build/temp.linux-i686-2.3/pyclamav.o -L/usr/local/lib -lclamav -o build/lib.linux-i686-2.3/pyclamav.so

Installez en tant que root

[norman@noodle /tmp/pyclamav-0.3.3]
$ su
Password: xxxxxxxx

# make install
running install
running build
running build_ext
running install_lib
copying build/lib.linux-i686-2.3/pyclamav.so -> /usr/lib/python2.3/site-packages

Voilà, c'est prêt !

Utiliser pyClamav

Il suffit d'importer le module pyclamav :

>>> import pyclamav

Obtenir la version de Clamav et du fichier de signatures :

>>> pyclamav.get_version()
('0.88.3', 1598, 1152790696)

# Où les valeurs suivantes sont :
# 0.88.3 : version de Clamav (EQU "clamscan -v")
# 1598 : version journalière de la signature
# 1152790696 : date du fichier de signatures
>>> import time
>>> time.ctime(pyclamav.get_version()[2])
'Thu Jul 13 13:38:16 2006'

Contrôler un fichier

Pour tester le bon fonctionnement d'un antivirus, il existe une chaine de caractères normalisée qui est sans danger : EICAR. C'est une chaine de caractères reconnues par les antivirus comme s'il s'agissait d'un virus.

# Un fichier propre
>>> pyclamav.scanfile('example.py')
(0, '')

# Un fichier infecté
>>> pyclamav.scanfile('/tmp/eicar.com')
(1, 'Eicar-Test-Signature')

pyclamav.scanfile retourne un tupple, dont le premier élément vaut 0 si le fichier est propre, et 1 s'il est vérolé. Le deuxième élément est une chaine de caractère contenant le nom du virus détecté le cas échéant.

Si quelque chose se passe mal, pyClamav peut remonter deux exceptions : ValueError et TypeError

Un scanner en temps réel

Posté par Olivir le 06/08/2006 13:01
Bonjour,

L'existence de pyclamav ne permettrait-elle pas de créer un scanner résident en temps réel ?!

Je pense à cela notamment pour apporter cette fonctionnalité à Clamwin ...

Olivier
http://docsmartinez.free.fr

Pyclamav Error

Posté par manchox le 03/09/2006 20:06
Helpme friends,
Regards
Centos4.4 updates ready.
I write import pyclamav and it shows me a cross and I cannot use the mouse

[root@vdpf02 ~]# tail -f /var/log/squid/cache.log
Traceback (most recent call last):
File "/usr/bin/SquidClamAV_Redirector.py", line 28, in ?
import pyclamav
pyclamav.error: Unable to open file or directory
LibClamAV Error: cl_loaddbdir(): Can't open directory /var/lib/clamav
Traceback (most recent call last):
File "/usr/bin/SquidClamAV_Redirector.py", line 28, in ?
import pyclamav
pyclamav.error: Unable to open file or directory
2006/09/03 13:06:52| storeLateRelease: released 0 objects
Aidez l'AfPy

Rechercher
Dernières news AFPY
Les 6 dernières news
PyCon FR - 17-18 mai - Paris
07/05/2008 07:05
AFPyro d'Avril
24/04/2008 00:00