Kloak est un outil innovant conçu pour sécuriser les secrets dans Kubernetes en les injectant directement au niveau du noyau via eBPF, sans que l'application ne les manipule jamais en clair. L'idée centrale est d'intercepter le trafic TLS sortant à l'aide d'uprobes eBPF, remplaçant des placeholders par les vrais secrets juste avant le chiffrement, ce qui empêche leur exposition même en cas de compromission du conteneur. Contrairement aux solutions traditionnelles comme OpenBao ou les sidecars, Kloak évite que les secrets ne résident en mémoire de l'application, réduisant ainsi les risques d'exfiltration.
L'architecture de Kloak repose sur deux plans distincts : un control-plane qui gère les Shadow Secrets et synchronise les eBPF maps, et un data-plane qui intercepte les appels TLS via des hooks sur SSL_write et crypto/tls.(*Conn).Write. Le controller, déployé en tant que DaemonSet, surveille les secrets labellisés et réécrit les montages de pods via un Mutating Admission Webhook, garantissant une intégration transparente sans modification du code applicatif.
L'auteur présente un Proof of Concept (PoC) détaillant les défis rencontrés, notamment avec Flannel et Cilium, ainsi que des méthodes d'analyse via les logs et les compteurs eBPF. Bien que le projet soit récent et open-source, il offre une approche prometteuse pour renforcer la sécurité des secrets dans les environnements Kubernetes, en alignement avec les principes zero-trust.