Skip to main content
Version: Next

Analyse antivirus des fichiers

Introduction

Les fonctionnalités qui permettent aux utilisateurs d'envoyer des fichiers vers un serveur web présentent un risque pour la sécurité du serveur. Ce risque est aussi présent pour tous les utilisateurs ou administrateurs susceptibles de télécharger le contenu des fichiers envoyés. Afin de limiter les risques, déployer un logiciel antivirus sur le serveur Web est une bonne pratique de sécurité qui permet :

  • De protéger les utilisateurs lors de l'utilisation des fonctionnalités de transfert de fichiers présentes sur l'application tel que le module bureautique.
  • Limiter les risques d'envoi et d'exécution de code malveillant ainsi que l'exploitation d'une vulnérabilité publique sur le serveur web.
  • De protéger le serveur NAS hébergeant les pièces jointes contre l'exécution d'un code malveillant si celles-ci sont externalisées (i.e. non stockées sous forme de blobs dans la base de données).
Mode de stockage des pièces jointes

Deux modes de stockage des pièces jointes sont paramétrables dans l'application :

  • en base de données (mode par défaut)
  • externalisé sur un NAS

Principe de fonctionnement

L'antivirus mis en place dans notre solution de sécurisation est Clam.AV. Celui-ci est interrogé lors du chargement d'un fichier au niveau du module bureautique et des champs fichiers. Cet antivirus doit être installé manuellement par le chef de projet sur le serveur applicatif et lancé comme un service ou une tâche pour fonctionner en environnement de production. De plus, des modifications sont nécessaires dans le fichier de configuration programs.ini.

Installation manuelle

Actions manuelles

  1. Avec les droits administrateur, installer l'antivirus Clam.AV en tant que service ou obtenir le hostname et le port de celui utilisé dans l'entreprise.
  2. Vérifier que le port est bien accessible depuis le serveur hébergeant IIS.
  3. Ajouter ou modifier les trois clés ci-dessous dans le programs.ini :
# Sécurité
Security.ScanUploadedFiles=enable
Security.VirusScanner.Hostname=localhost
Security.VirusScanner.Port=3310

Installation de Clam.AV

Voici les étapes d'installation résumées :

  1. Télécharger la dernière version de l'exécutable ou le zip : Clam.AV download.
  2. Aller dans le répertoire d'installation avec PowerShell en mode Administrateur et lancer les commandes suivantes :
copy .\conf_examples\freshclam.conf.sample .\freshclam.conf
copy .\conf_examples\clamd.conf.sample .\clamd.conf
  1. Modifier les fichiers créés par la commande précédente freshclam.conf et clamd.conf avec un éditeur de texte (bloc-notes) en supprimant la ligne Example.
  2. Mettre à jour la base de signatures en lançant l'exécutable .\freshclam.exe

Une fois ces tâches réalisées, il est nécessaire d'exécuter le programme clamd.exe en tâche de fond pour que celui-ci puisse analyser les éléments bureautiques.

Mise en place du service

Plusieurs options sont disponibles pour exécuter le service Clam.AV :

Option 1 : [Dev-Rec] - Mise en place du service sous forme de daemon

Pour les environnements de développement ou de test, lancez simplement le daemon :

.\clamd.exe

Option 2 : [Prod] - Exécution en tant que service Windows à l'aide de NSSM

  1. Télécharger NSSM
  2. Extraire nssm.exe et l'installer avec la commande :
nssm install ClamAV
  1. Paramétrer le service dans l'interface qui s'ouvre.
  2. Lancer le service ClamAV depuis le gestionnaire de services Windows.

image.png

Option 3 : [Prod] - Exécution via une tâche planifiée

  1. Ouvrir le Planificateur de tâches de Windows.
  2. Créer une tâche nommée Clam.AV.
  3. Créer le déclencheur Au démarrage.
  4. Créer l'action Démarrer un programme pointant vers clamd.exe.
  5. Valider et exécuter la tâche.

image.png

Option 4 : Utilisation d'un container Docker

Clam.AV est aussi disponible sous forme de container Docker.

Fichiers dépassant les 25Mo

Pour prendre en compte les fichiers dépassant la taille de 25Mo, modifiez les paramètres suivants dans le fichier clamd.conf :

MaxScanSize

Définit la quantité maximale de données à analyser pour chaque fichier d'entrée.

Point d'attention

La désactivation de cette limite ou sa définition trop élevée peut entraîner de graves dommages au système.

Par défaut : 100M.

MaxFileSize

Les fichiers dont la taille dépasse cette limite ne seront pas analysés.

Point d'attention

La désactivation de cette limite ou sa définition trop élevée peut entraîner de graves dommages au système.

Par défaut : 25M.

StreamMaxLength

Spécifie la limite supérieure de la taille des données qui seront transférées vers le démon distant lors de l'analyse d'un seul fichier. Par défaut : 10M.

Vérifier le fonctionnement de l'antivirus

Deux messages d'erreur informent l'utilisateur du résultat de l'analyse :

  • Lorsque le fichier n'a pas pu être traité par l'antivirus
  • Lorsque le fichier contient un virus

Pour vérifier le bon fonctionnement, vous pouvez utiliser le test Eicar :

  1. Créez un fichier texte contenant la chaîne de caractère Eicar
  2. Tentez de le charger dans votre module bureautique

Si tout fonctionne correctement, vous devriez voir un message d'alerte indiquant que le fichier est infecté. image.png