Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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. Éric Briand Directeur technique Nantes GDE Cloud + Official Trainer

    Orga CNCF Meetup Nantes @eric_briand @ebriand
  3. Présentation du projet 🎉 - Créé par en 2016 -

    Open source et en incubation @ CNCF 🥚🐥 - Codé en C/C++ 🤕 - 107 contributeur·trice·s󰠁󰳕 - 4.1k ⭐
  4. Architecture 🗺 Falco Userspace Kernel Kernel module / Program eBPF

    Falco-sidekick Response Engine Application Syscall Hook Logs... Socket eBPF Map HTTP ? Falco rules ...
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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 ?