Introduction
La technologie des conteneurs d'applications est devenue une solution courante ces dernières années — en fait, elle approche maintenant 1 milliard de dollars de revenus annuels. Naturellement, avec la montée en popularité et en adoption vient une augmentation correspondante des cyberattaques liées aux conteneurs, ce qui fait de la sécurité des conteneurs un facteur clé pour l’adoption en entreprise. Dans ce livre blanc, nous explorons les défis associés à la sécurité des conteneurs, ainsi que les meilleures pratiques pour atténuer les risques et surmonter ces défis.
Maîtriser la sécurité des conteneurs
En 2020, Gartner prévoyait que la croissance des logiciels et services de conteneur passerait d’une base modeste de 465,8 millions de dollars en 2020 à un robuste 944 millions de dollars d'ici 2024. La même année, Forrester anticipait que l’adoption des conteneurs passerait de 33 % en 2019 à 58 % au cours des 12 mois suivants, soulevant des questions quant à la manière dont la sécurité pourrait suivre le rythme. À mesure que l’adoption des images et des conteneurs augmente régulièrement pour répondre aux exigences de l’évolutivité et de l’agilité, les organisations doivent relever de nouveaux défis pour les sécuriser. Ces défis ne peuvent être relevés avec les outils et techniques traditionnels conçus pour les machines virtuelles et les plateformes hôtes.
Une recherche récente de RedHat, publiée en avril 2023, révèle que « 67 % des entreprises ont retardé ou ralenti le déploiement en raison d’un problème de sécurité. » L’étude met également en avant que les vulnérabilités de sécurité et les mauvaises configurations des systèmes sont les principales préoccupations de sécurité dans les environnements de conteneurs et Kubernetes. Si l’écosystème numérique d’une entreprise repose fortement sur l’exécution de centaines à des milliers de conteneurs et d’images, leur gestion et celle de leur sécurité peut devenir une partie complexe mais cruciale de la garantie de la sécurité.
Sécuriser les conteneurs présente des défis uniques
- Les conteneurs sont sans état et temporaires. Cela signifie que les outils de sécurité traditionnels pour détecter et identifier les vulnérabilités et surveiller la santé de la sécurité ne fonctionneront pas de manière fiable.
- Les images de conteneurs stockées dans la plus grande bibliothèque, registre public et communauté au monde — Docker Hub — peuvent contenir des contenus ou des fichiers malveillants. Une image peut contenir des mots de passe en clair ou des clés privées permettant à un composant d’application de se connecter avec un autre. Cependant, toute personne ayant accès à l’image peut trouver le secret et l’utiliser à des fins malveillantes.
- Les images peuvent être corrigées, mais les conteneurs en cours d’exécution ne le peuvent pas. Une configuration d’exécution non sécurisée peut transformer un conteneur en cours d’exécution en conteneur dérivant, ce qui peut permettre une élévation de privilèges ou l'évasion du conteneur. La seule façon de corriger les conteneurs vulnérables est de les arrêter d’abord, d’effectuer une analyse de l’image, de corriger l’image, puis d’exécuter un « docker run » sur l’image pour démarrer le conteneur.
- Les hôtes de conteneur qui exécutent le démon docker peuvent avoir des vulnérabilités de paquets au niveau du système d’exploitation et des défauts de configuration qui peuvent être exploités.
- Les applications conteneurisées peuvent être vulnérables à des défauts logiciels, tout comme les applications web traditionnelles.
Pour mettre en œuvre une approche en couches de la sécurité des conteneurs, il est important de comprendre la gestion du cycle de vie d’un conteneur. Chaque conteneur d’application ne peut exister que dans ces trois phases
| Construire | Transférer/Stocker | Exécuter |
|---|---|---|
| Le développeur construit l’image du conteneur d’application lors du « docker build ». | Transférer vers un registre / Stocker dans un registre public/privé lors du « docker pull/push ». | Exécuter le conteneur au moment et après le « docker run ». |
| Pré-déploiement | Post-déploiement |
Phase de construction
Maintenir un inventaire des images
L’identification des hôtes de conteneur contenant des images permet de garder une visibilité sur les projets conteneurisés. L’outil de sécurité doit être capable de rechercher des images et des conteneurs en fonction des vulnérabilités et des mauvaises configurations. Parmi les cas valides pour approfondir la visibilité sur les images figurent : « conteneur dans un cluster/nœud maître/namespace spécifique », « images non autorisées en production », « image dans un registre privé/public non protégé », « inventaire de l’hôte » et « hôtes fonctionnant sans aucun contrôle de surveillance ».
Intégrer la sécurité dans le pipeline CI pour analyser les vulnérabilités des images
Une approche DevSecOps de type « shift-left » devrait aider les développeurs à identifier les vulnérabilités dès une phase précoce du SDLC. À un niveau ultérieur de maturité DevSecOps, les images vulnérables doivent être bloquées pour ne pas atteindre la production en « échouant les builds » et en n’autorisant pas les images non sécurisées.
Utiliser la capacité de l’outil pour le déploiement de capteurs/agents sur l’hôte du moteur de conteneur
Les outils de sécurité commerciaux ont l’avantage de permettre le déploiement de capteurs/agents sur les plateformes hôtes, ce qui aide non seulement à la découverte automatisée des images, mais aussi à l’exécution de scans statiques de vulnérabilités sur les images. La compatibilité de l’outil de sécurité avec l’environnement d’orchestration conteneurisé est toujours une dépendance à évaluer avant d’acquérir l’outil.
Phase de transfert/stockage
| Analyse régulière du registre | Maintenir l’hygiène du registre |
|---|---|
| Avec le temps, l’ensemble des images stockées dans des registres publics/privés peut inclure des versions obsolètes. Il existe un risque de déployer accidentellement une version connue comme vulnérable, ce qui, si exploité, peut entraîner des conséquences graves. L’analyse du registre aide à conserver la visibilité sur « l’état de sécurité » des images, à assurer la bonne hygiène du registre et à ne conserver dans le registre que des images conformes et sécurisées. Les analyses peuvent être à la demande ou programmées. | L’hygiène du registre est impérative pour une « gestion réussie de la posture de sécurité des conteneurs d’applications (ACoSPM) ». Seules les images sécurisées devraient être stockées dans les registres publics/privés. Les versions obsolètes peuvent être supprimées du registre. Les outils de sécurité commerciaux aident par le déploiement de leur capteurs et agents sur les hôtes ayant accès aux registres. |
Phase d’exécution
Activer la sécurité à l’exécution des conteneurs
Différents aspects sont nécessaires pour garantir la sécurité à l’exécution, tels qu’éviter la dérive des conteneurs, exécuter les conteneurs avec des permissions minimales grâce aux namespaces, la surveillance de l’intégrité des fichiers, la vérification de l’intégrité des images, la surveillance des événements du conteneur et la surveillance et le blocage du trafic. L’application de comportements pour l’exécution des conteneurs se fait grâce à l’instrumentation. En supplément, cette fonctionnalité est disponible dans les outils de sécurité commerciaux.
Appliquer une politique de sécurité à l’exécution
Certains outils de sécurité commerciaux prévoient une fonction intégrée permettant d’appliquer une politique de sécurité à une image pour faire respecter certaines restrictions de comportement afin de sécuriser le conteneur. Il peut s’agir de règles réseau entrantes-sortantes, d’accessibilité/exécution de fichiers par un programme ou d’appels système pour préserver les fichiers.
Évaluation au niveau de l’hôte
Des analyses de conformité aux politiques et des analyses de benchmarks CIS adaptées aux standards d’infrastructure d’une organisation sont toujours nécessaires pour sécuriser les hôtes qui supportent les moteurs de conteneur et les outils d’orchestration.
Considérations supplémentaires
Outil de sécurité adéquat
Pour sécuriser le cycle de vie du conteneur, il faut d’abord évaluer un outil de sécurité dans l’environnement de test de l’organisation pour identifier les dépendances et la compatibilité avec la pile d’outils d’orchestration. Il est important de déterminer la valeur que l’outil apporte afin de justifier l’acquisition de la licence et de ses fonctionnalités supplémentaires.
Compétences adéquates
Comme les conteneurs et leurs aspects de sécurité sont complexes, les analystes de sécurité devraient être recrutés selon leur expérience à gérer les faux positifs plutôt qu’au nombre d’analyses de gestion de vulnérabilités complétées.
Conclusion
Avec de nombreuses grandes organisations exploitant aujourd’hui des centaines, voire des milliers de conteneurs et d’images, la gestion de la sécurité d’entreprise est à la fois complexe et cruciale. La première étape est de comprendre les facteurs de risque les plus courants associés à la conteneurisation, ainsi que les stratégies de gestion du cycle de vie des conteneurs. Nous avons exploré les meilleures pratiques en cybersécurité pour chaque phase du cycle de vie : construction, transfert/stockage et exécution. Enfin, nous avons examiné les outils et compétences humaines nécessaires pour assurer la stabilité, la sécurité et l’évolutivité que les entreprises d’aujourd’hui exigent.
Références
- Croissance du chiffre d’affaires des logiciels de gestion des conteneurs, Gartner, 2020
- L’adoption des conteneurs est en hausse : comment la sécurité peut-elle suivre ? Forrester, 2020
- Adoption de Kubernetes, sécurité et tendances du marché, Red Hat, avril 2023
