Cette architecture de référence vous explique comment créer un pipeline basé sur des événements qui peut vous aider à automatiser l'évaluation des fichiers à la recherche de logiciels malveillants tels que les chevaux de Troie, les virus et d'autres codes malveillants. L'analyse manuelle de nombreux fichiers importés dans Cloud Storage est trop chronophage pour la plupart des applications. Automatiser le processus peut vous aider à gagner du temps et à améliorer l'efficacité.
Le pipeline de cette architecture utilise les produits Google Cloud ainsi que 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 :
L'architecture présente les pipelines suivants:
- Pipeline d'analyse des fichiers importés par l'utilisateur, qui vérifie si un fichier importé contient des logiciels malveillants.
- 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 des fichiers importés par l'utilisateur
Le pipeline d'analyse des fichiers fonctionne comme suit :
- Les utilisateurs finaux importent leurs fichiers dans le bucket Cloud Storage non analysé.
- Le service Eventarc détecte cet événement d'importation et informe le service Cloud Run de la présence d'un nouveau fichier.
- 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.
- 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 des logiciels malveillants, il est déplacé du bucket Cloud Storage non analysé vers le bucket Cloud Storage de quarantaine.
- 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 la base de données ClamAV de logiciels malveillants conserve dans Cloud Storage un miroir local privé à jour de la base de données. 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 :
- 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. - 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.
- L'instance exécute ensuite 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.
- 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 ClamAV freshclam exécuté 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 effectue également régulièrement une vérification et un téléchargement des mises à jour disponibles pour la base de données dans le 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é
Pour que l'analyse des logiciels malveillants réalisée par ClamAV soit efficace, celui-ci doit conserver 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 les entrées de journal de Logging. Toutefois, la configuration de ces alertes n'entre pas dans le champ d'application de cette architecture.
Déploiement
Pour déployer cette architecture, consultez la section Déployer une analyse automatisée des fichiers importés dans Cloud Storage pour détecter les logiciels malveillants.
Étapes suivantes
- Passez en revue la documentation Cloud Storage.
- Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.