Ignorer le contenu principal

Qu’est-ce que la sécurité des conteneurs et pourquoi est-elle importante ?

La sécurité des conteneurs est la pratique consistant à protéger les applications conteneurisées et l’infrastructure de conteneurs (Kubernetes et autres orchestrateurs, images de registre, etc.) tout au long du pipeline CI/CD.

Pourquoi les organisations ont-elles besoin de sécuriser leurs conteneurs ?

Les conteneurs permettent aux équipes de réduire les délais de mise sur le marché et de gagner en agilité, en évolutivité et en tolérance aux pannes. Cependant, leur rapidité et leur portabilité concentrent également les risques dans le cycle de livraison des logiciels. Une vulnérabilité dans une image de base, un secret exposé, un manifeste Kubernetes mal configuré ou des autorisations de cluster excessives peuvent créer des risques à différentes étapes du pipeline, en particulier lorsque les contrôles sont insuffisants.

Pour les équipes en entreprise, cet aspect est important, car la sécurité des conteneurs ne concerne pas uniquement leur exécution. Elle affecte l'intégrité des logiciels, la résilience opérationnelle, la conformité et la réponse aux incidents.

Dans la pratique, une approche mature de la sécurité des conteneurs couvre le stockage des images, le développement, le déploiement, la détection lors de l'exécution, la correction et la réponse aux incidents, au lieu de se limiter à des contrôles lors de l'exécution. Une approche mature de la sécurité des conteneurs couvre le stockage des images, le développement, le déploiement, l'orchestration, la détection lors de l'exécution, la correction et la réponse aux incidents, au lieu de se limiter à des contrôles lors de l'exécution.

Que couvre la sécurité des conteneurs ?

La sécurité des conteneurs couvre généralement cinq niveaux.

  1. Images et dépendances : les équipes doivent connaître le contenu d'une image de conteneur et savoir si elle comprend des vulnérabilités connues, des secrets intégrés, des paquets obsolètes ou des composants inutiles. L'analyse des images constitue une première ligne de défense importante, mais elle ne représente qu'une partie de la solution. Les équipes doivent également gérer la provenance des images, l'application des correctifs et l'utilisation d'images de base approuvées.
  2. Registres et référentiels d'artefacts : une image sécurisée ne suffit pas si le registre lui-même est mal contrôlé. Le contrôle d'accès, l'analyse et la provenance sont essentiels, car les registres constituent des points de distribution pour les logiciels destinés à la production. Un processus défaillant de contrôle des éléments entrants peut compromettre des pratiques de compilation par ailleurs solides.
  3. Orchestration et configuration : dans les environnements Kubernetes, la sécurité dépend fortement des définitions des charges de travail, de la restriction d'accès selon un rôle (RBAC), du contrôle des admissions, de l'application des stratégies et de la segmentation du réseau. Le risque tient souvent à ce qui est autorisé à s'exécuter et au niveau d'accès qui lui est accordé, et pas seulement au contenu de l'image.
  4. Comportement à l'exécution : la surveillance de l'exécution est également importante, car les activités suspectes au sein des conteneurs et les vulnérabilités des applications en cours d'exécution peuvent ne pas être visibles pendant la phase de compilation. Un conteneur qui paraissait sécurisé lors de la compilation peut néanmoins se comporter de manière inattendue en production.
  5. Hôtes, nœuds et infrastructure environnante : les conteneurs partagent le noyau de l'hôte. Le renforcement des nœuds et l'isolation de l'exécution restent donc importants. Les systèmes d'exploitation hôtes, les composants d'exécution et l'infrastructure du cluster font toujours partie de la surface d'attaque dans les environnements conteneurisés.

Où les risques liés aux conteneurs se manifestent-ils généralement dans les environnements réels ?

Dans la pratique, les risques liés aux conteneurs commencent rarement par une défaillance majeure. Ils se manifestent plus souvent par une succession de faiblesses mineures. Une équipe peut utiliser une image de base trop volumineuse, ne pas détecter un secret dans un artefact de compilation, accorder des autorisations excessivement étendues dans un manifeste de déploiement, puis déployer la charge de travail dans un cluster où l'application des stratégies est insuffisante. Aucune de ces étapes ne semble catastrophique en soi, mais, ensemble, elles facilitent grandement une compromission ou une utilisation abusive.

C'est pourquoi la sécurité des conteneurs doit être considérée comme une discipline couvrant l'ensemble du cycle de vie. Les équipes de sécurité ne peuvent pas compter sur un point de contrôle unique pour compenser les défaillances des processus à d'autres niveaux. L'analyse d'une image ne compense pas des autorisations d'exécution non sécurisées. Le renforcement d'un cluster ne remédie pas à l'exposition d'un secret dans le pipeline. Les contrôles doivent fonctionner de concert.

Pourquoi la sécurité des conteneurs est-elle aujourd'hui si importante ?

La sécurité des conteneurs est importante, car ceux-ci ne constituent plus une infrastructure de niche : ils font désormais partie intégrante de la livraison moderne d'applications, en particulier dans les environnements cloud natifs où les applications sont développées, livrées et mises à jour en continu.

Elle est également importante, car les conteneurs réduisent considérablement l'écart entre le développement et la production. Un problème introduit dans un fichier Docker, un chart Helm ou un template infrastructure-as-code peut rapidement devenir un incident en production si le pipeline manque de garde-fous. C'est pourquoi les programmes matures de sécurité des conteneurs déplacent la sécurité en amont, sans toutefois s'arrêter là. Ils associent des vérifications lors de la compilation, des contrôles de déploiement et une visibilité sur l'exécution. Dans la pratique, cela consiste à ajouter des critères de validation pour les images et le code d'infrastructure, puis à maintenir une visibilité sur l'activité des conteneurs après leur déploiement.

Quels sont les défis liés à la sécurité des conteneurs ?

Le principal défi ne réside pas dans le manque d'outils, mais dans le nombre d'équipes et de processus concernés. Les équipes de développement, d'ingénierie des plateformes, d'opérations cloud, de DevOps et de sécurité influencent toutes le résultat. Si les responsabilités sont mal définies, si les contrôles manquent de cohérence ou si les vérifications de sécurité interviennent trop tard pour être réellement applicables, les risques s'accumulent rapidement.

Les conteneurs modifient également le rythme des activités de sécurité. Les environnements sont plus dynamiques, les charges de travail plus éphémères et la fréquence des déploiements souvent beaucoup plus élevée. La visibilité, l'automatisation et la cohérence des stratégies deviennent ainsi plus importantes que dans les environnements moins rapides et axés sur les serveurs.

Les erreurs commises par les organisations

L'erreur la plus courante consiste à réduire la sécurité des conteneurs à la seule analyse des images. L'analyse des images est importante, mais elle ne permet pas de remédier aux configurations non sécurisées des charges de travail, à un contrôle d'accès insuffisant, à une application lacunaire des stratégies ou aux comportements suspects à l'exécution.

Une autre erreur consiste à supposer que les conteneurs sont sécurisés par défaut en raison de leur caractère éphémère. Le caractère éphémère peut limiter la persistance, mais aussi compliquer la visibilité et les investigations numériques si la journalisation, l'inventaire et la surveillance sont insuffisants.

Une troisième erreur consiste à aborder trop tard la sécurité des conteneurs. Si la première discussion sérieuse sur la sécurité a lieu juste avant le déploiement, l'équipe se trouve déjà dans une situation délicate.

Une sécurité efficace des conteneurs doit être mise en œuvre en amont et maintenue tout au long du cycle de vie.

Point clé à retenir

La sécurité des conteneurs consiste à protéger les applications conteneurisées et l'infrastructure de conteneurs tout au long de leur cycle de vie, et ne se limite pas à l'analyse des images avant le déploiement. Les organisations qui y parviennent combinent des contrôles de la chaîne d'approvisionnement logicielle, le renforcement des configurations, des accès fondés sur le principe du moindre privilège, l'application des stratégies et la visibilité à l'exécution.


La sécurité des conteneurs doit protéger bien plus que les images. Kaspersky Container Security contribue à sécuriser l'ensemble du cycle de vie des applications conteneurisées, du développement à l'exploitation, grâce à une protection couvrant les images de conteneurs, les conteneurs en cours d'exécution, l'orchestration, la conformité et les ressources des clusters.

Explorer

Sources et ressources complémentaires :

Qu’est-ce que la sécurité des conteneurs et pourquoi est-elle importante ?

La sécurité des conteneurs est la pratique consistant à protéger les applications conteneurisées et l’infrastructure de conteneurs (Kubernetes et autres orchestrateurs, images de registre, etc.) tout au long du pipeline CI/CD.
Kaspersky logo