Un testeur de pénétration a obtenu un accès root à notre cluster Kubernetes en 15 minutes. Voici ce qu'il a exploité. La chaîne d'attaque : - A trouvé le tableau de bord Kubernetes exposé (notre faute) - Le tableau de bord avait un compte de service en lecture seule (nous pensions que c'était sûr) - Le compte de service pouvait lister les secrets dans tous les espaces de noms - A trouvé des identifiants AWS dans un secret - A utilisé les identifiants AWS pour accéder au profil d'instance EC2 - Le profil d'instance avait un accès complet à Kubernetes via IAM - A utilisé kubectl pour créer un pod privilégié - A échappé au nœud - Accès root à l'ensemble du cluster Ce que nous pensions avoir bien fait : - Le tableau de bord était en lecture seule - Les secrets étaient chiffrés au repos - Des politiques réseau étaient en place - Mises à jour de sécurité régulières Ce que nous avons manqué : - Le tableau de bord ne devrait pas être exposé du tout - Les comptes de service doivent respecter le principe du moindre privilège - Les secrets ne devraient pas contenir d'identifiants AWS (utiliser IRSA à la place) - Les politiques de sécurité des pods n'étaient pas appliquées - L'accès au nœud n'était pas durci La correction a pris 2 semaines : - Suppression complète du tableau de bord Kubernetes - Mise en œuvre d'IRSA pour tous les accès AWS des pods - Application de PSP strictes/Normes de sécurité des pods...