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 ?
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
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 :
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
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 :
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.
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
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 !
© 2023 Groupe Ozitem Mentions légales Politique de confidentialité