Disclaimer : Cet article ne tergiversera pas sur le sujet de l’intérêt ou non des certifications; DamyR a d’ailleurs écrit une réflexion très intéressante sur le sujet. Je tiens seulement à dire qu’une certification peut être un outil intéressant pour acquérir des connaissances sur une technologie et de crédibiliser ses compétences aux yeux des recruteurs.

La CKS en bref

La CKS (Certified Kubernetes Security Specialist) est une certification créée par la Cloud Native Computing Foundation (CNCF) en collaboration avec The Linux Foundation pour aider à développer l'écosystème Kubernetes.

Pour pouvoir passer cette certification, vous avez besoin de posséder au préalable une CKA (Certified Kubernetes Administrator) en cours de validité; la CKAD (Certified Kubernetes Application Developer) ne compte pas. Pour rappel une CKA est valide 3 ans. La CKS, elle, est valide seulement 2 ans.

Cette certification coûte aujourd’hui (date de sortie de l’article) 375$. Je vous conseille d’écumer Internet lorsque vous souhaiterez acheter votre bon de passage, des réductions commerciales sont souvent proposées. D’ailleurs si vous avez passé une CKA récemment, il est possible que la Linux Foundation vous ait envoyé un bon de réduction pour la CKS, vérifiez votre boîte mail ! Avec l’achat de la CKS vous obtiendrez un droit de repassage et 2 sessions de killer.sh (nous en parlons plus en détail plus bas). Le bon de passage est valable 1 an seulement, ne l’achetez pas au début de vos révisions.

C’est un examen fondé sur les performances, en 2h vous devrez répondre entre 15 et 20 questions, cela laisse peu de place à l’hésitation et à la relecture. Je vous conseille d’être prêt(e) psychologiquement, de préparer des alias et de connaître les options qui vous permettront d’obtenir des résultats le plus rapidement possible. Vous devez obtenir 67% de bonnes réponses pour réussir l’examen, vous serez informé de vos résultats sous 24h.

Vous n’avez évidemment pas à tout retenir. Lors de l’examen, différents sites vous sont autorisés à la consultation. Comme pour la CKA, il est primordial que vous les connaissiez (préparez des raccourcis) et que vous sachiez y naviguer pour trouver les informations nécessaires.

Dernière précision : l’examen est en anglais, of course !

L’ensemble des détails concernant l’examen est développé ici.

On doit savoir/apprendre quoi ?

La CKS a pour objectif de tester les compétences techniques en sécurité Kubernetes des candidats. L’examen est composé de 6 sujets principaux qui ont des taux de représentation différents :

Liste des domaines de compétences de la CKS et leur représentation dans l'examen

Chaque domaine contient des questions typiques qui peuvent vous être posées.

Cluster Setup - 10 %

Programme Ce qu’il faut savoir
Créer des Network Policies Créer des network policies et savoir les tester, avec curl notamment.
Réparer un cluster Kube selon un benchmark CIS Comprendre les faiblesses remontées par un benchmark CIS et savoir les corriger. Normalement le rapport du benchmark vous dicte les actions à réaliser.
Configurer des Ingress Créer des ingress (rappel de la CKA)
Protéger les endpoints et métadatas de noeuds Savoir sécuriser le control plane et les kubelet avec les options adéquates
Minimiser l’accès aux éléments du GUI Connaître les options du Dashboard Kubernetes pour pouvoir en restreindre l’accès
Vérifier les binaires de la plateforme Maîtriser les commandes Linux pour vérifier l’intégrité d’un fichier (par exemple sha512sum)

Cluster Hardening - 10 %

Programme Ce qu’il faut savoir
Restreindre l’accès à l’API Kubernetes Savoir configurer les accès à l’API Kubernetes pour les restreindre (Autorisation et Authentification)
Utiliser des RBAC pour minimiser l’exposition Créer et modifier des RBAC
Comprendre le principe de moindre privilège
Être précautionneux dans l’utilisation des Service Accounts Créer et modifier des Service Accounts et leurs droits associés
Mettre à jour Kubernetes Mettre à jour un cluster Kubernetes avec kubeadm

System Hardening - 15%

Programme Ce qu’il faut savoir
Minimiser l’empreinte de l’OS (réduire la surface d’attaque) Restreindre certains modules kernels

Désinstaller des services

Minimiser les rôles IAM Comprendre les principes d’authentification, d’autorisation et de moindre privilège
Minimiser les accès externes au réseau Désactiver des ports
Utiliser de manière les outils de restriction Kernel (AppArmor, Seccomp) Maîtriser Seccomp et Apparmor dans le cadre de Kubernetes !

Minimize Microservice Vulnerabilities - 20%

Programme Ce qu’il faut savoir
Définir le niveau de sécurité OS approprié en utilisant PSP, OPA et les contextes de sécurité Créer des PSP

Configurer des Security Contexts

Maîtriser des Admission Controllers

Gérer les secrets Kubernetes Modifier des configurations d’OPA
Utiliser des runtime sandboxes (gVisor, Kata) Créer un runtime et l’attribuer à un pod
Implémenter le chiffrement de pod à pod via le mTLS Manipuler des certificats TLS dans Kubernetes

Supply Chain Security - 20%

Programme Ce qu’il faut savoir
Minimiser l’empreinte de l’image de base Savoir lire un Dockerfile avec un regard orienté sécurité
Sécuriser la supply chain en whitelistant des registres d’images, en signant et validant des images Savoir activer et configurer l’admission controller ImagePolicyWebhook
Utiliser des SAST sur ressources Kubernetes ou des Dockerfile Savoir utiliser kubesec
Scan des images pour des vulnérabilités connues Savoir scanner des images avec Trivy

Monitoring, Logging and Runtime Security - 20%

Programme Ce qu’il faut savoir
Réaliser une analyse comportementale d’appels systèmes et d’activités de fichiers au niveau de l’hôte ou des conteneurs pour détecter des activités malicieuses Savoir configurer et utiliser Falco
Détecter des menaces au sein des infrastructures physiques, des applications, des réseaux, des données, des utilisateurs et des workloads Savoir configurer et utiliser Falco
Détecter toutes les phases d’une attaque, d’où elle se réalise et comment elle s’étend Savoir configurer et utiliser Falco

Savoir activer, configurer et comprendre l’auditing

Réaliser une investigation en profondeur et identifier des acteurs malicieux au sein d’un environnement Savoir configurer et utiliser Falco

Savoir activer, configurer et comprendre l’auditing

Assurer l’immutabilité des conteneurs en fonctionnement Savoir quand un pod est immutable ou non
Utiliser les logs d’audit pour enregistrer les accès Savoir activer, configurer et comprendre l’auditing

Dans un souci de confidentialité vis-à-vis de l’examen, je ne peux malheureusement pas épiloguer sur le contenu de chaque domaine.

Vous pouvez trouver le détail officiel ici.

Se former

Il existe 2 solutions pour se former :

  • soit la formation en autodidacte, avec des ressources gratuites ou payantes
  • Soit la formation organisée, comme le propose les centres de formation

Comme je vous l'expliquais en introduction, pour être éligible au passage de la CKS, vous devez être certifié CKA.

Si vous souhaitez vous faire accompagner dans la préparation de la CKA ou, plus globalement, monter en compétence sur Kubernetes, sachez que WeScale Training vous propose un parcours de formation progressif et immersif sur le sujet. À travers des cours, des conseils, des retex de nos consultants-formateurs et des labs, ce parcours de formation vous permet de gagner en maîtrise sur tous les aspects d'une application conteneurisée et exploitée sur Kubernetes et d'aller passer votre CKA sereinement.

Concernant maintenant la CKS, si vous choisissez la voix de l'auto-formation, je vous conseille la formation vidéo de KodeKloud. Le cours est agrémenté d’exercices sur de vrais clusters Kubernetes. Des examens blancs vous sont proposés à la fin de la formation, ils sont intéressants à réaliser, notamment pour se confronter à la montre.

Le cours de Kim Wüstkamp (le créateur de killer.sh) peut aussi être intéressant à consulter. Il est présent sur Udemy. Pas de labs à disposition mais il vous invite à le suivre avec votre propre compte GCP.

Comme évoqué précédemment, avec l’achat de la CKS vous obtiendrez 2 sessions pour le système de simulation de CKS de killer.sh. Une session équivaut à un cluster Kubernetes disponible pendant 36h. Vous êtes mis dans les conditions réelles de l’examen, vous n’avez que 2h pour répondre aux questions, après vous aurez accès aux réponses. Vous pouvez continuer ou réinitialiser le cluster. Les 2 sessions contiennent le même pool de questions : vous aurez exactement les mêmes pour chaque session. Les examens de killer.sh sont plus difficiles que l’examen réel, il est très complexe de le réussir dans le temps imparti. Je vous conseille néanmoins d’exploiter ces 2 sessions à leur maximum, les questions étant très similaires à celles de l’examen. À mes yeux, les 2 sessions offertes avec l’achat du bon de passage sont suffisantes pour entreprendre l’examen sereinement mais si vous en ressentez le besoin n’hésitez pas à acheter d’autres sessions (~30€).

Se préparer

Lors de l'examen, vous l’avez compris, le temps est précieux, vous devrez faire en sorte d’optimiser votre temps au maximum.

Outre le fait de s’être formé(e) correctement et de savoir naviguer les documentations, vous pouvez aussi préparer des raccourcis vers les pages que vous serez amené(e) à consulter lors de l’examen. Voici la liste des sites autorisés, enregistrez-les :

Documentation Kubernetes

Outils

N’hésitez pas à préparer des liens précis de documentation comme ceux concernant les networks policies, les secrets, le cheatsheet, etc. que vous serez sûrement amené(e) à consulter. Faites bien attention lorsque vous cliquez sur un lien ! Ceux-ci peuvent vous rediriger vers des sites externes non autorisés à l’accès lors de l’examen !

Vous pouvez aussi, dès le début de l'examen, préparer des alias de commandes pour vous faire gagner du temps, certains vous sont fournis dans le cheatsheet Kubernetes et donc consultables lors de l’examen. Si vous souhaitez utiliser des alias, entraînez-vous avec, ne commencez pas à les utiliser lors de l’examen.

Un dernier point de précision mais maîtriser vi est un must have qui vous permettra de gagner un temps précieux. Il existe de nombreux tutoriels pour apprendre et maîtriser vi. Pour s’améliorer de manière ludique je vous conseille vim-adventures et l’application mobile Vim Master.

Le jour de l’examen

Vous êtes prêt(e), c’est le grand jour ! Vous avez trouvé une salle close où absolument personne ne vous dérangera pour les 2 prochaines heures. Votre bureau est débarrassé de tout élément autre que le clavier et votre souris. Vos appareils électroniques sont éteints. Votre caméra et micro sont fonctionnelles. Vous avez votre carte d’identité à portée de main. Super !

Attention pour les linuxiens, le site pour passer l’examen peut être “capricieux” si vous utilisez Wayland. Utilisez xorg ou préférez un autre ordinateur avec Windows.

Toutes les informations concernant l’examen à distance sont ici.

Pour tester si votre système est conforme aux prérequis vous pouvez utiliser cet outil.

Lors de l’examen vous serez amené(e) à vous connecter à différents clusters, serveurs, espaces de noms. Vous devez absolument faire attention où vous vous trouvez à chaque étape pour éviter de mettre en danger votre réussite sur un manque d’attention.

Prêts ?

J'espère que ces précisions et conseils vous permettront de passer cet examen en toute sérénité et d’obtenir cette certification ! Bon courage à vous !

Vous souhaitez monter en compétence sur Kubernetes ? WeScale vous propose des formations adaptées à votre besoin.

Liens utiles