Security musings

Catégories

Tags

🔍 Licence d'Utilisation 🔍

Sauf mention contraire, le contenu de ce blog est sous licence CC BY-NC-ND 4.0.

© 2025 à 2042 Sébastien Gioria. Tous droits réservés.

⏱️
Temps de lecture estimé
~2 minutes

Controllers — Automatisation & Contrôle

Description & Rôle

Les Controllers sont des processus (control loops) qui observent l’état du cluster et effectuent des actions pour atteindre l’état désiré. Chaque controller gère un type d’objet spécifique (ex: Deployment, StatefulSet).


Admission Controllers

Description & Rôle

Les Admission Controllers interceptent les requêtes API avant leur stockage dans etcd. Ils peuvent valider, modifier ou rejeter les requêtes selon des règles définies. Exemples : PodSecurityPolicy, ResourceQuota, NetworkPolicy.

CVEs Connus

Analyse STRIDE

Risque Description
S — Spoofing Bypass d’admission policy avec requêtes mal formées
T — Tampering Modification de l’admission logic via webhooks compromis
R — Repudiation Pas de logs des décisions d’admission
I — Information Disclosure Webhooks exposant des données sensibles
D — Denial of Service Admission webhooks lents bloquant l’API
E — Elevation of Privilege Contournement intentionnel des contrôles

Best-Practices Minimales

  • Activer PodSecurityStandards (replacement de PSP deprecated)
  • Implémenter des Admission Webhooks validant les images (image scanning, registries autorisées)
  • Appliquer ResourceQuota par namespace
  • Utiliser LimitRanger pour imposer des limites CPU/mémoire
  • Valider les SecurityContext avant admission
  • Monitorer les requêtes rejetées par admission
  • Utiliser des webhooks mutants pour injecter des sidecar de sécurité

Controller Manager

Description & Rôle

Le Controller Manager exécute les logic des différents controllers. Il observe les ressources Kubernetes et applique les changements déclarés. Exemples : Replication Controller, StatefulSet Controller, Deployment Controller.

CVEs Connus

Analyse STRIDE

Risque Description
S — Spoofing Accès non autorisé aux logs du Controller
T — Tampering Race conditions permettant des modifications non désirées
R — Repudiation Pas de logs détaillés des décisions de control
I — Information Disclosure Exposition de secrets via logs de controller
D — Denial of Service Controller crash ou boucles infinies
E — Elevation of Privilege Execution du controller avec privileges excédentaires

Best-Practices Minimales

  • Isoler le Controller Manager sur des nodes dédiés (taints/tolerations)
  • Limiter les privilèges du ServiceAccount du Controller Manager
  • Appliquer des ressources limites (CPU/mémoire) au Controller Manager
  • Activer l’audit sur les actions du Controller Manager
  • Utiliser RBAC restrictif pour les bindings du Controller Manager
  • Monitorer les logs d’erreur du Controller Manager
  • Mettre en place des alertes sur les crashes du Controller Manager