Qu’est-ce que la sécurité des conteneurs ?

Sécurité des conteneurs :

La sécurité des conteneurs est le processus visant à mettre en œuvre des outils et politiques de sécurité afin de s'assurer que tous les éléments de votre conteneur s’exécutent comme prévu, notamment la protection de l’infrastructure, la chaîne d'approvisionnement logicielle, etc.

Sécurité des conteneurs

La sécurité des conteneurs est le processus visant à mettre en œuvre des outils et politiques de sécurité qui vous donneront l’assurance que tous les composants de votre conteneur s’exécutent uniquement comme prévu. Cela inclut la protection de l’infrastructure, la chaîne d'approvisionnement des logiciels, l’exécution et tous les autres éléments associés.

Le processus de sécurisation des conteneurs est continu. Il doit être intégré à votre processus de développement, automatisé pour supprimer le nombre de points de contact manuels, et étendu à la maintenance et à l’opération de l’infrastructure sous-jacente. Vous devez donc protéger vos images de conteneur de pipeline de version et l’hôte d’exécution, la plateforme et les couches d'application. La mise en œuvre de la sécurité dans le cadre du cycle de vie de livraison continu permet à votre entreprise de limiter les risques et de réduire les failles sur une surface d'attaque toujours plus importante.

Les principales inquiétudes sont les suivantes concernant la sécurisation des conteneurs :

  • La sécurité de l’hôte du conteneur
  • Le trafic réseau du conteneur
  • La sécurité de votre application dans le conteneur
  • Un comportement malveillant dans votre application
  • La sécurisation de la pile de gestion de votre conteneur
  • Les couches de base de votre application
  • L'intégrité du pipeline de version

L'objectif de la cybersécurité est de s'assurer que tout ce que vous créez fonctionne comme prévu, et uniquement comme prévu.

Découvrez quelques-uns des noms que les entreprises utilisent pour leurs besoins en matière de conteneurs : Docker®, Kubernetes®, Amazon Web Services™ (AWS) et Microsoft®.

Sécurisation des conteneurs Docker

Avant de commencer à sécuriser vos conteneurs, vous devez apprendre à connaître les principaux acteurs dans ce domaine. Docker, un leader sur le marché de la conteneurisation, fournit une plateforme de conteneur pour créer, gérer et sécuriser les applications. Docker permet aux clients de déployer aussi bien des applications traditionnelles que les derniers microservices, où qu'ils le souhaitent. Comme pour toute autre plateforme de conteneur, vous devez vous assurer de bénéficier de la protection appropriée. En savoir plus sur la sécurité des conteneurs Docker.

Sécurisation des conteneurs Kubernetes

Kubernetes est un autre nom important à connaître. Kubernetes fournit une plateforme portable, extensible et open source pour gérer les charges de travail et les services conteneurisés. Kubernetes offre des fonctionnalités de sécurité, mais il vous faut une solution de sécurité dédiée, car le nombre d'attaques sur les clusters Kubernetes a augmenté. En savoir plus sur la sécurisation des conteneurs Kubernetes.

Amazon Web Services (AWS) et sécurité des conteneurs

Ensuite, nous avons AWS. AWS comprend la nécessité des conteneurs et leur capacité à permettre aux développeurs de livrer des applications de manière plus rapide et cohérente. C’est pourquoi la marque propose Amazon Elastic Container Service (Amazon ECS), un service d’orchestration de conteneur évolutif et haute performance qui prend en charge les conteneurs Docker, élimine les dépendances liées à la gestion de vos propres machines virtuelles et environnement de conteneur, et vous permet d'exécuter et de faire évoluer facilement des applications conteneurisées sur AWS. Cependant, comme pour tous les autres acteurs ci-dessus, il est nécessaire de mettre en place une sécurité si l’on souhaite bénéficier de tous les avantages de ce service. 

Sécurisation des instances de Microsoft Azure Container

Pour terminer, nous avons Microsoft® Azure™ Container Instances (ACI). Cette solution permet aux développeurs de déployer des conteneurs sur le cloud public Microsoft® Azure™ sans avoir à exécuter ou gérer une infrastructure sous-jacente. Vous pouvez simplement déployer un conteneur à l'aide du portail Microsoft® Azure™, où Microsoft va ensuite provisionner et mettre à l’échelle les ressources de calcul sous-jacentes. Azure Container Instances offre une vitesse et une agilité importantes, mais doit être sécurisé si vous souhaitez en récolter tous les avantages. 

Maintenant que vous connaissez les principaux acteurs, découvrons comment les sécuriser. Autrement, cliquez sur les liens ci-dessus pour obtenir des informations spécifiques sur la sécurisation de chaque solution. En savoir plus sur la sécurisation de Microsoft Azure Container Instances.

Sécurisation de l’hôte

Pour sécuriser l’hôte, il faut commencer par sélectionner le système d’exploitation qu’il exécute. Si possible, vous devez utiliser un système d’exploitation distribué optimisé pour exécuter des conteneurs. Si vous utilisez des distributions Linux® ou Microsoft® Windows®, vous devez veiller à désactiver ou éliminer les services inutiles et renforcer le système d’exploitation en général. Puis, ajoutez une couche de sécurité et des outils de surveillance pour vous assurer que votre hôte s’exécute comme vous le souhaitez. Des outils tels que le contrôle applicatif ou un système de prévention des intrusions (IPS) sont très utiles dans cette situation.

Une fois que votre conteneur s’exécute en production, il devra interagir avec d'autres conteneurs et ressources. Ce trafic interne doit être surveillé et sécurisé en s'assurant que tout le trafic réseau de vos conteneurs passe à travers un IPS. Cela change la manière dont vous déployez le contrôle de sécurité. Au lieu de mettre en œuvre un petit nombre de moteurs IPS traditionnels de grande ampleur sur le périmètre, vous pouvez mettre en œuvre l’IPS sur chaque hôte. Cela permet de surveiller efficacement tout le trafic sans impact significatif sur les performances.

Sécurisation de l’application dans le conteneur

Lorsque votre conteneur s’exécute en production, il traite constamment les données de votre application, génère des fichiers journaux, met des fichiers en cache, etc. Les contrôles de sécurité peuvent vous aider à vous assurer qu’il s'agit d'activités ordinaires, et non malveillantes. Les contrôles antimalware en temps réel qui s’exécutent sur le contenu dans le conteneur sont essentiels à la réussite.

Un IPS joue un rôle essentiel ici également, dans un modèle d'utilisation nommé application de correctifs virtuelle. Si une faille est exposée à distance, le moteur IPS peut détecter des tentatives d’exploitation et éliminer des paquets pour protéger

votre application. Vous gagnez ainsi le temps nécessaire pour traiter la cause première dans la prochaine version de ce conteneur, au lieu de créer un correctif d'urgence.

Surveillance de votre application

Lors du déploiement de votre application dans un conteneur, un contrôle de sécurité RASP (runtime application self-protection) peut s'avérer utile. Ces contrôles de sécurité s’exécutent dans le code de votre application et interceptent souvent des appels de clés dans votre code. En dehors des fonctionnalités de sécurité, comme la surveillance Structured Query Language (SQL), le contrôle des dépendances et la remédiation, la vérification des URL et d'autres contrôles, le RASP peut également résoudre l’une des plus grandes difficultés de la sécurité : l’identification de la cause première.

En étant positionnés dans le code de l'application, ces contrôles de sécurité peuvent aider à associer un problème de sécurité à la ligne de code qui l'a créé. Ce niveau de connaissance est difficile à atteindre et améliore fortement votre position en matière de sécurité.

Sécurisation de la pile de gestion de votre conteneur

Du point de vue de la sécurité, la pile de gestion qui aide à coordonner vos conteneurs est souvent ignorée. Toutes les organisations qui prennent au sérieux le déploiement de leurs conteneurs finiront inévitablement par avoir deux parties d'infrastructure essentielles pour gérer le processus : un registre de conteneur de confidentialité tel qu’Amazon ECS et Kubernetes (pour orchestrer le déploiement des conteneurs).

L'association d’un registre de conteneurs et de Kubernetes vous permet d'appliquer automatiquement un ensemble de normes de qualité et de sécurité pour vos conteneurs, avant et pendant le redéploiement dans votre environnement.

Les registres simplifient le partage de conteneurs et aident les équipes à s'appuyer sur leur travail mutuel. Cependant, pour vous assurer que chaque conteneur respecte vos références en matière de développement et de sécurité, vous devez opter pour un analyseur automatisé. Le fait d'analyser chaque conteneur et de détecter les vulnérabilités connues, les malwares et tous les secrets exposés avant sa mise à disposition dans le registre aide à réduire les problèmes en aval.

De plus, vous devez vous assurer que le registre en lui-même est correctement protégé. Il doit être exécuté sur un système renforcé ou sur un service cloud à la réputation irréprochable. Dans le scénario de service, vous devez également comprendre le modèle de responsabilité partagée et mettre en œuvre une approche solide basée sur les rôles pour l’accès au registre.

Côté orchestration, une fois que Kubernetes s’exécute et est déployé dans votre environnement, il offre un nombre important d'avantages qui aideront vos équipes à tirer le meilleur parti de votre environnement. Kubernetes permet également de mettre en œuvre un certain nombre de contrôles opérationnels et de sécurité, comme Pod (ressources au niveau du cluster) et des politiques de sécurité du réseau, ce qui vous permet d'utiliser différentes options selon votre tolérance au risque.

Créer votre application sur une base sécurisée : analyse de conteneur

Vous devez mettre en place un flux de travail d'analyse d’image de conteneur pour vous assurer que les conteneurs que vous utilisez en tant que blocs de construction sont fiables et sécurisés face aux menaces courantes. Cette classe d'outils analyse le contenu d'un conteneur et cherche les problèmes avant qu’il ne soit utilisé en tant que bloc de construction pour votre application. Le conteneur subit également un ensemble final de contrôles avant d’être déployé en production.

Lorsqu’elle est mise en œuvre correctement, l'analyse devient un élément naturel de votre processus de codage. Ce processus entièrement automatisé peut identifier tous les problèmes pendant que vous développez votre application et ses conteneurs, de manière simple et rapide. 

Assurer l'intégrité du pipeline de version

Les attaquants ont commencé à cibler les phases plus précoces de votre pipeline CI/CD. Si un attaque parvient à compromettre votre serveur de build, le référentiel du code ou les stations de travail des développeurs, ils peuvent rester plus longtemps dans votre environnement. Il vous faut un ensemble de contrôles de sécurité solide et à jour.

Vous devez ainsi mettre en œuvre une stratégie de contrôle d'accès solide tout au long du pipeline, depuis votre référentiel de code et votre stratégie de branches, jusqu'au référentiel de conteneur. Il vous faudra également mettre en œuvre le principe de moindre privilège (qui consiste à ne fournir que l’accès nécessaire pour accomplir les tâches requises) et auditer régulièrement cet accès.

Résumé

Pour sécuriser vos conteneurs, il vous faut une approche complète de la sécurité. Vous devez traiter les besoins du reste des équipes de votre organisation et vous assurer que votre approche peut être automatisée selon vos processus DevOps. Vous pourrez ainsi respecter les délais et fournir les applications rapidement, tout en les protégeant. La sécurité ne peut plus être reléguée au second plan, ou créer des demandes urgentes vous forçant à modifier votre flux de travail. La création de contrôles de sécurité et de processus automatisés fiables dès le début répond à vos inquiétudes et permet de combler plus facilement le fossé entre les équipes. 

Sujets sur la sécurité des conteneurs