Mon script « ClamAV Temps Réel »

J’avais besoin de créer un script que j’ai nommé « clamav-tr.sh« , celui-ci permet d’ajouter une fonction temps réel à clamav. Il scanne en temps réel le répertoire « /home » (par défaut), si un virus est trouvé, il sera déplacé en quarantaine (dans /tmp). Un fichier caché (.clamav-tr.log) sera disponible dans le dossier de l’utilisateur du script. J’utilise clamdscan (clamav-daemon) parce qu’il est beaucoup plus rapide que clamscan.

Je partage mon script, il peut être utile pour surveiller un répertoire ou des partages samba.

Pré-requis: clamav-daemon et inotify-tools.
Recommandé pour un PC de bureau: libnotify-bin.

#!/bin/bash
# Script "ClamAV Temps Réel", par HacKurx
# https://hackurx.wordpress.com
# Licence: GPL v3
# Dépendance: clamav-daemon inotify-tools
# Recommandé pour PC de bureau: libnotify-bin

DOSSIER=/home
QUARANTAINE=/tmp
LOG=$HOME/.clamav-tr.log

inotifywait -q -m -r -e create,modify,access "$DOSSIER" --format '%w%f|%e' | sed --unbuffered 's/|.*//g' |

while read FICHIER; do 
        clamdscan --quiet --no-summary -i -m "$FICHIER" --move=$QUARANTAINE
        if [ "$?" == "1" ]; then
		echo "`date` - Malware trouvé dans le fichier '$FICHIER'. Le fichier a été déplacé dans $QUARANTAINE." >> $LOG 
		echo -e "33[31mMalware trouvé!!!33[00m" "Le fichier '$FICHIER' a été déplacé en quarantaine."
		if [ -f /usr/bin/notify-send ]; then
			notify-send -u critical "ClamAV Temps Réel" "Malware trouvé!!! Le fichier '$FICHIER' a été déplacé en quarantaine."
		fi
        fi
done

Des améliorations à faire concernant mon script ? Pas de problème, celui-ci est disponible et modifiable sur la page clamav du wiki ubuntu-fr.org.

A savoir qu’il est possible d’améliorer les bases de données antivirales de clamav avec des signatures tiers en installant le paquet « clamav-unofficial-sigs« , ou manuellement avec les bases de données disponibles sur sanesecurity (toutefois une mauvaise configuration augmentera le risque de faux positifs).

Sur le site web ci-dessus, on trouve par exemple les bases de données de securiteinfo comportant 1450 signatures de malwares shell et exécutable Linux inconnu par clamav. Il est souvent dit que Linux ne craint pas les virus mais il ne faut pas confondre le terme virus avec celui de malware.
Bien que plus sûr GNU/Linux n’est pas infaillible, la popularité d’Ubuntu ou d’autres distributions accessibles vous le prouvera d’avantage. Prendre conscience de cela est le meilleur moyen de réduire la faille de sécurité chaise clavier 😉

11 réponses à “Mon script « ClamAV Temps Réel »

  1. Bonjour,

    Merci pour ce post ! Très utile !

    Par contre, pour les améliorations, j’ai noté que inotifywait envoie 2 fois le fichier qu’il détecte en sortie dans le cas d’une copie d’un autre répertoire vers le répertoire surveillé. Ex :
    /home/titi|MODIFY
    /home/titi|MODIFY

    Du coup le scan antivirus est lancé 2 fois…

    J’ai commencé à bidouiller pour essayé de ne pas avoir de doublons, mais sans succès. Si tu trouves avant moi je suis preneur !

  2. J’essaie le script et j’ai un souci avec les partages Samba : nos partages contiennent des milliers de fichiers et au démarrage du script, un énorme trafic réseau est généré.

    J’ai essayé l’option –exclude ‘^/home/mon_home/.gvfs/’ sans succès.

  3. Pingback: Nono’s Vrac 74 « m0le'o'blog

  4. Salut,

    Après avoir rendu le script exécutable (chmod +x « nom du script »), faut-il le lancer au démarrage en le copiant dans le dossier /etc/init.d/?

    Merci.

  5. Pingback: ClamAV Realtime : Protection antivirale temps réel : Portage sous Gentoo GNU/Linux – www.pingwho.org

Laisser un commentaire