Automatiser la détection de logiciels malveillants pour des fichiers importés dans Cloud Storage

Last reviewed 2023-05-17 UTC

Cette architecture de référence vous montre comment créer un pipeline basé sur des événements permettant d'automatiser la détection de logiciels malveillants, tels que les chevaux de Troie, les virus et autres codes malveillants. L'analyse manuelle de nombreux fichiers importés dans Cloud Storage est trop chronophage pour la plupart des applications. L'automatisation du processus peut vous faire gagner du temps et améliorer l'efficacité.

Le pipeline de cette architecture utilise des produits Google Cloud avec le moteur antivirus Open Source ClamAV. Vous pouvez également utiliser tout autre moteur anti-logiciels malveillants permettant d'effectuer une analyse à la demande dans des conteneurs Linux. Dans cette architecture, ClamAV s'exécute dans un conteneur Docker hébergé dans Cloud Run. Le pipeline écrit également des entrées de journal dans Cloud Logging et enregistre les métriques dans Cloud Monitoring.

Architecture

Le diagramme suivant montre une vue d'ensemble de l'architecture :

Architecture du pipeline de détection des logiciels malveillants.

L'architecture affiche les pipelines suivants:

  • Pipeline d'analyse de fichiers importés par l'utilisateur, qui vérifie si un fichier importé contient un logiciel malveillant.
  • Le pipeline de mise à jour du miroir de la base de données ClamAV de logiciels malveillants, qui tient à jour un miroir de la base de données de logiciels malveillants utilisée par ClamAV.

Les pipelines sont décrits plus en détail dans les sections suivantes.

Pipeline d'analyse de fichiers importés par l'utilisateur

Le pipeline d'analyse des fichiers fonctionne comme suit :

  1. Les utilisateurs finaux importent leurs fichiers dans le bucket Cloud Storage non analysé.
  2. Le service Eventarc détecte cet événement d'importation et informe le service Cloud Run de la présence d'un nouveau fichier.
  3. Le service Cloud Run télécharge le nouveau fichier à partir du bucket Cloud Storage non analysé et le transmet au service de détection de logiciels malveillants ClamAV.
  4. En fonction du résultat de la recherche de logiciels malveillants, le service effectue l'une des actions suivantes :
    • Si ClamAV déclare que le fichier est sain, il est déplacé du bucket Cloud Storage non analysé vers le bucket Cloud Storage sain.
    • Si ClamAV déclare que le fichier contient un logiciel malveillant, il est déplacé du bucket Cloud Storage non analysé vers le bucket Cloud Storage mis en quarantaine.
  5. Le service transmet le résultat de ces actions à Logging et Monitoring pour permettre aux administrateurs d'intervenir.

Pipeline de mise à jour du miroir de la base de données ClamAV de logiciels malveillants

Le pipeline de mise à jour du miroir de base de données pour les logiciels malveillants ClamAV conserve un miroir local privé à jour de la base de données dans Cloud Storage. Cela garantit que l'accès à la base de données publique de ClamAV n'intervient qu'une fois par mise à jour. Le téléchargement porte ainsi sur des fichiers de mises à jour différentielles plus petits, et non sur la base de données complète, ce qui évite toute limitation du débit.

Ce pipeline fonctionne comme suit :

  1. Un job Cloud Scheduler est configuré de manière à se déclencher toutes les deux heures, ce qui correspond à l'intervalle par défaut entre deux vérifications de mise à jour par le service freshclam de ClamAV. Ce job envoie une requête HTTP POST au service Cloud Run pour lui demander de mettre à jour le miroir de la base de données de logiciels malveillants.
  2. L'instance Cloud Run copie le miroir de la base de données de logiciels malveillants à partir du bucket Cloud Storage vers le système de fichiers local.
  3. L'instance exécute alors l'outil ClamAV CVDUpdate, qui télécharge les mises à jour différentielles disponibles et les applique au miroir de la base de données.
  4. Ensuite, il copie à nouveau le miroir de la base de données de logiciels malveillants mis à jour vers le bucket Cloud Storage.

Au démarrage, le service ClamAVfroid qui s'exécute dans l'instance Cloud Run télécharge la base de données de logiciels malveillants depuis Cloud Storage. Pendant l'exécution, le service recherche et télécharge régulièrement les mises à jour de base de données disponibles à partir du bucket Cloud Storage.

Considérations de conception

Les consignes suivantes peuvent vous aider à développer une architecture répondant aux exigences de votre organisation en termes de fiabilité, de coût et d'efficacité opérationnelle.

Fiabilité

Afin de procéder à une analyse efficace, l'outil de détection de logiciels malveillants ClamAV doit gérer une base de données à jour des signatures de logiciels malveillants. Le service ClamAV est exécuté à l'aide de Cloud Run, qui est un service sans état. Au démarrage d'une instance du service, ClamAV doit systématiquement télécharger la dernière base de données complète de logiciels malveillants, dont la taille atteint plusieurs centaines de mégaoctets.

La base de données publique de logiciels malveillants de ClamAV est hébergée sur un réseau de distribution de contenu (CDN), qui limite le débit de ces téléchargements. Si plusieurs instances démarrent et tentent de télécharger la base de données complète, la limitation du débit peut être déclenchée. L'adresse IP externe utilisée par Cloud Run est alors bloquée pendant 24 heures. Cela empêche le démarrage du service ClamAV ainsi que le téléchargement des mises à jour de la base de données de logiciels malveillants.

De plus, Cloud Run utilise un pool partagé d'adresses IP externes. Par conséquent, les téléchargements provenant des instances de détection de logiciels malveillants issues d'autres projets sont considérés par le CDN comme émanant d'une seule adresse et déclenchent également le blocage.

Optimisation des coûts

Cette architecture utilise les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

Efficacité opérationnelle

Pour déclencher des alertes basées sur les journaux pour les fichiers infectés, vous pouvez utiliser des entrées de journal dans Logging. Toutefois, la configuration de ces alertes n'entre pas dans le cadre de cette architecture.

Déploiement

Pour déployer cette architecture, consultez la page Déployer l'analyse automatisée des logiciels malveillants pour les fichiers importés dans Cloud Storage.

Étapes suivantes