Passer au contenu

Les quatre principes élémentaires de la sécurité des conteneurs

Capgemini
3 janvier 2023

D’après une enquête réalisée par Red Hat, les préoccupations de sécurité constituent le premier frein à l’adoption de la conteneurisation et des plateformes Cloud natives1.

Et à juste titre : la quasi-totalité (97%) des entreprises ont en effet connu des problèmes de sécurité avec leurs conteneurs et plus de la moitié des projets (55%) ont subi des retards le temps de régler des questions de sécurité.
Un véritable défi quand on sait que des projets peuvent comptabiliser plusieurs milliers de conteneurs en déploiement continu.

La conteneurisation a été imaginée pour permettre aux développeurs de se focaliser sur la logique applicative en les affranchissant au maximum des aspects techniques, l’application emportant avec elle uniquement les ressources dont elle aura besoin pour fonctionner. Les avantages sont la portabilité du code, qui peut être exécuté partout, notamment dans le cloud, de sa mise à l’échelle, qui permet de le démultiplier à l’infini et, sa maintenabilité, car il suffit de modifier un seul ingrédient à la recette originelle pour que cela soit appliqué à l’ensemble des déploiements.

Le risque, en revanche, est qu’en multipliant les échanges, des conteneurs mal paramétrés ou frauduleux puissent servir à des attaques massives et extrêmement rapides pouvant jusqu’à permettre d’accéder à l’infrastructure sous-jacente et s’enfoncer plus profondément dans le système d’information.

Pour s’en prémunir, il est essentiel d’observer au minimum quatre règles d’or dans le cadre d’une démarche DevSecOps qui embarque et responsabilise tous les acteurs :

Règle n°1 : durcir les conteneurs à la conception

Il est essentiel d’adopter pour le développement des conteneurs les bons réflexes du security-by-design. On s’efforcera donc de réduire la surface d’exposition et les possibilités d’attaque en n’utilisant que le strict nécessaire : minimum de privilèges, minimum de droits d’accès, minimum d’échanges, minimum de ressources utilisées. Un conteneur ne doit faire ni plus ni moins que ce pour quoi il est conçu, tout en respectant par ailleurs les exigences réglementaires.

Règle n°2 : créer des piles techniques prévalidées

On peut demander aux développeurs d’être rigoureux et vigilants, mais ils n’ont pas vocation à devenir des experts de la sécurité. Pour les aider à construire des conteneurs sécurisés en mode agile, on mettra donc à leur disposition des composants dont on aura préalablement validé la sûreté. Pour cela, on définira en amont des piles techniques maîtrisées et un registre d’images fiables, qui engendreront des conteneurs facilement observables et maintenables.

Règle n°3 : automatiser

Comme toujours quand il s’agit de sécurité, la première des précautions est de s’assurer que tous les composants sont à jour. Or, dans un environnement où les conteneurs peuvent se compter par millions, c’est manuellement impossible. On a donc l’obligation de s’appuyer sur des processus et des outils de gestion du cycle de vie des conteneurs capables d’automatiser le déploiement de mises à jour ou de règles de sécurité. L’automatisation est consubstantielle des plateformes Cloud natives.

Règle n°4 : observer

Malgré toutes les mesures de précaution, il faut bien entendu surveiller ce qu’il se passe. On va donc observer le comportement des conteneurs, en particulier leurs accès au réseau et la façon dont ils communiquent entre eux. La moindre anomalie fera l’objet d’une alerte et pourra déclencher des actions correctives (isolement ou destruction du conteneur incriminé). Un des avantages des conteneurs est que ces mesures sont radicales, instantanées et indolores pour le reste du système d’information. Il existe de plus en plus d’outils, comme les Service Mesh, capables d’assurer cette observation en temps réel et d’automatiser les mesures de sécurité.

La sécurité des conteneurs passe donc par des solutions techniques, mais, avant tout, par une mobilisation de tous les acteurs concernés. Pour cela, ils doivent être formés aux nouveaux outils et aux nouvelles pratiques, mais aussi sensibilisés aux enjeux et accompagnés aux changements, comme ceux induits, par exemple, par l’automatisation. On va ainsi développer au sein de l’organisation IT une culture de la sécurité adaptée aux nouveaux environnements technologiques et aux modèles de développement agiles et DevOps. Sous la houlette des architectes, Dev, Sec et Ops devront collaborer pour définir les modèles d’architecture et blueprints et implémenter les règles de sécurité grâce à des outils d’Infrastructure-as-Code. Les Ops, en particulier, auront un rôle clé à jouer dans le design et l’implémentation de la sécurisation de l’ensemble des couches technologiques cloud-native et devront ainsi s’approprier une nouvelle approche orientée Produit dont les clients sont les développeurs.

La mise en place des règles, des outils et des pratiques nécessaires à la sécurité des conteneurs exigera des efforts et imposera des contraintes susceptibles d’en limiter et d’en retarder les bénéfices. Cependant, il ne faudrait pas que cette éventualité devienne un prétexte pour ne rien faire car les métiers ont clairement besoin de l’apport de la conteneurisation. A contrario, il serait particulièrement imprudent de déployer cette technologie en négligeant les enjeux de sécurité. Tout le défi est donc de trouver le bon équilibre pour avancer d’un pas à la fois sûr et déterminé.

1 State of Kubernetes Security, Red Hat, 2022.

Auteurs :

Jonathan Le Lous

CTO – Head of Cloud Native Infrastructure 

Flavien Dumur

Application Security & DevSecOps Expert