Mise en place d’un socle FTP sécurisé dans le cloud (3/3)

PARTIE 3 - Sécuriser le stockage de fichier

Rappelez-vous, nous avons vu dans le 2eme article comment sécuriser les accès à notre serveur SFTP, mais qu’en est-il de la sécurisation des dépôts de fichiers ?

Qu’est-ce qu'un antivirus d’analyse de fichier ?

Qu’est-ce qu’un malware ?

Un malware est un terme utilisé pour décrire du code malveillant, dont le but est de nuire à notre système informatique et plus largement à notre système d’information. Il regroupe ainsi l’ensemble des programmes et logiciels malveillants pouvant perturber le bon fonctionnement du matériel informatique.

Dans cette large définition se retrouvent tous les dérivés du malware, comme le virus qui exécute une fonction non désirée et nuisible sur un appareil, un ver, prévu pour s’auto répliquer sur le système et se diffuser à travers le réseau, le cheval de Troie, qui se fait passer pour un logiciel légitime et bien d’autres encore.

Ces malwares s’infiltrent de différentes manières, par le biais de téléchargement, de clé usb, de passage par mail, de visite de site frauduleux etc. Il peut s’appeler de différentes manières “programme", "logiciel" ou "fichier malveillant”.

C’est là qu'interviennent les antivirus chargés de détecter des malwares à mettre hors d’état de nuire. Ceux-là sont habituellement installés sur les machines informatiques directement, mais la détection peut se faire en amont via des instances dont leur seule fonction est de vérifier le contenu d’un fichier avant de continuer sa transition jusqu’à destination.

Qu’est-ce qu’un antivirus d’analyse de fichier ?

Dans le jargon de la sécurité, on peut appeler ça un scanner de fichier. Celui-ci via analyse, permet de s’assurer qu’un fichier ne contient pas de malware. Cependant, on demande de plus en plus à ce qu’un antivirus soit polyvalent, c’est pourquoi beaucoup de solutions d’antivirus offrent aujourd’hui des fonctionnalités plus avancées, comme celle d’empêcher les fuites de données en vérifiant qu’il n’y a pas d’informations jugées comme confidentielles ou sensibles à l’intérieur d’un fichier.

Aussi, afin de renforcer les performances en termes d’analyse, le scan d’un antivirus ne suffit pas, c’est alors que le multi-scan, également appelé multi-analyse, fait son entrée.

C'est une technologie avancée de détection et de prévention des menaces qui augmente les taux de détection, réduit son temps d’analyse et offre une résilience aux problèmes des fournisseurs de logiciels anti-malware.

OPSWAT a été le pionnier du concept de fichiers à numérisation multiple avec plus de 30 moteurs anti-malware disponibles pour offrir une protection améliorée contre toute une série de cybermenaces.

METADEFENDER CORE V4

Présentation de la solution

Opswat, éditeur de l’application Metadefender Core, propose plusieurs solutions de cybersécurité. Celui qui nous intéresse est Metadefender Core V4, leur solution d’analyse de fichier.

L’analyse de fichier se fait à la demande et de manière asynchrone, c'est-à-dire qu’il faut aller chercher le résultat. Nous noterons tout de même que l’utilisation de webhook pour rendre le fonctionnement synchrone est tout à fait envisageable et pris en charge.

Possibilités de mise en place

Il y a 4 modèles d’utilisation de la solution Metadefender Core :
Metadefender Core : imaginé pour le “On Premise"
Metadefender Core AMI : attendu dans le “Cloud” en IaaS
Metadefender Core Cloud : prévu pour le “Cloud” mais en SaaS
Metadefender Core Container : utilisable en “On Premise" mais également dans le “Cloud”

Ici nous allons présenter l’utilisation de la solution Metadefender Core. Ce modèle-là permet notamment de pouvoir choisir notre image de base (donc soit une AMI AWS, soit une AMI signée de votre main avec du hardening et/ou la pré installation d’agent etc) sur laquelle la solution sera installée.

Il y a un combo de 3 composants pour la gestion du parc Metadefender Core (MD).

MD Core Server : il fait office de contrôleur mais analyse aussi des fichiers (il fait donc office de node aussi). C’est sur le serveur que l’on va définir nos préférences de scan, gérer la licence, ajouter/activer/désactiver des fonctionnalités, gérer les utilisateurs, superviser,  en somme tout ce qui se trouve être de l’administration. A lui tout seul, vous pouvez déjà commencer à utiliser la solution.

MD Core Node : Son seul rôle est de scanner des fichiers, il ne fait rien d’autre . Ce composant n’est pas du tout obligatoire, il vient en soutien aux MD Core Server. Donc si le MD Core Server est surchargé de demande, il peut déléguer des analyses à son ou ses MD Core Node associés. A noter que la connexion entre serveur et nodes n’est pas sécurisée nativement.

MD Core Manager : Si l’on possède plusieurs MD Core Server avec ou sans ses MD Core Node et qu’on veut manager plusieurs MD Core Server d’un seul endroit alors on peut utiliser un MD Core Manager qui peut gérer l’ensemble d’un parc Metadefender (Le Manager ne gère pas le fonctionnement de base de données partagées).

Exemple de fonctionnement avec les 3 composants :

La licence définit combien de nœuds vous pouvez utiliser, le manager quant à lui est complètement gratuit.

Installation

Metadefender Core V4 (MD) peut répondre aux besoins de la plus petite infrastructure à la plus grande (à condition de mettre le prix dans la licence car elle définit les nombres de nœuds utilisables).

Petite liste des contraintes que vous devez prendre en compte dans le design de votre infrastructure (de la version 4.19.0 à au moins 4.21.2 de Metadefender).

Base de données : La base de données peut être locale, distante, partagée ou non. Si elle est locale, elle peut tout de même être partagée, mais si la machine locale qui la contient tombe, toutes les machines connectées à cette base de données seront hors d’usage. Chacun des serveurs peut avoir sa propre base de données locale, mais la répartition de charge sera plus compliquée car les résultats d’analyses sont contenus dans la base de données, il faut donc être sûr de retomber sur le même serveur pour récupérer le résultat de notre analyse.

Deployment_ID : Chaque instance metadefender possède un deploymentID unique (MSCLXXXXXX), il permet l’identification de l’instance du côté de chez Opswat. En effet, lors de l’activation via la licence de la solution sur l’instance, le deploymentID sera lié avec la licence, et cette information sera stockée chez eux (même avec un snapshot, si le snapshot est lancé sur une nouvelle instance, le deploymentID sera différent).
Ce que ça veut dire : si votre licence est activée/liée avec ce deploymentID et que l’instance en question tombe pour une raison X ou Y, la licence sera bloquée avec l’ancien deploymentID, c’est pourquoi il faut désactiver/délier la licence. Deux désactivations sont possibles : en local (un curl local) ou à distance (curl avec le deploymentID renseigné), en clair il faut stocker le deploymentID quelque part (pas de panique, en cas de perte Opswat peut vous redonner le deploymentID lié à votre licence).
L’activation de la licence peut se faire en ligne et hors ligne, mais si vous planifiez d’automatiser le déploiement de votre stack Metadefender, le hors ligne n’est pas une bonne idée, car elle suscite que vous alliez sur le site du vendeur pour y renseigner le  deploymentID. Prévoyez donc une connexion sortante pour la communication de vos instances vers les serveurs opswat pour faciliter l’automatisation.

Instance_Name : Il faut remplir un fichier de configuration au préalable de l’installation. Dans celui-ci, on peut y renseigner un nom d’instance (pas l’instance name d’AWS), s’il n’est pas défini, par défaut il sera composé des 6 premiers caractères du deploymentID. Cet instance name sert d’identification à la base de données. Si deux instances ont le même instance name, la base de données (si partagée) va considérer que c’est la même machine, ce qui provoque des problèmes à l'activation de la licence, certes elle sera activée sur les deux instances, mais une seule machine aura ses moteurs antivirus activés, car la base de données ne stockera les moteurs et les informations de mise à jour que d’une seule des deux. L’instance name peut être redéfini après l’installation, dans un fichier de configuration.

Lien d’installation

Schéma d’installation (les images sont toujours plus parlantes. Ici la base de données est partagée et distante) :

  1. Dans le fichier de configuration sont renseignés les différents accès de la solution, les accès actuels de la base de données distante et enfin le nom de l’instance metadefender (au sens Metadefender et non pas celui d’AWS) reconnu par la base de données.
  2. Durant l’installation sera généré un déploiement ID propre à la machine et une base de données sera créée dans l’instance RDS.
  3. L’activation signifie lier le déploiement ID et la licence, ces informations sont aussi stockées chez l’éditeur OPSWAT. Cela peut être utile lorsque l’instance est perdue, dès lors il faudra désactiver la licence pour pouvoir l’utiliser sur une autre machine. Il faut détenir le déploiement ID pour cela, et si celui-ci n’a pas été stocké, il est possible de le demander au support d’OPSWAT.

Quelques particularités :

La base de données peut être locale, ça se configure aussi dans le fichier de configuration avant installation.

L’activation de la licence peut se faire hors ligne, tout un processus existe pour ce faire.

Exemple de mise en place

Voici un exemple d’infrastructure avec la mise en place du parc metadefender à haute disponibilité et automatisé.

Golden Image

Pour la construction d’une Image, Packer est une solution. Il permet de construire des images à partir d'une souche configurable avec l'aide de commandes ansible.

L’installation se fait entièrement dans l’image build, les services y sont désactivés à la fin du build. Le peaufinement s’effectue dans le user data où l’instance name sera modifié et la solution activée.

Schéma d’infrastructure

Utilisation d’un NLB (un ALB est possible, mais il faut penser au déchiffrement, et au rechiffrement du certificat pour le chiffrement de bout en bout)

Déploiement automatisé

Il y a 2 Auto Scaling Group, Pourquoi ?

Les déploiements IDs sont stockés dans une secret et la seule façon de différencier les deux machines et leur déploiement ID est d’utiliser les tags, et 1 ASG permet d’avoir un tag particulier pour l’instance.

Ceci est un exemple de déploiement automatisé de la solution, mais bien sûr elle est évolutive en fonction de de vos propres contraintes et de vos possibilités d'exécution (si vous ne faites pas de la construction d’image, tout peut se faire dans un userdata).

Utilisation

Metadefender Core fonctionne de manière asynchrone et passive. Il faut la solliciter pour faire une analyse de fichier, et le refaire pour obtenir le résultat de celle-ci.

Il faut donc un intermédiaire qui puisse faire la demande d’analyse. Une lambda peut remplir cette fonction.

Metadefender peut scanner des fichiers directement depuis un bucket S3. Cependant, la requête API est obligatoirement en HTTP/HTTPS, ça signifie que le bucket S3 est soit publique (Impensable) soit l’URL est pré-signée.

Vous avez maintenant une proposition d’une infrastructure sécurisée complète de gestion de fichiers.