Ces pratiques doivent concerner toutes les couches de la pile, y compris la plateforme de conteneurisation, les images de conteneurs, la plateforme d’orchestration et les conteneurs et applications individuels.
Avant tout, les politiques de sécurité des conteneurs doivent s’articuler autour d’un cadre zero-trust. Ce modèle vérifie et autorise chaque connexion utilisateur et garantit que l’interaction répond aux exigences conditionnelles des politiques de sécurité de l’entreprise. Une stratégie de sécurité zero-trust authentifie et autorise également chaque appareil, flux réseau et connexion sur la base de politiques dynamiques, en utilisant le contexte provenant du plus grand nombre possible de sources de données.
La sécurité des conteneurs est devenue une préoccupation grandissante, car de plus en plus d’organisations s’appuient sur la technologie de conteneurisation, y compris les plateformes d’orchestration, pour déployer et faire évoluer leurs applications. Selon un rapport de Red Hat6, les vulnérabilités et les erreurs de configuration sont les principales préoccupations en matière de sécurité des environnements de conteneurs et Kubernetes.
Comme mentionné précédemment, les applications conteneurisées présentent naturellement un certain niveau de sécurité puisqu'elles peuvent s'exécuter en tant que processus isolés et fonctionner indépendamment des autres conteneurs. Cette isolation signifie que cela peut potentiellement empêcher tout code malveillant d'affecter d'autres conteneurs ou d'envahir le système hôte. Cependant, les couches d'application au sein d'un conteneur sont souvent partagées entre plusieurs conteneurs. En termes d'efficacité des ressources, c'est un avantage, mais cela ouvre également la porte aux interférences et aux violations de sécurité entre les conteneurs. Il en va de même pour le système d'exploitation partagé, car plusieurs conteneurs peuvent être associés au même système d'exploitation hôte. Les menaces de sécurité pour le système d'exploitation commun peuvent avoir un impact sur tous les conteneurs associés ; inversement, une violation d'un conteneur peut potentiellement envahir le système d'exploitation hôte.
Mais qu’en est-il des risques et des vulnérabilités associés à l’image du conteneur elle-même ? Une stratégie de conteneurisation robuste inclut une approche « sécurisée par défaut », ce qui signifie que la sécurité doit être inhérente à la plateforme et non à une solution déployée et configurée séparément. À cette fin, le moteur de conteneur prend en charge toutes les propriétés d'isolation par défaut inhérentes au système d'exploitation sous-jacent. Des autorisations de sécurité peuvent être définies pour empêcher automatiquement les composants indésirables d'entrer dans les conteneurs ou pour limiter les communications avec les ressources inutiles.
Par exemple, Linux Linux Namespaces permet de fournir une vue isolée du système à chaque conteneur ; cela inclut la mise en réseau, les points de montage, les ID de processus, les ID utilisateur, la communication inter-processus et les paramètres de nom d’hôte. Les espaces de noms peuvent limiter l'accès à l'une de ces ressources via des processus au sein de chaque conteneur. En règle générale, les sous-systèmes qui ne prennent pas en charge les espaces de noms ne sont pas accessibles depuis un conteneur. Les administrateurs peuvent facilement créer et gérer ces « contraintes d'isolement » sur chaque application conteneurisée via une interface utilisateur simple.
De plus, une large gamme de solutions de sécurité des conteneurs est disponible pour automatiser la détection et la réponse aux menaces dans toute l’entreprise. Ces outils permettent de surveiller et d’appliquer les politiques de sécurité, ainsi que de respecter les normes du secteur afin de garantir la sécurité des flux de données. Par exemple, les outils logiciels de gestion de la sécurité permettent d’automatiser les pipelines CI/CD, de bloquer les vulnérabilités avant la mise en production et d’enquêter sur les activités suspectes grâce à une visibilité en temps réel. Cette approche relève du DevSecOps, le processus d’application et de développement qui automatise l’intégration des pratiques de sécurité à tous les niveaux du cycle de développement logiciel.