25 bonnes pratiques pour la sécurité de Kubernetes

  • facebook
  • linkedin
25 bonnes pratiques pour la sécurité de Kubernetes

Kubernetes est un outil d’orchestration de conteneurs open source tellement populaire que la plupart des organisations l’ont adopté.

Grâce à lui, elles peuvent exécuter des applications conteneurisées à des fins de production en permettant de déployer et de gérer automatiquement des conteneurs à grande échelle.

Cela n’empêche pas de nombreuses entreprises qui l’utilisent d’être inquiètes à propos de leur sécurité, car Kubernetes n’offre pas beaucoup de protection face aux failles.


Comment intégrer la sécurité dans chaque phase du cycle de vie des conteneurs Kubernetes ?

Quelles sont les meilleures pratiques lors de la phase de construction ?

Avant toute chose, il est indispensable de créer des images sécurisées et de les scanner pour rechercher des vulnérabilités connues.

1 - N’ajoutez pas de composants inutiles

Assurez-vous de supprimer les outils de débogage des conteneurs en production.

2 - Utilisez uniquement des images à jour

Assurez-vous que vos images sont à jour et utilisent les dernières versions de leurs composants.

3 - Utilisez un scanner d’images pour identifier les vulnérabilités connues

Votre scanner d’images doit pouvoir identifier les vulnérabilités de vos images. Il doit également rechercher les vulnérabilités dans les packages de système d’exploitation et les bibliothèques d'exécutions tierces.

4 - Intégrez la sécurité dans votre pipeline CI / CD

Le but ici est d’automatiser la sécurité et de générer des alertes quand votre scanner détecte des vulnérabilités de haute sévérité.

5 - Identifiez les vulnérabilités non réparables

Ajoutez les vulnérabilités non réparables dans une liste d’autorisation ou filtrez la sortie de l’analyseur.

6 - Mettez en œuvre une défense en profondeur

Assurez-vous de disposer de vérifications de stratégie et d'un workflow de correction pour détecter et mettre à jour ces images

Quelles sont les meilleures pratiques lors de la phase de déploiement ? 

Vous avez d'abord besoin de visibilité sur ce que vous déployez et sur la façon dont vous allez le faire. 

Ensuite, vous pouvez identifier et corriger les violations de la politique de sécurité. 

Au minimum, vous devez savoir :

  • Ce qui est déployé
  • Où cela va-t-il être déployé
  • Comment cela est déployé
  • La conformité de ce qui est déployé

 

7 - Utilisez des « namespaces » pour isoler les workloads sensibles

Cela peut aider à contenir les attaques et à limiter l'impact des erreurs ou des actions destructrices des utilisateurs autorisés.

8 - Utilisez les stratégies réseau Kubernetes pour contrôler le trafic entre les pods et les clusters  

Les stratégies de segmentation du réseau sont un contrôle de sécurité clé qui peut empêcher les mouvements latéraux entre les conteneurs au cas où un pirate s'introduit par effraction.

9 - Empêchez l’accès trop permissif aux secrets

Assurez-vous que les déploiements ne montrent que les secrets dont ils ont réellement besoin pour éviter une exposition inutile.

10 - Évaluez les privilèges utilisés par les conteneurs

Les stratégies de sécurité des pods sont un moyen de contrôler les attributs de sécurité, y compris les niveaux de privilèges des conteneurs. 

11 - Evaluez la provenance des images y compris les registres

Utilisez des images provenant de registres connus / ceux figurant sur des listes d'autorisation uniquement.

12 - Prolongez votre numérisation d’image pour la phase de déploiement

Appliquez des politiques spécifiques lors de la phase de déploiement en fonction des résultats de l'analyse.

13 - Utilisez les étiquettes et les annotations de manière appropriée

Envisagez d'étiqueter ou d'annoter vos déploiements avec le nom, l'alias de messagerie ou le canal Slack de l'équipe responsable d'une application

14 - Activez le contrôle d’accès basé sur les rôles Kubernetes (RBAC)

RBAC fournit une méthode pour contrôler l'autorisation d'accéder au serveur d'API Kubernetes d'un cluster, à la fois pour les utilisateurs et les comptes de service du cluster

Quelles sont les meilleures pratiques lors de la phase d'exécution ? 

L’objectif de cette phase est de gagner en visibilité, de détecter et de répondre aux menaces.

Tout d'abord, vous devez surveiller les activités de conteneur les plus pertinentes pour la sécurité, notamment :

  • Les activités de processus
  • Les communications réseau entre les services conteneurisés
Les communications réseau entre les services conteneurisés et les clients et serveurs externes
Kubernetes
La phase d'exécution expose les applications conteneurisées à une multitude de nouveaux défis de sécurité.

 

15 - Exploitez les informations contextuelles dans Kubernetes

Utilisez les informations de temps de construction et de déploiement pour évaluer l'activité observée par rapport à l'activité attendue.

16 - Etendez l’analyse des vulnérabilités aux déploiements en cours

17 - Utilisez les contrôles intégrés de Kubernetes lorsqu’ils sont disponibles pour renforcer la sécurité

Configurez le contexte de sécurité des pods pour limiter leurs capacités

18 - Surveillez le trafic réseau pour limiter les communications inutiles ou non sécurisées

Observez votre trafic réseau actif et comparez ce trafic à ce qui est autorisé en fonction de vos stratégies réseau Kubernetes. Ensuite, comparez le trafic actif avec ce qui est autorisé.

19 – Enclenchez le processus de levier des listes d’autorisation

Observez l'application pendant un certain temps pour identifier tous les processus qui sont exécutés. Ensuite, pour pouvez utiliser cette liste comme liste d’autorisation par rapport au comportement futur de l’application.

20 - Comparez et analysez différentes activités d’exécution dans les pods des mêmes déploiements

Les applications conteneurisées sont répliquées pour des raisons de haute disponibilité, de tolérance aux pannes ou d'échelle.

Vous devez intégrer votre outil de sécurité Kubernetes à d'autres systèmes externes. Puis, il vous faudra tirer parti des étiquettes de déploiement ou des annotations pour alerter l’équipe responsable d’une application donnée lorsqu’une menace potentielle est détectée.

21 - Réinitialisez les pods suspects en cas de violation

Utilisez les contrôles natifs de Kubernetes puis redémarrez les instances des applications affectées.

Quelles sont les meilleures pratiques pour la sécurisation de l'infrastructure ? 

22 - Mettez à jour votre Kubernetes vers la dernière version chaque fois que possible

N'oubliez pas que seules les trois dernières versions de Kubernetes sont prises en charge.

23 - Configurez en toute sécurité le serveur d’API Kubernetes

Assurez-vous de désactiver l'accès non authentifié / anonyme et d'utiliser le cryptage TLS pour les connexions entre les Kubernetes et le serveur API.

24 - Sécurisez etcd

Etcd est un magasin clé-valeur utilisé par Kubernetes pour l'accès aux données

25 - Sécurisez le Kubelet

Assurez-vous que vous avez désactivé l'accès anonyme au kubelet

Je souhaite participer à des projets passionnants  avec Ozitem !

Avec la croissance constante de l’utilisation de Kubernetes, il devient vital d'assurer la sécurité des conteneurs pour protéger les réseaux et les applications face aux failles et aux violations et attaques malveillantes.

C’est ce que font chaque jour de nombreux consultants Ozitem. Rejoignez-nous pour aider à renforcer la sécurité de Kubernetes !