Sécurité de la virtualisation légère à base de containers : pourquoi ? comment ?

de | 22 septembre 2017

La containerisation, désignée également par la virtualisation légère, devient un standard dans le système d’information, notamment dans les architectures basées sur les micro services. Comme toute adoption d’une nouvelle technologie, il est nécessaire d’en comprendre les usages, les risques associés pour mettre en place les mesures qui permettent un bon usage sans exposer l’ensemble du système d’information et les autres applications hébergées à de nouveaux risques. Dans cette publication, je tente d’adresser ces points.

Un container est généralement composé d’une application, de ces dépendances et de son environnement d’exécution, désigné par image. Du fait de la faible empreinte d’un container, une plate-forme matérielle est capable d’héberger un très grand nombre de containers, largement plus que la virtualisation lourde qui propose l’ensemble de la pile logicielle qui va du système d’exploitation jusqu’à l’application, désigné par “appliance virtuelle”.

Par ailleurs, la containerisation simplifie la mise à disposition d’une application et son déploiement. Là où historiquement, il était nécessaire de préparer, préalablement à l’installation de l’application, un environnement complet : système d’exploitation, librairies, middleware, dépendances, : des activités qui prenaient du temps et était une source d’erreurs. De plus, grâce à sa portabilité, le container peut être rapidement “bougé” d’un serveur à l’autre dans le datacenter de l’organisation et vers, depuis et entre services dans le cloud.

L’image qui constitue le container est préparée et est mise à disposition par :

  • Les développeurs de l’organisation,
  • Les éditeurs de logiciels et les fournisseurs à qui l’organisation a délégué le développement de leurs applications. Ce mode de fonctionnement devient le standard de mise à disposition des applications par les start-ups aux grandes organisations,
  • Les marketplaces (ex. The Docker Store) où les éditeurs de logiciels ainsi que des développeurs mettent à disposition, gratuitement ou à l’achat, leurs produits et solutions.

D’un point de vue sécurité, trois challenges sont à relever pour l’intégration de la containerisation dans le système d’information des organisations :

  • La confiance envers le container,
  • La sécurité du container,
  • Le maintien du niveau de sécurité du container dans le temps.

La confiance envers le container

Lorsque le container est récupéré d’une source externe (éditeur ou marketplace), se pose la question du contenu du container : est-il composé d’uniquement de composants (dépendances et environnement d’exécution) nécessaires au fonctionnement de l’application ? Un programme malveillant est-il installé dans le container ?

Une personne malveillante peut ajouter un container ou remplacer un container existant. Afin d’illustrer le propos, je fais le parallèle avec les applications mobiles disponibles dans les stores : au mois de mai, une quarantaine d’applications, distribuées dans le Google store et qui contenaient le malware Judy, ont été identifiées. Ces applications avaient infecté plus de 30 millions de smartphones Android !

A ce titre, il est nécessaire de limiter le nombre de sources depuis lesquelles il est possible de télécharger des containers. Une validation des modalités de vérification de la sécurité des containers que propose la source doit être réalisée.

Par ailleurs, un processus de qualification du niveau de sécurité des nouveaux containers téléchargés, qu’ils soient des mises à jour ou des containers destinés à nouveaux usages.

De plus, le processus de déploiement d’un container doit intégrer une vérification de l’intégrité de l’image via, par exemple, la validation de sa signature.

La sécurité du container

Au moment de la mise à disposition du container, se pose la question du niveau de mise à jour de ses composants (dépendances et environnement d’exécution) : la dernière version des composants a-t-elle intégré au container ? l’ensemble des derniers correctifs de sécurité ont-ils été intégrés ?

Mettre en place un modèle de confiance qui permet à l’organisation de disposer de containers sûrs qui passe nécessaire par une évaluation des modalités d’élaboration et/ou de qualification d’élaboration et de construction du container par les développeurs, les éditeurs/start-ups ainsi que le propriétaire du marketplace. Ceci passe par la qualification de sécurité et la standardisation des composants qui constituent les images des containers.

Par ailleurs, le durcissement des composants du container reste d’actualité. Une fonction, non-nécessaire au fonctionnement de l’application et laissée activée, peut être utilisée par une personne malveillante pour compromettre le container. Par ailleurs, l’utilisation de compte à privilège pour l’exécution d’un container doit être prohibée dans l’organisation.

Une remontée des traces liées l’exécution du container et les accès au serveur qui l’héberge ainsi qu’une supervision de sécurité doivent être mises en place.

PS : je ne reviens pas sur la sécurité de l’application qui reste un enjeu majeur pour les applications containerisées… ou pas.

Le maintien du niveau de sécurité du container dans le temps

Pour terminer, reste à traiter le support et l’entretien du niveau de sécurité des composants du container dans le temps. De nouvelles versions du container sont livrées pour corriger des bugs et des dysfonctionnements de l’application, pas certain que les composants du container soient mis à jour voire que les correctifs de sécurité soient installées dans les nouvelles versions…

Les nouvelles versions des containers doivent être vérifiées afin de s’assurer que les composants ont bien été mis à jour… et pas uniquement l’application. Par ailleurs, les paramètres liés au durcissement du container doivent être maintenus d’une version à l’autre.

Par ailleurs, des pipeline de mise à jour de sécurité des composants du container doivent être mise en place lorsque les containers sont préparés par les développeurs de l’organisation.

Heureusement, des solutions, qui permettent de piloter la sécurisation des containers, leur vérification et la supervision de leur fonctionnement, sont disponibles :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *