Aller au contenu

[KubeCon 25] Comment sécuriser vos conteneurs Kubernetes avec Falco et Talon ?

Découvrez Falco, l'outil open source qui sécurise vos conteneurs Kubernetes en détectant les comportements suspects grâce à des règles personnalisables. Retour sur une session captivante à la KubeCon, où Sysdig a présenté Falco, Talon et falcoctl pour détecter et contrer les menaces en temps réel.

Sécurisez vos conteneurs Kubernetes avec Falco et Talon

Lors d'une présentation organisée par Sysdig et Google à l'occasion de la KubeCon 2025 à Londres, les participants ont exploré Falco, un outil open source conçu pour détecter les comportements suspects dans les conteneurs Kubernetes. Cette session, à la fois théorique et pratique, a permis de manipuler des environnements éphémères et de tester des scénarios réels. Voici un retour détaillé sur cet événement enrichissant.

Kubernetes : Définition
Outil incontournable du cloud, kubernetes permet de déployer, mettre à l’échelle et gérer automatiquement des applications conteneurisées dans des clusters.

Revenons au bases: c'est quoi Kubernetes exactement ?

Qu’est-ce que Falco ?

Falco est un outil de sécurité open source développé par Sysdig. Il permet de détecter les comportements anormaux dans les conteneurs Kubernetes en se basant sur des règles prédéfinies ou personnalisées. Ces règles, appelées Falco Rules, peuvent être configurées pour surveiller des actions sensibles comme le lancement d’un shell dans un conteneur ou des activités suspectes liées à des attaques.

Concrètement, Falco scanne en continu les appels systèmes et les compare en utilisant des filtres, les fameuses Falco rules. Le scan est implémenté en utilisant ebpf, permettant d'exécuter du code dans l'espace du noyau tout en garantissant un haut niveau de sécurité.

Création et gestion des règles Falco

Par exemple, la règle pour détecter le lancement d'un shell dans un conteneur est la suivante:

- macro: container
  condition: container.id != host

- macro: spawned_process
  condition: evt.type = execve and evt.dir=<

- rule: run_shell_in_container
  desc: a shell was spawned by a non-shell program in a container. Container entrypoints are excluded.
  condition: container and proc.name = bash and spawned_process and proc.pname exists and not proc.pname in (bash, docker)
  output: "Shell spawned in a container other than entrypoint (user=%user.name container_id=%container.id container_name=%container.name shell=%proc.name parent=%proc.pname cmdline=%proc.cmdline)"
  priority: WARNING

On comprend à la lecture de ce code que l'événement doit être de type "spawned_process" (appel système execve) et que le nom de l'exécutable doit être "bash" (proc.name = bash).

D'autres exemples de règles sont disponibles sur le site de falco.

Paramétrage des règles : Vous pouvez utiliser des règles open source disponibles sur GitHub ou écrire vos propres règles.

L’IA générative : un allié puissant pour les développeurs au quotidien
Découvrez comment l’IA générative révolutionne le quotidien des développeurs. De la gestion de projet à la documentation technique, en passant par la conception de modèles de données, cet outil puissant optimise les processus et améliore l’efficacité des équipes de développement.

L'IA est l'alliée des développeurs

Petite suggestion personnelle (ce point n'était pas dans la conférence, mais me semble intéressant à mettre en avant): vous pouvez aussi vous appuyer sur l'IA pour vous aider à écrire vos règles. J'ai par exemple utilisé le modèle Claude 3.7 avec le prompt suivant: "Peux-tu écrire une règle Falco pour vérifier les accès au fichier /etc/password" et obtenu instantanément ma règle et les explications nécessaires.

Enfin, vous pouvez gérer vos règles en utilisant falcoctl, comme décrit plus loin dans cet article.

La salle est prête à accueillir les participants

Actions automatisées avec Talon

Grâce à Talon, il est possible de déclencher des actions spécifiques lorsqu’un comportement suspect est détecté, comme supprimer un pod ou lui attribuer un label particulier.

Historique de Falco : De Sysdig à la communauté open source

Falco a vu le jour en 2016 sous l'impulsion de Sysdig, une entreprise spécialisée dans la surveillance et la sécurité des infrastructures cloud. Initialement conçu comme un projet interne, Falco a rapidement gagné en popularité grâce à son approche innovante de la détection des comportements anormaux dans les conteneurs. En 2018, Sysdig a décidé de rendre Falco open source, permettant à la communauté de contribuer activement à son développement et à son amélioration.

En 2020, Falco a franchi une étape majeure en devenant un projet incubé par la Cloud Native Computing Foundation (CNCF), une organisation qui supervise certains des outils les plus influents de l'écosystème cloud natif, comme Kubernetes et Prometheus. Ce statut d'incubation a renforcé la crédibilité de Falco et a accéléré son adoption par les entreprises cherchant à sécuriser leurs environnements Kubernetes.

Depuis lors, Falco a évolué pour inclure des fonctionnalités avancées telles que la gestion automatisée des règles via falcoctl, l'intégration avec des moteurs de réponse comme Falco Talon, et une compatibilité accrue avec le framework MITRE ATT&CK. Grâce à sa flexibilité et à son efficacité, Falco est aujourd'hui considéré comme l'un des outils de référence pour la sécurité des conteneurs et des clusters Kubernetes.

Après cette brève introduction à Falco, les participants ont pu mettre en pratique les outils en situation réelle.

Killercoda : la plateforme ultime pour apprendre et enseigner les compétences techniques
Apprenez ou enseignez en toute simplicité et gratuitement, sur de vrais environnements éphémères grâce à la plateforme Killercoda.

Killercoda: alternative à Instruqt pour apprendre gratuitement

Une session pratique sur Instruqt

La session s’est déroulée sur la plateforme Instruqt, similaire à Killercoda (mais qui ne propose pas d'offre gratuite), qui offre des environnements éphémères pour manipuler des outils en conditions réelles. Les participants ont suivi des scénarios conçus pour l’occasion, permettant une immersion totale dans l’utilisation de Falco.


Mise en place de l'environnement et premiers tests

  1. Installation de Falco : Les participants ont installé Falco sur un cluster Kubernetes en utilisant un Helm chart. Une règle simple a été configurée pour détecter le lancement d’un shell dans un conteneur, une opération sensible nécessitant une surveillance accrue.
  2. Simulation d’attaques : À l’aide de l’outil Atomic Red, des attaques ont été simulées pour vérifier la capacité de Falco à détecter ces menaces.

Automatisation et gestion des règles avec falcoctl

La première partie de la session a mis en lumière les défis liés à la validation manuelle des règles de détection. Pour simplifier ce processus, falcoctl a été présenté comme une solution efficace.

Fonctionnalités de falcoctl :

  • Mise à jour des règles : falcoctl permet de mettre à jour une large flotte de règles de détection depuis des dépôts distants.
  • Versioning : Il offre un contrôle des versions pour garantir l’utilisation des règles les plus fiables et adaptées à chaque scénario.
  • Optimisation des règles : En s’alignant sur le framework MITRE ATT&CK, falcoctl assure une couverture efficace des menaces.

Réagir en temps réel avec Falco Talon

La session s’est poursuivie avec la mise en oeuvre de Falco Talon, un moteur de réponse conçu pour gérer les menaces dans les clusters Kubernetes. Talon offre une solution no-code et personnalisable pour réagir instantanément aux événements détectés par Falco.

Exemple de cas d’usage :

Détection d’un cryptominer : Lorsqu’un cryptominer est lancé dans un pod, Falco le détecte et Talon exécute une action configurée. Dans ce cas précis :

  • Une annotation suspicious=true est ajoutée au pod concerné.
  • Une NetworkPolicy bloque tout le trafic sortant des pods ayant cette annotation.

Cette approche permet de neutraliser l’attaque tout en laissant aux équipes de sécurité le temps d’analyser la situation.

Késaco : Libre et Open Source
Vous avez déjà entendu parler de logiciel libre ou de logiciel Open Source sans savoir de quoi il s’agit ? En 50 secondes, on vous apporte un éclaircissement !

Une présentation orientée open source

Un point particulièrement apprécié par les participants est que l’orateur a limité sa présentation aux outils open source tels que Falco, Talon et falcoctl, sans chercher à promouvoir les solutions commerciales de Sysdig. Cette démarche est saluée par les défenseurs de l’open source, qui privilégient les technologies accessibles et collaboratives.


Conclusion : Une session enrichissante

Cette conférence a offert une présentation dynamique et pratique des outils open source Falco, Talon et falcoctl. Les participants ont pu expérimenter des scénarios réels et découvrir des solutions innovantes pour sécuriser leurs clusters Kubernetes. Cette session a démontré l’efficacité de ces outils pour détecter et contrer les menaces en temps réel, tout en mettant en avant l’importance de l’open source dans le domaine de la sécurité informatique.

Et retrouvez aussi tous nos articles concernant la sécurité en général et sur Kubernetes en particulier:

Sécurité - sfeir.dev - Le média incontournable pour les passionnés de tech et d’intelligence artificielle
Articles portant sur la domaine de sécurité

La cybersécurité sur Sfeir.dev

Dernier