$30 off During Our Annual Pro Sale. View Details »

Access, Assert, Act. La sécurité à l'échelle avec Falco 🦅

Eric Briand
September 10, 2021

Access, Assert, Act. La sécurité à l'échelle avec Falco 🦅

La sécurité traditionnelle consiste à s’enfermer dans une forteresse pour se protéger. Mais dans un SI moderne, les flux sont dynamiques, les instances d’applications se multiplient. Cette approche n’est plus viable. Comment tout sécuriser sans tout bloquer ?

En se basant sur eBPF, Falco est un projet de la Cloud Native Computing Foundation qui analyse en temps réel tous les événements (création de fichier, ouverture de shell, etc) qui surviennent sur vos serveurs ou dans vos conteneurs. Falco détecte et trace les anomalies, vous permettant de réagir en cas d’attaque.

Durant cette présentation, nous allons expliquer les principes d’eBPF et Falco et ensuite utiliser quelques scénarios d’attaque pour montrer comment y réagir automatiquement.

Eric Briand

September 10, 2021
Tweet

More Decks by Eric Briand

Other Decks in Technology

Transcript

  1. Access, Assert, Act. La sécurité à l'échelle avec Falco 🦅

    Speakers : Pierre-Yves Aillet - @pyaillet Eric Briand - @eric_briand
  2. Pierre-Yves Aillet Consultant formateur Leader communauté Devops Z Nantes Security

    Engineer + Official Trainer @pyaillet @pyaillet
  3. Éric Briand Directeur technique Nantes GDE Cloud + Official Trainer

    Orga CNCF Meetup Nantes @eric_briand @ebriand
  4. None
  5. Avant - 🐈

  6. Maintenant - 🐄🐄🐄🐄🐄🐄🐄🐄🐄

  7. Et la sécurité ? 🔐

  8. C’est plus possible maintenant 󰢄

  9. Plusieurs approches - Enforcement ❌✅ - SELinux - Seccomp

  10. Plusieurs approches - Audit 🔍

  11. Falco 🦅 Detect abnormal behavior in applications, containers, and hosts.

    Audit orchestrator activity.
  12. Présentation du projet 🎉 - Créé par en 2016 -

    Open source et en incubation @ CNCF 🥚🐥 - Codé en C/C++ 🤕 - 107 contributeur·trice·s󰠁󰳕 - 4.1k ⭐
  13. None
  14. None
  15. Trailmap CNCF

  16. Architecture 🗺 Falco Userspace Kernel Kernel module / Program eBPF

    Falco-sidekick Response Engine Application Syscall Hook Logs... Socket eBPF Map HTTP ? Falco rules ...
  17. Falco sidekick ...

  18. Falco sidekick-ui 📺

  19. Syscall 📣 Kernel Disque Programme Syscall (open, read, write, …)

  20. Modes d’installation 📦 - Kernel module - À privilégier -

    Outillage fourni par le projet pour construire le module pour la version de kernel visée - eBPF probe - À utiliser lorsqu’il n’est pas possible de charger un module kernel - Exemple : GKE - ptrace userspace program: pdig - Lent (utilisation de ptrace) - En dernier recours, lorsque les 2 autres solutions sont impossibles
  21. Module - Kernel Tracepoints 🔍

  22. eBPF - Historique 📄 $ tcpdump tcp port 80 $

    tcpdump net 1.1.1.0/24 or net 2.2.2.0/24 and tcp port 80 tcpdump libpcap BPF program Kernel Userspace
  23. eBPF

  24. eBPF Falco

  25. pdig Parfois vous n’êtes pas en mesure d’installer vos propres

    modules kernel ou sondes eBPF. Dans ce cas, vous pourrez tout de même utiliser une solution moins performante basée sur ptrace : pdig https://github.com/falcosecurity/pdig
  26. Règles de Falco 🎛 Des règles sont fournies par le

    projet Falco : • 60 règles au niveau O.S. • 39 règles d’audit k8s • 15 règles spécifiques à des applications (ex elasticsearch) mais pas activée par défaut • Règles spécifiques à des CVEs
  27. Security Hub

  28. Format d’une règle (1/2) rule: shell_in_container desc: notice shell activity

    within a container condition: container.id != host and proc.name = bash output: shell in a container (container=%container.id) priority: WARNING
  29. Format d’une règle (2/2) • Macros - macro: in_container condition:

    container.id != host • Lists - list: userexec_binaries items: [sudo, su] • On peut aussi étendre des règles - rule: shell_in_container append: true condition: and not user.name=root
  30. Démo de falco avec une VM Attaque

  31. None
  32. Intégration avec Kubernetes • Falco peut s’installer en mode Daemonset

    (une instance par noeud) • Grâce à falco-sidekick, on peut utiliser une fonction qui va réagir à un événement Falco (avec Knative par exemple) • ⚠ Par contre l'instanciation de Falco sous forme de Pod dans Kubernetes n’est pas recommandée : c’est un Pod qui a beaucoup de droits sur les hosts
  33. La démo Attaque

  34. None
  35. La suite ? Encore en incubation à la CNCF 👍

    Chart Helm 󰠻 Architecture en cours d’évolution 🚀 Le projet progresse rapidement 😅 Documentation pas toujours à jour 🤔 A quand la 1.0 ?
  36. La suite ? https://twitter.com/kelseyhightower/status/1326610296530563073?s=20

  37. Merci ! Des questions ?

  38. Références - https://falco.org/ - https://sysdig.com/blog/sysdig-and-falco-now-powered-by-ebpf/ - https://ebpf.io/ - https://github.com/ebriand/falco-demo