La sécurité des conteneurs est le processus continu de protection des conteneurs contre les vulnérabilités. Cette couverture comprend le pipeline des conteneurs, l'infrastructure de déploiement et la supply chain. La sécurité des conteneurs se distingue de la sécurité traditionnelle dans le sens où elle requiert un processus continu de protection des conteneurs imposé par un environnement plus complexe et éphémère.
On entend par conteneur un progiciel et l'ensemble de ses dépendances (code, outils système, paramètres, bibliothèques, etc.) pouvant fonctionner sur n'importe quel système d'exploitation ou infrastructure de manière fiable. Un conteneur consiste en un environnement d'exécution complet qui permet aux applications d'évoluer au sein de divers environnements informatiques, par exemple d'une machine physique au cloud, ou encore de l'environnement de test du développeur à l'activation, puis à la production. Un conteneur est un outil pratique, mais qui n'intègre pas de système de sécurité propre, ce qui signifie qu'il crée une nouvelle surface d'attaque susceptible d'exposer l'entreprise à des risques.
Découvrez les défis liés à la sécurité native au cloud et comment le manque de maturité de la stratégie de protection se traduit par un manque de cohérence, des erreurs de configuration et des failles dans la visibilité.
TéléchargerLes défis liés à la sécurité des conteneurs
Les conteneurs n'intègrent pas de fonctionnalités de sécurité et peuvent poser certains problèmes de sécurité uniques.
Visibilité
Le principal défi est celui de la visibilité. On entend par visibilité la possibilité de « voir » à l'intérieur d'un système afin de comprendre si les contrôles en place fonctionnent et d'identifier et d'atténuer les vulnérabilités. En matière de conteneurs, le contrôle centralisé peut faire défaut et limiter la visibilité globale. Il devient alors difficile de déterminer si un événement est le fait du conteneur lui-même ou de son hôte. En outre, les conteneurs ont une durée de vie limitée, et lorsqu'ils arrivent en fin de vie, les preuves d'investigation disparaissent instantanément.
Pour les entreprises, il n'est pas toujours aisé de déterminer si un conteneur a été conçu de manière sécuritaire. En règle générale, l'équipe informatique reçoit un conteneur d'une équipe de développement. Le plus souvent, ce conteneur a été conçu à l'aide d'un logiciel provenant de sources tierces, lui-même mis au point à partir d'un autre logiciel, et ainsi de suite. À moins que la sécurité soit documentée lors de la phase de développement et que l'utilisateur du conteneur ait accès à cette documentation, il est raisonnable de partir du principe que le conteneur n'est pas sûr.
Une mentalité « set-and-forget »
Un autre piège lié à la gestion des conteneurs est le fait que les gestionnaires adoptent souvent une approche « set-and-forget » (Configurez et oubliez). Mais à l'instar des autres composants de l'environnement informatique, le conteneur doit faire l'objet d'une surveillance ciblant les activités suspectes, les erreurs de configuration, les accès disposant d'autorisations trop importantes et les composants logiciels non sécurisés (bibliothèques, cadres, etc.). Ce qui était sûr hier ne l'est plus forcément aujourd'hui.
Analyse des vulnérabilités
Certaines entreprises soumettent leurs conteneurs à des contrôles de sécurité. Cette approche responsable crée toutefois d'autres problèmes. En effet, chaque analyse des vulnérabilités produit un volume conséquent de résultats qui doivent être triés, classés et traités. Les équipes qui continuent de s'appuyer sur des processus manuels lors de chacune des phases de la réponse à incident ne sont pas en mesure de gérer la charge de travail induite par les conteneurs.
Les outils traditionnels ciblent essentiellement la sécurité du réseau ou des workloads. Or la protection des conteneurs requiert d'assurer les deux, dans la mesure où les hôtes, les réseaux et les endpoints font tous partie de la surface d'attaque d'un conteneur et que des vulnérabilités existent dans les différentes couches de l'architecture.
Comment protéger les conteneurs
Pour protéger un environnement de conteneurs, il convient de sécuriser le pipeline DevOps, environnements pré et post-exécution compris.
Analyse des images
La sécurité des conteneurs commence par une image sécurisée du conteneur. Pour créer ces images, les développeurs utilisent parfois des images issues de registres externes pouvant contenir des logiciels malveillants ou des bibliothèques vulnérables.
Il leur arrive également d'oublier de supprimer les mots de passe ou clés secrètes utilisés pendant le développement avant d'introduire l'image dans le registre. En cas de compromission de l'infrastructure, une fuite de ces mots de passe en même temps que des images peut donc se produire.
Il est donc primordial d'intégrer une analyse des images dans le système de build afin d'identifier les vulnérabilités et les erreurs de configuration.
Exemple de résultats de l'analyse de l'image d'un conteneur
Intégration d'une approche shift left de la sécurité dans le pipeline d'intégration/de distribution continues
L'intégration de votre outil de sécurité des conteneurs dans votre pipeline d'intégration/de distribution continues (CI/CD) offre les avantages suivants :
- Distribution accélérée : créez des règles d'images vérifiées pour vous assurer que seules les images approuvées sont autorisées à progresser dans votre pipeline et à s'exécuter dans vos hôtes ou clusters Kubernetes.
- Détection continue des menaces : analysez en permanence les images de conteneurs pour détecter les vulnérabilités connues, les problèmes de configuration, les secrets/clés et les problèmes de licence OSS.
- Réduction des vulnérabilités du pipeline : détectez les logiciels malveillants cachés dans les images téléchargées avant de déployer les conteneurs.
- Opérations de sécurité plus fluides : optimisez la visibilité sur les opérations de sécurité en fournissant des informations et du contexte pour les erreurs de configuration et les infractions à la conformité.
Protection à l'exécution
Pour protéger les données des applications dans un conteneur en cours d'exécution, il est important d'avoir une visibilité sur le conteneur et sur les nœuds de travail. Un outil de sécurité des conteneurs efficace doit capturer et mettre en corrélation les activités et les métadonnées en temps réel provenant tant du conteneur que des nœuds de travail.
Un tel niveau de visibilité offre les avantages suivants :
- Blocage des comportements malveillants : le profilage comportemental vous permet de bloquer les activités qui enfreignent les règles en vigueur, sans impact sur le fonctionnement légitime du conteneur.
- Investigation accélérée des incidents liés aux conteneurs : analysez facilement les incidents grâce à des détections associées à un conteneur spécifique plutôt que regroupées avec les événements de l'hôte.
- Visibilité complète : capturez les informations relatives au démarrage, à l'arrêt, à l'image et à l'exécution du conteneur, ainsi que tous les événements générés au sein du conteneur.
- Déploiement transparent avec Kubernetes : déployez en toute facilité votre solution à grande échelle en l'intégrant dans un cluster Kubernetes.
- Amélioration de l'orchestration des conteneurs : capturez l'espace de noms, les métadonnées des pods et les événements réseau, de processus et de fichier Kubernetes.
Quelles sont les plateformes de conteneurs cloud les plus connues ?
Les conteneurs sont adaptés aux environnements cloud, car ils fournissent plus de services sur la même infrastructure que les hyperviseurs, ce qui les rend plus économiques et plus rapides à déployer.
La conteneurisation peut s'effectuer selon plusieurs approches, et de nombreux produits et services ont été créés pour faciliter celle-ci. Voici les plateformes les plus populaires en ce qui concerne la technologie de conteneurs :
- Docker : Docker est une plateforme de conteneurs qui permet aux utilisateurs de concevoir, de tester et de déployer rapidement des applications. Pionnier de ce secteur, Docker s'exécute sur un hôte sur cinq environ et compte plus de 5 millions d'utilisateurs et 6 millions de référentiels sur Docker Hub.
- Kubernetes : Kubernetes est une plateforme portable, extensible et open source utilisée pour l'orchestration des workloads et services conteneurisés. Contrairement à Docker, qui s'appuie sur un nœud unique, Kubernetes repose sur l'automatisation pour orchestrer la gestion des conteneurs à exécuter dans un cluster.
- AWS Elastic Container Service (ECS) : Amazon ECS est un service évolutif d'orchestration de conteneurs qui exécute des conteneurs Docker dans le cloud AWS. Il permet aux utilisateurs d'exploiter les clusters ECS avec AWS Fargate, une fonction sans serveur qui élimine la nécessité de mettre en service et de gérer des serveurs, et s'intègre de manière native à d'autres services AWS.
- Microsoft Azure Kubernetes Services (AKS) : AKS est la nouvelle version d'Azure Container Service. Il simplifie la gestion, le déploiement et les opérations de Kubernetes avec Kubernetes sans serveur, une expérience intégrée d'intégration et de distribution continues (CI/CD), en plus de garantir une sécurité et une gouvernance de niveau professionnel.
- Google Cloud Platform (GCP) : Google Cloud Platform permet aux utilisateurs de migrer rapidement vers des environnements hybrides et multicloud à l'aide de solutions d'infrastructure cloud préconditionnées sans enfermement propriétaire (vendor lock-in).
Solution CrowdStrike de sécurité des conteneurs
La plateforme CrowdStrike Falcon® offre aux équipes de sécurité une gamme complète d'outils de sécurité du cloud pour les aider à protéger leurs environnements cloud :
- Falcon Horizon : gestion du niveau de sécurité du cloud
- Falcon CWP : protection des workloads cloud (AWS, Azure, GCP)
- Sécurité des conteneurs avec Falcon
- Services :évaluation de la sécurité du cloud