Sécurité

Sécurité des conteneurs

En quoi consiste la sécurité des conteneurs ?

La sécurité des conteneurs correspond à la protection de l'intégrité des conteneurs, des applications qu'ils renferment à l'infrastructure sur laquelle ils s'appuient. Elle doit être intégrée et continue. Pour assurer la sécurité continue des conteneurs, il faut généralement :

  • sécuriser le pipeline de conteneurs et l'application ;
  • sécuriser l'environnement de déploiement des conteneurs et l'infrastructure ;
  • exploiter les outils de sécurité de l'entreprise tout en respectant ou en améliorant les politiques de sécurité existantes.

Les conteneurs sont largement utilisés, car ils facilitent la création, la mise en paquets et la promotion d'une application ou d'un service et de toutes leurs dépendances, tout au long du cycle de vie et dans différents environnements et cibles de déploiement. Néanmoins, la sécurité des conteneurs peut être difficile à mettre en œuvre. En effet, les politiques de sécurité et les listes de contrôle statiques ne s'adaptent pas aux conteneurs. La chaîne d'approvisionnement nécessite davantage de services en matière de politiques de sécurité. Les équipes doivent trouver l'équilibre entre les besoins de mise en réseau et les impératifs de gouvernance liés aux conteneurs. Les outils de création et d'exécution doivent être dissociés des services.

En sécurisant votre pipeline de conteneurs et en protégeant votre infrastructure, vous aurez l'assurance que vos conteneurs sont fiables, évolutifs et sûrs.


Sécurisation du pipeline de conteneurs

Collecte d'images

Les conteneurs sont constitués de couches de fichiers, que la communauté d'utilisateurs appelle des « images de conteneurs ». L'image de base est la plus importante en matière de sécurité, car elle sert de point de départ pour la création d'images dérivées. La sécurité des conteneurs commence donc par l'identification de sources fiables pour les images de base. Toutefois, même avec des images fiables, l'ajout d'applications et les changements de configuration introduisent de nouvelles variables. Lorsque vous ajoutez du contenu externe pour créer vos applications, vous devez garder à l'esprit les principes de gestion proactive de contenu.

Avant de collecter des images de conteneurs, les questions suivantes doivent être posées :

  • Les images de conteneurs sont-elles signées et issues de sources fiables ?

  • Les couches d'exécution et du système d'exploitation sont-elles à jour ?

  • À quelle fréquence les conteneurs seront-ils mis à jour et combien de temps dureront ces opérations ?

  • Des problèmes connus ont-ils été identifiés et comment seront-ils suivis ?

Gestion des accès

Une fois la collecte terminée, l'étape suivante consiste à gérer l'accès à ces images et leur partage avec l'équipe qui les utilise. Cela implique de protéger les images que vous téléchargez et celles que vous créez. L'utilisation d'un registre privé vous permet de contrôler l'accès en fonction des rôles et facilite la gestion du contenu grâce à l'affectation de métadonnées au conteneur. Les métadonnées fournissent des informations qui permettent d'identifier et de suivre des vulnérabilités connues. Avec un registre privé, vous pouvez également automatiser et affecter des politiques aux images de conteneurs stockées, tout en limitant les risques d'erreurs humaines qui peuvent être à l'origine de vulnérabilités dans vos conteneurs.

Pour définir la méthode de gestion des accès, les questions suivantes doivent être posées :

  • Quels contrôles d'accès basés sur les rôles faut-il mettre en place pour gérer les images de conteneurs ?

  • Des fonctionnalités de balisage sont-elles prévues pour faciliter le tri des images ? Les images peuvent-elles être balisées pour indiquer qu'elles ont été approuvées uniquement pour le développement, puis pour les tests et enfin pour la production ?

  • Le registre fournit-il des métadonnées visibles qui permettent de suivre des vulnérabilités connues ?

  • Le registre peut-il être utilisé pour affecter et automatiser une politique (par exemple, la vérification de signatures, l'analyse de code, etc.) ?

Intégration de tests de sécurité et automatisation du déploiement

La dernière étape du pipeline est le déploiement. Une fois les versions créées, vous devez les gérer conformément aux normes du secteur. Pour cela, vous devez comprendre comment automatiser des politiques qui permettent de signaler les versions présentant des problèmes de sécurité, notamment en cas de détection de nouvelles vulnérabilités. L'application de correctifs n'étant pas aussi efficace qu'une reconstruction des conteneurs, l'intégration de tests de sécurité doit inclure la définition de politiques qui déclenchent des reconstructions automatiques. La première étape de cette démarche consiste à exécuter des outils d'analyse des composants pour suivre et signaler les problèmes. La seconde étape vise à mettre en place des outils qui permettent des déploiements automatisés et basés sur des politiques.

Au moment de l'intégration des tests de sécurité et de l'automatisation du déploiement, la question suivante doit être posée :

  • Comment éviter l'application de correctifs aux conteneurs en cours d'exécution et prévoir à la place d'utiliser des déclencheurs pour reconstruire et remplacer les conteneurs au moyen de mises à jour automatiques ?


Protection de l'infrastructure

Le système d'exploitation hôte fournit une autre couche de sécurité aux conteneurs en les isolant. Vous avez donc besoin d'un système d'exploitation hôte qui offre une isolation maximale des conteneurs. Cette isolation joue un rôle primordial dans la protection de l'environnement de vos déploiements de conteneurs. Le système d'exploitation hôte est activé au moyen d'un environnement d'exécution de conteneur, qui est idéalement géré par un système d'orchestration. Pour rendre votre plateforme de conteneurs résiliente, utilisez des espaces de noms réseau qui isolent les applications et les environnements, et associez le système de stockage à l'aide de mécanismes de montage sécurisés. Une solution de gestion des API doit comprendre l'authentification et l'autorisation, l'intégration LDAP, des contrôles d'accès des points de terminaison et la limitation du taux.

Pour mettre en œuvre une protection efficace de l'infrastructure de conteneurs, les questions suivantes doivent être posées :

  • Quels conteneurs doivent pouvoir accéder à d'autres conteneurs ? Comment s'effectue leur détection ?

  • Comment contrôler l'accès aux ressources partagées et leur gestion (par exemple, le réseau et le stockage) ?

  • Comment gérer les mises à jour de l'hôte ? Tous les conteneurs devront-ils être mis à jour simultanément ?

  • Comment surveiller l'intégrité des conteneurs ?

  • Comment faire évoluer automatiquement la capacité des applications pour répondre à la demande ?


Nous pouvons vous aider

La solution Red Hat® OpenShift Container Platform inclut Red Hat Enterprise Linux®. Conçue en tenant compte du travail des équipes DevOps, elle permet d'automatiser le cycle de vie de l'application de conteneur et de sécuriser le pipeline des conteneurs. Notre catalogue de conteneurs vous donne accès à un grand nombre d'images, d'environnements d'exécution de langage, de bases de données et de solutions de middleware certifiés qui peuvent s'exécuter partout où vous exécutez Red Hat Enterprise Linux. Les images que nous fournissons sont toujours signées et vérifiées pour garantir leur provenance et leur intégrité.

Nous analysons en continu nos images de conteneurs pour détecter d'éventuelles vulnérabilités, notamment à l'aide d'un index d'intégrité accessible au public et mis à jour en permanence. Nous publions également des mises à jour de sécurité et des reconstructions de conteneurs mises à disposition via notre registre public.

En outre, nos solutions offrent les avantages suivants :

  • Orchestration et gestion de conteneurs à l'échelle du Web
  • Console Web riche avec fonctions de collaboration à plusieurs utilisateurs
  • Interfaces CLI et IDE
  • Automatisation des versions et création S2I (source-to-image)
  • Intégration avec CI
  • Automatisation du déploiement
  • Prise en charge de volumes de stockage distants
  • Installation et administration simplifiées
  • Prise en charge d'une grande variété de langages de programmation, de structures et de services

Se lancer

Cloud computing

OpenShift vous permet de construire, de développer et de déployer vos applications rapidement et facilement, dans la quasi-totalité des infrastructures publiques ou privées.

Plateformes Linux

Red Hat Enterprise Linux est une base stable et éprouvée suffisamment polyvalente pour prendre en charge le déploiement de nouvelles applications, la virtualisation des environnements et la création d'un cloud hybride sécurisé, avec le renfort des services d'assistance primés de Red Hat.


Vous ne savez pas encore tout sur la sécurité des conteneurs…