Je dois mettre en place une solution de numérisation antivirus à la demande pour les fichiers à l'intérieur des conteneurs Docker en utilisant un logiciel open-source. Clamav On-Access fonctionne bien mais a certaines exigences et limitations :
- nécessite la capacité CAP_SYS_ADMIN pour fonctionner à l'intérieur d'un conteneur
- doit être exécuté par conteneur, pas par hôte
- nécessite 850 Mo de mémoire résidente pour les signatures dans chaque conteneur en cours d'exécution, même les plus petits
Cette limitation - "fanotify ne fonctionne pas pour les événements de conteneur lorsqu'ils sont surveillés depuis l'hôte", existe-t-elle vraiment ou ai-je simplement mal configuré ClamAV ? Je n'ai pas une connaissance approfondie de la façon dont fanotify fonctionne avec les namespaces, mais cela me semble être une limitation du kernel.
MISE À JOUR : Y a-t-il des solutions de contournement pour cette limitation ? Ajouter /var/lib/docker/overlay2/container_id/merged
est une option, en raison de la nature dynamique des conteneurs, clamd.conf
doit être mis à jour à chaque événement de conteneur. Mais même avec le chemin ajouté, ClamAV ne détecte pas les fichiers malveillants dans les conteneurs.
Exécuter ClamAV par conteneur crée une surcharge mémoire énorme, en particulier pour les petits conteneurs.
Collection de liens :
- Les événements fanotify ne fonctionnent pas entre les conteneurs
- Utilisation de fanotify dans les conteneurs Docker
- L'interface kernel Fanotify ne prend pas en charge la numérisation à l'intérieur des conteneurs
- Impossible de surveiller le chemin /var/lib/docker/overlay2 erreur
- Correctif pour la traversée de OnAccessIncludePath à travers les systèmes de fichiers