pyClamav : installation et utilisation
Par xael le 14/07/2006 00:42
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
Pyclamav Error
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








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