Dans un monde où les applications déployées sur des clusters
Kubernetes
sont de plus en plus courantes, il devient essentiel de sécuriser ces
environnements complexes. Kubescape se positionne comme un outil gratuit et
efficace pour auditer la sécurité des clusters Kubernetes. Que vous soyez un
développeur ou un administrateur système, cet outil vous permet de détecter les
failles de sécurité en scannant vos configurations et en vous proposant des
solutions pour corriger les vulnérabilités.
Fonctionnalités de Kubescape
Kubescape propose un ensemble riche de fonctionnalités pour renforcer la
sécurité des environnements
Kubernetes
:
Shift-left security : Kubescape permet aux développeurs d’identifier
les mauvais paramétrages dès la soumission des fichiers de manifeste,
favorisant une approche proactive de la sécurité.
Intégration IDE et CI/CD : L’outil s’intègre facilement à des
environnements de développement comme VSCode, Lens et à des
plateformes CI/CD telles que GitHub et GitLab, ce qui permet de
réaliser des vérifications de sécurité tout au long du processus de
développement.
Scan de clusters : Kubescape peut scanner les clusters Kubernetes
actifs à la recherche de vulnérabilités, de configurations incorrectes ou
d’autres problèmes de sécurité.
Support de plusieurs frameworks : Il teste les configurations de sécurité
selon divers cadres tels que la NSA, MITRE, SOC2 et d’autres.
Validation des YAML et des charts Helm : L’outil vérifie les fichiers
YAML et les Helm charts selon les critères des cadres de sécurité,
même en l’absence d’un cluster actif.
Renforcement de Kubernetes : Il permet d’identifier et de remédier aux
mauvaises configurations et vulnérabilités via des scans manuels, récurrents
ou déclenchés par un événement.
Sécurité à l’exécution : Kubescape offre une protection continue à
l’exécution avec une surveillance constante et la détection des menaces
pour les applications déployées.
Gestion de la conformité : L’outil aide à maintenir la conformité aux
cadres et normes reconnus, simplifiant ainsi le respect des exigences
réglementaires.
Support multi-cloud : Il offre une sécurité fluide sur plusieurs
fournisseurs cloud et différentes distributions de Kubernetes,
garantissant une protection homogène.
Ces fonctionnalités rendent Kubescape très flexible pour assurer une
sécurité robuste à chaque étape du cycle de vie d’un projet Kubernetes, que ce
soit au niveau du code, de l’infrastructure ou des applications en production.
Installation de kubescape
L’installation de Kubescape est relativement simple et peut se faire de
différentes manières selon votre environnement.
Utilisation de la ligne de commande : Vous pouvez installer Kubescape
via une commande curl. Cette méthode télécharge et installe directement
l’outil sur votre machine. Voici un exemple de commande à exécuter dans le
terminal :
Utilisation de Docker : Si vous préférez ne pas installer Kubescape
directement sur votre machine, vous pouvez utiliser un conteneur Docker.
Cela permet de lancer des scans sans affecter votre système d’exploitation
local.
Exécution en tant que Pod Kubernetes : Pour une intégration complète avec
vos clusters Kubernetes, Kubescape peut être déployé comme un Pod.
Cela permet de scanner directement les ressources du cluster et de générer
des rapports sur les vulnérabilités. Le déploiement peut se faire à l’aide
d’un manifeste YAML disponible dans la documentation officielle.
Ces méthodes vous offrent la flexibilité d’adapter l’installation à vos besoins,
que ce soit pour un audit local ou un environnement de production complet.
kubescape utilise toute une série de contrôles basés sur les directives de
sécurité fournies par la NSA, la CISA et Microsoft, entre autres.
Ces contrôles sont regroupés en quatre catégories, appelées des cadres :
Le tableau des frameworks supportés par Kubescape inclut plusieurs options
qui permettent d’auditer et de sécuriser un cluster Kubernetes. Voici une
description des principaux cadres :
AllControls : Exécute tous les contrôles disponibles.
ArmoBest : Propose des recommandations spécifiques basées sur l’expertise
de l’équipe Kubescape.
DevOpsBest : Couverture basique des points essentiels pour la sécurité.
MITRE et NSA : Conformes aux recommandations des organisations
respectives.
SOC2 : Axé sur la conformité SOC 2.
CIS : Des contrôles spécifiques pour les versions Kubernetes AKS, EKS et
standard.
Ces cadres vous permettent de choisir celui qui correspond le mieux à vos
besoins de sécurité, en fonction de l’environnement utilisé.
Par défaut, kubescape exécutera tous ces frameworks et indiquera un niveau de
risque pour chacun d’entre eux.
Pour afficher les frameworks disponibles :
Nos Premiers scans avec kubescape
Plutôt que de lancer tous les contrôles, nous allons découper notre analyse sous
deux angles. En effet, l’analyse peut se faire soit sur l’état de santé du
Cluster, soit de celui des applications qu’il héberge.
Analyse d’un Cluster Kubernetes avec kubescape
En premier lieu, pour assurer la sécurité des applications hébergées au sein
de nos clusters Kubernetes contre les attaques, il est important que ceux-ci
soient correctement durcis.
kubescape permet :
D’identifier des nodes non sécurisés (clients Kubelet sans
authentification TLS)
De rechercher les interfaces exposées et non sécurisées, par ex. une API.
De détecter si le cluster est affecté par des CVE connues.
De détecter les politiques réseau manquantes.
…
Pour lancer une analyse, il suffit de lancer la commande scan :
Pour simplifier la lecture et je préfère cette solution, car elle fournit les
liens de remédiations des erreurs rencontrées, j’utilise la sortie au format html.
Cet outil regorge d’options. Pour les découvrir, il suffit d’utiliser l’option
--help, cela fonctionne avec toutes les commandes.
Analyse des manifests YAML et des charts HELM
Kubescape permet d’analyser les manifests YAML mais aussi les Charts HELM. Il
permet même de le faire directement dans le dépôt du code source.
Pour analyser des manifests YAML :
Pour analyser un une chart HELM :
En analysant les manifests, kubescape peut détecter des problèmes de type :
Services SSH non sécurisés fonctionnant à l’intérieur d’un conteneur
Utilisation de sudo des dans la commande de démarrage d’un conteneur
Exécution de conteneurs en tant que root ou avec des capacités excessives
Pods prenant trop de ressources CPU et Mémoire.
…
A la fin de l’analyse kubescape fourni un score de risque de 0% ( très sécurisé
) à 100% ( non sécurisé ).
Utilisation dans les outils de CI/CD
kubescape peut être utilisé dans la plupart des outils de CI/CD dont :
Gitlab-CI
ArgoCD
CircleCI
Azure Devops Pipeline
Github Actions
Jenkins
…
Un exemple de pipeline avec Github Actions :
Tout est envisageable avec kubescape!
Utilisation de l’extension VSCode
kubescape fournit également une extension
VSCode ↗
qui permet d’analyser à la volée un manifest.
Conclusion
kubescape est vraiment un bel outil qui mérite qu’on s’y attarde. Je n’ai pas
essayé de l’installer dans mon cluster Kubernetes, car c’est possible, mais je
vais pousser mon analyse plus loin.