Kubernetes est-il soluble dans la sécurité ? Atelier NBS System

kubernetes-nbs-102019-1-788x433

Evénement, Expertise

Kubernetes et Sécurité

NBS System a présenté lors des Assises de la Sécurité un atelier nommé « Kubernetes est-il soluble dans la sécurité ? ». Proposé par Emile Heitor (CTO), Guillaume Sevestre (RSSI) et Pascal Foulon (RSSI de Doctolib), il a attiré près de 60 personnes.

 Ravi des retours extrêmement positifs, NBS System a donc décidé de publier le contenu de l’atelier.

Cliquez pour découvrir la présentation

Capture

Kubernetes, orchestrateur de conteneurs

Conteneurs, en quelques mots

La conteneurisation permet à des machines physiques ou virtuelles d’héberger des sous-systèmes contenant les briques essentielles d’un système d’exploitation (OS), ainsi que l’application qu’on souhaite isoler. Au sein de ce mini-OS, les applications vivent dans un environnement reproductible et éphémère. Les conteneurs ne virtualisent pas le processeur, mais sont vus par ce dernier comme des programmes à part entière, sans connaissance de ce qu’ils exécutent.

Kubernetes, le pilotage de vos conteneurs

Cet outil, initialement créé par Google et maintenant maintenu par une gigantesque communauté, orchestre le déploiement et la configuration des conteneurs ainsi que le réseau, le stockage. Au même titre que Rancher, Fargate, Mesos, Swarm … Kubernetes permet un fonctionnement déclaratif de type Architecture As Code. C’est à dire que l’on décrit l’état dans lequel doit se trouver la plateforme. Si ce n’est pas le cas, Kubernetes  la remet dans son état nominal.

L’outil est composé de plusieurs logiciels qui forment le Kubernetes Master:

  • Serveur d’API qui reçoit les instructions pour le Cluster
  • Controller Manager, qui maintient les ressources dans l’état souhaité
  • Ordonnanceur ( scheduler ), qui démarre les conteneurs sur les environnements matériels ou virtuels les plus adaptés 

Afin d’atteindre le degré d’abstraction nécessaire, Kubernetes propose le concept de pod. C’est-à-dire un élément qui peut contenir un ou plusieurs conteneurs. Quant au node dans le langage Kubernetes, il représente les hotes qui font fonctionner les pods. Concrètement, une machine virtuelle qui ferait fonctionner 10 pods est donc un node (noeud) du cluster Kubernetes.

Sans titre (2)

4 niveaux pour la défense :

  • Perimeter Security
  • Image Security
  • Cluster (in)security
  • Patchs

1) Perimeter Security : les risques sur l’exposition du Cluster 

Le retour de Doctolib : « Il faut établir une sécurité périmétrique limitant, ainsi, l’accès aux API »

Avis d’expert : « Un manque de restriction réseau ou une vulnérabilité peut rapidement compromettre votre Cluster. Alors, la sécurisation des accès d’administration est un must-have. »

2) Image Security : illusion de simplicité & de contrôle

Le retour de Doctolib :  » Pensez au build d’images minimum et aux scans de vulnérabilités/analyses statiques fréquentes »

Avis d’expert : Attention, les images se substituent aux packages. Celles-ci créent de nouvelles blackboxes au cœur du cluster. Utiliser une image construite par autrui, c’est déléguer sa sécurité !
Ainsi, toute image vérolée ou obsolète peut compromettre votre cluster.

3) Cluster (in)security : des capacités de protection désactivées !

Le retour de Doctolib : « Il est nécessaire d’évaluer l’impact fort de l’activation de protections. N’hésitez pas à vous faire accompagner sur le design et l’implémentation. Investissez aussi sur la montée en compétence »

Avis d’expert : « Kubernetes est open by design. C’est à dire que sans paramétrage adapté, il permet l’accès par défaut aux mécanismes les plus sensibles du cluster. Le temps accordé au design et à l’application des bonnes pratiques et politiques réseau au début du projet est, cependant, moins coûteux que des  configurations au cours du projet. De plus, des modifications de politique réseau en production peuvent avoir des impacts néfastes. »

4) Patch management : le challenge !

Le retour de Doctolib : « il faut maîtriser le processus de mise à jour complet de la plateforme. Les différentes briques étant inter-dépendantes, il est donc fréquent de se retrouver avec une cascade de mises à jour. Pensez aux redémarrages. »

Avis d’expert  : « Votre environnement doit toujours être proche de la dernière version. Patcher la technologie Kubernetes demande par conséquent une attention toute particulière. En effet, les mises à jour s’empilent :  l’hôte, les drivers matériels, le Kubernetes, les plugins réseau (Calico, Flannel, Weavenet, …) et les composantes des containers que sont image OS, Middelware et applications. La difficulté de l’exercice consiste en un savant équilibre entre ordre des actions, maîtrise des coupures de production et dette technique minimum. »

Sans titre (1)

5 conseils pour la sécurité Kubernetes :

  • Réduire l’exposition réseau de votre cluster
  • Privilégier des images maitrisées minimales
  • Appliquer les Best Practices au Design
  • Piloter finement patch & inter-dépendances
  • Enfin, investir dès la phase de Design & Implémentation pour réduire vos coûts opérationnels ultérieurs

Intéressez pour en savoir plus ? Contactez notre service commercial.