zhu difeng - Fotolia
Comment les outils de sécurité des conteneurs affectent la sécurité globale du SI
A mesure que l’usage des conteneurs se répand, leur sécurité devient une question de plus en plus pressante. Matt Pascucci explore les pistes pour protéger son système d’information dans ce contexte.
La popularité des conteneurs (en anglais, containers) n'a cessé de croître, et les entreprises ainsi que les fournisseurs de services se tournent vers eux afin de tirer parti de leur rapidité, de leur efficacité et de leur évolutivité.
Dès lors, les utilisateurs de conteneurs doivent s'informer sur les risques potentiels d'un déploiement non sécurisé et sur l'importance de les tester avec des outils de sécurité appropriés.
Utiliser les bons outils de sécurité
L'un des principaux problèmes que posent les conteneurs est leur manque de transparence vis-à-vis des solutions de contrôle traditionnelles. Les conteneurs d'un même hôte peuvent communiquer directement, laissant les systèmes de surveillance traditionnels aveugles à ce qui se passe entre les conteneurs.
En outre, il est important d'inclure un système capable de surveiller à la fois l’hôte et les performances opérationnelles des conteneurs. Prometheus est un bon exemple de solution de surveillance open source qui offre une visibilité sur des conteneurs dont la durée de vie est généralement beaucoup plus courte que celle d'un système cloud, virtualisé ou physique. Cela peut être utile dans un environnement où les processus d'audit et les outils de sécurité peuvent aider à identifier les incidents plus rapidement et offrir des temps de réponse plus rapides si nécessaire.
Car la durée de vie typique d’un conteneur, courte, peut pousser les attaquant à augmenter leur furtivité. C'est l'une des raisons pour lesquelles la surveillance est si importante dans un environnement très conteneurisé.
La multiplication des conteneurs est également une préoccupation – comme pour les machines virtuelles – et il est important de comprendre qui peut en créer et comment. Limiter son exposition aux menaces est un principe clé de la sécurité, quelle que soit la technologie utilisée. La multiplication des conteneurs peut augmenter la surface d’exposition et soulever de potentiels problèmes de conformité.
De même, suivre les déplacements de conteneurs au sein de l’infrastructure est important sinon, ce sont autant d’angles potentiels qui sont créés.
Outils de sécurité pour l'hôte des conteneurs
Les conteneurs ne sont pas aussi sûrs que leur hôte, comme avec les systèmes virtualisés : de la même manière que l’on sécurise l’hyperviseur, il convient de vérifier la sécurité de l'hôte.
Là, il est important d'adopter une approche ascendante, car si l'hôte est compromis, les conteneurs pourraient l'être également. Certains processus dans des conteneurs spécifiques peuvent avoir besoin d'être exécutés avec les privilèges élevés ou avec la possibilité d’obtenir des privilèges plus élevés dans le système d'exploitation ou le noyau. Si ces processus sont compromis, un attaquant dans le conteneur peut être capable de compromettre d'autres conteneurs hébergés sur l’hôte, car le noyau est partagé.
Sécuriser l'hôte offre un niveau de sécurité de base. Après, il faut envisager l’utilisation de groupes de contrôle pour limiter les ressources matérielles accessibles, des listes blanches d’applications et de processus, la segmentation des hôtes, et celle du principe du moindre privilège en combinant contrôles applicatifs, d'authentification et de réseau.
Il se peut qu’il soit nécessaire d'utiliser des outils spécialisés de sécurité des conteneurs, même si l'hôte est complètement verrouillé.
Et si l’on utilise quoi que ce soit de téléchargé à partir d'un référentiel public, le code doit être validé avant de l'exécuter dans l’environnement de production. La confiance dans du code public ne doit pas mettre en péril la sécurité des applications.
Qui plus est, il convient de vérifier la signature numérique de toutes les images logicielles téléchargées. Il y a des contrefaçons dans les dépôts publics, et il est important de limiter les risques liés à sa chaîne logistique du logiciel. Et bien sûr, les pratiques liées aux correctifs doivent s’appliquer aux conteneurs, de même que celles liées à la restriction des services exposés. Par exemple, les serveurs Web hébergés dans un conteneur ne devraient être autorisés à communiquer que par le port TCP entrant 443 – et non entre eux.
La question des configurations est essentielle : les problèmes liés aux conteneurs sont principalement causés par des erreurs de configuration plutôt que par des exploits. Il convient également de vérifier que l’on ne laisse pas traîner clés et mots de passe d'API dans le conteneur, avant de le mettre à la disposition du public.
Des outils tels que Kubernetes offrent l'orchestration et l'automatisation aidant au déploiement et à l’administration des conteneurs tant du point de vue opérationnel que de la sécurité. Enfin, des frameworks open source comme le CIS Docker Benchmark, offrent une méthode de suivi continu de la posture de sécurité pour protéger les déploiements.