Kubernetes : quelles approches pour des environnements sécurisés ?

Kubernetes sécurité CISA

La CISA, homologue américaine de l’ANSSI, publie un guide consacré à la sécurisation de Kubernetes. Qu’en retenir ?

Les maillages de services, un atout pour protéger Kubernetes ? La CISA aborde la question dans un guide dédié à la sécurité de l’orchestrateur.

Qu’il s’agisse du chiffrement des secrets au repos, de l’isolation réseau ou des systèmes de fichiers en lecture seule, l’homologue américaine de notre ANSSI rappelle que de nombreuses fonctionnalités ne sont pas actives par défaut. Et que certaines ne sont pas natives à Kubernetes.

Tout au long du guide, on trouve des recommandations applicables au-delà des seuls environnements de conteneurs. Notamment le principe du moindre privilège, les mécanismes d’authentification robustes et l’application régulière des correctifs.

Concernant les pods, plus petite unité déployable avec Kubernetes, on retiendra, entre autres conseils :

  • S’assurer que les conteneurs ne s’exécutent pas en tant qu’utilisateur racine. Cela peut se configurer lors du build ou du déploiement. Il existe aussi des moteurs – dont Docker Engine – disposant d’un mode rootless.
  • S’appuyer sur un contrôleur d’admission pour analyser les images tout au long de leur cycle de viecontrôleur d'admission Kubernetes
  • Définir un niveau minimal de sécurité au travers d’une politique globale. Et, dans ce cadre, interdire si possible l’exécution de conteneurs à privilèges ou le partage des espaces de noms des processus hôtes.
  • Protéger les jetons d’authentification associés aux comptes de service que Kubernetes provisionne à la mise en place d’un pod 
  • Sur les moteurs qui le permettent, activer l’isolation des conteneurs au niveau matériel

Isolation et chiffrement

L’isolation se joue aussi au niveau du trafic réseau. Par défaut, il existe peu de politiques susceptibles d’empêcher effectivement la latéralisation en cas de compromission d’un cluster. La CISA recommande d’en mettre en place avec un plug-in adéquat. Et d’y ajouter des politiques limitant l’usage des ressources (LimitRange, ResourceQuota). Elle conseille par ailleurs de :

  • Renforcer le plan de contrôle
    Mesures évoquées : TLS, authentification robuste, désactivation de l’accès à internet, RBAC, sécurisation du datastore etcd et protection des fichiers kubeconfig contre les modifications indésirables
  • Isoler les nœuds de travail vis-à-vis des segments du réseau avec lesquels il n’y a pas lieu d’avoir de communication
  • Chiffrer les secrets au repos, soit à partir du serveur d’API, soit via un KMS
  • Porter attention à l’infrastructure d’exécution ; en l’occurrence, les VM où fonctionnent les nœuds

La CISA s’arrête aussi sur la journalisation. Et plus particulièrement sur la jonction avec des services externes. Parmi eux, les SIEM, qui ne se sont pas tous mis à la page des microservices, leur fonctionnement « historique » reposant sur les IP pour corréler les logs.

maillage de services
Pour en illustrer l’intérêt, la CISA présente le cas d’un maillages de services favorisant la sécurisation réseau.

Illustration principale © Dmitry Kovalchuk – Adobe Stock